@lifeready/core 9.0.8 → 10.0.0
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/fesm2022/lifeready-core.mjs +10522 -0
- package/fesm2022/lifeready-core.mjs.map +1 -0
- package/package.json +21 -16
- package/types/lifeready-core.d.ts +5329 -0
- package/bundles/lifeready-core.umd.js +0 -13231
- package/bundles/lifeready-core.umd.js.map +0 -1
- package/bundles/lifeready-core.umd.min.js +0 -2
- package/bundles/lifeready-core.umd.min.js.map +0 -1
- package/esm2015/lib/_common/ast.js +0 -41
- package/esm2015/lib/_common/deferred-promise.js +0 -24
- package/esm2015/lib/_common/exceptions.js +0 -186
- package/esm2015/lib/_common/index.js +0 -3
- package/esm2015/lib/_common/kc-lodash.js +0 -11
- package/esm2015/lib/_common/key.js +0 -28
- package/esm2015/lib/_common/queries.gql.js +0 -43
- package/esm2015/lib/_common/run-outside-angular.js +0 -80
- package/esm2015/lib/_common/storage.js +0 -28
- package/esm2015/lib/_common/types.js +0 -2
- package/esm2015/lib/_common/utils.js +0 -73
- package/esm2015/lib/api/lr-apollo.service.js +0 -47
- package/esm2015/lib/api/lr-graphql/index.js +0 -6
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +0 -170
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +0 -216
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +0 -51
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +0 -91
- package/esm2015/lib/api/lr-graphql/lr.service.js +0 -18
- package/esm2015/lib/api/query-processor/common-processors.service.js +0 -94
- package/esm2015/lib/api/query-processor/index.js +0 -3
- package/esm2015/lib/api/query-processor/query-processor.service.js +0 -307
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +0 -110
- package/esm2015/lib/api/types/graphql.types.js +0 -8
- package/esm2015/lib/api/types/index.js +0 -3
- package/esm2015/lib/api/types/lr-graphql.types.js +0 -182
- package/esm2015/lib/auth/auth.config.js +0 -57
- package/esm2015/lib/auth/auth.gql.private.js +0 -85
- package/esm2015/lib/auth/auth.service.js +0 -616
- package/esm2015/lib/auth/auth.types.js +0 -19
- package/esm2015/lib/contact-card/contact-card.gql.js +0 -79
- package/esm2015/lib/contact-card/contact-card.service.js +0 -156
- package/esm2015/lib/contact-card/contact-card2.gql.js +0 -29
- package/esm2015/lib/contact-card/contact-card2.service.js +0 -103
- package/esm2015/lib/encryption/encryption.service.js +0 -188
- package/esm2015/lib/file-upload/file-upload.service.js +0 -70
- package/esm2015/lib/file-upload/file-upload.types.js +0 -2
- package/esm2015/lib/idle/idle.service.js +0 -159
- package/esm2015/lib/idle/idle.types.js +0 -7
- package/esm2015/lib/item/item.gql.js +0 -166
- package/esm2015/lib/item/item.gql.private.js +0 -41
- package/esm2015/lib/item/item.service.js +0 -662
- package/esm2015/lib/item/item.types.js +0 -2
- package/esm2015/lib/key/key-factory.service.js +0 -226
- package/esm2015/lib/key/key-graph.service.js +0 -314
- package/esm2015/lib/key/key-meta.service.js +0 -153
- package/esm2015/lib/key/key.service.js +0 -124
- package/esm2015/lib/key/key.types.js +0 -16
- package/esm2015/lib/key-exchange/key-exchange.gql.js +0 -174
- package/esm2015/lib/key-exchange/key-exchange.service.js +0 -496
- package/esm2015/lib/lbop/lbop.service.js +0 -351
- package/esm2015/lib/life-ready.config.js +0 -96
- package/esm2015/lib/life-ready.module.js +0 -42
- package/esm2015/lib/lock/lock.gql.js +0 -40
- package/esm2015/lib/lock/lock.service.js +0 -64
- package/esm2015/lib/notification/notification.gql.js +0 -43
- package/esm2015/lib/notification/notification.service.js +0 -118
- package/esm2015/lib/password/password.gql.js +0 -28
- package/esm2015/lib/password/password.service.js +0 -309
- package/esm2015/lib/persist/persist.service.js +0 -181
- package/esm2015/lib/plan/plan.gql.js +0 -91
- package/esm2015/lib/plan/plan.service.js +0 -191
- package/esm2015/lib/plan/plan.types.js +0 -2
- package/esm2015/lib/profile/profile-details.service.js +0 -261
- package/esm2015/lib/profile/profile.gql.js +0 -170
- package/esm2015/lib/profile/profile.service.js +0 -166
- package/esm2015/lib/profile/profile.types.js +0 -45
- package/esm2015/lib/register/register.service.js +0 -173
- package/esm2015/lib/register/register.types.js +0 -3
- package/esm2015/lib/reminder/reminder.gql.js +0 -27
- package/esm2015/lib/reminder/reminder.service.js +0 -85
- package/esm2015/lib/reminder/reminder.types.js +0 -2
- package/esm2015/lib/scenario/scenario.constants.js +0 -2
- package/esm2015/lib/scenario/scenario.controller.js +0 -34
- package/esm2015/lib/scenario/scenario.gql.js +0 -90
- package/esm2015/lib/scenario/scenario.private.gql.js +0 -200
- package/esm2015/lib/scenario/scenario.service.js +0 -679
- package/esm2015/lib/scenario/scenario.types.js +0 -2
- package/esm2015/lib/server-config/server-config.gql.js +0 -9
- package/esm2015/lib/server-config/server-config.service.js +0 -41
- package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +0 -119
- package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +0 -41
- package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +0 -117
- package/esm2015/lib/slip39/slip39.service.js +0 -167
- package/esm2015/lib/time/time.service.js +0 -152
- package/esm2015/lib/tp-assembly/tp-assembly.js +0 -363
- package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +0 -22
- package/esm2015/lib/tp-assembly/tp-assembly.types.js +0 -2
- package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +0 -98
- package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +0 -121
- package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +0 -4
- package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +0 -34
- package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +0 -74
- package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +0 -166
- package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +0 -54
- package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +0 -110
- package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +0 -2
- package/esm2015/lib/trusted-party/trusted-party.gql.js +0 -96
- package/esm2015/lib/trusted-party/trusted-party.gql.private.js +0 -51
- package/esm2015/lib/trusted-party/trusted-party.service.js +0 -461
- package/esm2015/lib/trusted-party/trusted-party.types.js +0 -2
- package/esm2015/lib/two-factor/two-factor.service.js +0 -74
- package/esm2015/lib/user/user.gql.js +0 -32
- package/esm2015/lib/user/user.service.js +0 -58
- package/esm2015/lib/user/user.types.js +0 -2
- package/esm2015/lib/web-crypto/web-crypto.service.js +0 -29
- package/esm2015/lifeready-core.js +0 -17
- package/esm2015/public-api.js +0 -60
- package/fesm2015/lifeready-core.js +0 -10970
- package/fesm2015/lifeready-core.js.map +0 -1
- package/lib/_common/ast.d.ts +0 -11
- package/lib/_common/deferred-promise.d.ts +0 -12
- package/lib/_common/exceptions.d.ts +0 -126
- package/lib/_common/index.d.ts +0 -2
- package/lib/_common/kc-lodash.d.ts +0 -5
- package/lib/_common/key.d.ts +0 -14
- package/lib/_common/queries.gql.d.ts +0 -4
- package/lib/_common/run-outside-angular.d.ts +0 -14
- package/lib/_common/storage.d.ts +0 -13
- package/lib/_common/types.d.ts +0 -15
- package/lib/_common/utils.d.ts +0 -12
- package/lib/api/lr-apollo.service.d.ts +0 -15
- package/lib/api/lr-graphql/index.d.ts +0 -5
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +0 -81
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +0 -46
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +0 -28
- package/lib/api/lr-graphql/lr-mutation.d.ts +0 -48
- package/lib/api/lr-graphql/lr.service.d.ts +0 -9
- package/lib/api/query-processor/common-processors.service.d.ts +0 -36
- package/lib/api/query-processor/index.d.ts +0 -2
- package/lib/api/query-processor/query-processor.service.d.ts +0 -18
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +0 -15
- package/lib/api/types/graphql.types.d.ts +0 -30
- package/lib/api/types/index.d.ts +0 -2
- package/lib/api/types/lr-graphql.types.d.ts +0 -807
- package/lib/auth/auth.config.d.ts +0 -5
- package/lib/auth/auth.gql.private.d.ts +0 -25
- package/lib/auth/auth.service.d.ts +0 -72
- package/lib/auth/auth.types.d.ts +0 -70
- package/lib/contact-card/contact-card.gql.d.ts +0 -7
- package/lib/contact-card/contact-card.service.d.ts +0 -53
- package/lib/contact-card/contact-card2.gql.d.ts +0 -25
- package/lib/contact-card/contact-card2.service.d.ts +0 -64
- package/lib/encryption/encryption.service.d.ts +0 -42
- package/lib/file-upload/file-upload.service.d.ts +0 -15
- package/lib/file-upload/file-upload.types.d.ts +0 -5
- package/lib/idle/idle.service.d.ts +0 -47
- package/lib/idle/idle.types.d.ts +0 -10
- package/lib/item/item.gql.d.ts +0 -134
- package/lib/item/item.gql.private.d.ts +0 -35
- package/lib/item/item.service.d.ts +0 -201
- package/lib/item/item.types.d.ts +0 -95
- package/lib/key/key-factory.service.d.ts +0 -40
- package/lib/key/key-graph.service.d.ts +0 -41
- package/lib/key/key-meta.service.d.ts +0 -51
- package/lib/key/key.service.d.ts +0 -36
- package/lib/key/key.types.d.ts +0 -86
- package/lib/key-exchange/key-exchange.gql.d.ts +0 -141
- package/lib/key-exchange/key-exchange.service.d.ts +0 -179
- package/lib/lbop/lbop.service.d.ts +0 -99
- package/lib/life-ready.config.d.ts +0 -26
- package/lib/life-ready.module.d.ts +0 -5
- package/lib/lock/lock.gql.d.ts +0 -27
- package/lib/lock/lock.service.d.ts +0 -34
- package/lib/notification/notification.gql.d.ts +0 -37
- package/lib/notification/notification.service.d.ts +0 -64
- package/lib/password/password.gql.d.ts +0 -3
- package/lib/password/password.service.d.ts +0 -79
- package/lib/persist/persist.service.d.ts +0 -31
- package/lib/plan/plan.gql.d.ts +0 -69
- package/lib/plan/plan.service.d.ts +0 -111
- package/lib/plan/plan.types.d.ts +0 -16
- package/lib/profile/profile-details.service.d.ts +0 -20
- package/lib/profile/profile.gql.d.ts +0 -21
- package/lib/profile/profile.service.d.ts +0 -32
- package/lib/profile/profile.types.d.ts +0 -121
- package/lib/register/register.service.d.ts +0 -25
- package/lib/register/register.types.d.ts +0 -6
- package/lib/reminder/reminder.gql.d.ts +0 -23
- package/lib/reminder/reminder.service.d.ts +0 -33
- package/lib/reminder/reminder.types.d.ts +0 -17
- package/lib/scenario/scenario.constants.d.ts +0 -1
- package/lib/scenario/scenario.controller.d.ts +0 -10
- package/lib/scenario/scenario.gql.d.ts +0 -78
- package/lib/scenario/scenario.private.gql.d.ts +0 -16
- package/lib/scenario/scenario.service.d.ts +0 -655
- package/lib/scenario/scenario.types.d.ts +0 -64
- package/lib/server-config/server-config.gql.d.ts +0 -5
- package/lib/server-config/server-config.service.d.ts +0 -9
- package/lib/shared-contact-card/shared-contact-card.service.d.ts +0 -33
- package/lib/shared-contact-card/shared-contact-card2.gql.d.ts +0 -36
- package/lib/shared-contact-card/shared-contact-card2.service.d.ts +0 -45
- package/lib/slip39/slip39.service.d.ts +0 -42
- package/lib/time/time.service.d.ts +0 -26
- package/lib/tp-assembly/tp-assembly.d.ts +0 -177
- package/lib/tp-assembly/tp-assembly.private.gql.d.ts +0 -5
- package/lib/tp-assembly/tp-assembly.types.d.ts +0 -40
- package/lib/tp-password-reset/tp-password-reset-request.service.d.ts +0 -16
- package/lib/tp-password-reset/tp-password-reset-user.service.d.ts +0 -29
- package/lib/tp-password-reset/tp-password-reset.constants.d.ts +0 -3
- package/lib/tp-password-reset/tp-password-reset.controller.d.ts +0 -10
- package/lib/tp-password-reset/tp-password-reset.gql.d.ts +0 -63
- package/lib/tp-password-reset/tp-password-reset.private.gql.d.ts +0 -163
- package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +0 -59
- package/lib/tp-password-reset/tp-password-reset.service.d.ts +0 -112
- package/lib/tp-password-reset/tp-password-reset.types.d.ts +0 -40
- package/lib/trusted-party/trusted-party.gql.d.ts +0 -85
- package/lib/trusted-party/trusted-party.gql.private.d.ts +0 -40
- package/lib/trusted-party/trusted-party.service.d.ts +0 -192
- package/lib/trusted-party/trusted-party.types.d.ts +0 -31
- package/lib/two-factor/two-factor.service.d.ts +0 -15
- package/lib/user/user.gql.d.ts +0 -8
- package/lib/user/user.service.d.ts +0 -9
- package/lib/user/user.types.d.ts +0 -16
- package/lib/web-crypto/web-crypto.service.d.ts +0 -5
- package/lifeready-core.d.ts +0 -16
- package/lifeready-core.metadata.json +0 -1
- package/public-api.d.ts +0 -56
|
@@ -1,153 +0,0 @@
|
|
|
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 { gqlTyped } from '../_common/ast';
|
|
8
|
-
import { KeyFactoryService } from './key-factory.service';
|
|
9
|
-
import { KeyGraphService } from './key-graph.service';
|
|
10
|
-
import { KeyService } from './key.service';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "../encryption/encryption.service";
|
|
13
|
-
import * as i2 from "./key-graph.service";
|
|
14
|
-
import * as i3 from "../api/lr-apollo.service";
|
|
15
|
-
import * as i4 from "./key.service";
|
|
16
|
-
import * as i5 from "./key-factory.service";
|
|
17
|
-
export const DirectoryKeyQuery = gqlTyped `
|
|
18
|
-
query DirectoryKeyQuery($id: LrRelayIdInput!) {
|
|
19
|
-
directory(id: $id) {
|
|
20
|
-
keyId
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
`;
|
|
24
|
-
export class WrappedContent {
|
|
25
|
-
}
|
|
26
|
-
export class WrappingKey {
|
|
27
|
-
}
|
|
28
|
-
export class KeyMetaService {
|
|
29
|
-
constructor(encryptionService, keyGraph, lrApollo, keyService, keyFactory) {
|
|
30
|
-
this.encryptionService = encryptionService;
|
|
31
|
-
this.keyGraph = keyGraph;
|
|
32
|
-
this.lrApollo = lrApollo;
|
|
33
|
-
this.keyService = keyService;
|
|
34
|
-
this.keyFactory = keyFactory;
|
|
35
|
-
}
|
|
36
|
-
decryptMeta(metaHaver) {
|
|
37
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
if (metaHaver.cipherMeta) {
|
|
39
|
-
const key = yield this.keyGraph.getJwkKey(metaHaver.keyId);
|
|
40
|
-
return (yield this.encryptionService.decrypt(key, JSON.parse(metaHaver.cipherMeta)));
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
doubleWrapContent(secureContent, categoryIds, fileContent) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
const key = yield this.keyFactory.createKey();
|
|
48
|
-
const wrappedContent = yield this.wrapContent(key.toJSON(true), categoryIds);
|
|
49
|
-
return {
|
|
50
|
-
rootKey: wrappedContent.rootKey,
|
|
51
|
-
wrappedKeys: wrappedContent.wrappedKeys,
|
|
52
|
-
doubleWrappedKey: wrappedContent.cipherMeta,
|
|
53
|
-
cipherMeta: secureContent
|
|
54
|
-
? JSON.stringify(yield this.encryptionService.encrypt(key, secureContent))
|
|
55
|
-
: null,
|
|
56
|
-
cipherFileContent: fileContent
|
|
57
|
-
? JSON.stringify(yield this.encryptionService.encrypt(key, fileContent))
|
|
58
|
-
: null,
|
|
59
|
-
};
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
reWrapContent(keyId, secureContent) {
|
|
63
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
const key = yield this.keyGraph.getJwkKey(keyId);
|
|
65
|
-
const newKey = yield this.keyFactory.createKey();
|
|
66
|
-
return {
|
|
67
|
-
doubleWrappedKey: JSON.stringify(yield this.encryptionService.encrypt(key, newKey.toJSON(true))),
|
|
68
|
-
cipherMeta: secureContent
|
|
69
|
-
? JSON.stringify(yield this.encryptionService.encrypt(newKey, secureContent))
|
|
70
|
-
: null,
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
wrapContent(secureContent, categoryIds) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const key = yield this.keyFactory.createKey();
|
|
77
|
-
let wrappedKeys;
|
|
78
|
-
let rootWrappingKey;
|
|
79
|
-
if (categoryIds && categoryIds.length) {
|
|
80
|
-
wrappedKeys = yield Promise.all(categoryIds.map((categoryId) => __awaiter(this, void 0, void 0, function* () {
|
|
81
|
-
const parentKey = yield this.getDirectoryKeyId(categoryId);
|
|
82
|
-
const wrappedKey = JSON.stringify(yield this.encryptionService.encrypt(parentKey.key, key.toJSON(true)));
|
|
83
|
-
return {
|
|
84
|
-
directoryId: categoryId,
|
|
85
|
-
wrappingKeyId: parentKey.keyId,
|
|
86
|
-
wrappedKey,
|
|
87
|
-
};
|
|
88
|
-
})));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// Adding to root directory
|
|
92
|
-
const rootKey = this.keyService.currentRootKey;
|
|
93
|
-
const wrappedKey = JSON.stringify(yield this.encryptionService.encrypt(rootKey.jwk, key.toJSON(true)));
|
|
94
|
-
rootWrappingKey = {
|
|
95
|
-
wrappingKeyId: rootKey.id,
|
|
96
|
-
wrappedKey,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return {
|
|
100
|
-
key,
|
|
101
|
-
rootKey: rootWrappingKey,
|
|
102
|
-
wrappedKeys,
|
|
103
|
-
cipherMeta: secureContent
|
|
104
|
-
? JSON.stringify(yield this.encryptionService.encrypt(key, secureContent))
|
|
105
|
-
: null,
|
|
106
|
-
};
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
wrapContentWithKey(secureContent, keyId) {
|
|
110
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
-
const key = yield this.keyFactory.createKey();
|
|
112
|
-
const wrappedKey = yield this.keyGraph.encryptToString(keyId, key.toJSON(true));
|
|
113
|
-
return {
|
|
114
|
-
key,
|
|
115
|
-
rootKey: {
|
|
116
|
-
wrappingKeyId: keyId,
|
|
117
|
-
wrappedKey,
|
|
118
|
-
},
|
|
119
|
-
cipherMeta: secureContent
|
|
120
|
-
? JSON.stringify(yield this.encryptionService.encrypt(key, secureContent))
|
|
121
|
-
: null,
|
|
122
|
-
};
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
getDirectoryKeyId(categoryId) {
|
|
126
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
-
const { directory } = yield this.lrApollo.query({
|
|
128
|
-
query: DirectoryKeyQuery,
|
|
129
|
-
variables: {
|
|
130
|
-
id: categoryId,
|
|
131
|
-
},
|
|
132
|
-
});
|
|
133
|
-
return {
|
|
134
|
-
keyId: directory.keyId,
|
|
135
|
-
key: yield this.keyGraph.getJwkKey(directory.keyId),
|
|
136
|
-
};
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
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" });
|
|
141
|
-
KeyMetaService.decorators = [
|
|
142
|
-
{ type: Injectable, args: [{
|
|
143
|
-
providedIn: 'root',
|
|
144
|
-
},] }
|
|
145
|
-
];
|
|
146
|
-
KeyMetaService.ctorParameters = () => [
|
|
147
|
-
{ type: EncryptionService },
|
|
148
|
-
{ type: KeyGraphService },
|
|
149
|
-
{ type: LrApolloService },
|
|
150
|
-
{ type: KeyService },
|
|
151
|
-
{ type: KeyFactoryService }
|
|
152
|
-
];
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LW1ldGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9rZXkva2V5LW1ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELG9FQUFvRTtBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFPM0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUF5Qjs7Ozs7O0NBTWpFLENBQUM7QUFPRixNQUFNLE9BQU8sY0FBYztDQUsxQjtBQUVELE1BQU0sT0FBTyxXQUFXO0NBSXZCO0FBS0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDVSxpQkFBb0MsRUFDcEMsUUFBeUIsRUFDekIsUUFBeUIsRUFDekIsVUFBc0IsRUFDdEIsVUFBNkI7UUFKN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQ3BDLENBQUM7SUFFRSxXQUFXLENBQUksU0FBd0I7O1lBQzNDLElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDeEIs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S0FBSztvQkFDcEIsVUFBVTtpQkFDWDtnQkFDRCxVQUFVLEVBQUUsYUFBYTtvQkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ1osTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FDekQ7b0JBQ0gsQ0FBQyxDQUFDLElBQUk7YUFDVCxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRWEsaUJBQWlCLENBQzdCLFVBQWtCOztZQUVsQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBTTtnQkFDbkQsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsU0FBUyxFQUFFO29CQUNULEVBQUUsRUFBRSxVQUFVO2lCQUNmO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7Z0JBQ3RCLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDcEQsQ0FBQztRQUNKLENBQUM7S0FBQTs7OztZQTNKRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXZDUSxpQkFBaUI7WUFHakIsZUFBZTtZQU5mLGVBQWU7WUFPZixVQUFVO1lBRlYsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBJRCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG4vLyBpbXBvcnQgeyBHZXRDYXRlZ29yeUtleUlkUXVlcnkgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS5ncWwnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9lbmNyeXB0aW9uL2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4va2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4va2V5LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUtleVF1ZXJ5UmVzdWx0IHtcbiAgZGlyZWN0b3J5OiB7XG4gICAga2V5SWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERpcmVjdG9yeUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RGlyZWN0b3J5S2V5UXVlcnlSZXN1bHQ+YFxucXVlcnkgRGlyZWN0b3J5S2V5UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgZGlyZWN0b3J5KGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0NpcGhlck1ldGEge1xuICBrZXlJZDogc3RyaW5nO1xuICBjaXBoZXJNZXRhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXcmFwcGVkQ29udGVudCB7XG4gIGtleTogSldLLktleTtcbiAgY2lwaGVyTWV0YTogc3RyaW5nO1xuICB3cmFwcGVkS2V5cz86IFdyYXBwaW5nS2V5W107XG4gIHJvb3RLZXk/OiBXcmFwcGluZ0tleTtcbn1cblxuZXhwb3J0IGNsYXNzIFdyYXBwaW5nS2V5IHtcbiAgZGlyZWN0b3J5SWQ/OiBzdHJpbmc7XG4gIHdyYXBwaW5nS2V5SWQ6IHN0cmluZztcbiAgd3JhcHBlZEtleTogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgS2V5TWV0YVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBkZWNyeXB0TWV0YTxUPihtZXRhSGF2ZXI6IEhhc0NpcGhlck1ldGEpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAobWV0YUhhdmVyLmNpcGhlck1ldGEpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0SndrS2V5KG1ldGFIYXZlci5rZXlJZCk7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAga2V5LFxuICAgICAgICBKU09OLnBhcnNlKG1ldGFIYXZlci5jaXBoZXJNZXRhKVxuICAgICAgKSkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGRvdWJsZVdyYXBDb250ZW50KFxuICAgIHNlY3VyZUNvbnRlbnQ6IGFueSxcbiAgICBjYXRlZ29yeUlkczogc3RyaW5nW10sXG4gICAgZmlsZUNvbnRlbnQ/OiBBcnJheUJ1ZmZlclxuICApIHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG5cbiAgICBjb25zdCB3cmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMud3JhcENvbnRlbnQoXG4gICAgICBrZXkudG9KU09OKHRydWUpLFxuICAgICAgY2F0ZWdvcnlJZHNcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJvb3RLZXk6IHdyYXBwZWRDb250ZW50LnJvb3RLZXksXG4gICAgICB3cmFwcGVkS2V5czogd3JhcHBlZENvbnRlbnQud3JhcHBlZEtleXMsXG4gICAgICBkb3VibGVXcmFwcGVkS2V5OiB3cmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgY2lwaGVyTWV0YTogc2VjdXJlQ29udGVudFxuICAgICAgICA/IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KGtleSwgc2VjdXJlQ29udGVudClcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGNpcGhlckZpbGVDb250ZW50OiBmaWxlQ29udGVudFxuICAgICAgICA/IEpTT04uc3RyaW5naWZ5KGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChrZXksIGZpbGVDb250ZW50KSlcbiAgICAgICAgOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBhc3luYyByZVdyYXBDb250ZW50KGtleUlkOiBzdHJpbmcsIHNlY3VyZUNvbnRlbnQ6IGFueSkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0SndrS2V5KGtleUlkKTtcbiAgICBjb25zdCBuZXdLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZG91YmxlV3JhcHBlZEtleTogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChrZXksIG5ld0tleS50b0pTT04odHJ1ZSkpXG4gICAgICApLFxuICAgICAgY2lwaGVyTWV0YTogc2VjdXJlQ29udGVudFxuICAgICAgICA/IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KG5ld0tleSwgc2VjdXJlQ29udGVudClcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgd3JhcENvbnRlbnQoXG4gICAgc2VjdXJlQ29udGVudDogYW55LFxuICAgIGNhdGVnb3J5SWRzPzogc3RyaW5nW11cbiAgKTogUHJvbWlzZTxXcmFwcGVkQ29udGVudD4ge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIGxldCB3cmFwcGVkS2V5czogV3JhcHBpbmdLZXlbXTtcbiAgICBsZXQgcm9vdFdyYXBwaW5nS2V5OiBXcmFwcGluZ0tleTtcblxuICAgIGlmIChjYXRlZ29yeUlkcyAmJiBjYXRlZ29yeUlkcy5sZW5ndGgpIHtcbiAgICAgIHdyYXBwZWRLZXlzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGNhdGVnb3J5SWRzLm1hcChhc3luYyAoY2F0ZWdvcnlJZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmVudEtleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5SWQoY2F0ZWdvcnlJZCk7XG4gICAgICAgICAgY29uc3Qgd3JhcHBlZEtleSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxuICAgICAgICAgICAgICBwYXJlbnRLZXkua2V5LFxuICAgICAgICAgICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlyZWN0b3J5SWQ6IGNhdGVnb3J5SWQsXG4gICAgICAgICAgICB3cmFwcGluZ0tleUlkOiBwYXJlbnRLZXkua2V5SWQsXG4gICAgICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBZGRpbmcgdG8gcm9vdCBkaXJlY3RvcnlcbiAgICAgIGNvbnN0IHJvb3RLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudFJvb3RLZXk7XG4gICAgICBjb25zdCB3cmFwcGVkS2V5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChyb290S2V5Lmp3aywga2V5LnRvSlNPTih0cnVlKSlcbiAgICAgICk7XG4gICAgICByb290V3JhcHBpbmdLZXkgPSB7XG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IHJvb3RLZXkuaWQsXG4gICAgICAgIHdyYXBwZWRLZXksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICByb290S2V5OiByb290V3JhcHBpbmdLZXksXG4gICAgICB3cmFwcGVkS2V5cyxcbiAgICAgIGNpcGhlck1ldGE6IHNlY3VyZUNvbnRlbnRcbiAgICAgICAgPyBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChrZXksIHNlY3VyZUNvbnRlbnQpXG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHdyYXBDb250ZW50V2l0aEtleShcbiAgICBzZWN1cmVDb250ZW50OiBhbnksXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPFdyYXBwZWRDb250ZW50PiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuXG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAga2V5SWQsXG4gICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICByb290S2V5OiB7XG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IGtleUlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICAgIGNpcGhlck1ldGE6IHNlY3VyZUNvbnRlbnRcbiAgICAgICAgPyBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChrZXksIHNlY3VyZUNvbnRlbnQpXG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5SWQoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8eyBrZXlJZDogc3RyaW5nOyBrZXk6IGFueSB9PiB7XG4gICAgY29uc3QgeyBkaXJlY3RvcnkgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8YW55Pih7XG4gICAgICBxdWVyeTogRGlyZWN0b3J5S2V5UXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQ6IGNhdGVnb3J5SWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleUlkOiBkaXJlY3Rvcnkua2V5SWQsXG4gICAgICBrZXk6IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0SndrS2V5KGRpcmVjdG9yeS5rZXlJZCksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { KC_CONFIG } from '../life-ready.config';
|
|
4
|
-
import { PersistService } from '../persist/persist.service';
|
|
5
|
-
import { KcNotFoundException } from '../_common/exceptions';
|
|
6
|
-
import { KeyFactoryService as KFS } from './key-factory.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../life-ready.config";
|
|
9
|
-
import * as i2 from "../persist/persist.service";
|
|
10
|
-
export class UserKeys {
|
|
11
|
-
}
|
|
12
|
-
export class KeyService {
|
|
13
|
-
constructor(config, persistService) {
|
|
14
|
-
this.config = config;
|
|
15
|
-
this.persistService = persistService;
|
|
16
|
-
this.STORE_MASTER_KEY = 'masterKey';
|
|
17
|
-
// AZ: This can't be change easily. It's basically a PassK or PassIdp rotation.
|
|
18
|
-
// todo: we should eventually increase this periodically to match with Moore's law.
|
|
19
|
-
// The iterations for each key are kept by the server as well but we assume the value
|
|
20
|
-
// from the server is not trustworthy, so need to have minimum thresholds here.
|
|
21
|
-
// If creating new keys, these minimum are used.
|
|
22
|
-
this.MIN_PASS_IDP_PBKDF_ITER = 100000;
|
|
23
|
-
this.MIN_PASS_KEY_PBKDF_ITER = 100000;
|
|
24
|
-
this.MIN_LBOP_KEY_PBKDF_ITER = 100000;
|
|
25
|
-
// These are used as the default values. They must be larger than the minimum values.
|
|
26
|
-
this.DEFAULT_PASS_IDP_PBKDF_ITER = this.MIN_PASS_IDP_PBKDF_ITER;
|
|
27
|
-
this.DEFAULT_PASS_KEY_PBKDF_ITER = this.MIN_PASS_KEY_PBKDF_ITER;
|
|
28
|
-
this.DEFAULT_LBOP_KEY_PBKDF_ITER = this.MIN_LBOP_KEY_PBKDF_ITER;
|
|
29
|
-
this.resetKeys();
|
|
30
|
-
}
|
|
31
|
-
resetKeys() {
|
|
32
|
-
this.keys = null;
|
|
33
|
-
this.masterKey = null;
|
|
34
|
-
}
|
|
35
|
-
purgeKeys() {
|
|
36
|
-
this.resetKeys();
|
|
37
|
-
this.persistService.clear();
|
|
38
|
-
}
|
|
39
|
-
setKeys(keys) {
|
|
40
|
-
this.keys = keys;
|
|
41
|
-
}
|
|
42
|
-
get currentPassKey() {
|
|
43
|
-
return this.keys.passKey;
|
|
44
|
-
}
|
|
45
|
-
get currentMasterKey() {
|
|
46
|
-
return this.keys.masterKey;
|
|
47
|
-
}
|
|
48
|
-
get currentRootKey() {
|
|
49
|
-
return this.keys.rootKey;
|
|
50
|
-
}
|
|
51
|
-
get currentPxk() {
|
|
52
|
-
return this.keys.pxk;
|
|
53
|
-
}
|
|
54
|
-
get currentSigPxk() {
|
|
55
|
-
return this.keys.sigPxk;
|
|
56
|
-
}
|
|
57
|
-
expiresAfter(seconds) {
|
|
58
|
-
return new Date(Date.now() + 1000 * seconds);
|
|
59
|
-
}
|
|
60
|
-
persistMasterKey(masterKey, expiresAfterSeconds) {
|
|
61
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
const storedKey = {
|
|
63
|
-
id: masterKey.id,
|
|
64
|
-
jwk: masterKey.jwk.toJSON(true),
|
|
65
|
-
};
|
|
66
|
-
this.masterKey = masterKey;
|
|
67
|
-
// Save in an expirable cookie.
|
|
68
|
-
yield this.persistService.set({
|
|
69
|
-
name: this.STORE_MASTER_KEY,
|
|
70
|
-
value: storedKey,
|
|
71
|
-
expiry: this.expiresAfter(expiresAfterSeconds),
|
|
72
|
-
serverSession: !this.config.disableSessionEncryptionKey,
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
setMasterKeyExpiresAfterSeconds(seconds) {
|
|
77
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
const storedKey = yield this.persistService.get(this.STORE_MASTER_KEY);
|
|
79
|
-
if (storedKey == null) {
|
|
80
|
-
throw new KcNotFoundException(`Can not find masterKey in persisted storage using name: ${this.STORE_MASTER_KEY}`);
|
|
81
|
-
}
|
|
82
|
-
yield this.persistService.set({
|
|
83
|
-
name: this.STORE_MASTER_KEY,
|
|
84
|
-
value: storedKey,
|
|
85
|
-
expiry: this.expiresAfter(seconds),
|
|
86
|
-
serverSession: !this.config.disableSessionEncryptionKey,
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
// There's little benefit in using WebCrypto's none-extractable keys because if there
|
|
91
|
-
// is an XSS attack, then the attacker has control over the js that downloads the keys. The
|
|
92
|
-
// attacker can modify the code to import the keys as extractable. So none-extractable keys
|
|
93
|
-
// are only useful if they are already persisted and the user cannot download any more keys,
|
|
94
|
-
// which is not feasible.
|
|
95
|
-
// So storing the PassKey in localstorage for now, at least till we know what the usage
|
|
96
|
-
// pattern is, i.e. how often do we need to use the RootK, MaterK, and PassK.
|
|
97
|
-
loadMasterKey(masterKeyId) {
|
|
98
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
if (!this.masterKey) {
|
|
100
|
-
const storedKey = yield this.persistService.get(this.STORE_MASTER_KEY);
|
|
101
|
-
if (!storedKey) {
|
|
102
|
-
throw new KcNotFoundException('Could not find masterKey in persisted storage');
|
|
103
|
-
}
|
|
104
|
-
if (storedKey.id !== masterKeyId) {
|
|
105
|
-
throw new KcNotFoundException(`masterKeyId ${storedKey.id} in persisted storage does not match the one requested ${masterKeyId}`);
|
|
106
|
-
}
|
|
107
|
-
storedKey.jwk = yield KFS.asKey(storedKey.jwk);
|
|
108
|
-
this.masterKey = storedKey;
|
|
109
|
-
}
|
|
110
|
-
return this.masterKey;
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
KeyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KeyService_Factory() { return new KeyService(i0.ɵɵinject(i1.KC_CONFIG), i0.ɵɵinject(i2.PersistService)); }, token: KeyService, providedIn: "root" });
|
|
115
|
-
KeyService.decorators = [
|
|
116
|
-
{ type: Injectable, args: [{
|
|
117
|
-
providedIn: 'root',
|
|
118
|
-
},] }
|
|
119
|
-
];
|
|
120
|
-
KeyService.ctorParameters = () => [
|
|
121
|
-
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
122
|
-
{ type: PersistService }
|
|
123
|
-
];
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIva2V5L2tleS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUdqRSxNQUFNLE9BQU8sUUFBUTtDQU1wQjtBQUtELE1BQU0sT0FBTyxVQUFVO0lBb0JyQixZQUM2QixNQUFnQixFQUNuQyxjQUE4QjtRQURYLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBckJ2QixxQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFLaEQsK0VBQStFO1FBQy9FLG1GQUFtRjtRQUNuRixxRkFBcUY7UUFDckYsK0VBQStFO1FBQy9FLGdEQUFnRDtRQUNoQyw0QkFBdUIsR0FBRyxNQUFNLENBQUM7UUFDakMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLDRCQUF1QixHQUFHLE1BQU0sQ0FBQztRQUVqRCxxRkFBcUY7UUFDckUsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBQzNELGdDQUEyQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUMzRCxnQ0FBMkIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFNekUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElB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TUFBTSxJQUFJLG1CQUFtQixDQUMzQiwrQ0FBK0MsQ0FDaEQsQ0FBQztpQkFDSDtnQkFFRCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFO29CQUNoQyxNQUFNLElBQUksbUJBQW1CLENBQzNCLGVBQWUsU0FBUyxDQUFDLEVBQUUsMERBQTBELFdBQVcsRUFBRSxDQUNuRyxDQUFDO2lCQUNIO2dCQUVELFNBQVMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7YUFDNUI7WUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQztLQUFBOzs7O1lBcElGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQXNCSSxNQUFNLFNBQUMsU0FBUztZQXJDWixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLY0NvbmZpZywgS0NfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgUGVyc2lzdFNlcnZpY2UgfSBmcm9tICcuLi9wZXJzaXN0L3BlcnNpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBLY05vdEZvdW5kRXhjZXB0aW9uIH0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIGFzIEtGUyB9IGZyb20gJy4va2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXksIFBhc3NLZXkgfSBmcm9tICcuL2tleS50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBVc2VyS2V5cyB7XG4gIHBhc3NLZXk6IFBhc3NLZXk7XG4gIG1hc3RlcktleTogS2V5O1xuICByb290S2V5PzogS2V5O1xuICBweGs/OiBLZXk7XG4gIHNpZ1B4az86IEtleTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEtleVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNUT1JFX01BU1RFUl9LRVkgPSAnbWFzdGVyS2V5JztcbiAgLy8gdmFyaWFibGVzXG4gIHByaXZhdGUga2V5czogVXNlcktleXM7XG4gIHByaXZhdGUgbWFzdGVyS2V5OiBLZXk7XG5cbiAgLy8gQVo6IFRoaXMgY2FuJ3QgYmUgY2hhbmdlIGVhc2lseS4gSXQncyBiYXNpY2FsbHkgYSBQYXNzSyBvciBQYXNzSWRwIHJvdGF0aW9uLlxuICAvLyB0b2RvOiB3ZSBzaG91bGQgZXZlbnR1YWxseSBpbmNyZWFzZSB0aGlzIHBlcmlvZGljYWxseSB0byBtYXRjaCB3aXRoIE1vb3JlJ3MgbGF3LlxuICAvLyBUaGUgaXRlcmF0aW9ucyBmb3IgZWFjaCBrZXkgYXJlIGtlcHQgYnkgdGhlIHNlcnZlciBhcyB3ZWxsIGJ1dCB3ZSBhc3N1bWUgdGhlIHZhbHVlXG4gIC8vIGZyb20gdGhlIHNlcnZlciBpcyBub3QgdHJ1c3R3b3J0aHksIHNvIG5lZWQgdG8gaGF2ZSBtaW5pbXVtIHRocmVzaG9sZHMgaGVyZS5cbiAgLy8gSWYgY3JlYXRpbmcgbmV3IGtleXMsIHRoZXNlIG1pbmltdW0gYXJlIHVzZWQuXG4gIHB1YmxpYyByZWFkb25seSBNSU5fUEFTU19JRFBfUEJLREZfSVRFUiA9IDEwMDAwMDtcbiAgcHVibGljIHJlYWRvbmx5IE1JTl9QQVNTX0tFWV9QQktERl9JVEVSID0gMTAwMDAwO1xuICBwdWJsaWMgcmVhZG9ubHkgTUlOX0xCT1BfS0VZX1BCS0RGX0lURVIgPSAxMDAwMDA7XG5cbiAgLy8gVGhlc2UgYXJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdmFsdWVzLiBUaGV5IG11c3QgYmUgbGFyZ2VyIHRoYW4gdGhlIG1pbmltdW0gdmFsdWVzLlxuICBwdWJsaWMgcmVhZG9ubHkgREVGQVVMVF9QQVNTX0lEUF9QQktERl9JVEVSID0gdGhpcy5NSU5fUEFTU19JRFBfUEJLREZfSVRFUjtcbiAgcHVibGljIHJlYWRvbmx5IERFRkFVTFRfUEFTU19LRVlfUEJLREZfSVRFUiA9IHRoaXMuTUlOX1BBU1NfS0VZX1BCS0RGX0lURVI7XG4gIHB1YmxpYyByZWFkb25seSBERUZBVUxUX0xCT1BfS0VZX1BCS0RGX0lURVIgPSB0aGlzLk1JTl9MQk9QX0tFWV9QQktERl9JVEVSO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoS0NfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogS2NDb25maWcsXG4gICAgcHJpdmF0ZSBwZXJzaXN0U2VydmljZTogUGVyc2lzdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZXNldEtleXMoKTtcbiAgfVxuXG4gIHJlc2V0S2V5cygpIHtcbiAgICB0aGlzLmtleXMgPSBudWxsO1xuICAgIHRoaXMubWFzdGVyS2V5ID0gbnVsbDtcbiAgfVxuXG4gIHB1cmdlS2V5cygpIHtcbiAgICB0aGlzLnJlc2V0S2V5cygpO1xuICAgIHRoaXMucGVyc2lzdFNlcnZpY2UuY2xlYXIoKTtcbiAgfVxuXG4gIHNldEtleXMoa2V5czogVXNlcktleXMpIHtcbiAgICB0aGlzLmtleXMgPSBrZXlzO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50UGFzc0tleSgpOiBLZXkge1xuICAgIHJldHVybiB0aGlzLmtleXMucGFzc0tleTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudE1hc3RlcktleSgpOiBLZXkge1xuICAgIHJldHVybiB0aGlzLmtleXMubWFzdGVyS2V5O1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50Um9vdEtleSgpOiBLZXkge1xuICAgIHJldHVybiB0aGlzLmtleXMucm9vdEtleTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFB4aygpOiBLZXkge1xuICAgIHJldHVybiB0aGlzLmtleXMucHhrO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50U2lnUHhrKCk6IEtleSB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5zaWdQeGs7XG4gIH1cblxuICBwcml2YXRlIGV4cGlyZXNBZnRlcihzZWNvbmRzOiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSArIDEwMDAgKiBzZWNvbmRzKTtcbiAgfVxuXG4gIGFzeW5jIHBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgbWFzdGVyS2V5OiBLZXksXG4gICAgZXhwaXJlc0FmdGVyU2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlZEtleSA9IHtcbiAgICAgIGlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICBqd2s6IG1hc3RlcktleS5qd2sudG9KU09OKHRydWUpLFxuICAgIH07XG5cbiAgICB0aGlzLm1hc3RlcktleSA9IG1hc3RlcktleTtcblxuICAgIC8vIFNhdmUgaW4gYW4gZXhwaXJhYmxlIGNvb2tpZS5cbiAgICBhd2FpdCB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldCh7XG4gICAgICBuYW1lOiB0aGlzLlNUT1JFX01BU1RFUl9LRVksXG4gICAgICB2YWx1ZTogc3RvcmVkS2V5LFxuICAgICAgZXhwaXJ5OiB0aGlzLmV4cGlyZXNBZnRlcihleHBpcmVzQWZ0ZXJTZWNvbmRzKSxcbiAgICAgIHNlcnZlclNlc3Npb246ICF0aGlzLmNvbmZpZy5kaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXRNYXN0ZXJLZXlFeHBpcmVzQWZ0ZXJTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlZEtleSA9IGF3YWl0IHRoaXMucGVyc2lzdFNlcnZpY2UuZ2V0KHRoaXMuU1RPUkVfTUFTVEVSX0tFWSk7XG4gICAgaWYgKHN0b3JlZEtleSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgS2NOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgYENhbiBub3QgZmluZCBtYXN0ZXJLZXkgaW4gcGVyc2lzdGVkIHN0b3JhZ2UgdXNpbmcgbmFtZTogJHt0aGlzLlNUT1JFX01BU1RFUl9LRVl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5wZXJzaXN0U2VydmljZS5zZXQoe1xuICAgICAgbmFtZTogdGhpcy5TVE9SRV9NQVNURVJfS0VZLFxuICAgICAgdmFsdWU6IHN0b3JlZEtleSxcbiAgICAgIGV4cGlyeTogdGhpcy5leHBpcmVzQWZ0ZXIoc2Vjb25kcyksXG4gICAgICBzZXJ2ZXJTZXNzaW9uOiAhdGhpcy5jb25maWcuZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVGhlcmUncyBsaXR0bGUgYmVuZWZpdCBpbiB1c2luZyBXZWJDcnlwdG8ncyBub25lLWV4dHJhY3RhYmxlIGtleXMgYmVjYXVzZSBpZiB0aGVyZVxuICAvLyBpcyBhbiBYU1MgYXR0YWNrLCB0aGVuIHRoZSBhdHRhY2tlciBoYXMgY29udHJvbCBvdmVyIHRoZSBqcyB0aGF0IGRvd25sb2FkcyB0aGUga2V5cy4gVGhlXG4gIC8vIGF0dGFja2VyIGNhbiBtb2RpZnkgdGhlIGNvZGUgdG8gaW1wb3J0IHRoZSBrZXlzIGFzIGV4dHJhY3RhYmxlLiBTbyBub25lLWV4dHJhY3RhYmxlIGtleXNcbiAgLy8gYXJlIG9ubHkgdXNlZnVsIGlmIHRoZXkgYXJlIGFscmVhZHkgcGVyc2lzdGVkIGFuZCB0aGUgdXNlciBjYW5ub3QgZG93bmxvYWQgYW55IG1vcmUga2V5cyxcbiAgLy8gd2hpY2ggaXMgbm90IGZlYXNpYmxlLlxuICAvLyBTbyBzdG9yaW5nIHRoZSBQYXNzS2V5IGluIGxvY2Fsc3RvcmFnZSBmb3Igbm93LCBhdCBsZWFzdCB0aWxsIHdlIGtub3cgd2hhdCB0aGUgdXNhZ2VcbiAgLy8gcGF0dGVybiBpcywgaS5lLiBob3cgb2Z0ZW4gZG8gd2UgbmVlZCB0byB1c2UgdGhlIFJvb3RLLCBNYXRlckssIGFuZCBQYXNzSy5cbiAgYXN5bmMgbG9hZE1hc3RlcktleShtYXN0ZXJLZXlJZDogc3RyaW5nKTogUHJvbWlzZTxLZXk+IHtcbiAgICBpZiAoIXRoaXMubWFzdGVyS2V5KSB7XG4gICAgICBjb25zdCBzdG9yZWRLZXkgPSBhd2FpdCB0aGlzLnBlcnNpc3RTZXJ2aWNlLmdldCh0aGlzLlNUT1JFX01BU1RFUl9LRVkpO1xuXG4gICAgICBpZiAoIXN0b3JlZEtleSkge1xuICAgICAgICB0aHJvdyBuZXcgS2NOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgbWFzdGVyS2V5IGluIHBlcnNpc3RlZCBzdG9yYWdlJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RvcmVkS2V5LmlkICE9PSBtYXN0ZXJLZXlJZCkge1xuICAgICAgICB0aHJvdyBuZXcgS2NOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgICBgbWFzdGVyS2V5SWQgJHtzdG9yZWRLZXkuaWR9IGluIHBlcnNpc3RlZCBzdG9yYWdlIGRvZXMgbm90IG1hdGNoIHRoZSBvbmUgcmVxdWVzdGVkICR7bWFzdGVyS2V5SWR9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzdG9yZWRLZXkuandrID0gYXdhaXQgS0ZTLmFzS2V5KHN0b3JlZEtleS5qd2spO1xuXG4gICAgICB0aGlzLm1hc3RlcktleSA9IHN0b3JlZEtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYXN0ZXJLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
export var PayloadType;
|
|
12
|
-
(function (PayloadType) {
|
|
13
|
-
PayloadType["JSON"] = "JSON";
|
|
14
|
-
PayloadType["UINT_8_ARRAY"] = "UINT_8_ARRAY";
|
|
15
|
-
})(PayloadType || (PayloadType = {}));
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2tleS9rZXkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0RBLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0JBQVcsQ0FBQTtJQUNYLHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCO0FBT0QsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQix1Q0FBbUIsQ0FBQTtJQUNuQiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQW1CRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDRCQUFhLENBQUE7SUFDYiw0Q0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgSlNPTk9iamVjdCwgUGFzc0tleU5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgSGFzRWRnZXMsIFNvbWVSZXF1aXJlZCB9IGZyb20gJy4uL19jb21tb24vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleSB7XG4gIGlkOiBzdHJpbmc7XG4gIHBiaz86IHN0cmluZztcbiAgandrPzogSldLLktleTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzS2V5UGFyYW1zIHtcbiAga2lkOiBzdHJpbmc7XG4gIHNhbHQ6IHN0cmluZztcbiAgaXRlcmF0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NJZHBQYXJhbXMge1xuICBzYWx0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYm9wS2V5UGFyYW1zIHtcbiAga2lkOiBzdHJpbmc7XG4gIHNhbHQ6IHN0cmluZztcbiAgaXRlcmF0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NJZHBWZXJpZmllciB7XG4gIHdyYXBwZWRQcks6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xuICBwYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExib3BLZXlWZXJpZmllciB7XG4gIHdyYXBwZWRLZXk6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xuICBrZXk6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xufVxuXG5leHBvcnQgdHlwZSBQYXNzS2V5ID0gU29tZVJlcXVpcmVkPFBhc3NLZXlOb2RlLCAnaWQnPjtcblxuZXhwb3J0IGludGVyZmFjZSBLZXlMaW5rIHtcbiAga2V5SWQ6IHN0cmluZztcbiAgd3JhcHBpbmdLZXlJZDogc3RyaW5nO1xuICBuZXN0ZWRXcmFwcGluZ0tleUlkczogc3RyaW5nW107XG4gIHdyYXBwZWRLZXk6IHN0cmluZzsgLy8gSldFIGpzb24gc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleUxpbmsge1xuICBrZXlJZDogc3RyaW5nO1xuICBwYXNzS2V5SWQ6IHN0cmluZztcbiAgd3JhcHBlZEtleTogc3RyaW5nOyAvLyBKV0UganNvbiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gS2V5R3JhcGhOb2RlVHlwZSB7XG4gIEtleSA9ICdrZXknLFxuICBQYXNzS2V5ID0gJ3Bhc3NLZXknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUdyYXBoTm9kZSB7XG4gIHR5cGU6IEtleUdyYXBoTm9kZVR5cGU7XG4gIGRhdGE6IEtleSB8IFBhc3NLZXk7XG59XG5cbmV4cG9ydCBlbnVtIEtleUdyYXBoRWRnZVR5cGUge1xuICBLZXlMaW5rID0gJ2tleUxpbmsnLFxuICBQYXNzS2V5TGluayA9ICdwYXNzS2V5TGluaycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5R3JhcGhFZGdlIHtcbiAgdHlwZTogS2V5R3JhcGhFZGdlVHlwZTtcbiAgZGF0YTogS2V5TGluayB8IFBhc3NLZXlMaW5rO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUdyYXBoUmVzcG9uc2Uge1xuICBrZXlzPzogS2V5W107XG4gIGtleUxpbmtzPzogS2V5TGlua1tdO1xuICBwYXNzS2V5cz86IFBhc3NLZXlbXTtcbiAgcGFzc0tleUxpbmtzPzogUGFzc0tleUxpbmtbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNLZXlHcmFwaCB7XG4gIC8vIFRoZSBuYW1lIG9mIHRoZSBrZXlHcmFwaCBmaWVsZCByZXR1cm5lZCBmcm9tIGJvdGggcXVlcmllcyBhbmQgbXV0YXRpb25zIGFyZSB0aGUgc2FtZVxuICBrZXlHcmFwaD86IEtleUdyYXBoUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBlbnVtIFBheWxvYWRUeXBlIHtcbiAgSlNPTiA9ICdKU09OJyxcbiAgVUlOVF84X0FSUkFZID0gJ1VJTlRfOF9BUlJBWScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlS2V5UmVzdWx0IHtcbiAgandrOiBKV0suS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZVBhc3NJZHBQYXJhbXMgZXh0ZW5kcyBQYXNzSWRwUGFyYW1zIHtcbiAgcGFzc3dvcmQ6IENyeXB0b0tleTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVQYXNzS2V5UGFyYW1zIGV4dGVuZHMgUGFzc0tleVBhcmFtcyB7XG4gIHBhc3N3b3JkOiBDcnlwdG9LZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlTGJvcEtleVBhcmFtcyBleHRlbmRzIFBhc3NLZXlQYXJhbXMge1xuICBwYXNzd29yZDogQ3J5cHRvS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0tleUdyYXBoRWRnZXM8VD4gZXh0ZW5kcyBIYXNLZXlHcmFwaCB7XG4gIGxpc3Q6IEhhc0VkZ2VzPFQ+O1xufVxuIl19
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { gqlTyped } from '../_common/ast';
|
|
2
|
-
export const KeyExchangeFields = `
|
|
3
|
-
id
|
|
4
|
-
token
|
|
5
|
-
state
|
|
6
|
-
mode
|
|
7
|
-
isInitiator
|
|
8
|
-
initiator {
|
|
9
|
-
id
|
|
10
|
-
username
|
|
11
|
-
config
|
|
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
|
-
`;
|
|
45
|
-
export const UserSharedKeyFields = `
|
|
46
|
-
userSigPrk {
|
|
47
|
-
id
|
|
48
|
-
}
|
|
49
|
-
otherSigPbk {
|
|
50
|
-
id
|
|
51
|
-
}
|
|
52
|
-
sharedKey {
|
|
53
|
-
id
|
|
54
|
-
}
|
|
55
|
-
mkSharedKey {
|
|
56
|
-
id
|
|
57
|
-
}
|
|
58
|
-
mkPxk {
|
|
59
|
-
id
|
|
60
|
-
pbk
|
|
61
|
-
}
|
|
62
|
-
mkReshareRequestCipher
|
|
63
|
-
mkReshareResponseCipher
|
|
64
|
-
mkReshareRequestSent
|
|
65
|
-
mkReshareResponseSent
|
|
66
|
-
`;
|
|
67
|
-
export const KeyExchangesQuery2 = gqlTyped `
|
|
68
|
-
query KeyExchangesQuery2($state: String) {
|
|
69
|
-
keyExchanges(state: $state) {
|
|
70
|
-
edges {
|
|
71
|
-
node {
|
|
72
|
-
${KeyExchangeFields}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
`;
|
|
78
|
-
export const KeyExchangeQuery2 = gqlTyped `
|
|
79
|
-
query KeyExchangeQuery2($id: LrRelayIdInput!) {
|
|
80
|
-
keyExchange(id: $id) {
|
|
81
|
-
${KeyExchangeFields}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
`;
|
|
85
|
-
export const KeyExchangeTokenQuery2 = gqlTyped `
|
|
86
|
-
query KeyExchangeTokenQuery2($id: LrRelayIdInput!, $token: String) {
|
|
87
|
-
keyExchange(id: $id, token: $token) {
|
|
88
|
-
${KeyExchangeFields}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
`;
|
|
92
|
-
export const CancelKeyExchangeMutation = gqlTyped `
|
|
93
|
-
mutation CancelKeyExchangeMutation($input: CancelKeyExchangeInput!) {
|
|
94
|
-
cancelKeyExchange(input: $input) {
|
|
95
|
-
keyExchange {
|
|
96
|
-
id
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
`;
|
|
101
|
-
export const DeclineKeyExchangeMutation = gqlTyped `
|
|
102
|
-
mutation DeclineKeyExchangeMutation($input: DeclineKeyExchangeInput!) {
|
|
103
|
-
declineKeyExchange(input: $input) {
|
|
104
|
-
keyExchange {
|
|
105
|
-
id
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
`;
|
|
110
|
-
export const InitiateKeyExchangeOtkMutation = gqlTyped `
|
|
111
|
-
mutation InitiateKeyExchangeOtkMutation(
|
|
112
|
-
$input: InitiateKeyExchangeOtkInput!
|
|
113
|
-
) {
|
|
114
|
-
initiateKeyExchangeOtk(input: $input) {
|
|
115
|
-
keyExchange {
|
|
116
|
-
${KeyExchangeFields}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
`;
|
|
121
|
-
export const RespondKeyExchangeOtkMutation = gqlTyped `
|
|
122
|
-
mutation RespondKeyExchangeOtkMutation($input: RespondKeyExchangeOtkInput!) {
|
|
123
|
-
respondKeyExchangeOtk(input: $input) {
|
|
124
|
-
keyExchange {
|
|
125
|
-
${KeyExchangeFields}
|
|
126
|
-
}
|
|
127
|
-
userSharedKey {
|
|
128
|
-
${UserSharedKeyFields}
|
|
129
|
-
}
|
|
130
|
-
tp {
|
|
131
|
-
id
|
|
132
|
-
user {
|
|
133
|
-
config
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
`;
|
|
139
|
-
export const CompleteKeyExchangeOtkMutation = gqlTyped `
|
|
140
|
-
mutation CompleteKeyExchangeOtkMutation(
|
|
141
|
-
$input: CompleteKeyExchangeOtkInput!
|
|
142
|
-
) {
|
|
143
|
-
completeKeyExchangeOtk(input: $input) {
|
|
144
|
-
keyExchange {
|
|
145
|
-
${KeyExchangeFields}
|
|
146
|
-
}
|
|
147
|
-
userSharedKey {
|
|
148
|
-
${UserSharedKeyFields}
|
|
149
|
-
}
|
|
150
|
-
tp {
|
|
151
|
-
id
|
|
152
|
-
user {
|
|
153
|
-
config
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
`;
|
|
159
|
-
export const CurrentUserSharedKeyQuery2 = gqlTyped `
|
|
160
|
-
query CurrentUserSharedKeyQuery2(
|
|
161
|
-
$username: String
|
|
162
|
-
$userId: LrRelayIdInput
|
|
163
|
-
) {
|
|
164
|
-
currentUserSharedKey(
|
|
165
|
-
username: $username
|
|
166
|
-
userId: $userId
|
|
167
|
-
) {
|
|
168
|
-
userSharedKey {
|
|
169
|
-
${UserSharedKeyFields}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
`;
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWV4Y2hhbmdlLmdxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUEwRDFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EwQ2hDLENBQUM7QUF3QkYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCbEMsQ0FBQztBQUtGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBb0I7Ozs7O1VBS3BELGlCQUFpQjs7Ozs7Q0FLMUIsQ0FBQztBQUtGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBbUI7OztNQUd0RCxpQkFBaUI7OztDQUd0QixDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUF3Qjs7O01BR2hFLGlCQUFpQjs7O0NBR3RCLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQTJCOzs7Ozs7OztDQVEzRSxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsUUFBUSxDQUE0Qjs7Ozs7Ozs7Q0FRN0UsQ0FBQztBQU9GLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFFBQVEsQ0FBZ0M7Ozs7OztRQU05RSxpQkFBaUI7Ozs7Q0FJeEIsQ0FBQztBQWNGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFFBQVEsQ0FBK0I7Ozs7UUFJNUUsaUJBQWlCOzs7UUFHakIsbUJBQW1COzs7Ozs7Ozs7O0NBVTFCLENBQUM7QUFjRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxRQUFRLENBQWdDOzs7Ozs7UUFNOUUsaUJBQWlCOzs7UUFHakIsbUJBQW1COzs7Ozs7Ozs7O0NBVTFCLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQTRCOzs7Ozs7Ozs7O1FBVXRFLG1CQUFtQjs7OztDQUkxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgT3RLZXlDaXBoZXJDbGVhckpzb24yLFxufSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbmV4cG9ydCB0eXBlIEtleUV4Y2hhbmdlU3RhdGUyID1cbiAgfCAnSU5fUFJPR1JFU1MnXG4gIHwgJ0NPTVBMRVRFRCdcbiAgfCAnREVDTElORUQnXG4gIHwgJ0NBTkNFTExFRCdcbiAgfCAnREVMRVRFRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VGaWVsZHNSZXN1bHQge1xuICBpZDogSUQ7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHN0YXRlOiBLZXlFeGNoYW5nZVN0YXRlMjtcbiAgbW9kZTogJ09USyc7XG4gIGlzSW5pdGlhdG9yOiBib29sZWFuO1xuICBpbml0aWF0b3I6IHtcbiAgICBpZDogSUQ7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBjb25maWc6IEpTT05TdHJpbmc7XG4gICAgY29uZmlnSnNvbjogSlNPTk9iamVjdDtcbiAgfTtcbiAgcmVzcG9uZGVyOiB7XG4gICAgaWQ6IElEO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG4gIGNyZWF0ZWQ6IERhdGVUaW1lO1xuICBtb2RpZmllZDogRGF0ZVRpbWU7XG4gIHRva2VuRXhwaXJ5VGltZTogRGF0ZVRpbWU7XG4gIGlzRXhwaXJlZDogYm9vbGVhbjtcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlcjogc3RyaW5nO1xuICBpbml0aWF0b3JSb290S2V5Q2lwaGVyQ2xlYXJKc29uOiBKU09OT2JqZWN0O1xuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZDogYm9vbGVhbjtcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHJlc3BvbmRlckVtYWlsQWRkcmVzczogTHJFbWFpbDtcbiAgb3RrOiB7XG4gICAgc3RhdGU6ICdPVEtfSU5JVElBVEVEJyB8ICdPVEtfQUNDRVBURUQnIHwgJ09US19DT01QTEVURUQnO1xuICAgIG90S2V5UGFyYW1zOiBzdHJpbmc7XG4gICAgb3RLZXlDaXBoZXI6IHN0cmluZztcbiAgICBvdEtleT86IEpXSy5LZXk7XG4gICAgb3RLZXlDaXBoZXJDbGVhckpzb24/OiBPdEtleUNpcGhlckNsZWFySnNvbjI7XG4gICAgc2hhcmVkS2V5OiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgICBta1NoYXJlZEtleToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gICAgaW5pdGlhdG9yU2lnUHhrOiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgICByZXNwb25kZXJTaWdQeGs6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICAgIGluaXRpYXRvck9uZVRpbWVQYmtDaXBoZXI6IHN0cmluZztcbiAgICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyQ2xlYXJKc29uOiBKU09OT2JqZWN0O1xuICAgIHJlc3BvbmRlclBia0NpcGhlcjogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgS2V5RXhjaGFuZ2VGaWVsZHMgPSBgXG4gIGlkXG4gIHRva2VuXG4gIHN0YXRlXG4gIG1vZGVcbiAgaXNJbml0aWF0b3JcbiAgaW5pdGlhdG9yIHtcbiAgICBpZFxuICAgIHVzZXJuYW1lXG4gICAgY29uZmlnXG4gIH1cbiAgcmVzcG9uZGVyIHtcbiAgICBpZFxuICAgIHVzZXJuYW1lXG4gIH1cbiAgY3JlYXRlZFxuICBtb2RpZmllZFxuICB0b2tlbkV4cGlyeVRpbWVcbiAgaXNFeHBpcmVkXG4gIGluaXRpYXRvclJvb3RLZXlDaXBoZXJcbiAgaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWRcbiAgcmVzcG9uZGVyRW1haWxBZGRyZXNzXG4gIG90ayB7XG4gICAgc3RhdGVcbiAgICBvdEtleVBhcmFtc1xuICAgIG90S2V5Q2lwaGVyXG4gICAgc2hhcmVkS2V5IHtcbiAgICAgIGlkXG4gICAgfVxuICAgIG1rU2hhcmVkS2V5IHtcbiAgICAgIGlkXG4gICAgfVxuICAgIGluaXRpYXRvclNpZ1B4ayB7XG4gICAgICBpZFxuICAgIH1cbiAgICByZXNwb25kZXJTaWdQeGsge1xuICAgICAgaWRcbiAgICB9XG4gICAgaW5pdGlhdG9yT25lVGltZVBia0NpcGhlclxuICAgIHJlc3BvbmRlclBia0NpcGhlclxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTaGFyZWRLZXlGaWVsZHNSZXN1bHQge1xuICB1c2VyU2lnUHJrOiB7XG4gICAgaWQ6IElEO1xuICB9O1xuICBvdGhlclNpZ1Biazoge1xuICAgIGlkOiBJRDtcbiAgfTtcbiAgc2hhcmVkS2V5OiB7XG4gICAgaWQ6IElEO1xuICB9O1xuICBta1NoYXJlZEtleToge1xuICAgIGlkOiBJRDtcbiAgfTtcbiAgbWtQeGs6IHtcbiAgICBpZDogSUQ7XG4gICAgcGJrOiBKU09OT2JqZWN0O1xuICB9O1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyOiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyOiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlcXVlc3RTZW50OiBib29sZWFuO1xuICBta1Jlc2hhcmVSZXNwb25zZVNlbnQ6IGJvb2xlYW47XG59XG5leHBvcnQgY29uc3QgVXNlclNoYXJlZEtleUZpZWxkcyA9IGBcbiAgdXNlclNpZ1ByayB7XG4gICAgaWRcbiAgfVxuICBvdGhlclNpZ1BiayB7XG4gICAgaWRcbiAgfVxuICBzaGFyZWRLZXkge1xuICAgIGlkXG4gIH1cbiAgbWtTaGFyZWRLZXkge1xuICAgIGlkXG4gIH1cbiAgbWtQeGsge1xuICAgIGlkXG4gICAgcGJrXG4gIH1cbiAgbWtSZXNoYXJlUmVxdWVzdENpcGhlclxuICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICBta1Jlc2hhcmVSZXF1ZXN0U2VudFxuICBta1Jlc2hhcmVSZXNwb25zZVNlbnRcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VzUXVlcnkyIHtcbiAga2V5RXhjaGFuZ2VzOiBDb25uZWN0aW9uPEtleUV4Y2hhbmdlRmllbGRzUmVzdWx0Pjtcbn1cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZXNRdWVyeTIgPSBncWxUeXBlZDxLZXlFeGNoYW5nZXNRdWVyeTI+YFxucXVlcnkgS2V5RXhjaGFuZ2VzUXVlcnkyKCRzdGF0ZTogU3RyaW5nKSB7XG4gIGtleUV4Y2hhbmdlcyhzdGF0ZTogJHN0YXRlKSB7XG4gICAgZWRnZXMge1xuICAgICAgbm9kZSB7XG4gICAgICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlUXVlcnkyIHtcbiAga2V5RXhjaGFuZ2U6IEtleUV4Y2hhbmdlRmllbGRzUmVzdWx0O1xufVxuZXhwb3J0IGNvbnN0IEtleUV4Y2hhbmdlUXVlcnkyID0gZ3FsVHlwZWQ8S2V5RXhjaGFuZ2VRdWVyeTI+YFxucXVlcnkgS2V5RXhjaGFuZ2VRdWVyeTIoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAga2V5RXhjaGFuZ2UoaWQ6ICRpZCkge1xuICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XG4gIH1cbn1cbmA7XG5cbi8vIEtleSBncmFwaCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYXV0aGVudGljYXRlZCB1c2Vycy4gVGhpcyBxdWVyeVxuLy8gaXMgZm9yIHVuYXV0aGVudGljYXRlZCB1c2Vycy5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VUb2tlblF1ZXJ5MiB7XG4gIGtleUV4Y2hhbmdlOiBLZXlFeGNoYW5nZUZpZWxkc1Jlc3VsdDtcbn1cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZVRva2VuUXVlcnkyID0gZ3FsVHlwZWQ8S2V5RXhjaGFuZ2VUb2tlblF1ZXJ5Mj5gXG5xdWVyeSBLZXlFeGNoYW5nZVRva2VuUXVlcnkyKCRpZDogTHJSZWxheUlkSW5wdXQhLCAkdG9rZW46IFN0cmluZykge1xuICBrZXlFeGNoYW5nZShpZDogJGlkLCB0b2tlbjogJHRva2VuKSB7XG4gICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxLZXlFeGNoYW5nZU11dGF0aW9uIHtcbiAgY2FuY2VsS2V5RXhjaGFuZ2U6IHtcbiAgICBrZXlFeGNoYW5nZToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ2FuY2VsS2V5RXhjaGFuZ2VNdXRhdGlvbiA9IGdxbFR5cGVkPENhbmNlbEtleUV4Y2hhbmdlTXV0YXRpb24+YFxubXV0YXRpb24gQ2FuY2VsS2V5RXhjaGFuZ2VNdXRhdGlvbigkaW5wdXQ6IENhbmNlbEtleUV4Y2hhbmdlSW5wdXQhKSB7XG4gIGNhbmNlbEtleUV4Y2hhbmdlKGlucHV0OiAkaW5wdXQpIHtcbiAgICBrZXlFeGNoYW5nZSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBEZWNsaW5lS2V5RXhjaGFuZ2VNdXRhdGlvbiB7XG4gIGRlY2xpbmVLZXlFeGNoYW5nZToge1xuICAgIGtleUV4Y2hhbmdlOiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBEZWNsaW5lS2V5RXhjaGFuZ2VNdXRhdGlvbiA9IGdxbFR5cGVkPERlY2xpbmVLZXlFeGNoYW5nZU11dGF0aW9uPmBcbm11dGF0aW9uIERlY2xpbmVLZXlFeGNoYW5nZU11dGF0aW9uKCRpbnB1dDogRGVjbGluZUtleUV4Y2hhbmdlSW5wdXQhKSB7XG4gIGRlY2xpbmVLZXlFeGNoYW5nZShpbnB1dDogJGlucHV0KSB7XG4gICAga2V5RXhjaGFuZ2Uge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5pdGlhdGVLZXlFeGNoYW5nZU90a011dGF0aW9uIHtcbiAgaW5pdGlhdGVLZXlFeGNoYW5nZU90azoge1xuICAgIGtleUV4Y2hhbmdlOiBLZXlFeGNoYW5nZUZpZWxkc1Jlc3VsdDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBJbml0aWF0ZUtleUV4Y2hhbmdlT3RrTXV0YXRpb24gPSBncWxUeXBlZDxJbml0aWF0ZUtleUV4Y2hhbmdlT3RrTXV0YXRpb24+YFxubXV0YXRpb24gSW5pdGlhdGVLZXlFeGNoYW5nZU90a011dGF0aW9uKFxuICAkaW5wdXQ6IEluaXRpYXRlS2V5RXhjaGFuZ2VPdGtJbnB1dCFcbikge1xuICBpbml0aWF0ZUtleUV4Y2hhbmdlT3RrKGlucHV0OiAkaW5wdXQpIHtcbiAgICBrZXlFeGNoYW5nZSB7XG4gICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25kS2V5RXhjaGFuZ2VPdGtNdXRhdGlvbiB7XG4gIHJlc3BvbmRLZXlFeGNoYW5nZU90azoge1xuICAgIGtleUV4Y2hhbmdlOiBLZXlFeGNoYW5nZUZpZWxkc1Jlc3VsdDtcbiAgICB1c2VyU2hhcmVkS2V5OiBVc2VyU2hhcmVkS2V5RmllbGRzUmVzdWx0O1xuICAgIHRwOiB7XG4gICAgICBpZDogSUQ7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGNvbmZpZzogdW5rbm93bjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBSZXNwb25kS2V5RXhjaGFuZ2VPdGtNdXRhdGlvbiA9IGdxbFR5cGVkPFJlc3BvbmRLZXlFeGNoYW5nZU90a011dGF0aW9uPmBcbm11dGF0aW9uIFJlc3BvbmRLZXlFeGNoYW5nZU90a011dGF0aW9uKCRpbnB1dDogUmVzcG9uZEtleUV4Y2hhbmdlT3RrSW5wdXQhKSB7XG4gIHJlc3BvbmRLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gICAga2V5RXhjaGFuZ2Uge1xuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICB9XG4gICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XG4gICAgfVxuICAgIHRwIHtcbiAgICAgIGlkXG4gICAgICB1c2VyIHtcbiAgICAgICAgY29uZmlnXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlS2V5RXhjaGFuZ2VPdGtNdXRhdGlvbiB7XG4gIGNvbXBsZXRlS2V5RXhjaGFuZ2VPdGs6IHtcbiAgICBrZXlFeGNoYW5nZTogS2V5RXhjaGFuZ2VGaWVsZHNSZXN1bHQ7XG4gICAgdXNlclNoYXJlZEtleTogVXNlclNoYXJlZEtleUZpZWxkc1Jlc3VsdDtcbiAgICB0cDoge1xuICAgICAgaWQ6IElEO1xuICAgICAgdXNlcjoge1xuICAgICAgICBjb25maWc6IHVua25vd247XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ29tcGxldGVLZXlFeGNoYW5nZU90a011dGF0aW9uID0gZ3FsVHlwZWQ8Q29tcGxldGVLZXlFeGNoYW5nZU90a011dGF0aW9uPmBcbm11dGF0aW9uIENvbXBsZXRlS2V5RXhjaGFuZ2VPdGtNdXRhdGlvbihcbiAgJGlucHV0OiBDb21wbGV0ZUtleUV4Y2hhbmdlT3RrSW5wdXQhXG4pIHtcbiAgY29tcGxldGVLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gICAga2V5RXhjaGFuZ2Uge1xuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICB9XG4gICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XG4gICAgfVxuICAgIHRwIHtcbiAgICAgIGlkXG4gICAgICB1c2VyIHtcbiAgICAgICAgY29uZmlnXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkyIHtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXk6IHtcbiAgICB1c2VyU2hhcmVkS2V5OiBVc2VyU2hhcmVkS2V5RmllbGRzUmVzdWx0O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkyID0gZ3FsVHlwZWQ8Q3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeTI+YFxucXVlcnkgQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeTIoXG4gICR1c2VybmFtZTogU3RyaW5nXG4gICR1c2VySWQ6IExyUmVsYXlJZElucHV0XG4pIHtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXkoXG4gICAgdXNlcm5hbWU6ICR1c2VybmFtZVxuICAgIHVzZXJJZDogJHVzZXJJZFxuICApIHtcbiAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgICR7VXNlclNoYXJlZEtleUZpZWxkc31cbiAgICB9XG4gIH1cbn1cbmA7XG4iXX0=
|