@wireapp/core 43.10.0 → 43.11.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/lib/Account.d.ts.map +1 -1
- package/lib/Account.js +2 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.d.ts +5 -0
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.js +19 -0
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/schema.d.ts +2 -0
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/schema.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/schema.js +4 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.d.ts +24 -4
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.js +74 -7
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.test.js +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.d.ts +11 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.js +23 -5
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.js +3 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts +1 -0
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.js +25 -3
- package/lib/messagingProtocols/mls/MLSService/MLSService.test.js +9 -3
- package/lib/storage/CoreDB.d.ts +7 -0
- package/lib/storage/CoreDB.d.ts.map +1 -1
- package/lib/storage/CoreDB.js +2 -0
- package/package.json +3 -3
package/lib/Account.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../src/Account.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../src/Account.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,YAAY,EAGZ,OAAO,EACP,MAAM,EAEN,SAAS,EAEV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,UAAU,EAAE,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAEnG,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AASxD,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAC,sBAAsB,EAAC,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAO,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAC,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAExD,oBAAY,MAAM;IAChB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,eAAe;IACzB,8EAA8E;IAC9E,MAAM,WAAW;IACjB,oCAAoC;IACpC,UAAU,eAAe;IACzB,mFAAmF;IACnF,wBAAwB,6BAA6B;IACrD,oGAAoG;IACpG,IAAI,SAAS;CACd;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,KAAK,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;AAEhH,UAAU,cAAc;IACtB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;;;;OAQG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,KAAK,WAAW,GAAG;IACjB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAQF,KAAK,MAAM,GAAG;IACZ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;CACjC,CAAC;AAEF,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAuClD,OAAO,CAAC,OAAO;IAtCjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,qIAAqI;IACrI,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,EAAE,CAAC,CAAe;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAgB;IAE/B,OAAO,CAAC,EAAE;QACf,GAAG,CAAC,EAAE,UAAU,CAAC;QACjB,WAAW,CAAC,EAAE,mBAAmB,CAAC;QAClC,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,cAAc,CAAC;QACxB,KAAK,EAAE,YAAY,CAAC;QACpB,SAAS,EAAE,gBAAgB,CAAC;QAC5B,MAAM,EAAE,aAAa,CAAC;QACtB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,YAAY,EAAE,mBAAmB,CAAC;QAClC,eAAe,EAAE,sBAAsB,CAAC;QACxC,KAAK,EAAE,YAAY,CAAC;QACpB,WAAW,EAAE,kBAAkB,CAAC;QAChC,YAAY,EAAE,mBAAmB,CAAC;QAClC,IAAI,EAAE,WAAW,CAAC;QAClB,IAAI,EAAE,WAAW,CAAC;QAClB,IAAI,EAAE,WAAW,CAAC;KACnB,CAAC;IACK,eAAe,EAAE,eAAe,CAAC;IACjC,sBAAsB,EAAE,sBAAsB,CAAC;IAEtD;;;OAGG;gBAED,SAAS,GAAE,SAA2B,EAC9B,OAAO,GAAE,cAAiC;IAoCpD;;;;;;;;;;;OAWG;IACU,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAMvE,OAAO,CAAC,aAAa;YAKP,aAAa;IAUd,UAAU,CAAC,EACtB,WAAW,EACX,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,GACb,EAAE;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;;;;;;;;;IA8BD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;OAKG;IACU,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3F;;;;OAIG;IACU,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAC,MAAM,EAAC,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvF;;;;;OAKG;IACU,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1D;;OAEG;IACU,cAAc,CACzB,SAAS,EAAE,SAAS,EACpB,UAAU,GAAE,UAA8B,EAC1C,WAAW,CAAC,EAAE,UAAU,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAuB5B;;OAEG;YACW,aAAa;IAU3B;;;;OAIG;IACU,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC/D,UAAU,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAkClD,iBAAiB;IA2B/B;;;;;;OAMG;IACH,sBAAsB,CAAC,aAAa,EAAE,aAAa;IAItC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoF1D,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACU,MAAM,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D;;OAEG;YACW,IAAI;IAQlB;;;;;;OAMG;IACI,MAAM,CAAC,EACZ,OAAkB,EAClB,wBAAmC,EACnC,4BAAuC,EACvC,qBAAgC,EAChC,MAAc,GACf,GAAE;QACD;;;;WAIG;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAE7E;;WAEG;QACH,4BAA4B,CAAC,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAC,KAAK,IAAI,CAAC;QAEtF;;WAEG;QACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;QAE5D;;;;;;WAMG;QACH,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;QAEzD;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;KACb,GAAG,MAAM,IAAI;IA2FnB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,uBAAuB;YAIjB,UAAU;IAuBxB,OAAO,CAAC,yBAAyB,CAS/B;CACH"}
|
package/lib/Account.js
CHANGED
|
@@ -356,7 +356,8 @@ class Account extends commons_1.TypedEventEmitter {
|
|
|
356
356
|
const clientService = new client_2.ClientService(this.apiClient, proteusService, this.storeEngine);
|
|
357
357
|
if (clientType === CryptoClient_1.CryptoClientType.CORE_CRYPTO && (await this.isMlsEnabled())) {
|
|
358
358
|
mlsService = new mls_1.MLSService(this.apiClient, cryptoClient.getNativeClient(), this.db, this.recurringTaskScheduler, Object.assign({}, (_a = this.coreCryptoConfig) === null || _a === void 0 ? void 0 : _a.mls));
|
|
359
|
-
e2eServiceExternal = new E2EIdentityService_1.E2EIServiceExternal(cryptoClient.getNativeClient(), clientService, mlsService.config.cipherSuite
|
|
359
|
+
e2eServiceExternal = new E2EIdentityService_1.E2EIServiceExternal(cryptoClient.getNativeClient(), this.db, this.recurringTaskScheduler, clientService, mlsService.config.cipherSuite);
|
|
360
|
+
mlsService.on('newCrlDistributionPoints', e2eServiceExternal.handleNewRemoteCrlDistributionPoints);
|
|
360
361
|
}
|
|
361
362
|
const connectionService = new connection_1.ConnectionService(this.apiClient);
|
|
362
363
|
const giphyService = new giphy_1.GiphyService(this.apiClient);
|
package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.d.ts
CHANGED
|
@@ -11,7 +11,12 @@ export declare class AcmeService {
|
|
|
11
11
|
private extractLocation;
|
|
12
12
|
private postJoseRequest;
|
|
13
13
|
getDirectory(): GetDirectoryReturnValue;
|
|
14
|
+
getSelfCRL(): Promise<{
|
|
15
|
+
crl: Uint8Array;
|
|
16
|
+
url: string;
|
|
17
|
+
}>;
|
|
14
18
|
getLocalCertificateRoot(): Promise<string>;
|
|
19
|
+
getCRLFromDistributionPoint(distributionPointUrl: string): Promise<Uint8Array>;
|
|
15
20
|
getFederationCrossSignedCertificates(): Promise<string[]>;
|
|
16
21
|
getInitialNonce(url: AcmeDirectory['newNonce']): GetInitialNonceReturnValue;
|
|
17
22
|
createNewAccount(url: AcmeDirectory['newAccount'], payload: Uint8Array): Promise<PostJoseRequestReturnValue<{
|
package/lib/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcmeService.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AcmeService.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/AcmeService.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAoB7B,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAErE,qBAAa,WAAW;IAUV,OAAO,CAAC,YAAY;IAThC,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAKT;gBAES,YAAY,EAAE,MAAM;IAExC,OAAO,KAAK,WAAW,GAGtB;IAID,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;YAIT,eAAe;IAsBhB,YAAY,IAAI,uBAAuB;IAWvC,UAAU,IAAI,OAAO,CAAC;QAAC,GAAG,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC;IAarD,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAM1C,2BAA2B,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAW9E,oCAAoC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMzD,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,0BAA0B;IAW3E,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU;;;;;IAQtE,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU;;;;;;;;;;;;IASlE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;;;;;;;;;;;;;;;IAQjD,qBAAqB,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU;;;;;;;IAQpE,qBAAqB,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU;;;;;;;;;;;;IAQpE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;;;;;;;;;;;;;IAQnD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;;;;;;;;;;;;;;IAQ9C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;CAO7D"}
|
|
@@ -32,6 +32,8 @@ class AcmeService {
|
|
|
32
32
|
this.axiosInstance = axios_1.default.create();
|
|
33
33
|
this.url = {
|
|
34
34
|
ROOTS: '/roots.pem',
|
|
35
|
+
CRL: '/crl',
|
|
36
|
+
PROXY_CRL: '/proxyCrl',
|
|
35
37
|
FEDERATION: '/federation',
|
|
36
38
|
};
|
|
37
39
|
}
|
|
@@ -72,11 +74,28 @@ class AcmeService {
|
|
|
72
74
|
return undefined;
|
|
73
75
|
}
|
|
74
76
|
}
|
|
77
|
+
async getSelfCRL() {
|
|
78
|
+
const url = `${this.acmeBaseUrl}${this.url.CRL}`;
|
|
79
|
+
const { data } = await this.axiosInstance.get(url, {
|
|
80
|
+
responseType: 'arraybuffer',
|
|
81
|
+
});
|
|
82
|
+
const crl = schema_1.CrlResponseSchema.parse(data);
|
|
83
|
+
const crlUint8Array = new Uint8Array(crl);
|
|
84
|
+
return { url, crl: crlUint8Array };
|
|
85
|
+
}
|
|
75
86
|
async getLocalCertificateRoot() {
|
|
76
87
|
const { data } = await this.axiosInstance.get(`${this.acmeBaseUrl}${this.url.ROOTS}`);
|
|
77
88
|
const localCertificateRoot = schema_1.LocalCertificateRootResponseSchema.parse(data);
|
|
78
89
|
return localCertificateRoot;
|
|
79
90
|
}
|
|
91
|
+
async getCRLFromDistributionPoint(distributionPointUrl) {
|
|
92
|
+
const { data } = await this.axiosInstance.get(`${this.acmeBaseUrl}${this.url.PROXY_CRL}/${distributionPointUrl}`, {
|
|
93
|
+
responseType: 'arraybuffer',
|
|
94
|
+
});
|
|
95
|
+
const crl = schema_1.CrlResponseSchema.parse(data);
|
|
96
|
+
const crlUint8Array = new Uint8Array(crl);
|
|
97
|
+
return crlUint8Array;
|
|
98
|
+
}
|
|
80
99
|
async getFederationCrossSignedCertificates() {
|
|
81
100
|
const { data } = await this.axiosInstance.get(`${this.acmeBaseUrl}${this.url.FEDERATION}`);
|
|
82
101
|
const federationCrossSignedCertificates = schema_1.FederationCrossSignedCertificatesResponseSchema.parse(data);
|
|
@@ -37,6 +37,8 @@ export declare const DirectoryResponseSchema: z.ZodObject<{
|
|
|
37
37
|
export type DirectoryResponseData = z.infer<typeof DirectoryResponseSchema>;
|
|
38
38
|
export declare const LocalCertificateRootResponseSchema: z.ZodString;
|
|
39
39
|
export type LocalCertificateRootResonseData = z.infer<typeof LocalCertificateRootResponseSchema>;
|
|
40
|
+
export declare const CrlResponseSchema: z.ZodEffects<z.ZodType<ArrayBuffer, z.ZodTypeDef, ArrayBuffer>, ArrayBuffer, ArrayBuffer>;
|
|
41
|
+
export type CrlResponseData = z.infer<typeof CrlResponseSchema>;
|
|
40
42
|
export declare const FederationCrossSignedCertificatesResponseSchema: z.ZodObject<{
|
|
41
43
|
crts: z.ZodArray<z.ZodString, "many">;
|
|
42
44
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/schema.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,kCAAkC,aAAoB,CAAC;AACpE,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAEjG,eAAO,MAAM,+CAA+C;;;;;;EAA+C,CAAC;AAC5G,MAAM,MAAM,6CAA6C,GAAG,CAAC,CAAC,KAAK,CACjE,OAAO,+CAA+C,CACvD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBtC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EAMtC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAatC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc3C,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE9F,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,4BAA4B,aAAoB,CAAC;AAC9D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/mls/E2EIdentityService/Connection/AcmeServer/schema.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,kCAAkC,aAAoB,CAAC;AACpE,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAEjG,eAAO,MAAM,iBAAiB,2FAE5B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE,eAAO,MAAM,+CAA+C;;;;;;EAA+C,CAAC;AAC5G,MAAM,MAAM,6CAA6C,GAAG,CAAC,CAAC,KAAK,CACjE,OAAO,+CAA+C,CACvD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBtC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EAMtC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAatC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc3C,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE9F,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEpF,eAAO,MAAM,4BAA4B,aAAoB,CAAC;AAC9D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.GetCertificateResponseSchema = exports.FinalizeOrderResponseSchema = exports.CheckStatusOfOrderResponseSchema = exports.OidcChallengeResponseSchema = exports.DpopChallengeResponseSchema = exports.AuthorizationResponseSchema = exports.NewOrderResponseSchema = exports.NewAccountResponseSchema = exports.FederationCrossSignedCertificatesResponseSchema = exports.LocalCertificateRootResponseSchema = exports.DirectoryResponseSchema = exports.ResponseHeaderLocationSchema = exports.ResponseHeaderNonceSchema = void 0;
|
|
21
|
+
exports.GetCertificateResponseSchema = exports.FinalizeOrderResponseSchema = exports.CheckStatusOfOrderResponseSchema = exports.OidcChallengeResponseSchema = exports.DpopChallengeResponseSchema = exports.AuthorizationResponseSchema = exports.NewOrderResponseSchema = exports.NewAccountResponseSchema = exports.FederationCrossSignedCertificatesResponseSchema = exports.CrlResponseSchema = exports.LocalCertificateRootResponseSchema = exports.DirectoryResponseSchema = exports.ResponseHeaderLocationSchema = exports.ResponseHeaderNonceSchema = void 0;
|
|
22
22
|
const zod_1 = require("zod");
|
|
23
23
|
const nonOptionalString = zod_1.z.string().min(1);
|
|
24
24
|
const nonOptionalUrl = zod_1.z.string().url().min(1);
|
|
@@ -36,6 +36,9 @@ exports.DirectoryResponseSchema = zod_1.z.object({
|
|
|
36
36
|
keyChange: nonOptionalUrl,
|
|
37
37
|
});
|
|
38
38
|
exports.LocalCertificateRootResponseSchema = nonOptionalString;
|
|
39
|
+
exports.CrlResponseSchema = zod_1.z.instanceof(ArrayBuffer).refine(arr => arr.byteLength > 0, {
|
|
40
|
+
message: 'CRL is empty',
|
|
41
|
+
});
|
|
39
42
|
exports.FederationCrossSignedCertificatesResponseSchema = zod_1.z.object({ crts: zod_1.z.array(nonOptionalString) });
|
|
40
43
|
exports.NewAccountResponseSchema = zod_1.z.object({
|
|
41
44
|
status: nonOptionalString,
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
import { QualifiedId } from '@wireapp/api-client/lib/user';
|
|
2
|
+
import { TypedEventEmitter } from '@wireapp/commons';
|
|
2
3
|
import { Ciphersuite, CoreCrypto, E2eiConversationState, WireIdentity, DeviceStatus } from '@wireapp/core-crypto';
|
|
3
4
|
import { ClientService } from '../../../client';
|
|
5
|
+
import { CoreDatabase } from '../../../storage/CoreDB';
|
|
4
6
|
import { RecurringTaskScheduler } from '../../../util/RecurringTaskScheduler';
|
|
5
7
|
export type DeviceIdentity = Omit<WireIdentity, 'free' | 'status'> & {
|
|
6
8
|
status?: DeviceStatus;
|
|
7
9
|
deviceId: string;
|
|
8
10
|
};
|
|
9
|
-
|
|
11
|
+
type Events = {
|
|
12
|
+
remoteCrlChanged: undefined;
|
|
13
|
+
selfCrlChanged: undefined;
|
|
14
|
+
};
|
|
15
|
+
export declare class E2EIServiceExternal extends TypedEventEmitter<Events> {
|
|
10
16
|
private readonly coreCryptoClient;
|
|
17
|
+
private readonly coreDatabase;
|
|
18
|
+
private readonly recurringTaskScheduler;
|
|
11
19
|
private readonly clientService;
|
|
12
20
|
private readonly cipherSuite;
|
|
13
|
-
private
|
|
14
|
-
constructor(coreCryptoClient: CoreCrypto, clientService: ClientService, cipherSuite: Ciphersuite
|
|
21
|
+
private _acmeService?;
|
|
22
|
+
constructor(coreCryptoClient: CoreCrypto, coreDatabase: CoreDatabase, recurringTaskScheduler: RecurringTaskScheduler, clientService: ClientService, cipherSuite: Ciphersuite);
|
|
15
23
|
isEnrollmentInProgress(): boolean;
|
|
16
24
|
clearAllProgress(): void;
|
|
17
25
|
getConversationState(conversationId: Uint8Array): Promise<E2eiConversationState>;
|
|
@@ -20,6 +28,8 @@ export declare class E2EIServiceExternal {
|
|
|
20
28
|
getDevicesIdentities(groupId: string, userClientsMap: Record<string, QualifiedId>): Promise<DeviceIdentity[]>;
|
|
21
29
|
isFreshMLSSelfClient(): Promise<boolean>;
|
|
22
30
|
private registerLocalCertificateRoot;
|
|
31
|
+
initialize(discoveryUrl: string): Promise<void>;
|
|
32
|
+
private get acmeService();
|
|
23
33
|
private registerCrossSignedCertificates;
|
|
24
34
|
/**
|
|
25
35
|
* This function is used to register different server certificates in CoreCrypto.
|
|
@@ -36,6 +46,16 @@ export declare class E2EIServiceExternal {
|
|
|
36
46
|
*
|
|
37
47
|
* @param discoveryUrl
|
|
38
48
|
*/
|
|
39
|
-
registerServerCertificates(
|
|
49
|
+
registerServerCertificates(): Promise<void>;
|
|
50
|
+
getCRLFromDistributionPoint(distributionPointUrl: string): Promise<Uint8Array>;
|
|
51
|
+
private scheduleCrlDistributionTimer;
|
|
52
|
+
private initialiseCrlDistributionTimers;
|
|
53
|
+
private addCrlDistributionTimer;
|
|
54
|
+
private cancelCrlDistributionTimer;
|
|
55
|
+
validateSelfCrl(): Promise<void>;
|
|
56
|
+
private validateRemoteCrlDistributionPoint;
|
|
57
|
+
private validateCrl;
|
|
58
|
+
handleNewRemoteCrlDistributionPoints(distributionPoints: string[]): Promise<void>;
|
|
40
59
|
}
|
|
60
|
+
export {};
|
|
41
61
|
//# sourceMappingURL=E2EIServiceExternal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2EIServiceExternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAMhH,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"E2EIServiceExternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAMhH,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;IAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AAE/G,KAAK,MAAM,GAAG;IACZ,gBAAgB,EAAE,SAAS,CAAC;IAC5B,cAAc,EAAE,SAAS,CAAC;CAC3B,CAAC;AAGF,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAI9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,OAAO,CAAC,YAAY,CAAC,CAAc;gBAGhB,gBAAgB,EAAE,UAAU,EAC5B,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW;IAOpC,sBAAsB,IAAI,OAAO;IAIjC,gBAAgB,IAAI,IAAI;IAIxB,oBAAoB,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhF,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IA6CnG,oBAAoB,CAC/B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;IAef,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;YAQvC,4BAA4B;IAO7B,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,OAAO,KAAK,WAAW,GAKtB;YAEa,+BAA+B;IAK7C;;;;;;;;;;;;;;OAcG;IACU,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3C,2BAA2B,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3F,OAAO,CAAC,4BAA4B;YAStB,+BAA+B;YAQ/B,uBAAuB;YAKvB,0BAA0B;IAI3B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAQ/B,kCAAkC;YASlC,WAAW;IAgBZ,oCAAoC,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAK/F"}
|
|
@@ -21,18 +21,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.E2EIServiceExternal = void 0;
|
|
22
22
|
const TimeUtil_1 = require("@wireapp/commons/lib/util/TimeUtil");
|
|
23
23
|
const bazinga64_1 = require("bazinga64");
|
|
24
|
+
const commons_1 = require("@wireapp/commons");
|
|
24
25
|
const Connection_1 = require("./Connection");
|
|
25
26
|
const Helper_1 = require("./Helper");
|
|
26
27
|
const E2EIStorage_1 = require("./Storage/E2EIStorage");
|
|
27
28
|
const fullyQualifiedClientIdUtils_1 = require("../../../util/fullyQualifiedClientIdUtils");
|
|
28
29
|
const LocalStorageStore_1 = require("../../../util/LocalStorageStore");
|
|
30
|
+
const LowPrecisionTaskScheduler_1 = require("../../../util/LowPrecisionTaskScheduler");
|
|
29
31
|
// This export is meant to be accessible from the outside (e.g the Webapp / UI)
|
|
30
|
-
class E2EIServiceExternal {
|
|
31
|
-
constructor(coreCryptoClient, clientService, cipherSuite
|
|
32
|
+
class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
33
|
+
constructor(coreCryptoClient, coreDatabase, recurringTaskScheduler, clientService, cipherSuite) {
|
|
34
|
+
super();
|
|
32
35
|
this.coreCryptoClient = coreCryptoClient;
|
|
36
|
+
this.coreDatabase = coreDatabase;
|
|
37
|
+
this.recurringTaskScheduler = recurringTaskScheduler;
|
|
33
38
|
this.clientService = clientService;
|
|
34
39
|
this.cipherSuite = cipherSuite;
|
|
35
|
-
this.
|
|
40
|
+
void this.initialiseCrlDistributionTimers();
|
|
36
41
|
}
|
|
37
42
|
// If we have a handle in the local storage, we are in the enrollment process (this handle is saved before oauth redirect)
|
|
38
43
|
isEnrollmentInProgress() {
|
|
@@ -87,6 +92,15 @@ class E2EIServiceExternal {
|
|
|
87
92
|
await this.coreCryptoClient.e2eiRegisterAcmeCA(localCertificateRoot);
|
|
88
93
|
return localCertificateRoot;
|
|
89
94
|
}
|
|
95
|
+
async initialize(discoveryUrl) {
|
|
96
|
+
this._acmeService = new Connection_1.AcmeService(discoveryUrl);
|
|
97
|
+
}
|
|
98
|
+
get acmeService() {
|
|
99
|
+
if (!this._acmeService) {
|
|
100
|
+
throw new Error('AcmeService not initialized');
|
|
101
|
+
}
|
|
102
|
+
return this._acmeService;
|
|
103
|
+
}
|
|
90
104
|
async registerCrossSignedCertificates(acmeService) {
|
|
91
105
|
const certificates = await acmeService.getFederationCrossSignedCertificates();
|
|
92
106
|
await Promise.all(certificates.map(cert => this.coreCryptoClient.e2eiRegisterIntermediateCA(cert)));
|
|
@@ -106,19 +120,18 @@ class E2EIServiceExternal {
|
|
|
106
120
|
*
|
|
107
121
|
* @param discoveryUrl
|
|
108
122
|
*/
|
|
109
|
-
async registerServerCertificates(
|
|
123
|
+
async registerServerCertificates() {
|
|
110
124
|
const ROOT_CA_KEY = 'e2ei_root-registered';
|
|
111
125
|
const store = (0, LocalStorageStore_1.LocalStorageStore)(ROOT_CA_KEY);
|
|
112
|
-
const acmeService = new Connection_1.AcmeService(discoveryUrl);
|
|
113
126
|
// Register root certificate if not already registered
|
|
114
127
|
if (!store.has(ROOT_CA_KEY)) {
|
|
115
|
-
await this.registerLocalCertificateRoot(acmeService);
|
|
128
|
+
await this.registerLocalCertificateRoot(this.acmeService);
|
|
116
129
|
store.add(ROOT_CA_KEY, 'true');
|
|
117
130
|
}
|
|
118
131
|
// Register intermediate certificate and update it every 24 hours
|
|
119
132
|
const INTERMEDIATE_CA_KEY = 'update-intermediate-certificates';
|
|
120
133
|
const hasPendingTask = await this.recurringTaskScheduler.hasTask(INTERMEDIATE_CA_KEY);
|
|
121
|
-
const task = () => this.registerCrossSignedCertificates(acmeService);
|
|
134
|
+
const task = () => this.registerCrossSignedCertificates(this.acmeService);
|
|
122
135
|
// If the task was never registered, we run it once, and then register it to run every 24 hours
|
|
123
136
|
if (!hasPendingTask) {
|
|
124
137
|
await task();
|
|
@@ -129,5 +142,59 @@ class E2EIServiceExternal {
|
|
|
129
142
|
task,
|
|
130
143
|
});
|
|
131
144
|
}
|
|
145
|
+
async getCRLFromDistributionPoint(distributionPointUrl) {
|
|
146
|
+
return this.acmeService.getCRLFromDistributionPoint(distributionPointUrl);
|
|
147
|
+
}
|
|
148
|
+
scheduleCrlDistributionTimer({ expiresAt, url }) {
|
|
149
|
+
LowPrecisionTaskScheduler_1.LowPrecisionTaskScheduler.addTask({
|
|
150
|
+
intervalDelay: TimeUtil_1.TimeInMillis.SECOND,
|
|
151
|
+
firingDate: expiresAt,
|
|
152
|
+
key: url,
|
|
153
|
+
task: () => this.validateRemoteCrlDistributionPoint(url),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async initialiseCrlDistributionTimers() {
|
|
157
|
+
const crls = await this.coreDatabase.getAll('crls');
|
|
158
|
+
for (const crl of crls) {
|
|
159
|
+
this.scheduleCrlDistributionTimer(crl);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async addCrlDistributionTimer({ expiresAt, url }) {
|
|
163
|
+
await this.coreDatabase.add('crls', { expiresAt, url }, url);
|
|
164
|
+
this.scheduleCrlDistributionTimer({ expiresAt, url });
|
|
165
|
+
}
|
|
166
|
+
async cancelCrlDistributionTimer(url) {
|
|
167
|
+
await this.coreDatabase.delete('crls', url);
|
|
168
|
+
}
|
|
169
|
+
async validateSelfCrl() {
|
|
170
|
+
const { crl, url } = await this.acmeService.getSelfCRL();
|
|
171
|
+
await this.validateCrl(url, crl, async () => {
|
|
172
|
+
this.emit('selfCrlChanged');
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
async validateRemoteCrlDistributionPoint(distributionPointUrl) {
|
|
176
|
+
const domain = new URL(distributionPointUrl).hostname;
|
|
177
|
+
const crl = await this.getCRLFromDistributionPoint(domain);
|
|
178
|
+
await this.validateCrl(distributionPointUrl, crl, async () => {
|
|
179
|
+
this.emit('remoteCrlChanged');
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
async validateCrl(url, crl, onDirty) {
|
|
183
|
+
const { expiration, dirty } = await this.coreCryptoClient.e2eiRegisterCRL(url, crl);
|
|
184
|
+
await this.cancelCrlDistributionTimer(url);
|
|
185
|
+
//set a new timer that will execute a task once the CRL is expired
|
|
186
|
+
if (expiration) {
|
|
187
|
+
await this.addCrlDistributionTimer({ expiresAt: expiration, url });
|
|
188
|
+
}
|
|
189
|
+
//if it was dirty, trigger e2eiconversationstate for every conversation
|
|
190
|
+
if (dirty) {
|
|
191
|
+
await onDirty();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async handleNewRemoteCrlDistributionPoints(distributionPoints) {
|
|
195
|
+
for (const distributionPointUrl of distributionPoints) {
|
|
196
|
+
await this.validateRemoteCrlDistributionPoint(distributionPointUrl);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
132
199
|
}
|
|
133
200
|
exports.E2EIServiceExternal = E2EIServiceExternal;
|
|
@@ -38,7 +38,7 @@ async function buildE2EIService() {
|
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
40
|
return [
|
|
41
|
-
new E2EIServiceExternal_1.E2EIServiceExternal(coreCrypto, clientService, core_crypto_1.Ciphersuite.MLS_128_DHKEMP256_AES128GCM_SHA256_P256
|
|
41
|
+
new E2EIServiceExternal_1.E2EIServiceExternal(coreCrypto, mockedDb, recurringTaskScheduler, clientService, core_crypto_1.Ciphersuite.MLS_128_DHKEMP256_AES128GCM_SHA256_P256),
|
|
42
42
|
{ coreCrypto },
|
|
43
43
|
];
|
|
44
44
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import { TypedEventEmitter } from '@wireapp/commons';
|
|
1
2
|
import { InitParams, RotateBundle } from './E2EIService.types';
|
|
2
|
-
|
|
3
|
+
type Events = {
|
|
4
|
+
newCrlDistributionPoints: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare class E2EIServiceInternal extends TypedEventEmitter<Events> {
|
|
3
7
|
private static instance;
|
|
4
8
|
private readonly logger;
|
|
5
9
|
private readonly coreCryptoClient;
|
|
@@ -59,6 +63,11 @@ export declare class E2EIServiceInternal {
|
|
|
59
63
|
* @param oAuthIdToken
|
|
60
64
|
* @returns
|
|
61
65
|
*/
|
|
62
|
-
startRefreshCertficateFlow(oAuthIdToken: string, hasActiveCertificate: boolean): Promise<
|
|
66
|
+
startRefreshCertficateFlow(oAuthIdToken: string, hasActiveCertificate: boolean): Promise<{
|
|
67
|
+
commits: Map<string, import("@wireapp/core-crypto").CommitBundle>;
|
|
68
|
+
newKeyPackages: Uint8Array[];
|
|
69
|
+
keyPackageRefsToRemove: Uint8Array[];
|
|
70
|
+
}>;
|
|
63
71
|
}
|
|
72
|
+
export {};
|
|
64
73
|
//# sourceMappingURL=E2EIServiceInternal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2EIServiceInternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"E2EIServiceInternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAyD,UAAU,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAYrH,KAAK,MAAM,GAAG;IACZ,wBAAwB,EAAE,MAAM,EAAE,CAAC;CACpC,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuD;IAC9E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;WAgBa,WAAW,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwBrE,uBAAuB,CAAC,oBAAoB,EAAE,OAAO;;;;;;;;IAOrD,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YAUlF,YAAY;YA0BZ,IAAI;YAUJ,YAAY;YAUZ,eAAe;IAQ7B;;;;;OAKG;YACW,uBAAuB;IAiDrC;;;;;;;OAOG;YACW,sCAAsC;IAyEpD;;;OAGG;YACW,iBAAiB;IAwB/B;;;;;;OAMG;YACW,iBAAiB;IAe/B;;;;;OAKG;IACU,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO;;;;;CAa5F"}
|
|
@@ -17,13 +17,26 @@
|
|
|
17
17
|
* along with this program. If not, see http://www.gnu.org/licenses/.
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
21
|
+
var t = {};
|
|
22
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
23
|
+
t[p] = s[p];
|
|
24
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
25
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
26
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
27
|
+
t[p[i]] = s[p[i]];
|
|
28
|
+
}
|
|
29
|
+
return t;
|
|
30
|
+
};
|
|
20
31
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
32
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
33
|
};
|
|
23
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
35
|
exports.E2EIServiceInternal = void 0;
|
|
36
|
+
const TimeUtil_1 = require("@wireapp/commons/lib/util/TimeUtil");
|
|
25
37
|
const bazinga64_1 = require("bazinga64");
|
|
26
38
|
const logdown_1 = __importDefault(require("logdown"));
|
|
39
|
+
const commons_1 = require("@wireapp/commons");
|
|
27
40
|
const AcmeServer_1 = require("./Connection/AcmeServer");
|
|
28
41
|
const E2EIService_types_1 = require("./E2EIService.types");
|
|
29
42
|
const Helper_1 = require("./Helper");
|
|
@@ -34,8 +47,9 @@ const DpopChallenge_1 = require("./Steps/DpopChallenge");
|
|
|
34
47
|
const OidcChallenge_1 = require("./Steps/OidcChallenge");
|
|
35
48
|
const Order_1 = require("./Steps/Order");
|
|
36
49
|
const E2EIStorage_1 = require("./Storage/E2EIStorage");
|
|
37
|
-
class E2EIServiceInternal {
|
|
50
|
+
class E2EIServiceInternal extends commons_1.TypedEventEmitter {
|
|
38
51
|
constructor(coreCryptClient, apiClient, e2eiServiceExternal, keyPackagesAmount = 100) {
|
|
52
|
+
super();
|
|
39
53
|
this.logger = (0, logdown_1.default)('@wireapp/core/E2EIdentityServiceInternal');
|
|
40
54
|
this.isInitialized = false;
|
|
41
55
|
this.coreCryptoClient = coreCryptClient;
|
|
@@ -80,13 +94,13 @@ class E2EIServiceInternal {
|
|
|
80
94
|
async initIdentity(hasActiveCertificate) {
|
|
81
95
|
const { user } = E2EIStorage_1.E2EIStorage.get.initialData();
|
|
82
96
|
// How long the issued certificate should be maximal valid
|
|
83
|
-
const
|
|
97
|
+
const expirySec = 90 * TimeUtil_1.TimeInMillis.DAY;
|
|
84
98
|
const ciphersuite = E2EIService_types_1.Ciphersuite.MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519;
|
|
85
99
|
if (hasActiveCertificate) {
|
|
86
|
-
this.identity = await this.coreCryptoClient.e2eiNewRotateEnrollment(
|
|
100
|
+
this.identity = await this.coreCryptoClient.e2eiNewRotateEnrollment(expirySec, ciphersuite, user.displayName, user.handle, user.teamId);
|
|
87
101
|
}
|
|
88
102
|
else {
|
|
89
|
-
this.identity = await this.coreCryptoClient.e2eiNewActivationEnrollment(user.displayName, user.handle,
|
|
103
|
+
this.identity = await this.coreCryptoClient.e2eiNewActivationEnrollment(user.displayName, user.handle, expirySec, ciphersuite, user.teamId);
|
|
90
104
|
}
|
|
91
105
|
}
|
|
92
106
|
async init(params) {
|
|
@@ -222,7 +236,11 @@ class E2EIServiceInternal {
|
|
|
222
236
|
throw new Error('Error while trying to continue OAuth flow. No certificate received');
|
|
223
237
|
}
|
|
224
238
|
// Step 10: Initialize MLS with the certificate
|
|
225
|
-
|
|
239
|
+
const _a = await this.coreCryptoClient.e2eiRotateAll(this.identity, certificate, this.keyPackagesAmount), { crlNewDistributionPoints } = _a, rotateBundle = __rest(_a, ["crlNewDistributionPoints"]);
|
|
240
|
+
if (crlNewDistributionPoints && crlNewDistributionPoints.length > 0) {
|
|
241
|
+
this.emit('newCrlDistributionPoints', crlNewDistributionPoints);
|
|
242
|
+
}
|
|
243
|
+
return rotateBundle;
|
|
226
244
|
}
|
|
227
245
|
/**
|
|
228
246
|
* This function starts a new ACME enrollment flow for either a new client
|
|
@@ -63,7 +63,9 @@ describe('handleMLSMessageAdd', () => {
|
|
|
63
63
|
const mockGroupId = 'AAEAAH87aajaQ011i+rNLmwpy0sAZGl5YS53aXJlLmxpbms=';
|
|
64
64
|
const message = createMockedMessage();
|
|
65
65
|
jest.spyOn(mockedMLSService, 'decryptMessage').mockResolvedValueOnce({
|
|
66
|
-
proposals: [
|
|
66
|
+
proposals: [
|
|
67
|
+
{ proposal: new Uint8Array(), proposalRef: new Uint8Array(), free: () => { }, crlNewDistributionPoints: [] },
|
|
68
|
+
],
|
|
67
69
|
commitDelay: 2000,
|
|
68
70
|
message,
|
|
69
71
|
hasEpochChanged: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MLSService.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/MLSService/MLSService.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAqB,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAC,8BAA8B,EAAE,2BAA2B,EAAC,MAAM,+BAA+B,CAAC;AAE1G,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAW,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,eAAe,EAIf,cAAc,EACd,UAAU,EAEV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,kBAAkB,
|
|
1
|
+
{"version":3,"file":"MLSService.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/MLSService/MLSService.ts"],"names":[],"mappings":"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"}
|
|
@@ -182,7 +182,13 @@ class MLSService extends commons_1.TypedEventEmitter {
|
|
|
182
182
|
if (keyPackages.length < 1) {
|
|
183
183
|
throw new Error('Empty list of keys provided to addUsersToExistingConversation');
|
|
184
184
|
}
|
|
185
|
-
return this.processCommitAction(groupIdBytes, () =>
|
|
185
|
+
return this.processCommitAction(groupIdBytes, async () => {
|
|
186
|
+
const _a = await this.coreCryptoClient.addClientsToConversation(groupIdBytes, keyPackages), { crlNewDistributionPoints } = _a, commitBundle = __rest(_a, ["crlNewDistributionPoints"]);
|
|
187
|
+
if (crlNewDistributionPoints && crlNewDistributionPoints.length > 0) {
|
|
188
|
+
this.emit('newCrlDistributionPoints', crlNewDistributionPoints);
|
|
189
|
+
}
|
|
190
|
+
return commitBundle;
|
|
191
|
+
});
|
|
186
192
|
}
|
|
187
193
|
async getKeyPackagesPayload(qualifiedUsers) {
|
|
188
194
|
/**
|
|
@@ -230,7 +236,10 @@ class MLSService extends commons_1.TypedEventEmitter {
|
|
|
230
236
|
const credentialType = await this.getCredentialType();
|
|
231
237
|
const generateCommit = async () => {
|
|
232
238
|
const groupInfo = await getGroupInfo();
|
|
233
|
-
const _a = await this.coreCryptoClient.joinByExternalCommit(groupInfo, credentialType), { conversationId } = _a, commitBundle = __rest(_a, ["conversationId"]);
|
|
239
|
+
const _a = await this.coreCryptoClient.joinByExternalCommit(groupInfo, credentialType), { conversationId, crlNewDistributionPoints } = _a, commitBundle = __rest(_a, ["conversationId", "crlNewDistributionPoints"]);
|
|
240
|
+
if (crlNewDistributionPoints && crlNewDistributionPoints.length > 0) {
|
|
241
|
+
this.emit('newCrlDistributionPoints', crlNewDistributionPoints);
|
|
242
|
+
}
|
|
234
243
|
return { groupId: conversationId, commitBundle };
|
|
235
244
|
};
|
|
236
245
|
const { commitBundle, groupId } = await generateCommit();
|
|
@@ -251,11 +260,21 @@ class MLSService extends commons_1.TypedEventEmitter {
|
|
|
251
260
|
return bazinga64_1.Encoder.toBase64(key).asString;
|
|
252
261
|
}
|
|
253
262
|
async processWelcomeMessage(welcomeMessage) {
|
|
254
|
-
|
|
263
|
+
const response = await this.coreCryptoClient.processWelcomeMessage(welcomeMessage);
|
|
264
|
+
//FIXME: this is temporary (it should be camel case), we wait for the update from core-crypto side
|
|
265
|
+
const { id, crl_new_distribution_points: crlNewDistributionPoints } = response;
|
|
266
|
+
if (crlNewDistributionPoints && crlNewDistributionPoints.length > 0) {
|
|
267
|
+
this.emit('newCrlDistributionPoints', crlNewDistributionPoints);
|
|
268
|
+
}
|
|
269
|
+
return id;
|
|
255
270
|
}
|
|
256
271
|
async decryptMessage(conversationId, payload) {
|
|
257
272
|
try {
|
|
258
273
|
const decryptedMessage = await this.coreCryptoClient.decryptMessage(conversationId, payload);
|
|
274
|
+
const { crlNewDistributionPoints } = decryptedMessage;
|
|
275
|
+
if (crlNewDistributionPoints && crlNewDistributionPoints.length > 0) {
|
|
276
|
+
this.emit('newCrlDistributionPoints', crlNewDistributionPoints);
|
|
277
|
+
}
|
|
259
278
|
return decryptedMessage;
|
|
260
279
|
}
|
|
261
280
|
catch (error) {
|
|
@@ -632,6 +651,9 @@ class MLSService extends commons_1.TypedEventEmitter {
|
|
|
632
651
|
discoveryUrl,
|
|
633
652
|
keyPackagesAmount: nbPrekeys,
|
|
634
653
|
});
|
|
654
|
+
instance.on('newCrlDistributionPoints', crlDistributionPoints => {
|
|
655
|
+
this.emit('newCrlDistributionPoints', crlDistributionPoints);
|
|
656
|
+
});
|
|
635
657
|
// If we don't have an OAuth id token, we need to start the certificate process with Oauth
|
|
636
658
|
if (!oAuthIdToken) {
|
|
637
659
|
const data = await instance.startCertificateProcess(hasActiveCertificate);
|
|
@@ -262,7 +262,9 @@ describe('MLSService', () => {
|
|
|
262
262
|
jest.spyOn(apiClient.api.client, 'getMLSKeyPackageCount').mockResolvedValueOnce(numberOfKeysBelowThreshold);
|
|
263
263
|
jest.spyOn(coreCrypto, 'clientValidKeypackagesCount').mockResolvedValueOnce(numberOfKeysBelowThreshold);
|
|
264
264
|
jest.spyOn(apiClient.api.client, 'uploadMLSKeyPackages').mockResolvedValueOnce(undefined);
|
|
265
|
-
jest
|
|
265
|
+
jest
|
|
266
|
+
.spyOn(coreCrypto, 'processWelcomeMessage')
|
|
267
|
+
.mockResolvedValueOnce({ id: new Uint8Array(), crlNewDistributionPoints: [], free: () => { } });
|
|
266
268
|
jest.spyOn(mlsService, 'scheduleKeyMaterialRenewal').mockImplementation(jest.fn());
|
|
267
269
|
const mockedMLSWelcomeEvent = {
|
|
268
270
|
type: event_1.CONVERSATION_EVENT.MLS_WELCOME_MESSAGE,
|
|
@@ -286,7 +288,9 @@ describe('MLSService', () => {
|
|
|
286
288
|
jest.spyOn(coreCrypto, 'clientValidKeypackagesCount').mockResolvedValueOnce(numberOfKeysAboveThreshold);
|
|
287
289
|
jest.spyOn(apiClient.api.client, 'getMLSKeyPackageCount').mockResolvedValueOnce(numberOfKeysAboveThreshold);
|
|
288
290
|
jest.spyOn(apiClient.api.client, 'uploadMLSKeyPackages').mockResolvedValueOnce(undefined);
|
|
289
|
-
jest
|
|
291
|
+
jest
|
|
292
|
+
.spyOn(coreCrypto, 'processWelcomeMessage')
|
|
293
|
+
.mockResolvedValueOnce({ id: new Uint8Array(), crlNewDistributionPoints: [], free: () => { } });
|
|
290
294
|
jest.spyOn(mlsService, 'scheduleKeyMaterialRenewal').mockImplementation(jest.fn());
|
|
291
295
|
const mockedMLSWelcomeEvent = {
|
|
292
296
|
type: event_1.CONVERSATION_EVENT.MLS_WELCOME_MESSAGE,
|
|
@@ -311,7 +315,9 @@ describe('MLSService', () => {
|
|
|
311
315
|
jest.spyOn(coreCrypto, 'clientValidKeypackagesCount').mockResolvedValueOnce(numberOfKeysBelowThreshold);
|
|
312
316
|
jest.spyOn(apiClient.api.client, 'getMLSKeyPackageCount').mockResolvedValueOnce(numberOfKeysAboveThreshold);
|
|
313
317
|
jest.spyOn(apiClient.api.client, 'uploadMLSKeyPackages').mockResolvedValueOnce(undefined);
|
|
314
|
-
jest
|
|
318
|
+
jest
|
|
319
|
+
.spyOn(coreCrypto, 'processWelcomeMessage')
|
|
320
|
+
.mockResolvedValueOnce({ id: new Uint8Array(), crlNewDistributionPoints: [], free: () => { } });
|
|
315
321
|
jest.spyOn(mlsService, 'scheduleKeyMaterialRenewal').mockImplementation(jest.fn());
|
|
316
322
|
const mockedMLSWelcomeEvent = {
|
|
317
323
|
type: event_1.CONVERSATION_EVENT.MLS_WELCOME_MESSAGE,
|
package/lib/storage/CoreDB.d.ts
CHANGED
|
@@ -38,6 +38,13 @@ interface CoreDBSchema extends DBSchema {
|
|
|
38
38
|
groupId: string;
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
|
+
crls: {
|
|
42
|
+
key: string;
|
|
43
|
+
value: {
|
|
44
|
+
expiresAt: number;
|
|
45
|
+
url: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
41
48
|
}
|
|
42
49
|
export type CoreDatabase = IDBPDatabase<CoreDBSchema>;
|
|
43
50
|
export declare function openDB(dbName: string): Promise<CoreDatabase>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreDB.d.ts","sourceRoot":"","sources":["../../src/storage/CoreDB.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAC,QAAQ,EAA2B,YAAY,EAAsB,MAAM,KAAK,CAAC;AAGzF,UAAU,YAAa,SAAQ,QAAQ;IACrC,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAC,CAAC;KAC/C,CAAC;IACF,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC;KAC9C,CAAC;IACF,cAAc,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC;KAC1C,CAAC;IACF,qBAAqB,EAAE;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAC,CAAC;KACrC,CAAC;IACF,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,oBAAoB,EAAE,WAAW,CAAC;YAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAC;KACpG,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAEtD,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"CoreDB.d.ts","sourceRoot":"","sources":["../../src/storage/CoreDB.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAC,QAAQ,EAA2B,YAAY,EAAsB,MAAM,KAAK,CAAC;AAGzF,UAAU,YAAa,SAAQ,QAAQ;IACrC,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAC,CAAC;KAC/C,CAAC;IACF,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC;KAC9C,CAAC;IACF,cAAc,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC;KAC1C,CAAC;IACF,qBAAqB,EAAE;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAC,CAAC;KACrC,CAAC;IACF,gBAAgB,EAAE;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,oBAAoB,EAAE,WAAW,CAAC;YAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAC;KACpG,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAC,CAAC;KACzC,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAEtD,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBlE;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D"}
|
package/lib/storage/CoreDB.js
CHANGED
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@wireapp/api-client": "^26.10.1",
|
|
15
15
|
"@wireapp/commons": "^5.2.4",
|
|
16
|
-
"@wireapp/core-crypto": "1.0.0-rc.
|
|
16
|
+
"@wireapp/core-crypto": "1.0.0-rc.34",
|
|
17
17
|
"@wireapp/cryptobox": "12.8.0",
|
|
18
18
|
"@wireapp/promise-queue": "^2.2.9",
|
|
19
19
|
"@wireapp/protocol-messaging": "1.44.0",
|
|
@@ -61,6 +61,6 @@
|
|
|
61
61
|
"test:coverage": "jest --coverage",
|
|
62
62
|
"watch": "tsc --watch"
|
|
63
63
|
},
|
|
64
|
-
"version": "43.
|
|
65
|
-
"gitHead": "
|
|
64
|
+
"version": "43.11.1",
|
|
65
|
+
"gitHead": "a5d715e18bbe76119f94e1138502bc079a5e7edd"
|
|
66
66
|
}
|