@lifeready/core 1.0.21 → 1.0.23
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/bundles/lifeready-core.umd.js +10612 -10527
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -15
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/ast.js +2 -1
- package/esm2015/lib/_common/deferred-promise.js +1 -1
- package/esm2015/lib/_common/exceptions.js +1 -1
- package/esm2015/lib/_common/queries.gql.js +1 -1
- package/esm2015/lib/_common/run-outside-angular.js +3 -2
- package/esm2015/lib/_common/types.js +2 -1
- package/esm2015/lib/_common/utils.js +2 -1
- package/esm2015/lib/api/lr-apollo.service.js +4 -3
- package/esm2015/lib/api/lr-graphql/index.js +1 -1
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +9 -8
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +5 -6
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +1 -1
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +3 -3
- package/esm2015/lib/api/lr-graphql/lr.service.js +1 -1
- package/esm2015/lib/api/query-processor/common-processors.service.js +4 -3
- package/esm2015/lib/api/query-processor/index.js +1 -1
- package/esm2015/lib/api/query-processor/query-processor.service.js +5 -4
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +8 -7
- package/esm2015/lib/api/types/graphql.types.js +2 -1
- package/esm2015/lib/api/types/index.js +1 -1
- package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
- package/esm2015/lib/auth/auth.config.js +1 -1
- package/esm2015/lib/auth/auth.gql.js +1 -28
- package/esm2015/lib/auth/auth.types.js +1 -1
- package/esm2015/lib/auth/life-ready-auth.service.js +36 -32
- package/esm2015/lib/category/category-meta.service.js +1 -1
- package/esm2015/lib/category/category.gql.js +3 -2
- package/esm2015/lib/category/category.service.js +9 -8
- package/esm2015/lib/category/category.types.js +1 -1
- package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
- package/esm2015/lib/contact-card/contact-card.service.js +156 -0
- package/esm2015/lib/contact-card/contact-card2.gql.js +29 -0
- package/esm2015/lib/contact-card/contact-card2.service.js +103 -0
- package/esm2015/lib/encryption/encryption.service.js +190 -0
- package/esm2015/lib/file-upload/file-upload.service.js +74 -0
- package/esm2015/lib/file-upload/file-upload.types.js +2 -0
- package/esm2015/lib/idle/idle.service.js +168 -0
- package/esm2015/lib/idle/idle.types.js +7 -0
- package/esm2015/lib/item2/item2.gql.js +127 -0
- package/esm2015/lib/item2/item2.gql.private.js +23 -0
- package/esm2015/lib/item2/item2.service.js +519 -0
- package/esm2015/lib/item2/item2.types.js +2 -0
- package/esm2015/lib/key/key-factory.service.js +237 -0
- package/esm2015/lib/key/key-graph.service.js +300 -0
- package/esm2015/lib/key/key-meta.service.js +201 -0
- package/esm2015/lib/{cryptography → key}/key.service.js +4 -4
- package/esm2015/lib/key/key.types.js +11 -0
- package/esm2015/lib/key-exchange/key-exchange.gql.js +188 -0
- package/esm2015/lib/key-exchange/key-exchange.service.js +441 -0
- package/esm2015/lib/key-exchange/key-exchange.types.js +7 -0
- package/esm2015/lib/key-exchange/key-exchange2.gql.js +171 -0
- package/esm2015/lib/key-exchange/key-exchange2.service.js +500 -0
- package/esm2015/lib/lbop/lbop.service.js +357 -0
- package/esm2015/lib/life-ready.config.js +2 -1
- package/esm2015/lib/life-ready.module.js +2 -27
- package/esm2015/lib/lock/lock.gql.js +40 -0
- package/esm2015/lib/lock/lock.service.js +64 -0
- package/esm2015/lib/message/message.gql.js +32 -0
- package/esm2015/lib/message/message.service.js +118 -0
- package/esm2015/lib/message/message.types.js +2 -0
- package/esm2015/lib/notification/notification.gql.js +1 -1
- package/esm2015/lib/notification/notification.service.js +2 -2
- package/esm2015/lib/password/password.gql.js +28 -0
- package/esm2015/lib/password/password.service.js +316 -0
- package/esm2015/lib/persist/persist.service.js +181 -0
- package/esm2015/lib/plan/plan.gql.js +1 -1
- package/esm2015/lib/plan/plan.service.js +3 -2
- package/esm2015/lib/plan/plan.types.js +1 -1
- package/esm2015/lib/profile/profile-details.service.js +215 -0
- package/esm2015/lib/profile/profile.gql.js +98 -0
- package/esm2015/lib/profile/profile.service.js +170 -0
- package/esm2015/lib/profile/profile.types.js +34 -0
- package/esm2015/lib/record/record-attachment.service.js +16 -15
- package/esm2015/lib/record/record.gql.js +1 -1
- package/esm2015/lib/record/record.service.js +8 -8
- package/esm2015/lib/record/record.types.js +1 -1
- package/esm2015/lib/record-type/record-type.service.js +1 -1
- package/esm2015/lib/record-type/record-type.types.js +1 -1
- package/esm2015/lib/register/register.service.js +173 -0
- package/esm2015/lib/scenario/scenario.constants.js +1 -1
- package/esm2015/lib/scenario/scenario.controller.js +2 -2
- package/esm2015/lib/scenario/scenario.gql.js +1 -1
- package/esm2015/lib/scenario/scenario.private.gql.js +198 -0
- package/esm2015/lib/scenario/scenario.service.js +19 -17
- package/esm2015/lib/scenario/scenario.types.js +2 -1
- package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +119 -0
- package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +41 -0
- package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +117 -0
- package/esm2015/lib/slip39/slip39.service.js +167 -0
- package/esm2015/lib/time/time.service.js +146 -0
- package/esm2015/lib/tp-assembly/tp-assembly.js +365 -0
- package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +22 -0
- package/esm2015/lib/tp-assembly/tp-assembly.types.js +2 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +100 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +118 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +4 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +34 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +74 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +165 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +54 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +92 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +2 -0
- package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-party/trusted-party.service.js +327 -0
- package/esm2015/lib/trusted-party/trusted-party.types.js +41 -0
- package/esm2015/lib/trusted-party/trusted-party2.gql.js +64 -0
- package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +25 -0
- package/esm2015/lib/trusted-party/trusted-party2.service.js +224 -0
- package/esm2015/lib/trusted-party/trusted-party2.types.js +2 -0
- package/esm2015/lib/two-factor/two-factor.service.js +74 -0
- package/esm2015/lib/user/user.gql.js +60 -0
- package/esm2015/lib/user/user.service.js +80 -0
- package/esm2015/lib/user/user.types.js +2 -0
- package/esm2015/lib/web-crypto/web-crypto.service.js +29 -0
- package/esm2015/lifeready-core.js +15 -13
- package/esm2015/public-api.js +49 -51
- package/fesm2015/lifeready-core.js +8764 -8737
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/types.d.ts +3 -1
- package/lib/_common/utils.d.ts +2 -2
- package/lib/api/lr-apollo.service.d.ts +2 -2
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +26 -8
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +22 -4
- package/lib/api/lr-graphql/lr-mutation.d.ts +1 -2
- package/lib/api/query-processor/common-processors.service.d.ts +1 -1
- package/lib/api/query-processor/query-processor.service.d.ts +1 -1
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +2 -2
- package/lib/api/types/lr-graphql.types.d.ts +14 -3
- package/lib/auth/auth.gql.d.ts +0 -3
- package/lib/auth/auth.types.d.ts +5 -5
- package/lib/auth/life-ready-auth.service.d.ts +13 -13
- package/lib/category/category.gql.d.ts +1 -1
- package/lib/category/category.service.d.ts +3 -3
- package/lib/{api → contact-card}/contact-card.service.d.ts +9 -9
- package/lib/contact-card/contact-card2.gql.d.ts +25 -0
- package/lib/contact-card/contact-card2.service.d.ts +64 -0
- package/lib/{cryptography → encryption}/encryption.service.d.ts +10 -9
- package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +5 -8
- package/lib/file-upload/file-upload.types.d.ts +5 -0
- package/lib/{auth → idle}/idle.service.d.ts +6 -6
- package/lib/{items2 → item2}/item2.gql.d.ts +16 -16
- package/lib/{items2 → item2}/item2.service.d.ts +34 -35
- package/lib/{cryptography → key}/key-factory.service.d.ts +4 -3
- package/lib/{cryptography → key}/key-graph.service.d.ts +6 -6
- package/lib/{cryptography → key}/key-meta.service.d.ts +1 -1
- package/lib/{cryptography → key}/key.service.d.ts +2 -2
- package/lib/{cryptography/cryptography.types.d.ts → key/key.types.d.ts} +13 -17
- package/lib/{api → key-exchange}/key-exchange.service.d.ts +5 -5
- package/lib/{api → key-exchange}/key-exchange.types.d.ts +4 -4
- package/lib/{api → key-exchange}/key-exchange2.gql.d.ts +1 -1
- package/lib/{api → key-exchange}/key-exchange2.service.d.ts +82 -29
- package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
- package/lib/life-ready.config.d.ts +1 -1
- package/lib/{api → lock}/lock.gql.d.ts +1 -1
- package/lib/{api → lock}/lock.service.d.ts +1 -1
- package/lib/message/message.gql.d.ts +13 -0
- package/lib/message/message.service.d.ts +36 -0
- package/lib/message/message.types.d.ts +12 -0
- package/lib/notification/notification.service.d.ts +3 -2
- package/lib/password/password.gql.d.ts +3 -0
- package/lib/{auth → password}/password.service.d.ts +9 -9
- package/lib/{api → persist}/persist.service.d.ts +3 -3
- package/lib/plan/plan.service.d.ts +3 -2
- package/lib/plan/plan.types.d.ts +2 -1
- package/lib/{users → profile}/profile-details.service.d.ts +3 -3
- package/lib/{users → profile}/profile.gql.d.ts +2 -2
- package/lib/{users → profile}/profile.service.d.ts +6 -6
- package/lib/{users → profile}/profile.types.d.ts +3 -2
- package/lib/record/record-attachment.service.d.ts +6 -6
- package/lib/record/record.service.d.ts +3 -3
- package/lib/{auth → register}/register.service.d.ts +4 -4
- package/lib/scenario/scenario.controller.d.ts +1 -1
- package/lib/scenario/scenario.service.d.ts +105 -5
- package/lib/scenario/scenario.types.d.ts +1 -1
- package/lib/{api → shared-contact-card}/shared-contact-card.service.d.ts +9 -9
- package/lib/{api → shared-contact-card}/shared-contact-card2.gql.d.ts +1 -1
- package/lib/{api → shared-contact-card}/shared-contact-card2.service.d.ts +6 -6
- package/lib/{cryptography → slip39}/slip39.service.d.ts +0 -1
- package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
- package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +3 -3
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +5 -9
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-user.service.d.ts +7 -13
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.controller.d.ts +1 -1
- package/lib/tp-password-reset/tp-password-reset.gql.d.ts +63 -0
- package/lib/{trusted-parties/tp-password-reset.gql.d.ts → tp-password-reset/tp-password-reset.private.gql.d.ts} +1 -63
- package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +59 -0
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.service.d.ts +6 -89
- package/lib/tp-password-reset/tp-password-reset.types.d.ts +40 -0
- package/lib/{trusted-parties → trusted-party}/trusted-party.service.d.ts +7 -7
- package/lib/{trusted-parties → trusted-party}/trusted-party.types.d.ts +2 -3
- package/lib/{trusted-parties → trusted-party}/trusted-party2.gql.d.ts +0 -22
- package/lib/trusted-party/trusted-party2.gql.private.d.ts +23 -0
- package/lib/{trusted-parties → trusted-party}/trusted-party2.service.d.ts +11 -35
- package/lib/trusted-party/trusted-party2.types.d.ts +12 -0
- package/lib/{users → user}/user.gql.d.ts +1 -1
- package/lib/{users → user}/user.service.d.ts +1 -1
- package/lib/{users → user}/user.types.d.ts +1 -1
- package/lifeready-core.d.ts +14 -12
- package/lifeready-core.metadata.json +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +48 -50
- package/esm2015/lib/api/contact-card.gql.js +0 -79
- package/esm2015/lib/api/contact-card.service.js +0 -154
- package/esm2015/lib/api/contact-card2.gql.js +0 -60
- package/esm2015/lib/api/contact-card2.service.js +0 -103
- package/esm2015/lib/api/file.service.js +0 -74
- package/esm2015/lib/api/key-exchange.gql.js +0 -188
- package/esm2015/lib/api/key-exchange.service.js +0 -442
- package/esm2015/lib/api/key-exchange.types.js +0 -7
- package/esm2015/lib/api/key-exchange2.gql.js +0 -171
- package/esm2015/lib/api/key-exchange2.service.js +0 -480
- package/esm2015/lib/api/lock.gql.js +0 -40
- package/esm2015/lib/api/lock.service.js +0 -64
- package/esm2015/lib/api/message.service.js +0 -138
- package/esm2015/lib/api/persist.service.js +0 -181
- package/esm2015/lib/api/shared-contact-card.service.js +0 -119
- package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
- package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
- package/esm2015/lib/api/time.service.js +0 -146
- package/esm2015/lib/auth/idle.service.js +0 -168
- package/esm2015/lib/auth/idle.types.js +0 -7
- package/esm2015/lib/auth/lbop.service.js +0 -355
- package/esm2015/lib/auth/password.service.js +0 -315
- package/esm2015/lib/auth/register.service.js +0 -172
- package/esm2015/lib/auth/two-factor.service.js +0 -74
- package/esm2015/lib/cryptography/cryptography.types.js +0 -11
- package/esm2015/lib/cryptography/encryption.service.js +0 -189
- package/esm2015/lib/cryptography/key-factory.service.js +0 -237
- package/esm2015/lib/cryptography/key-graph.service.js +0 -299
- package/esm2015/lib/cryptography/key-meta.service.js +0 -200
- package/esm2015/lib/cryptography/slip39.service.js +0 -169
- package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
- package/esm2015/lib/items2/item2.gql.js +0 -127
- package/esm2015/lib/items2/item2.gql.private.js +0 -23
- package/esm2015/lib/items2/item2.service.js +0 -516
- package/esm2015/lib/items2/item2.types.js +0 -1
- package/esm2015/lib/scenario/scenario.gql.private.js +0 -198
- package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +0 -22
- package/esm2015/lib/trusted-parties/tp-assembly.js +0 -365
- package/esm2015/lib/trusted-parties/tp-assembly.types.js +0 -1
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -113
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -129
- package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +0 -4
- package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +0 -34
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -237
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -95
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
- package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
- package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -218
- package/esm2015/lib/users/profile-details.service.js +0 -214
- package/esm2015/lib/users/profile.gql.js +0 -97
- package/esm2015/lib/users/profile.service.js +0 -169
- package/esm2015/lib/users/profile.types.js +0 -34
- package/esm2015/lib/users/user.gql.js +0 -60
- package/esm2015/lib/users/user.service.js +0 -79
- package/esm2015/lib/users/user.types.js +0 -1
- package/lib/api/contact-card2.gql.d.ts +0 -34
- package/lib/api/contact-card2.service.d.ts +0 -50
- package/lib/api/message.service.d.ts +0 -59
- /package/lib/{api → contact-card}/contact-card.gql.d.ts +0 -0
- /package/lib/{auth → idle}/idle.types.d.ts +0 -0
- /package/lib/{items2 → item2}/item2.gql.private.d.ts +0 -0
- /package/lib/{items2 → item2}/item2.types.d.ts +0 -0
- /package/lib/{api → key-exchange}/key-exchange.gql.d.ts +0 -0
- /package/lib/scenario/{scenario.gql.private.d.ts → scenario.private.gql.d.ts} +0 -0
- /package/lib/{api → time}/time.service.d.ts +0 -0
- /package/lib/{trusted-parties/tp-assembly.gql.private.d.ts → tp-assembly/tp-assembly.private.gql.d.ts} +0 -0
- /package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.constants.d.ts +0 -0
- /package/lib/{trusted-parties → trusted-party}/trusted-party.gql.d.ts +0 -0
- /package/lib/{auth → two-factor}/two-factor.service.d.ts +0 -0
- /package/lib/{cryptography → web-crypto}/web-crypto.service.d.ts +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import { LrApolloService } from '../api/lr-apollo.service';
|
|
5
|
+
import { GetCategoryKeyIdQuery } from '../category/category.gql';
|
|
6
|
+
import { EncryptionService } from '../encryption/encryption.service';
|
|
7
|
+
import { KeyFactoryService } from './key-factory.service';
|
|
8
|
+
import { KeyGraphService } from './key-graph.service';
|
|
9
|
+
import { KeyService } from './key.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../encryption/encryption.service";
|
|
12
|
+
import * as i2 from "./key-graph.service";
|
|
13
|
+
import * as i3 from "../api/lr-apollo.service";
|
|
14
|
+
import * as i4 from "./key.service";
|
|
15
|
+
import * as i5 from "./key-factory.service";
|
|
16
|
+
export class WrappedContent {
|
|
17
|
+
}
|
|
18
|
+
export class WrappingKey {
|
|
19
|
+
}
|
|
20
|
+
export class KeyMetaService {
|
|
21
|
+
constructor(encryptionService, keyGraph, lrApollo, keyService, keyFactory) {
|
|
22
|
+
this.encryptionService = encryptionService;
|
|
23
|
+
this.keyGraph = keyGraph;
|
|
24
|
+
this.lrApollo = lrApollo;
|
|
25
|
+
this.keyService = keyService;
|
|
26
|
+
this.keyFactory = keyFactory;
|
|
27
|
+
}
|
|
28
|
+
// async decryptFromString<T>(
|
|
29
|
+
// keyOrId: string | Key,
|
|
30
|
+
// cipherData: string,
|
|
31
|
+
// options?: DecryptOptions
|
|
32
|
+
// ): Promise<T> {
|
|
33
|
+
// if (cipherData) {
|
|
34
|
+
// const key = await this.keyGraphService.getJwkKey(keyOrId);
|
|
35
|
+
// return (await this.encryptionService.decrypt(
|
|
36
|
+
// key,
|
|
37
|
+
// JSON.parse(cipherData),
|
|
38
|
+
// options
|
|
39
|
+
// )) as any;
|
|
40
|
+
// }
|
|
41
|
+
// return null;
|
|
42
|
+
// }
|
|
43
|
+
decryptMeta(metaHaver) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
if (metaHaver.cipherMeta) {
|
|
46
|
+
const key = yield this.keyGraph.getJwkKey(metaHaver.keyId);
|
|
47
|
+
return (yield this.encryptionService.decrypt(key, JSON.parse(metaHaver.cipherMeta)));
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
// async decryptFile(keyId: string, file: any): Promise<any> {
|
|
53
|
+
// const key = await this.keyGraphService.getJwkKey(keyId);
|
|
54
|
+
// return (await this.encryptionService.decrypt(key, file, {
|
|
55
|
+
// payloadType: 'ArrayBuffer',
|
|
56
|
+
// })) as any;
|
|
57
|
+
// }
|
|
58
|
+
// // TODO rename this to encrypt() and use as the most common usecase
|
|
59
|
+
// async encryptToString(
|
|
60
|
+
// key: string | Key | JWK.Key,
|
|
61
|
+
// content: any
|
|
62
|
+
// ): Promise<string> {
|
|
63
|
+
// // Empty string should be encrypted since you want to clear the field.
|
|
64
|
+
// // Null is not encrypted because it's not valid JSON in the old JSON spec. Use
|
|
65
|
+
// // empty string instead. It'll function as a logic false as well.
|
|
66
|
+
// // Note that passing in empty string means it'll be encrypted which verifies
|
|
67
|
+
// // it's integrity. But we still want to have a way to set the DB field
|
|
68
|
+
// // to NULL, so we explicitly return null when content == null. A null
|
|
69
|
+
// // variable in graphql mutation on KC server clears the field to NULL.
|
|
70
|
+
// if (content == null) {
|
|
71
|
+
// return null;
|
|
72
|
+
// }
|
|
73
|
+
// const jwk =
|
|
74
|
+
// asJwk(key) || (await this.keyGraphService.getJwkKey(key as string | Key));
|
|
75
|
+
// return JSON.stringify(await this.encryptionService.encrypt(jwk, content));
|
|
76
|
+
// }
|
|
77
|
+
// // Wraps a symmetric encryption key.
|
|
78
|
+
// // Throws exception if wrapping public keys.
|
|
79
|
+
// async wrapKey<T>(
|
|
80
|
+
// wrappingKey: string | Key | JWK.Key,
|
|
81
|
+
// key: JWK.Key
|
|
82
|
+
// ): Promise<string> {
|
|
83
|
+
// if (!isSymmetricKey(key)) {
|
|
84
|
+
// throw new LrBadArgumentException(
|
|
85
|
+
// 'Only allowing wrapping of symmetric keys.'
|
|
86
|
+
// );
|
|
87
|
+
// }
|
|
88
|
+
// return this.encryptToString(wrappingKey, key.toJSON(true));
|
|
89
|
+
// }
|
|
90
|
+
// // TODO
|
|
91
|
+
// // async wrapPublicKey<T>();
|
|
92
|
+
// // async wrapPrivateKey<T>();
|
|
93
|
+
doubleWrapContent(secureContent, categoryIds, fileContent) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const key = yield this.keyFactory.createKey();
|
|
96
|
+
const wrappedContent = yield this.wrapContent(key.toJSON(true), categoryIds);
|
|
97
|
+
return {
|
|
98
|
+
rootKey: wrappedContent.rootKey,
|
|
99
|
+
wrappedKeys: wrappedContent.wrappedKeys,
|
|
100
|
+
doubleWrappedKey: wrappedContent.cipherMeta,
|
|
101
|
+
cipherMeta: secureContent
|
|
102
|
+
? JSON.stringify(yield this.encryptionService.encrypt(key, secureContent))
|
|
103
|
+
: null,
|
|
104
|
+
cipherFileContent: fileContent
|
|
105
|
+
? JSON.stringify(yield this.encryptionService.encrypt(key, fileContent))
|
|
106
|
+
: null,
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
reWrapContent(keyId, secureContent) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const key = yield this.keyGraph.getJwkKey(keyId);
|
|
113
|
+
const newKey = yield this.keyFactory.createKey();
|
|
114
|
+
return {
|
|
115
|
+
doubleWrappedKey: JSON.stringify(yield this.encryptionService.encrypt(key, newKey.toJSON(true))),
|
|
116
|
+
cipherMeta: secureContent
|
|
117
|
+
? JSON.stringify(yield this.encryptionService.encrypt(newKey, secureContent))
|
|
118
|
+
: null,
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
wrapContent(secureContent, categoryIds) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const key = yield this.keyFactory.createKey();
|
|
125
|
+
let wrappedKeys;
|
|
126
|
+
let rootWrappingKey;
|
|
127
|
+
if (categoryIds && categoryIds.length) {
|
|
128
|
+
wrappedKeys = yield Promise.all(categoryIds.map((categoryId) => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
const parentKey = yield this.getCategoryKeyId(categoryId);
|
|
130
|
+
const wrappedKey = JSON.stringify(yield this.encryptionService.encrypt(parentKey.key, key.toJSON(true)));
|
|
131
|
+
return {
|
|
132
|
+
directoryId: categoryId,
|
|
133
|
+
wrappingKeyId: parentKey.keyId,
|
|
134
|
+
wrappedKey,
|
|
135
|
+
};
|
|
136
|
+
})));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Adding to root directory
|
|
140
|
+
const rootKey = this.keyService.getCurrentRootKey();
|
|
141
|
+
const wrappedKey = JSON.stringify(yield this.encryptionService.encrypt(rootKey.jwk, key.toJSON(true)));
|
|
142
|
+
rootWrappingKey = {
|
|
143
|
+
wrappingKeyId: rootKey.id,
|
|
144
|
+
wrappedKey,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
key,
|
|
149
|
+
rootKey: rootWrappingKey,
|
|
150
|
+
wrappedKeys,
|
|
151
|
+
cipherMeta: secureContent
|
|
152
|
+
? JSON.stringify(yield this.encryptionService.encrypt(key, secureContent))
|
|
153
|
+
: null,
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
wrapContentWithKey(secureContent, keyId) {
|
|
158
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
+
const key = yield this.keyFactory.createKey();
|
|
160
|
+
const wrappedKey = yield this.keyGraph.encryptToString(keyId, key.toJSON(true));
|
|
161
|
+
return {
|
|
162
|
+
key,
|
|
163
|
+
rootKey: {
|
|
164
|
+
wrappingKeyId: keyId,
|
|
165
|
+
wrappedKey,
|
|
166
|
+
},
|
|
167
|
+
cipherMeta: secureContent
|
|
168
|
+
? JSON.stringify(yield this.encryptionService.encrypt(key, secureContent))
|
|
169
|
+
: null,
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
getCategoryKeyId(categoryId) {
|
|
174
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
+
const { category } = yield this.lrApollo.query({
|
|
176
|
+
query: GetCategoryKeyIdQuery,
|
|
177
|
+
variables: {
|
|
178
|
+
id: categoryId,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
return {
|
|
182
|
+
keyId: category.keyId,
|
|
183
|
+
key: yield this.keyGraph.getJwkKey(category.keyId),
|
|
184
|
+
};
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
KeyMetaService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KeyMetaService_Factory() { return new KeyMetaService(i0.ɵɵinject(i1.EncryptionService), i0.ɵɵinject(i2.KeyGraphService), i0.ɵɵinject(i3.LrApolloService), i0.ɵɵinject(i4.KeyService), i0.ɵɵinject(i5.KeyFactoryService)); }, token: KeyMetaService, providedIn: "root" });
|
|
189
|
+
KeyMetaService.decorators = [
|
|
190
|
+
{ type: Injectable, args: [{
|
|
191
|
+
providedIn: 'root',
|
|
192
|
+
},] }
|
|
193
|
+
];
|
|
194
|
+
KeyMetaService.ctorParameters = () => [
|
|
195
|
+
{ type: EncryptionService },
|
|
196
|
+
{ type: KeyGraphService },
|
|
197
|
+
{ type: LrApolloService },
|
|
198
|
+
{ type: KeyService },
|
|
199
|
+
{ type: KeyFactoryService }
|
|
200
|
+
];
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LW1ldGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9rZXkva2V5LW1ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBTzNDLE1BQU0sT0FBTyxjQUFjO0NBSzFCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FJdkI7QUFLRCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNVLGlCQUFvQyxFQUNwQyxRQUF5QixFQUN6QixRQUF5QixFQUN6QixVQUFzQixFQUN0QixVQUE2QjtRQUo3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7SUFDcEMsQ0FBQztJQUVKLDhCQUE4QjtJQUM5QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsc0JBQXNCO0lBQ3RCLGlFQUFpRTtJQUNqRSxvREFBb0Q7SUFDcEQsYUFBYTtJQUNiLGdDQUFnQztJQUNo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LENBQUMsS0FBSyxDQUFNO2dCQUNsRCxLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixTQUFTLEVBQUU7b0JBQ1QsRUFBRSxFQUFFLFVBQVU7aUJBQ2Y7YUFDRixDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNMLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNuRCxDQUFDO1FBQ0osQ0FBQztLQUFBOzs7O1lBMU5GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBekJRLGlCQUFpQjtZQUVqQixlQUFlO1lBSmYsZUFBZTtZQUtmLFVBQVU7WUFGVixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgTHJBcG9sbG9TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWFwb2xsby5zZXJ2aWNlJztcbmltcG9ydCB7IEdldENhdGVnb3J5S2V5SWRRdWVyeSB9IGZyb20gJy4uL2NhdGVnb3J5L2NhdGVnb3J5LmdxbCc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4va2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4va2V5LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0NpcGhlck1ldGEge1xuICBrZXlJZDogc3RyaW5nO1xuICBjaXBoZXJNZXRhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXcmFwcGVkQ29udGVudCB7XG4gIGtleTogSldLLktleTtcbiAgY2lwaGVyTWV0YTogc3RyaW5nO1xuICB3cmFwcGVkS2V5cz86IFdyYXBwaW5nS2V5W107XG4gIHJvb3RLZXk/OiBXcmFwcGluZ0tleTtcbn1cblxuZXhwb3J0IGNsYXNzIFdyYXBwaW5nS2V5IHtcbiAgZGlyZWN0b3J5SWQ/OiBzdHJpbmc7XG4gIHdyYXBwaW5nS2V5SWQ6IHN0cmluZztcbiAgd3JhcHBlZEtleTogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgS2V5TWV0YVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlXG4gICkge31cblxuICAvLyBhc3luYyBkZWNyeXB0RnJvbVN0cmluZzxUPihcbiAgLy8gICBrZXlPcklkOiBzdHJpbmcgfCBLZXksXG4gIC8vICAgY2lwaGVyRGF0YTogc3RyaW5nLFxuICAvLyAgIG9wdGlvbnM/OiBEZWNyeXB0T3B0aW9uc1xuICAvLyApOiBQcm9taXNlPFQ+IHtcbiAgLy8gICBpZiAoY2lwaGVyRGF0YSkge1xuICAvLyAgICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0SndrS2V5KGtleU9ySWQpO1xuICAvLyAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gIC8vICAgICAgIGtleSxcbiAgLy8gICAgICAgSlNPTi5wYXJzZShjaXBoZXJEYXRhKSxcbiAgLy8gICAgICAgb3B0aW9uc1xuICAvLyAgICAgKSkgYXMgYW55O1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gbnVsbDtcbiAgLy8gfVxuXG4gIGFzeW5jIGRlY3J5cHRNZXRhPFQ+KG1ldGFIYXZlcjogSGFzQ2lwaGVyTWV0YSk6IFByb21pc2U8VD4ge1xuICAgIGlmIChtZXRhSGF2ZXIuY2lwaGVyTWV0YSkge1xuICAgICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRKd2tLZXkobWV0YUhhdmVyLmtleUlkKTtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICBrZXksXG4gICAgICAgIEpTT04ucGFyc2UobWV0YUhhdmVyLmNpcGhlck1ldGEpXG4gICAgICApKSBhcyBhbnk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYXN5bmMgZGVjcnlwdEZpbGUoa2V5SWQ6IHN0cmluZywgZmlsZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgLy8gICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRKd2tLZXkoa2V5SWQpO1xuICAvLyAgIHJldHVybiAoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KGtleSwgZmlsZSwge1xuICAvLyAgICAgcGF5bG9hZFR5cGU6ICdBcnJheUJ1ZmZlcicsXG4gIC8vICAgfSkpIGFzIGFueTtcbiAgLy8gfVxuXG4gIC8vIC8vIFRPRE8gcmVuYW1lIHRoaXMgdG8gZW5jcnlwdCgpIGFuZCB1c2UgYXMgdGhlIG1vc3QgY29tbW9uIHVzZWNhc2VcbiAgLy8gYXN5bmMgZW5jcnlwdFRvU3RyaW5nKFxuICAvLyAgIGtleTogc3RyaW5nIHwgS2V5IHwgSldLLktleSxcbiAgLy8gICBjb250ZW50OiBhbnlcbiAgLy8gKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgLy8gICAvLyBFbXB0eSBzdHJpbmcgc2hvdWxkIGJlIGVuY3J5cHRlZCBzaW5jZSB5b3Ugd2FudCB0byBjbGVhciB0aGUgZmllbGQuXG4gIC8vICAgLy8gTnVsbCBpcyBub3QgZW5jcnlwdGVkIGJlY2F1c2UgaXQncyBub3QgdmFsaWQgSlNPTiBpbiB0aGUgb2xkIEpTT04gc3BlYy4gVXNlXG4gIC8vICAgLy8gZW1wdHkgc3RyaW5nIGluc3RlYWQuIEl0J2xsIGZ1bmN0aW9uIGFzIGEgbG9naWMgZmFsc2UgYXMgd2VsbC5cbiAgLy8gICAvLyBOb3RlIHRoYXQgcGFzc2luZyBpbiBlbXB0eSBzdHJpbmcgbWVhbnMgaXQnbGwgYmUgZW5jcnlwdGVkIHdoaWNoIHZlcmlmaWVzXG4gIC8vICAgLy8gaXQncyBpbnRlZ3JpdHkuIEJ1dCB3ZSBzdGlsbCB3YW50IHRvIGhhdmUgYSB3YXkgdG8gc2V0IHRoZSBEQiBmaWVsZFxuICAvLyAgIC8vIHRvIE5VTEwsIHNvIHdlIGV4cGxpY2l0bHkgcmV0dXJuIG51bGwgd2hlbiBjb250ZW50ID09IG51bGwuIEEgbnVsbFxuICAvLyAgIC8vIHZhcmlhYmxlIGluIGdyYXBocWwgbXV0YXRpb24gb24gS0Mgc2VydmVyIGNsZWFycyB0aGUgZmllbGQgdG8gTlVMTC5cbiAgLy8gICBpZiAoY29udGVudCA9PSBudWxsKSB7XG4gIC8vICAgICByZXR1cm4gbnVsbDtcbiAgLy8gICB9XG5cbiAgLy8gICBjb25zdCBqd2sgPVxuICAvLyAgICAgYXNKd2soa2V5KSB8fCAoYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0SndrS2V5KGtleSBhcyBzdHJpbmcgfCBLZXkpKTtcbiAgLy8gICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KGp3aywgY29udGVudCkpO1xuICAvLyB9XG5cbiAgLy8gLy8gV3JhcHMgYSBzeW1tZXRyaWMgZW5jcnlwdGlvbiBrZXkuXG4gIC8vIC8vIFRocm93cyBleGNlcHRpb24gaWYgd3JhcHBpbmcgcHVibGljIGtleXMuXG4gIC8vIGFzeW5jIHdyYXBLZXk8VD4oXG4gIC8vICAgd3JhcHBpbmdLZXk6IHN0cmluZyB8IEtleSB8IEpXSy5LZXksXG4gIC8vICAga2V5OiBKV0suS2V5XG4gIC8vICk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vICAgaWYgKCFpc1N5bW1ldHJpY0tleShrZXkpKSB7XG4gIC8vICAgICB0aHJvdyBuZXcgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbihcbiAgLy8gICAgICAgJ09ubHkgYWxsb3dpbmcgd3JhcHBpbmcgb2Ygc3ltbWV0cmljIGtleXMuJ1xuICAvLyAgICAgKTtcbiAgLy8gICB9XG5cbiAgLy8gICByZXR1cm4gdGhpcy5lbmNyeXB0VG9TdHJpbmcod3JhcHBpbmdLZXksIGtleS50b0pTT04odHJ1ZSkpO1xuICAvLyB9XG5cbiAgLy8gLy8gVE9ET1xuICAvLyAvLyBhc3luYyB3cmFwUHVibGljS2V5PFQ+KCk7XG4gIC8vIC8vIGFzeW5jIHdyYXBQcml2YXRlS2V5PFQ+KCk7XG5cbiAgYXN5bmMgZG91YmxlV3JhcENvbnRlbnQoXG4gICAgc2VjdXJlQ29udGVudDogYW55LFxuICAgIGNhdGVnb3J5SWRzOiBzdHJpbmdbXSxcbiAgICBmaWxlQ29udGVudD86IEFycmF5QnVmZmVyXG4gICkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIGNvbnN0IHdyYXBwZWRDb250ZW50ID0gYXdhaXQgdGhpcy53cmFwQ29udGVudChcbiAgICAgIGtleS50b0pTT04odHJ1ZSksXG4gICAgICBjYXRlZ29yeUlkc1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcm9vdEtleTogd3JhcHBlZENvbnRlbnQucm9vdEtleSxcbiAgICAgIHdyYXBwZWRLZXlzOiB3cmFwcGVkQ29udGVudC53cmFwcGVkS2V5cyxcbiAgICAgIGRvdWJsZVdyYXBwZWRLZXk6IHdyYXBwZWRDb250ZW50LmNpcGhlck1ldGEsXG4gICAgICBjaXBoZXJNZXRhOiBzZWN1cmVDb250ZW50XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoa2V5LCBzZWN1cmVDb250ZW50KVxuICAgICAgICAgIClcbiAgICAgICAgOiBudWxsLFxuICAgICAgY2lwaGVyRmlsZUNvbnRlbnQ6IGZpbGVDb250ZW50XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KGtleSwgZmlsZUNvbnRlbnQpKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHJlV3JhcENvbnRlbnQoa2V5SWQ6IHN0cmluZywgc2VjdXJlQ29udGVudDogYW55KSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRKd2tLZXkoa2V5SWQpO1xuICAgIGNvbnN0IG5ld0tleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkb3VibGVXcmFwcGVkS2V5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KGtleSwgbmV3S2V5LnRvSlNPTih0cnVlKSlcbiAgICAgICksXG4gICAgICBjaXBoZXJNZXRhOiBzZWN1cmVDb250ZW50XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQobmV3S2V5LCBzZWN1cmVDb250ZW50KVxuICAgICAgICAgIClcbiAgICAgICAgOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBhc3luYyB3cmFwQ29udGVudChcbiAgICBzZWN1cmVDb250ZW50OiBhbnksXG4gICAgY2F0ZWdvcnlJZHM/OiBzdHJpbmdbXVxuICApOiBQcm9taXNlPFdyYXBwZWRDb250ZW50PiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuXG4gICAgbGV0IHdyYXBwZWRLZXlzOiBXcmFwcGluZ0tleVtdO1xuICAgIGxldCByb290V3JhcHBpbmdLZXk6IFdyYXBwaW5nS2V5O1xuXG4gICAgaWYgKGNhdGVnb3J5SWRzICYmIGNhdGVnb3J5SWRzLmxlbmd0aCkge1xuICAgICAgd3JhcHBlZEtleXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgY2F0ZWdvcnlJZHMubWFwKGFzeW5jIChjYXRlZ29yeUlkKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyZW50S2V5ID0gYXdhaXQgdGhpcy5nZXRDYXRlZ29yeUtleUlkKGNhdGVnb3J5SWQpO1xuICAgICAgICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChcbiAgICAgICAgICAgICAgcGFyZW50S2V5LmtleSxcbiAgICAgICAgICAgICAga2V5LnRvSlNPTih0cnVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpcmVjdG9yeUlkOiBjYXRlZ29yeUlkLFxuICAgICAgICAgICAgd3JhcHBpbmdLZXlJZDogcGFyZW50S2V5LmtleUlkLFxuICAgICAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRkaW5nIHRvIHJvb3QgZGlyZWN0b3J5XG4gICAgICBjb25zdCByb290S2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRSb290S2V5KCk7XG4gICAgICBjb25zdCB3cmFwcGVkS2V5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChyb290S2V5Lmp3aywga2V5LnRvSlNPTih0cnVlKSlcbiAgICAgICk7XG4gICAgICByb290V3JhcHBpbmdLZXkgPSB7XG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IHJvb3RLZXkuaWQsXG4gICAgICAgIHdyYXBwZWRLZXksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICByb290S2V5OiByb290V3JhcHBpbmdLZXksXG4gICAgICB3cmFwcGVkS2V5cyxcbiAgICAgIGNpcGhlck1ldGE6IHNlY3VyZUNvbnRlbnRcbiAgICAgICAgPyBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChrZXksIHNlY3VyZUNvbnRlbnQpXG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHdyYXBDb250ZW50V2l0aEtleShcbiAgICBzZWN1cmVDb250ZW50OiBhbnksXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPFdyYXBwZWRDb250ZW50PiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuXG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAga2V5SWQsXG4gICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICByb290S2V5OiB7XG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IGtleUlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICAgIGNpcGhlck1ldGE6IHNlY3VyZUNvbnRlbnRcbiAgICAgICAgPyBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChrZXksIHNlY3VyZUNvbnRlbnQpXG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q2F0ZWdvcnlLZXlJZChcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IGtleUlkOiBzdHJpbmc7IGtleTogYW55IH0+IHtcbiAgICBjb25zdCB7IGNhdGVnb3J5IH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldENhdGVnb3J5S2V5SWRRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpZDogY2F0ZWdvcnlJZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5SWQ6IGNhdGVnb3J5LmtleUlkLFxuICAgICAga2V5OiBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEp3a0tleShjYXRlZ29yeS5rZXlJZCksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { Inject, Injectable } from '@angular/core';
|
|
3
|
+
import { LR_CONFIG } from '../life-ready.config';
|
|
4
|
+
import { PersistService } from '../persist/persist.service';
|
|
3
5
|
import { LrNotFoundException } from '../_common/exceptions';
|
|
4
|
-
import { PersistService } from '../api/persist.service';
|
|
5
6
|
import { KeyFactoryService as KFS } from './key-factory.service';
|
|
6
|
-
import { LR_CONFIG } from '../life-ready.config';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "../life-ready.config";
|
|
9
|
-
import * as i2 from "../
|
|
9
|
+
import * as i2 from "../persist/persist.service";
|
|
10
10
|
export class UserKeys {
|
|
11
11
|
}
|
|
12
12
|
export class KeyService {
|
|
@@ -121,4 +121,4 @@ KeyService.ctorParameters = () => [
|
|
|
121
121
|
{ type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
|
|
122
122
|
{ type: PersistService }
|
|
123
123
|
];
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRWxFLE1BQU0sT0FBTyxRQUFRO0NBTXBCO0FBVUQsTUFBTSxPQUFPLFVBQVU7SUFvQnJCLFlBQzZCLE1BQXVCLEVBQzFDLGNBQThCO1FBRFgsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBckJ2QixxQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFLaEQsK0VBQStFO1FBQy9FLG1GQUFtRjtRQUNuRixxRkFBcUY7UUFDckYsK0VBQStFO1FBQy9FLGdEQUFnRDtRQUNoQyw0QkFBdUIsR0FBRyxNQUFNLENBQUM7UUFDakMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQztRQUVqRCxxRkFBcUY7UUFDckUsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQzNELGdDQUEyQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUMzRCxnQ0FBMkIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFNekUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENB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RUFBRTtvQkFDZCxNQUFNLElBQUksbUJBQW1CLENBQzNCLCtDQUErQyxDQUNoRCxDQUFDO2lCQUNIO2dCQUVELElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7b0JBQ2hDLE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IsZUFBZSxTQUFTLENBQUMsRUFBRSwwREFBMEQsV0FBVyxFQUFFLENBQ25HLENBQUM7aUJBQ0g7Z0JBRUQsU0FBUyxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUUvQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzthQUM1QjtZQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO0tBQUE7Ozs7WUFwSUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBc0JJLE1BQU0sU0FBQyxTQUFTO1lBekNaLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleSwgUGFzc0tleSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5LnR5cGVzJztcbmltcG9ydCB7IExyTm90Rm91bmRFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUGVyc2lzdFNlcnZpY2UgfSBmcm9tICcuLi9hcGkvcGVyc2lzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIGFzIEtGUyB9IGZyb20gJy4va2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBMaWZlUmVhZHlDb25maWcsIExSX0NPTkZJRyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcblxuZXhwb3J0IGNsYXNzIFVzZXJLZXlzIHtcbiAgcGFzc0tleTogUGFzc0tleTtcbiAgbWFzdGVyS2V5OiBLZXk7XG4gIHJvb3RLZXk/OiBLZXk7XG4gIHB4az86IEtleTtcbiAgc2lnUHhrPzogS2V5O1xufVxuXG5pbnRlcmZhY2UgU3RvcmVkUGFzc0tleSB7XG4gIGlkOiBzdHJpbmc7XG4gIGp3azogb2JqZWN0O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgS2V5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU1RPUkVfTUFTVEVSX0tFWSA9ICdtYXN0ZXJLZXknO1xuICAvLyB2YXJpYWJsZXNcbiAgcHJpdmF0ZSBrZXlzOiBVc2VyS2V5cztcbiAgcHJpdmF0ZSBtYXN0ZXJLZXk6IEtleTtcblxuICAvLyBBWjogVGhpcyBjYW4ndCBiZSBjaGFuZ2UgZWFzaWx5LiBJdCdzIGJhc2ljYWxseSBhIFBhc3NLIG9yIFBhc3NJZHAgcm90YXRpb24uXG4gIC8vIHRvZG86IHdlIHNob3VsZCBldmVudHVhbGx5IGluY3JlYXNlIHRoaXMgcGVyaW9kaWNhbGx5IHRvIG1hdGNoIHdpdGggTW9vcmUncyBsYXcuXG4gIC8vIFRoZSBpdGVyYXRpb25zIGZvciBlYWNoIGtleSBhcmUga2VwdCBieSB0aGUgc2VydmVyIGFzIHdlbGwgYnV0IHdlIGFzc3VtZSB0aGUgdmFsdWVcbiAgLy8gZnJvbSB0aGUgc2VydmVyIGlzIG5vdCB0cnVzdHdvcnRoeSwgc28gbmVlZCB0byBoYXZlIG1pbmltdW0gdGhyZXNob2xkcyBoZXJlLlxuICAvLyBJZiBjcmVhdGluZyBuZXcga2V5cywgdGhlc2UgbWluaW11bSBhcmUgdXNlZC5cbiAgcHVibGljIHJlYWRvbmx5IE1JTl9QQVNTX0lEUF9QQktERl9JVEVSID0gMTAwMDAwO1xuICBwdWJsaWMgcmVhZG9ubHkgTUlOX1BBU1NfS0VZX1BCS0RGX0lURVIgPSAxMDAwMDA7XG4gIHB1YmxpYyByZWFkb25seSBNSU5fTEJPUF9LRVlfUEJLREZfSVRFUiA9IDEwMDAwMDtcblxuICAvLyBUaGVzZSBhcmUgdXNlZCBhcyB0aGUgZGVmYXVsdCB2YWx1ZXMuIFRoZXkgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZXMuXG4gIHB1YmxpYyByZWFkb25seSBERUZBVUxUX1BBU1NfSURQX1BCS0RGX0lURVIgPSB0aGlzLk1JTl9QQVNTX0lEUF9QQktERl9JVEVSO1xuICBwdWJsaWMgcmVhZG9ubHkgREVGQVVMVF9QQVNTX0tFWV9QQktERl9JVEVSID0gdGhpcy5NSU5fUEFTU19LRVlfUEJLREZfSVRFUjtcbiAgcHVibGljIHJlYWRvbmx5IERFRkFVTFRfTEJPUF9LRVlfUEJLREZfSVRFUiA9IHRoaXMuTUlOX0xCT1BfS0VZX1BCS0RGX0lURVI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gICAgcHJpdmF0ZSBwZXJzaXN0U2VydmljZTogUGVyc2lzdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZXNldEtleXMoKTtcbiAgfVxuXG4gIHJlc2V0S2V5cygpIHtcbiAgICB0aGlzLmtleXMgPSBudWxsO1xuICAgIHRoaXMubWFzdGVyS2V5ID0gbnVsbDtcbiAgfVxuXG4gIHB1cmdlS2V5cygpIHtcbiAgICB0aGlzLnJlc2V0S2V5cygpO1xuICAgIHRoaXMucGVyc2lzdFNlcnZpY2UuY2xlYXIoKTtcbiAgfVxuXG4gIHBvcHVsYXRlS2V5cyhrZXlzOiBVc2VyS2V5cykge1xuICAgIHRoaXMua2V5cyA9IGtleXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFBhc3NLZXkoKTogS2V5IHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLnBhc3NLZXk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudE1hc3RlcktleSgpOiBLZXkge1xuICAgIHJldHVybiB0aGlzLmtleXMubWFzdGVyS2V5O1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRSb290S2V5KCk6IEtleSB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5yb290S2V5O1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRQeGsoKTogS2V5IHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLnB4aztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50U2lnUHhrKCk6IEtleSB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5zaWdQeGs7XG4gIH1cblxuICBwcml2YXRlIGV4cGlyZXNBZnRlcihzZWNvbmRzOiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSArIDEwMDAgKiBzZWNvbmRzKTtcbiAgfVxuXG4gIGFzeW5jIHBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgbWFzdGVyS2V5OiBLZXksXG4gICAgZXhwaXJlc0FmdGVyU2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlZEtleSA9IHtcbiAgICAgIGlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICBqd2s6IG1hc3RlcktleS5qd2sudG9KU09OKHRydWUpLFxuICAgIH07XG5cbiAgICB0aGlzLm1hc3RlcktleSA9IG1hc3RlcktleTtcblxuICAgIC8vIFNhdmUgaW4gYW4gZXhwaXJhYmxlIGNvb2tpZS5cbiAgICBhd2FpdCB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldCh7XG4gICAgICBuYW1lOiB0aGlzLlNUT1JFX01BU1RFUl9LRVksXG4gICAgICB2YWx1ZTogc3RvcmVkS2V5LFxuICAgICAgZXhwaXJ5OiB0aGlzLmV4cGlyZXNBZnRlcihleHBpcmVzQWZ0ZXJTZWNvbmRzKSxcbiAgICAgIHNlcnZlclNlc3Npb246ICF0aGlzLmNvbmZpZy5kaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXRNYXN0ZXJLZXlFeHBpcmVzQWZ0ZXJTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlZEtleSA9IGF3YWl0IHRoaXMucGVyc2lzdFNlcnZpY2UuZ2V0KHRoaXMuU1RPUkVfTUFTVEVSX0tFWSk7XG4gICAgaWYgKHN0b3JlZEtleSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgTHJOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgYENhbiBub3QgZmluZCBtYXN0ZXJLZXkgaW4gcGVyc2lzdGVkIHN0b3JhZ2UgdXNpbmcgbmFtZTogJHt0aGlzLlNUT1JFX01BU1RFUl9LRVl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5wZXJzaXN0U2VydmljZS5zZXQoe1xuICAgICAgbmFtZTogdGhpcy5TVE9SRV9NQVNURVJfS0VZLFxuICAgICAgdmFsdWU6IHN0b3JlZEtleSxcbiAgICAgIGV4cGlyeTogdGhpcy5leHBpcmVzQWZ0ZXIoc2Vjb25kcyksXG4gICAgICBzZXJ2ZXJTZXNzaW9uOiAhdGhpcy5jb25maWcuZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVGhlcmUncyBsaXR0bGUgYmVuZWZpdCBpbiB1c2luZyBXZWJDcnlwdG8ncyBub25lLWV4dHJhY3RhYmxlIGtleXMgYmVjYXVzZSBpZiB0aGVyZVxuICAvLyBpcyBhbiBYU1MgYXR0YWNrLCB0aGVuIHRoZSBhdHRhY2tlciBoYXMgY29udHJvbCBvdmVyIHRoZSBqcyB0aGF0IGRvd25sb2FkcyB0aGUga2V5cy4gVGhlXG4gIC8vIGF0dGFja2VyIGNhbiBtb2RpZnkgdGhlIGNvZGUgdG8gaW1wb3J0IHRoZSBrZXlzIGFzIGV4dHJhY3RhYmxlLiBTbyBub25lLWV4dHJhY3RhYmxlIGtleXNcbiAgLy8gYXJlIG9ubHkgdXNlZnVsIGlmIHRoZXkgYXJlIGFscmVhZHkgcGVyc2lzdGVkIGFuZCB0aGUgdXNlciBjYW5ub3QgZG93bmxvYWQgYW55IG1vcmUga2V5cyxcbiAgLy8gd2hpY2ggaXMgbm90IGZlYXNpYmxlLlxuICAvLyBTbyBzdG9yaW5nIHRoZSBQYXNzS2V5IGluIGxvY2Fsc3RvcmFnZSBmb3Igbm93LCBhdCBsZWFzdCB0aWxsIHdlIGtub3cgd2hhdCB0aGUgdXNhZ2VcbiAgLy8gcGF0dGVybiBpcywgaS5lLiBob3cgb2Z0ZW4gZG8gd2UgbmVlZCB0byB1c2UgdGhlIFJvb3RLLCBNYXRlckssIGFuZCBQYXNzSy5cbiAgYXN5bmMgbG9hZE1hc3RlcktleShtYXN0ZXJLZXlJZDogc3RyaW5nKTogUHJvbWlzZTxLZXk+IHtcbiAgICBpZiAoIXRoaXMubWFzdGVyS2V5KSB7XG4gICAgICBjb25zdCBzdG9yZWRLZXkgPSBhd2FpdCB0aGlzLnBlcnNpc3RTZXJ2aWNlLmdldCh0aGlzLlNUT1JFX01BU1RFUl9LRVkpO1xuXG4gICAgICBpZiAoIXN0b3JlZEtleSkge1xuICAgICAgICB0aHJvdyBuZXcgTHJOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgbWFzdGVyS2V5IGluIHBlcnNpc3RlZCBzdG9yYWdlJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RvcmVkS2V5LmlkICE9PSBtYXN0ZXJLZXlJZCkge1xuICAgICAgICB0aHJvdyBuZXcgTHJOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgICBgbWFzdGVyS2V5SWQgJHtzdG9yZWRLZXkuaWR9IGluIHBlcnNpc3RlZCBzdG9yYWdlIGRvZXMgbm90IG1hdGNoIHRoZSBvbmUgcmVxdWVzdGVkICR7bWFzdGVyS2V5SWR9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzdG9yZWRLZXkuandrID0gYXdhaXQgS0ZTLmFzS2V5KHN0b3JlZEtleS5qd2spO1xuXG4gICAgICB0aGlzLm1hc3RlcktleSA9IHN0b3JlZEtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYXN0ZXJLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIva2V5L2tleS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLElBQUksR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFHakUsTUFBTSxPQUFPLFFBQVE7Q0FNcEI7QUFLRCxNQUFNLE9BQU8sVUFBVTtJQW9CckIsWUFDNkIsTUFBdUIsRUFDMUMsY0FBOEI7UUFEWCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFyQnZCLHFCQUFnQixHQUFHLFdBQVcsQ0FBQztRQUtoRCwrRUFBK0U7UUFDL0UsbUZBQW1GO1FBQ25GLHFGQUFxRjtRQUNyRiwrRUFBK0U7UUFDL0UsZ0RBQWdEO1FBQ2hDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQztRQUNqQyw0QkFBdUIsR0FBRyxNQUFNLENBQUM7UUFDakMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDO1FBRWpELHFGQUFxRjtRQUNyRSxnQ0FBMkIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFDM0QsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQzNELGdDQUEyQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQU16RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMs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Q0FDM0IsK0NBQStDLENBQ2hELENBQUM7aUJBQ0g7Z0JBRUQsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRTtvQkFDaEMsTUFBTSxJQUFJLG1CQUFtQixDQUMzQixlQUFlLFNBQVMsQ0FBQyxFQUFFLDBEQUEwRCxXQUFXLEVBQUUsQ0FDbkcsQ0FBQztpQkFDSDtnQkFFRCxTQUFTLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2FBQzVCO1lBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7S0FBQTs7OztZQXBJRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FzQkksTUFBTSxTQUFDLFNBQVM7WUFyQ1osY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlmZVJlYWR5Q29uZmlnLCBMUl9DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XG5pbXBvcnQgeyBQZXJzaXN0U2VydmljZSB9IGZyb20gJy4uL3BlcnNpc3QvcGVyc2lzdC5zZXJ2aWNlJztcbmltcG9ydCB7IExyTm90Rm91bmRFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgYXMgS0ZTIH0gZnJvbSAnLi9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleSwgUGFzc0tleSB9IGZyb20gJy4va2V5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFVzZXJLZXlzIHtcbiAgcGFzc0tleTogUGFzc0tleTtcbiAgbWFzdGVyS2V5OiBLZXk7XG4gIHJvb3RLZXk/OiBLZXk7XG4gIHB4az86IEtleTtcbiAgc2lnUHhrPzogS2V5O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgS2V5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU1RPUkVfTUFTVEVSX0tFWSA9ICdtYXN0ZXJLZXknO1xuICAvLyB2YXJpYWJsZXNcbiAgcHJpdmF0ZSBrZXlzOiBVc2VyS2V5cztcbiAgcHJpdmF0ZSBtYXN0ZXJLZXk6IEtleTtcblxuICAvLyBBWjogVGhpcyBjYW4ndCBiZSBjaGFuZ2UgZWFzaWx5LiBJdCdzIGJhc2ljYWxseSBhIFBhc3NLIG9yIFBhc3NJZHAgcm90YXRpb24uXG4gIC8vIHRvZG86IHdlIHNob3VsZCBldmVudHVhbGx5IGluY3JlYXNlIHRoaXMgcGVyaW9kaWNhbGx5IHRvIG1hdGNoIHdpdGggTW9vcmUncyBsYXcuXG4gIC8vIFRoZSBpdGVyYXRpb25zIGZvciBlYWNoIGtleSBhcmUga2VwdCBieSB0aGUgc2VydmVyIGFzIHdlbGwgYnV0IHdlIGFzc3VtZSB0aGUgdmFsdWVcbiAgLy8gZnJvbSB0aGUgc2VydmVyIGlzIG5vdCB0cnVzdHdvcnRoeSwgc28gbmVlZCB0byBoYXZlIG1pbmltdW0gdGhyZXNob2xkcyBoZXJlLlxuICAvLyBJZiBjcmVhdGluZyBuZXcga2V5cywgdGhlc2UgbWluaW11bSBhcmUgdXNlZC5cbiAgcHVibGljIHJlYWRvbmx5IE1JTl9QQVNTX0lEUF9QQktERl9JVEVSID0gMTAwMDAwO1xuICBwdWJsaWMgcmVhZG9ubHkgTUlOX1BBU1NfS0VZX1BCS0RGX0lURVIgPSAxMDAwMDA7XG4gIHB1YmxpYyByZWFkb25seSBNSU5fTEJPUF9LRVlfUEJLREZfSVRFUiA9IDEwMDAwMDtcblxuICAvLyBUaGVzZSBhcmUgdXNlZCBhcyB0aGUgZGVmYXVsdCB2YWx1ZXMuIFRoZXkgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZXMuXG4gIHB1YmxpYyByZWFkb25seSBERUZBVUxUX1BBU1NfSURQX1BCS0RGX0lURVIgPSB0aGlzLk1JTl9QQVNTX0lEUF9QQktERl9JVEVSO1xuICBwdWJsaWMgcmVhZG9ubHkgREVGQVVMVF9QQVNTX0tFWV9QQktERl9JVEVSID0gdGhpcy5NSU5fUEFTU19LRVlfUEJLREZfSVRFUjtcbiAgcHVibGljIHJlYWRvbmx5IERFRkFVTFRfTEJPUF9LRVlfUEJLREZfSVRFUiA9IHRoaXMuTUlOX0xCT1BfS0VZX1BCS0RGX0lURVI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gICAgcHJpdmF0ZSBwZXJzaXN0U2VydmljZTogUGVyc2lzdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZXNldEtleXMoKTtcbiAgfVxuXG4gIHJlc2V0S2V5cygpIHtcbiAgICB0aGlzLmtleXMgPSBudWxsO1xuICAgIHRoaXMubWFzdGVyS2V5ID0gbnVsbDtcbiAgfVxuXG4gIHB1cmdlS2V5cygpIHtcbiAgICB0aGlzLnJlc2V0S2V5cygpO1xuICAgIHRoaXMucGVyc2lzdFNlcnZpY2UuY2xlYXIoKTtcbiAgfVxuXG4gIHBvcHVsYXRlS2V5cyhrZXlzOiBVc2VyS2V5cykge1xuICAgIHRoaXMua2V5cyA9IGtleXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFBhc3NLZXkoKTogS2V5IHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLnBhc3NLZXk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudE1hc3RlcktleSgpOiBLZXkge1xuICAgIHJldHVybiB0aGlzLmtleXMubWFzdGVyS2V5O1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRSb290S2V5KCk6IEtleSB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5yb290S2V5O1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRQeGsoKTogS2V5IHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLnB4aztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50U2lnUHhrKCk6IEtleSB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5zaWdQeGs7XG4gIH1cblxuICBwcml2YXRlIGV4cGlyZXNBZnRlcihzZWNvbmRzOiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSArIDEwMDAgKiBzZWNvbmRzKTtcbiAgfVxuXG4gIGFzeW5jIHBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgbWFzdGVyS2V5OiBLZXksXG4gICAgZXhwaXJlc0FmdGVyU2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlZEtleSA9IHtcbiAgICAgIGlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICBqd2s6IG1hc3RlcktleS5qd2sudG9KU09OKHRydWUpLFxuICAgIH07XG5cbiAgICB0aGlzLm1hc3RlcktleSA9IG1hc3RlcktleTtcblxuICAgIC8vIFNhdmUgaW4gYW4gZXhwaXJhYmxlIGNvb2tpZS5cbiAgICBhd2FpdCB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldCh7XG4gICAgICBuYW1lOiB0aGlzLlNUT1JFX01BU1RFUl9LRVksXG4gICAgICB2YWx1ZTogc3RvcmVkS2V5LFxuICAgICAgZXhwaXJ5OiB0aGlzLmV4cGlyZXNBZnRlcihleHBpcmVzQWZ0ZXJTZWNvbmRzKSxcbiAgICAgIHNlcnZlclNlc3Npb246ICF0aGlzLmNvbmZpZy5kaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXRNYXN0ZXJLZXlFeHBpcmVzQWZ0ZXJTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlZEtleSA9IGF3YWl0IHRoaXMucGVyc2lzdFNlcnZpY2UuZ2V0KHRoaXMuU1RPUkVfTUFTVEVSX0tFWSk7XG4gICAgaWYgKHN0b3JlZEtleSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgTHJOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgYENhbiBub3QgZmluZCBtYXN0ZXJLZXkgaW4gcGVyc2lzdGVkIHN0b3JhZ2UgdXNpbmcgbmFtZTogJHt0aGlzLlNUT1JFX01BU1RFUl9LRVl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5wZXJzaXN0U2VydmljZS5zZXQoe1xuICAgICAgbmFtZTogdGhpcy5TVE9SRV9NQVNURVJfS0VZLFxuICAgICAgdmFsdWU6IHN0b3JlZEtleSxcbiAgICAgIGV4cGlyeTogdGhpcy5leHBpcmVzQWZ0ZXIoc2Vjb25kcyksXG4gICAgICBzZXJ2ZXJTZXNzaW9uOiAhdGhpcy5jb25maWcuZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVGhlcmUncyBsaXR0bGUgYmVuZWZpdCBpbiB1c2luZyBXZWJDcnlwdG8ncyBub25lLWV4dHJhY3RhYmxlIGtleXMgYmVjYXVzZSBpZiB0aGVyZVxuICAvLyBpcyBhbiBYU1MgYXR0YWNrLCB0aGVuIHRoZSBhdHRhY2tlciBoYXMgY29udHJvbCBvdmVyIHRoZSBqcyB0aGF0IGRvd25sb2FkcyB0aGUga2V5cy4gVGhlXG4gIC8vIGF0dGFja2VyIGNhbiBtb2RpZnkgdGhlIGNvZGUgdG8gaW1wb3J0IHRoZSBrZXlzIGFzIGV4dHJhY3RhYmxlLiBTbyBub25lLWV4dHJhY3RhYmxlIGtleXNcbiAgLy8gYXJlIG9ubHkgdXNlZnVsIGlmIHRoZXkgYXJlIGFscmVhZHkgcGVyc2lzdGVkIGFuZCB0aGUgdXNlciBjYW5ub3QgZG93bmxvYWQgYW55IG1vcmUga2V5cyxcbiAgLy8gd2hpY2ggaXMgbm90IGZlYXNpYmxlLlxuICAvLyBTbyBzdG9yaW5nIHRoZSBQYXNzS2V5IGluIGxvY2Fsc3RvcmFnZSBmb3Igbm93LCBhdCBsZWFzdCB0aWxsIHdlIGtub3cgd2hhdCB0aGUgdXNhZ2VcbiAgLy8gcGF0dGVybiBpcywgaS5lLiBob3cgb2Z0ZW4gZG8gd2UgbmVlZCB0byB1c2UgdGhlIFJvb3RLLCBNYXRlckssIGFuZCBQYXNzSy5cbiAgYXN5bmMgbG9hZE1hc3RlcktleShtYXN0ZXJLZXlJZDogc3RyaW5nKTogUHJvbWlzZTxLZXk+IHtcbiAgICBpZiAoIXRoaXMubWFzdGVyS2V5KSB7XG4gICAgICBjb25zdCBzdG9yZWRLZXkgPSBhd2FpdCB0aGlzLnBlcnNpc3RTZXJ2aWNlLmdldCh0aGlzLlNUT1JFX01BU1RFUl9LRVkpO1xuXG4gICAgICBpZiAoIXN0b3JlZEtleSkge1xuICAgICAgICB0aHJvdyBuZXcgTHJOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgbWFzdGVyS2V5IGluIHBlcnNpc3RlZCBzdG9yYWdlJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RvcmVkS2V5LmlkICE9PSBtYXN0ZXJLZXlJZCkge1xuICAgICAgICB0aHJvdyBuZXcgTHJOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgICBgbWFzdGVyS2V5SWQgJHtzdG9yZWRLZXkuaWR9IGluIHBlcnNpc3RlZCBzdG9yYWdlIGRvZXMgbm90IG1hdGNoIHRoZSBvbmUgcmVxdWVzdGVkICR7bWFzdGVyS2V5SWR9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzdG9yZWRLZXkuandrID0gYXdhaXQgS0ZTLmFzS2V5KHN0b3JlZEtleS5qd2spO1xuXG4gICAgICB0aGlzLm1hc3RlcktleSA9IHN0b3JlZEtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYXN0ZXJLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var KeyGraphNodeType;
|
|
2
|
+
(function (KeyGraphNodeType) {
|
|
3
|
+
KeyGraphNodeType["Key"] = "key";
|
|
4
|
+
KeyGraphNodeType["PassKey"] = "passKey";
|
|
5
|
+
})(KeyGraphNodeType || (KeyGraphNodeType = {}));
|
|
6
|
+
export var KeyGraphEdgeType;
|
|
7
|
+
(function (KeyGraphEdgeType) {
|
|
8
|
+
KeyGraphEdgeType["KeyLink"] = "keyLink";
|
|
9
|
+
KeyGraphEdgeType["PassKeyLink"] = "passKeyLink";
|
|
10
|
+
})(KeyGraphEdgeType || (KeyGraphEdgeType = {}));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2tleS9rZXkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURBLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0JBQVcsQ0FBQTtJQUNYLHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCO0FBT0QsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQix1Q0FBbUIsQ0FBQTtJQUNuQiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBKU09OT2JqZWN0LCBQYXNzS2V5Tm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBTb21lUmVxdWlyZWQgfSBmcm9tICcuLi9fY29tbW9uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBLZXkge1xuICBpZDogc3RyaW5nO1xuICBwYms/OiBzdHJpbmc7XG4gIGp3az86IEpXSy5LZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleVBhcmFtcyB7XG4gIGtpZDogc3RyaW5nO1xuICBzYWx0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzSWRwUGFyYW1zIHtcbiAgc2FsdDogc3RyaW5nO1xuICBpdGVyYXRpb25zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGJvcEtleVBhcmFtcyB7XG4gIGtpZDogc3RyaW5nO1xuICBzYWx0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzSWRwVmVyaWZpZXIge1xuICB3cmFwcGVkUHJLOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjtcbiAgcGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYm9wS2V5VmVyaWZpZXIge1xuICB3cmFwcGVkS2V5OiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjtcbiAga2V5OiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0Pjtcbn1cblxuZXhwb3J0IHR5cGUgUGFzc0tleSA9IFNvbWVSZXF1aXJlZDxQYXNzS2V5Tm9kZSwgJ2lkJz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5TGluayB7XG4gIGtleUlkOiBzdHJpbmc7XG4gIHdyYXBwaW5nS2V5SWQ6IHN0cmluZztcbiAgd3JhcHBlZEtleTogc3RyaW5nOyAvLyBKV0UganNvbiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzS2V5TGluayB7XG4gIGtleUlkOiBzdHJpbmc7XG4gIHBhc3NLZXlJZDogc3RyaW5nO1xuICB3cmFwcGVkS2V5OiBzdHJpbmc7IC8vIEpXRSBqc29uIHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBLZXlHcmFwaE5vZGVUeXBlIHtcbiAgS2V5ID0gJ2tleScsXG4gIFBhc3NLZXkgPSAncGFzc0tleScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5R3JhcGhOb2RlIHtcbiAgdHlwZTogS2V5R3JhcGhOb2RlVHlwZTtcbiAgZGF0YTogS2V5IHwgUGFzc0tleTtcbn1cblxuZXhwb3J0IGVudW0gS2V5R3JhcGhFZGdlVHlwZSB7XG4gIEtleUxpbmsgPSAna2V5TGluaycsXG4gIFBhc3NLZXlMaW5rID0gJ3Bhc3NLZXlMaW5rJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlHcmFwaEVkZ2Uge1xuICB0eXBlOiBLZXlHcmFwaEVkZ2VUeXBlO1xuICBkYXRhOiBLZXlMaW5rIHwgUGFzc0tleUxpbms7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5R3JhcGhSZXNwb25zZSB7XG4gIGtleXM/OiBLZXlbXTtcbiAga2V5TGlua3M/OiBLZXlMaW5rW107XG4gIHBhc3NLZXlzPzogUGFzc0tleVtdO1xuICBwYXNzS2V5TGlua3M/OiBQYXNzS2V5TGlua1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0tleUdyYXBoIHtcbiAgLy8gVGhlIG5hbWUgb2YgdGhlIGtleUdyYXBoIGZpZWxkIHJldHVybmVkIGZyb20gYm90aCBxdWVyaWVzIGFuZCBtdXRhdGlvbnMgYXJlIHRoZSBzYW1lXG4gIGtleUdyYXBoPzogS2V5R3JhcGhSZXNwb25zZTtcbn1cblxuZXhwb3J0IHR5cGUgUGF5bG9hZFR5cGUgPSAnanNvbicgfCAnQXJyYXlCdWZmZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZUtleVJlc3VsdCB7XG4gIGp3azogSldLLktleTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVQYXNzSWRwUGFyYW1zIGV4dGVuZHMgUGFzc0lkcFBhcmFtcyB7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlUGFzc0tleVBhcmFtcyBleHRlbmRzIFBhc3NLZXlQYXJhbXMge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZUxib3BLZXlQYXJhbXMgZXh0ZW5kcyBQYXNzS2V5UGFyYW1zIHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import gql from 'graphql-tag';
|
|
2
|
+
import { FetchKeyGraphField, KeyGraphFragment } from '../_common/queries.gql';
|
|
3
|
+
export const KeyExchangeFields = `
|
|
4
|
+
id
|
|
5
|
+
token
|
|
6
|
+
state
|
|
7
|
+
mode
|
|
8
|
+
isInitiator
|
|
9
|
+
initiator {
|
|
10
|
+
id
|
|
11
|
+
username
|
|
12
|
+
}
|
|
13
|
+
responder {
|
|
14
|
+
id
|
|
15
|
+
username
|
|
16
|
+
}
|
|
17
|
+
created
|
|
18
|
+
modified
|
|
19
|
+
tokenExpiryTime
|
|
20
|
+
isExpired
|
|
21
|
+
initiatorRootKeyCipher
|
|
22
|
+
initiatorActionRequired
|
|
23
|
+
responderActionRequired
|
|
24
|
+
responderEmailAddress
|
|
25
|
+
otk {
|
|
26
|
+
state
|
|
27
|
+
otKeyParams
|
|
28
|
+
otKeyCipher
|
|
29
|
+
sharedKey {
|
|
30
|
+
id
|
|
31
|
+
}
|
|
32
|
+
mkSharedKey {
|
|
33
|
+
id
|
|
34
|
+
}
|
|
35
|
+
initiatorSigPxk {
|
|
36
|
+
id
|
|
37
|
+
}
|
|
38
|
+
responderSigPxk {
|
|
39
|
+
id
|
|
40
|
+
}
|
|
41
|
+
initiatorOneTimePbkCipher
|
|
42
|
+
responderPbkCipher
|
|
43
|
+
}`;
|
|
44
|
+
export const UserSharedKeyFields = `
|
|
45
|
+
userSigPrk {
|
|
46
|
+
id
|
|
47
|
+
}
|
|
48
|
+
otherSigPbk {
|
|
49
|
+
id
|
|
50
|
+
}
|
|
51
|
+
sharedKey {
|
|
52
|
+
id
|
|
53
|
+
}
|
|
54
|
+
mkSharedKey {
|
|
55
|
+
id
|
|
56
|
+
}
|
|
57
|
+
mkPxk {
|
|
58
|
+
id
|
|
59
|
+
pbk
|
|
60
|
+
}
|
|
61
|
+
mkReshareRequestCipher
|
|
62
|
+
mkReshareResponseCipher
|
|
63
|
+
mkReshareRequestSent
|
|
64
|
+
mkReshareResponseSent
|
|
65
|
+
`;
|
|
66
|
+
export const CurrentUserSharedKeyQuery = gql `
|
|
67
|
+
query CurrentUserSharedKeyQuery(
|
|
68
|
+
$username: String
|
|
69
|
+
$userId: LrRelayIdInput
|
|
70
|
+
$cachedKeyIds: [LrRelayIdInput!]
|
|
71
|
+
) {
|
|
72
|
+
currentUserSharedKey(
|
|
73
|
+
username: $username
|
|
74
|
+
userId: $userId
|
|
75
|
+
) {
|
|
76
|
+
userSharedKey {
|
|
77
|
+
${UserSharedKeyFields}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
keyGraph(cachedKeyIds: $cachedKeyIds) {
|
|
81
|
+
...KeyGraphFragment
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
${KeyGraphFragment}`;
|
|
85
|
+
export const KeyExchangesQuery = gql `
|
|
86
|
+
query KeyExchangeQuery(
|
|
87
|
+
$orderBy: String
|
|
88
|
+
$isExpired: Boolean
|
|
89
|
+
$initiatorActionRequired: Boolean
|
|
90
|
+
$responderActionRequired: Boolean
|
|
91
|
+
$initiator: ID
|
|
92
|
+
$responder: ID
|
|
93
|
+
$state: String
|
|
94
|
+
) {
|
|
95
|
+
keyExchanges(
|
|
96
|
+
orderBy: $orderBy
|
|
97
|
+
isExpired: $isExpired
|
|
98
|
+
initiatorActionRequired: $initiatorActionRequired
|
|
99
|
+
responderActionRequired: $responderActionRequired
|
|
100
|
+
initiator: $initiator
|
|
101
|
+
responder: $responder
|
|
102
|
+
state: $state
|
|
103
|
+
) {
|
|
104
|
+
edges {
|
|
105
|
+
node {
|
|
106
|
+
${KeyExchangeFields}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
keyGraph {
|
|
111
|
+
...KeyGraphFragment
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
${KeyGraphFragment}
|
|
115
|
+
`;
|
|
116
|
+
export const KeyExchangeQuery = gql `
|
|
117
|
+
query KeyExchangeQuery(
|
|
118
|
+
$id: LrRelayIdInput!
|
|
119
|
+
) {
|
|
120
|
+
keyExchange(
|
|
121
|
+
id: $id
|
|
122
|
+
) {
|
|
123
|
+
${KeyExchangeFields}
|
|
124
|
+
}
|
|
125
|
+
keyGraph {
|
|
126
|
+
...KeyGraphFragment
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
${KeyGraphFragment}
|
|
130
|
+
`;
|
|
131
|
+
// Key graph is only available for authenticated users. This query
|
|
132
|
+
// is for unauthenticated users.
|
|
133
|
+
export const KeyExchangeTokenQuery = gql `
|
|
134
|
+
query KeyExchangeQuery(
|
|
135
|
+
$id: LrRelayIdInput!
|
|
136
|
+
$token: String
|
|
137
|
+
) {
|
|
138
|
+
keyExchange(
|
|
139
|
+
id: $id
|
|
140
|
+
token: $token
|
|
141
|
+
) {
|
|
142
|
+
${KeyExchangeFields}
|
|
143
|
+
}
|
|
144
|
+
}`;
|
|
145
|
+
export const InitiateOtkMutation = gql `
|
|
146
|
+
mutation InitiateKeyExchangeOtk(
|
|
147
|
+
$input: InitiateKeyExchangeOtkInput!
|
|
148
|
+
) {
|
|
149
|
+
initiateKeyExchangeOtk(input: $input) {
|
|
150
|
+
keyExchange {
|
|
151
|
+
${KeyExchangeFields}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
${FetchKeyGraphField}
|
|
155
|
+
}`;
|
|
156
|
+
export const RespondOtkMutation = gql `
|
|
157
|
+
mutation RespondKeyExchangeOtk(
|
|
158
|
+
$input: RespondKeyExchangeOtkInput!
|
|
159
|
+
) {
|
|
160
|
+
respondKeyExchangeOtk(input: $input) {
|
|
161
|
+
keyExchange {
|
|
162
|
+
${KeyExchangeFields}
|
|
163
|
+
}
|
|
164
|
+
userSharedKey {
|
|
165
|
+
${UserSharedKeyFields}
|
|
166
|
+
}
|
|
167
|
+
tp {
|
|
168
|
+
id
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}`;
|
|
172
|
+
export const CompleteOtkMutation = gql `
|
|
173
|
+
mutation CompleteKeyExchangeOtk(
|
|
174
|
+
$input: CompleteKeyExchangeOtkInput!
|
|
175
|
+
) {
|
|
176
|
+
completeKeyExchangeOtk(input: $input) {
|
|
177
|
+
keyExchange {
|
|
178
|
+
${KeyExchangeFields}
|
|
179
|
+
}
|
|
180
|
+
userSharedKey {
|
|
181
|
+
${UserSharedKeyFields}
|
|
182
|
+
}
|
|
183
|
+
tp {
|
|
184
|
+
id
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}`;
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWV4Y2hhbmdlLmdxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3Qy9CLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJsQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztRQVdwQyxtQkFBbUI7Ozs7Ozs7RUFPekIsZ0JBQWdCLEVBQUUsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXFCNUIsaUJBQWlCOzs7Ozs7OztFQVF2QixnQkFBZ0I7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU83QixpQkFBaUI7Ozs7OztFQU1yQixnQkFBZ0I7Q0FDakIsQ0FBQztBQUVGLGtFQUFrRTtBQUNsRSxnQ0FBZ0M7QUFDaEMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTbEMsaUJBQWlCOztFQUVyQixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNaEMsaUJBQWlCOzs7RUFHckIsa0JBQWtCO0VBQ2xCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUE7Ozs7OztRQU03QixpQkFBaUI7OztRQUdqQixtQkFBbUI7Ozs7OztFQU16QixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7UUFNOUIsaUJBQWlCOzs7UUFHakIsbUJBQW1COzs7Ozs7RUFNekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0IHsgRmV0Y2hLZXlHcmFwaEZpZWxkLCBLZXlHcmFwaEZyYWdtZW50IH0gZnJvbSAnLi4vX2NvbW1vbi9xdWVyaWVzLmdxbCc7XG5cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZUZpZWxkcyA9IGBcbiAgaWRcbiAgdG9rZW5cbiAgc3RhdGVcbiAgbW9kZVxuICBpc0luaXRpYXRvclxuICBpbml0aWF0b3Ige1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgfVxuICByZXNwb25kZXIge1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgfVxuICBjcmVhdGVkXG4gIG1vZGlmaWVkXG4gIHRva2VuRXhwaXJ5VGltZVxuICBpc0V4cGlyZWRcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlclxuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZFxuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZFxuICByZXNwb25kZXJFbWFpbEFkZHJlc3NcbiAgb3RrIHtcbiAgICBzdGF0ZVxuICAgIG90S2V5UGFyYW1zXG4gICAgb3RLZXlDaXBoZXJcbiAgICBzaGFyZWRLZXkge1xuICAgICAgaWRcbiAgICB9XG4gICAgbWtTaGFyZWRLZXkge1xuICAgICAgaWRcbiAgICB9XG4gICAgaW5pdGlhdG9yU2lnUHhrIHtcbiAgICAgIGlkXG4gICAgfVxuICAgIHJlc3BvbmRlclNpZ1B4ayB7XG4gICAgICBpZFxuICAgIH1cbiAgICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyXG4gICAgcmVzcG9uZGVyUGJrQ2lwaGVyXG59YDtcblxuZXhwb3J0IGNvbnN0IFVzZXJTaGFyZWRLZXlGaWVsZHMgPSBgXG4gIHVzZXJTaWdQcmsge1xuICAgIGlkXG4gIH1cbiAgb3RoZXJTaWdQYmsge1xuICAgIGlkXG4gIH1cbiAgc2hhcmVkS2V5IHtcbiAgICBpZFxuICB9XG4gIG1rU2hhcmVkS2V5IHtcbiAgICBpZFxuICB9XG4gIG1rUHhrIHtcbiAgICBpZFxuICAgIHBia1xuICB9XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXJcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJcbiAgbWtSZXNoYXJlUmVxdWVzdFNlbnRcbiAgbWtSZXNoYXJlUmVzcG9uc2VTZW50XG5gO1xuXG5leHBvcnQgY29uc3QgQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeSA9IGdxbGBcbnF1ZXJ5IEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkoXG4gICR1c2VybmFtZTogU3RyaW5nXG4gICR1c2VySWQ6IExyUmVsYXlJZElucHV0XG4gICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdXG4pIHtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXkoXG4gICAgdXNlcm5hbWU6ICR1c2VybmFtZVxuICAgIHVzZXJJZDogJHVzZXJJZFxuICApIHtcbiAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgICR7VXNlclNoYXJlZEtleUZpZWxkc31cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgoY2FjaGVkS2V5SWRzOiAkY2FjaGVkS2V5SWRzKSB7XG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICB9XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9YDtcblxuZXhwb3J0IGNvbnN0IEtleUV4Y2hhbmdlc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgS2V5RXhjaGFuZ2VRdWVyeShcbiRvcmRlckJ5OiBTdHJpbmdcbiRpc0V4cGlyZWQ6IEJvb2xlYW5cbiRpbml0aWF0b3JBY3Rpb25SZXF1aXJlZDogQm9vbGVhblxuJHJlc3BvbmRlckFjdGlvblJlcXVpcmVkOiBCb29sZWFuXG4kaW5pdGlhdG9yOiBJRFxuJHJlc3BvbmRlcjogSURcbiRzdGF0ZTogU3RyaW5nXG4pIHtcbmtleUV4Y2hhbmdlcyhcbiAgb3JkZXJCeTogJG9yZGVyQnlcbiAgaXNFeHBpcmVkOiAkaXNFeHBpcmVkXG4gIGluaXRpYXRvckFjdGlvblJlcXVpcmVkOiAkaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWQ6ICRyZXNwb25kZXJBY3Rpb25SZXF1aXJlZFxuICBpbml0aWF0b3I6ICRpbml0aWF0b3JcbiAgcmVzcG9uZGVyOiAkcmVzcG9uZGVyXG4gIHN0YXRlOiAkc3RhdGVcbikge1xuICBlZGdlcyB7XG4gICAgbm9kZSB7XG4gICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgIH1cbiAgfVxufVxua2V5R3JhcGgge1xuICAuLi5LZXlHcmFwaEZyYWdtZW50XG59XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgY29uc3QgS2V5RXhjaGFuZ2VRdWVyeSA9IGdxbGBcbnF1ZXJ5IEtleUV4Y2hhbmdlUXVlcnkoXG4gICRpZDogTHJSZWxheUlkSW5wdXQhXG4pIHtcbiAga2V5RXhjaGFuZ2UoXG4gICAgaWQ6ICRpZFxuICApIHtcbiAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICB9XG4gIGtleUdyYXBoIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH1cbmA7XG5cbi8vIEtleSBncmFwaCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYXV0aGVudGljYXRlZCB1c2Vycy4gVGhpcyBxdWVyeVxuLy8gaXMgZm9yIHVuYXV0aGVudGljYXRlZCB1c2Vycy5cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZVRva2VuUXVlcnkgPSBncWxgXG5xdWVyeSBLZXlFeGNoYW5nZVF1ZXJ5KFxuICAkaWQ6IExyUmVsYXlJZElucHV0IVxuICAkdG9rZW46IFN0cmluZ1xuKSB7XG4gIGtleUV4Y2hhbmdlKFxuICAgIGlkOiAkaWRcbiAgICB0b2tlbjogJHRva2VuXG4gICkge1xuICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XG4gIH1cbn1gO1xuXG5leHBvcnQgY29uc3QgSW5pdGlhdGVPdGtNdXRhdGlvbiA9IGdxbGBcbm11dGF0aW9uIEluaXRpYXRlS2V5RXhjaGFuZ2VPdGsoXG4kaW5wdXQ6IEluaXRpYXRlS2V5RXhjaGFuZ2VPdGtJbnB1dCFcbikge1xuaW5pdGlhdGVLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gIGtleUV4Y2hhbmdlIHtcbiAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICB9XG59XG4ke0ZldGNoS2V5R3JhcGhGaWVsZH1cbn1gO1xuXG5leHBvcnQgY29uc3QgUmVzcG9uZE90a011dGF0aW9uID0gZ3FsYFxubXV0YXRpb24gUmVzcG9uZEtleUV4Y2hhbmdlT3RrKFxuICAkaW5wdXQ6IFJlc3BvbmRLZXlFeGNoYW5nZU90a0lucHV0IVxuKSB7XG4gIHJlc3BvbmRLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gICAga2V5RXhjaGFuZ2Uge1xuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICB9XG4gICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XG4gICAgfVxuICAgIHRwIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGNvbnN0IENvbXBsZXRlT3RrTXV0YXRpb24gPSBncWxgXG5tdXRhdGlvbiBDb21wbGV0ZUtleUV4Y2hhbmdlT3RrKFxuICAkaW5wdXQ6IENvbXBsZXRlS2V5RXhjaGFuZ2VPdGtJbnB1dCFcbikge1xuICBjb21wbGV0ZUtleUV4Y2hhbmdlT3RrKGlucHV0OiAkaW5wdXQpIHtcbiAgICBrZXlFeGNoYW5nZSB7XG4gICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgIH1cbiAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgICR7VXNlclNoYXJlZEtleUZpZWxkc31cbiAgICB9XG4gICAgdHAge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuIl19
|