mindoodb 0.0.94 → 0.0.95
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/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +17 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +63 -4
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +10 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +45 -3
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +22 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +33 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/browser/index.mjs +37 -0
- package/dist/core/BaseMindooDB.d.ts +9 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +65 -2
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +75 -1
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +229 -7
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +165 -2
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +648 -112
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +30 -0
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +95 -0
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/accesscontrol/DirectoryStateNode.d.ts +45 -0
- package/dist/core/accesscontrol/DirectoryStateNode.d.ts.map +1 -1
- package/dist/core/accesscontrol/DirectoryStateNode.js +58 -0
- package/dist/core/accesscontrol/DirectoryStateNode.js.map +1 -1
- package/dist/core/accesscontrol/adminKeys.d.ts +130 -0
- package/dist/core/accesscontrol/adminKeys.d.ts.map +1 -0
- package/dist/core/accesscontrol/adminKeys.js +164 -0
- package/dist/core/accesscontrol/adminKeys.js.map +1 -0
- package/dist/core/accesscontrol/directoryAdminResolver.d.ts +54 -0
- package/dist/core/accesscontrol/directoryAdminResolver.d.ts.map +1 -0
- package/dist/core/accesscontrol/directoryAdminResolver.js +217 -0
- package/dist/core/accesscontrol/directoryAdminResolver.js.map +1 -0
- package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -1
- package/dist/core/accesscontrol/directoryProjection.js +25 -0
- package/dist/core/accesscontrol/directoryProjection.js.map +1 -1
- package/dist/core/accesscontrol/grantKeys.d.ts +16 -0
- package/dist/core/accesscontrol/grantKeys.d.ts.map +1 -1
- package/dist/core/accesscontrol/grantKeys.js +37 -0
- package/dist/core/accesscontrol/grantKeys.js.map +1 -1
- package/dist/core/accesscontrol/types.d.ts +11 -2
- package/dist/core/accesscontrol/types.d.ts.map +1 -1
- package/dist/core/accesscontrol/types.js +7 -0
- package/dist/core/accesscontrol/types.js.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.js +8 -0
- package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -1
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +16 -1
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +13 -0
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.js.map +1 -1
- package/dist/core/builtinDbInvariants.d.ts +18 -2
- package/dist/core/builtinDbInvariants.d.ts.map +1 -1
- package/dist/core/builtinDbInvariants.js +41 -5
- package/dist/core/builtinDbInvariants.js.map +1 -1
- package/dist/core/index.d.ts +4 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +26 -5
- package/dist/core/index.js.map +1 -1
- package/dist/core/live/LiveChannel.d.ts +41 -0
- package/dist/core/live/LiveChannel.d.ts.map +1 -0
- package/dist/core/live/LiveChannel.js +151 -0
- package/dist/core/live/LiveChannel.js.map +1 -0
- package/dist/core/types.d.ts +182 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/uri/MindooURI.d.ts +1 -1
- package/dist/core/uri/MindooURI.d.ts.map +1 -1
- package/dist/core/uri/MindooURI.js +2 -0
- package/dist/core/uri/MindooURI.js.map +1 -1
- package/dist/core/uri/adminUri.d.ts +52 -0
- package/dist/core/uri/adminUri.d.ts.map +1 -0
- package/dist/core/uri/adminUri.js +100 -0
- package/dist/core/uri/adminUri.js.map +1 -0
- package/dist/core/uri/joinRequestUri.d.ts.map +1 -1
- package/dist/core/uri/joinRequestUri.js +14 -1
- package/dist/core/uri/joinRequestUri.js.map +1 -1
- package/dist/core/userid/index.d.ts +9 -0
- package/dist/core/userid/index.d.ts.map +1 -1
- package/dist/core/userkeys/UserKeyDocument.d.ts +7 -1
- package/dist/core/userkeys/UserKeyDocument.d.ts.map +1 -1
- package/dist/core/userkeys/UserKeyDocument.js +14 -3
- package/dist/core/userkeys/UserKeyDocument.js.map +1 -1
- package/dist/core/userkeys/UserKeyManager.d.ts +95 -4
- package/dist/core/userkeys/UserKeyManager.d.ts.map +1 -1
- package/dist/core/userkeys/UserKeyManager.js +606 -59
- package/dist/core/userkeys/UserKeyManager.js.map +1 -1
- package/dist/core/userkeys/deviceCertificate.d.ts +46 -0
- package/dist/core/userkeys/deviceCertificate.d.ts.map +1 -0
- package/dist/core/userkeys/deviceCertificate.js +86 -0
- package/dist/core/userkeys/deviceCertificate.js.map +1 -0
- package/dist/core/userkeys/generationSignature.d.ts +32 -0
- package/dist/core/userkeys/generationSignature.d.ts.map +1 -0
- package/dist/core/userkeys/generationSignature.js +136 -0
- package/dist/core/userkeys/generationSignature.js.map +1 -0
- package/dist/core/userkeys/generationValidity.d.ts +75 -0
- package/dist/core/userkeys/generationValidity.d.ts.map +1 -0
- package/dist/core/userkeys/generationValidity.js +175 -0
- package/dist/core/userkeys/generationValidity.js.map +1 -0
- package/dist/core/userkeys/index.d.ts +5 -2
- package/dist/core/userkeys/index.d.ts.map +1 -1
- package/dist/core/userkeys/index.js +21 -1
- package/dist/core/userkeys/index.js.map +1 -1
- package/dist/core/userkeys/resolveUserKeyDocument.d.ts +16 -0
- package/dist/core/userkeys/resolveUserKeyDocument.d.ts.map +1 -1
- package/dist/core/userkeys/resolveUserKeyDocument.js +42 -1
- package/dist/core/userkeys/resolveUserKeyDocument.js.map +1 -1
- package/dist/core/userkeys/types.d.ts +26 -0
- package/dist/core/userkeys/types.d.ts.map +1 -1
- package/dist/core/userkeys/types.js +3 -1
- package/dist/core/userkeys/types.js.map +1 -1
- package/dist/core/userkeys/validateUserKeyDocument.d.ts.map +1 -1
- package/dist/core/userkeys/validateUserKeyDocument.js +7 -0
- package/dist/core/userkeys/validateUserKeyDocument.js.map +1 -1
- package/dist/node/server/MindooDBServer.d.ts.map +1 -1
- package/dist/node/server/MindooDBServer.js +11 -0
- package/dist/node/server/MindooDBServer.js.map +1 -1
- package/dist/server/SyncEventBus.d.ts +22 -0
- package/dist/server/SyncEventBus.d.ts.map +1 -1
- package/dist/server/SyncEventBus.js +21 -0
- package/dist/server/SyncEventBus.js.map +1 -1
- package/dist/server/TenantManager.d.ts +9 -0
- package/dist/server/TenantManager.d.ts.map +1 -1
- package/dist/server/TenantManager.js +96 -0
- package/dist/server/TenantManager.js.map +1 -1
- package/dist/server/http/MindooDBServerCore.d.ts +39 -1
- package/dist/server/http/MindooDBServerCore.d.ts.map +1 -1
- package/dist/server/http/MindooDBServerCore.js +121 -2
- package/dist/server/http/MindooDBServerCore.js.map +1 -1
- package/dist/server/http/types.d.ts +10 -1
- package/dist/server/http/types.d.ts.map +1 -1
- package/dist/server/http/types.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MindooURI.js","sourceRoot":"","sources":["../../../src/core/uri/MindooURI.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;
|
|
1
|
+
{"version":3,"file":"MindooURI.js","sourceRoot":"","sources":["../../../src/core/uri/MindooURI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mdb://admin-request/...` and `mdb://admin-response/...` (docs/accesscontrol.md §6.13).
|
|
3
|
+
*
|
|
4
|
+
* The admin request is the delegated-admin counterpart of a join request: the
|
|
5
|
+
* future admin's device creates a dedicated admin identity and exports its
|
|
6
|
+
* public keys. The root admin approves it, which writes the admin-key document,
|
|
7
|
+
* and returns an admin response: the tenant's root keys (the trust anchor never
|
|
8
|
+
* changes) plus the tenant `default` and `$publicinfos` keys RSA-OAEP-wrapped to
|
|
9
|
+
* the new admin key, like a v3 join response.
|
|
10
|
+
*/
|
|
11
|
+
import type { JoinResponseEncryptedDocKey } from "../types";
|
|
12
|
+
/** A request to become a delegated administrator. Public keys only. */
|
|
13
|
+
export interface AdminRequest {
|
|
14
|
+
v: 1;
|
|
15
|
+
/** Ed25519 public key of the admin identity (PEM). */
|
|
16
|
+
signingPublicKey: string;
|
|
17
|
+
/** RSA-OAEP public key of the admin identity (PEM). */
|
|
18
|
+
encryptionPublicKey: string;
|
|
19
|
+
/** The tenant the request is meant for (lets the root's UI catch a mix-up). */
|
|
20
|
+
tenantId?: string;
|
|
21
|
+
/** Suggested name of the admin; the root may override it. */
|
|
22
|
+
name?: string;
|
|
23
|
+
/** Suggested device label, e.g. "Laptop". */
|
|
24
|
+
label?: string;
|
|
25
|
+
}
|
|
26
|
+
/** The root's answer to an {@link AdminRequest}. */
|
|
27
|
+
export interface AdminResponse {
|
|
28
|
+
v: 1;
|
|
29
|
+
tenantId: string;
|
|
30
|
+
/** The tenant's ROOT admin signing key — still the trust anchor to open the tenant with. */
|
|
31
|
+
adminSigningPublicKey: string;
|
|
32
|
+
/** The tenant's root admin encryption key. */
|
|
33
|
+
adminEncryptionPublicKey: string;
|
|
34
|
+
/** The approved delegated admin key (echo of the request). */
|
|
35
|
+
signingPublicKey: string;
|
|
36
|
+
/** The name the admin was registered under. */
|
|
37
|
+
name: string;
|
|
38
|
+
label?: string;
|
|
39
|
+
tenantLabel?: string;
|
|
40
|
+
serverUrl?: string;
|
|
41
|
+
/** `default` and `$publicinfos`, every version RSA-OAEP-wrapped to the admin's encryption key. */
|
|
42
|
+
encryptedDocKeys: JoinResponseEncryptedDocKey[];
|
|
43
|
+
}
|
|
44
|
+
/** Encode an {@link AdminRequest} as `mdb://admin-request/...`. */
|
|
45
|
+
export declare function encodeAdminRequestUri(request: AdminRequest): string;
|
|
46
|
+
/** Decode and validate `mdb://admin-request/...` (or pass an object through validation). */
|
|
47
|
+
export declare function decodeAdminRequestUri(uri: string | AdminRequest): AdminRequest;
|
|
48
|
+
/** Encode an {@link AdminResponse} as `mdb://admin-response/...`. */
|
|
49
|
+
export declare function encodeAdminResponseUri(response: AdminResponse): string;
|
|
50
|
+
/** Decode and validate `mdb://admin-response/...`. */
|
|
51
|
+
export declare function decodeAdminResponseUri(uri: string | AdminResponse): AdminResponse;
|
|
52
|
+
//# sourceMappingURL=adminUri.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminUri.d.ts","sourceRoot":"","sources":["../../../src/core/uri/adminUri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAG5D,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,CAAC,CAAC;IACL,sDAAsD;IACtD,gBAAgB,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,wBAAwB,EAAE,MAAM,CAAC;IACjC,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,gBAAgB,EAAE,2BAA2B,EAAE,CAAC;CACjD;AAaD,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAEnE;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CA2B9E;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAEtE;AAED,sDAAsD;AACtD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAkCjF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeAdminRequestUri = encodeAdminRequestUri;
|
|
4
|
+
exports.decodeAdminRequestUri = decodeAdminRequestUri;
|
|
5
|
+
exports.encodeAdminResponseUri = encodeAdminResponseUri;
|
|
6
|
+
exports.decodeAdminResponseUri = decodeAdminResponseUri;
|
|
7
|
+
const MindooURI_1 = require("./MindooURI");
|
|
8
|
+
function requireString(value, field, kind) {
|
|
9
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
10
|
+
throw new Error(`Invalid ${kind}: "${field}" is missing`);
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
function optionalString(value) {
|
|
15
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
16
|
+
}
|
|
17
|
+
/** Encode an {@link AdminRequest} as `mdb://admin-request/...`. */
|
|
18
|
+
function encodeAdminRequestUri(request) {
|
|
19
|
+
return (0, MindooURI_1.encodeMindooURI)("admin-request", request);
|
|
20
|
+
}
|
|
21
|
+
/** Decode and validate `mdb://admin-request/...` (or pass an object through validation). */
|
|
22
|
+
function decodeAdminRequestUri(uri) {
|
|
23
|
+
let payload;
|
|
24
|
+
if (typeof uri === "string") {
|
|
25
|
+
if (!(0, MindooURI_1.isMindooURI)(uri.trim())) {
|
|
26
|
+
throw new Error("Invalid admin request: expected a mdb://admin-request/... URI");
|
|
27
|
+
}
|
|
28
|
+
const decoded = (0, MindooURI_1.decodeMindooURI)(uri.trim());
|
|
29
|
+
if (decoded.type !== "admin-request") {
|
|
30
|
+
throw new Error(`Invalid URI type: expected "admin-request", got "${decoded.type}"`);
|
|
31
|
+
}
|
|
32
|
+
payload = decoded.payload;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
payload = uri;
|
|
36
|
+
}
|
|
37
|
+
if (payload.v !== 1)
|
|
38
|
+
throw new Error(`Unsupported admin request version: ${String(payload.v)}`);
|
|
39
|
+
const request = {
|
|
40
|
+
v: 1,
|
|
41
|
+
signingPublicKey: requireString(payload.signingPublicKey, "signingPublicKey", "admin request"),
|
|
42
|
+
encryptionPublicKey: requireString(payload.encryptionPublicKey, "encryptionPublicKey", "admin request"),
|
|
43
|
+
};
|
|
44
|
+
const tenantId = optionalString(payload.tenantId);
|
|
45
|
+
const name = optionalString(payload.name);
|
|
46
|
+
const label = optionalString(payload.label);
|
|
47
|
+
if (tenantId)
|
|
48
|
+
request.tenantId = tenantId;
|
|
49
|
+
if (name)
|
|
50
|
+
request.name = name;
|
|
51
|
+
if (label)
|
|
52
|
+
request.label = label;
|
|
53
|
+
return request;
|
|
54
|
+
}
|
|
55
|
+
/** Encode an {@link AdminResponse} as `mdb://admin-response/...`. */
|
|
56
|
+
function encodeAdminResponseUri(response) {
|
|
57
|
+
return (0, MindooURI_1.encodeMindooURI)("admin-response", response);
|
|
58
|
+
}
|
|
59
|
+
/** Decode and validate `mdb://admin-response/...`. */
|
|
60
|
+
function decodeAdminResponseUri(uri) {
|
|
61
|
+
let payload;
|
|
62
|
+
if (typeof uri === "string") {
|
|
63
|
+
if (!(0, MindooURI_1.isMindooURI)(uri.trim())) {
|
|
64
|
+
throw new Error("Invalid admin response: expected a mdb://admin-response/... URI");
|
|
65
|
+
}
|
|
66
|
+
const decoded = (0, MindooURI_1.decodeMindooURI)(uri.trim());
|
|
67
|
+
if (decoded.type !== "admin-response") {
|
|
68
|
+
throw new Error(`Invalid URI type: expected "admin-response", got "${decoded.type}"`);
|
|
69
|
+
}
|
|
70
|
+
payload = decoded.payload;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
payload = uri;
|
|
74
|
+
}
|
|
75
|
+
if (payload.v !== 1)
|
|
76
|
+
throw new Error(`Unsupported admin response version: ${String(payload.v)}`);
|
|
77
|
+
if (!Array.isArray(payload.encryptedDocKeys)) {
|
|
78
|
+
throw new Error('Invalid admin response: "encryptedDocKeys" is missing');
|
|
79
|
+
}
|
|
80
|
+
const response = {
|
|
81
|
+
v: 1,
|
|
82
|
+
tenantId: requireString(payload.tenantId, "tenantId", "admin response"),
|
|
83
|
+
adminSigningPublicKey: requireString(payload.adminSigningPublicKey, "adminSigningPublicKey", "admin response"),
|
|
84
|
+
adminEncryptionPublicKey: requireString(payload.adminEncryptionPublicKey, "adminEncryptionPublicKey", "admin response"),
|
|
85
|
+
signingPublicKey: requireString(payload.signingPublicKey, "signingPublicKey", "admin response"),
|
|
86
|
+
name: requireString(payload.name, "name", "admin response"),
|
|
87
|
+
encryptedDocKeys: payload.encryptedDocKeys,
|
|
88
|
+
};
|
|
89
|
+
const label = optionalString(payload.label);
|
|
90
|
+
const tenantLabel = optionalString(payload.tenantLabel);
|
|
91
|
+
const serverUrl = optionalString(payload.serverUrl);
|
|
92
|
+
if (label)
|
|
93
|
+
response.label = label;
|
|
94
|
+
if (tenantLabel)
|
|
95
|
+
response.tenantLabel = tenantLabel;
|
|
96
|
+
if (serverUrl)
|
|
97
|
+
response.serverUrl = serverUrl;
|
|
98
|
+
return response;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=adminUri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminUri.js","sourceRoot":"","sources":["../../../src/core/uri/adminUri.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinRequestUri.d.ts","sourceRoot":"","sources":["../../../src/core/uri/joinRequestUri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AA8FjE;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAgChF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"joinRequestUri.d.ts","sourceRoot":"","sources":["../../../src/core/uri/joinRequestUri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AA8FjE;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAgChF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAkCjE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAM7D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,GACd,WAAW,CA+Db"}
|
|
@@ -142,7 +142,10 @@ function encodeJoinRequestUri(request) {
|
|
|
142
142
|
const signing = toCompactKey(request.signingPublicKey);
|
|
143
143
|
const encryption = toCompactKey(request.encryptionPublicKey);
|
|
144
144
|
const userKey = request.userPublicKey ? toCompactKey(request.userPublicKey) : true;
|
|
145
|
-
|
|
145
|
+
const selfGrantKey = request.deviceSelfGrantPublicKey
|
|
146
|
+
? toCompactKey(request.deviceSelfGrantPublicKey)
|
|
147
|
+
: true;
|
|
148
|
+
if (!signing || !encryption || userKey === null || selfGrantKey === null) {
|
|
146
149
|
return (0, MindooURI_1.encodeMindooURI)("join-request", request);
|
|
147
150
|
}
|
|
148
151
|
const payload = { v: COMPACT_VERSION, s: signing, e: encryption };
|
|
@@ -157,6 +160,9 @@ function encodeJoinRequestUri(request) {
|
|
|
157
160
|
if (typeof userKey === "string") {
|
|
158
161
|
payload.k = userKey;
|
|
159
162
|
}
|
|
163
|
+
if (typeof selfGrantKey === "string") {
|
|
164
|
+
payload.g = selfGrantKey;
|
|
165
|
+
}
|
|
160
166
|
const requestedDocKeyIds = normalizeRequestedDocKeyIds(request.requestedDocKeyIds);
|
|
161
167
|
if (requestedDocKeyIds) {
|
|
162
168
|
payload.d = requestedDocKeyIds;
|
|
@@ -200,6 +206,9 @@ function normalizeJoinRequestPayload(payload, version) {
|
|
|
200
206
|
if (typeof payload.k === "string" && payload.k) {
|
|
201
207
|
request.userPublicKey = readCompactKey(payload.k, "k");
|
|
202
208
|
}
|
|
209
|
+
if (typeof payload.g === "string" && payload.g) {
|
|
210
|
+
request.deviceSelfGrantPublicKey = readCompactKey(payload.g, "g");
|
|
211
|
+
}
|
|
203
212
|
const requestedDocKeyIds = normalizeRequestedDocKeyIds(payload.d);
|
|
204
213
|
if (requestedDocKeyIds) {
|
|
205
214
|
request.requestedDocKeyIds = requestedDocKeyIds;
|
|
@@ -224,6 +233,10 @@ function normalizeJoinRequestPayload(payload, version) {
|
|
|
224
233
|
if (userPublicKey) {
|
|
225
234
|
request.userPublicKey = userPublicKey;
|
|
226
235
|
}
|
|
236
|
+
const deviceSelfGrantPublicKey = readOptionalText(payload.deviceSelfGrantPublicKey, MAX_KEY_BASE64_CHARS * 2);
|
|
237
|
+
if (deviceSelfGrantPublicKey) {
|
|
238
|
+
request.deviceSelfGrantPublicKey = deviceSelfGrantPublicKey;
|
|
239
|
+
}
|
|
227
240
|
const requestedDocKeyIds = normalizeRequestedDocKeyIds(payload.requestedDocKeyIds);
|
|
228
241
|
if (requestedDocKeyIds) {
|
|
229
242
|
request.requestedDocKeyIds = requestedDocKeyIds;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinRequestUri.js","sourceRoot":"","sources":["../../../src/core/uri/joinRequestUri.ts"],"names":[],"mappings":";;AAgHA,kEAgCC;AASD,
|
|
1
|
+
{"version":3,"file":"joinRequestUri.js","sourceRoot":"","sources":["../../../src/core/uri/joinRequestUri.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,5 +48,14 @@ export interface PrivateUserId {
|
|
|
48
48
|
* request and included in paper backups of this object.
|
|
49
49
|
*/
|
|
50
50
|
userKeyPair?: EncryptionKeyPair;
|
|
51
|
+
/**
|
|
52
|
+
* Person-level Ed25519 "device self-grant" key (docs/userkeys.md §9).
|
|
53
|
+
* Generated together with the User-Key on the person's first device,
|
|
54
|
+
* password-encrypted with salt `"deviceselfgrant"`, and wrapped to every
|
|
55
|
+
* approved device inside the User-Key document. When the admin names its
|
|
56
|
+
* public key in the person's grant (`deviceSelfGrant`), it signs device
|
|
57
|
+
* certificates and new User-Key generations.
|
|
58
|
+
*/
|
|
59
|
+
deviceSelfGrantKeyPair?: SigningKeyPair;
|
|
51
60
|
}
|
|
52
61
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/userid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,eAAe,EACf,mCAAmC,EACnC,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,kBAAkB,EAAE,cAAc,CAAC;IAEnC;;;;OAIG;IACH,qBAAqB,EAAE,iBAAiB,CAAC;IAEzC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/userid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,eAAe,EACf,mCAAmC,EACnC,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,kBAAkB,EAAE,cAAc,CAAC;IAEnC;;;;OAIG;IACH,qBAAqB,EAAE,iBAAiB,CAAC;IAEzC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,cAAc,CAAC;CACzC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EncryptedPrivateKey, MindooDB, MindooDoc, SigningKeyPair } from "../types";
|
|
2
2
|
import type { CryptoAdapter } from "../crypto/CryptoAdapter";
|
|
3
|
-
import { currentUserKeyEpoch, isPendingUserKeyDocument, userKeyDocumentId, type UserKeyDeviceWrap, type UserKeyDocumentPayload, type UserKeyGeneration } from "./types";
|
|
3
|
+
import { currentUserKeyEpoch, isPendingUserKeyDocument, userKeyDocumentId, type UserKeyDeviceWrap, type UserKeyDocumentPayload, type UserKeyGeneration, type UserKeyGenerationSignature } from "./types";
|
|
4
4
|
export { isPendingUserKeyDocument, currentUserKeyEpoch, userKeyDocumentId };
|
|
5
5
|
/** Copy `username_hash` / `username_hash_v` from a grantaccess document (docs/userkeys.md §6.1). */
|
|
6
6
|
export declare function usernameHashBindingFromGrant(data: Record<string, unknown>): {
|
|
@@ -13,6 +13,9 @@ export declare function buildPendingUserKeyPayload(input: {
|
|
|
13
13
|
publicKey: string;
|
|
14
14
|
fingerprint: string;
|
|
15
15
|
createdAt: number;
|
|
16
|
+
/** Generation signing key and signatures (docs/userkeys.md §9.3). */
|
|
17
|
+
signingPublicKey?: string;
|
|
18
|
+
signatures?: UserKeyGenerationSignature[];
|
|
16
19
|
}): UserKeyDocumentPayload;
|
|
17
20
|
export declare function createPendingUserKeyDocument(input: {
|
|
18
21
|
db: MindooDB;
|
|
@@ -21,6 +24,9 @@ export declare function createPendingUserKeyDocument(input: {
|
|
|
21
24
|
usernameHashVersion: number;
|
|
22
25
|
publicKey: string;
|
|
23
26
|
fingerprint: string;
|
|
27
|
+
createdAt?: number;
|
|
28
|
+
signingPublicKey?: string;
|
|
29
|
+
signatures?: UserKeyGenerationSignature[];
|
|
24
30
|
signingKeyPair?: SigningKeyPair;
|
|
25
31
|
signingKeyPassword?: string;
|
|
26
32
|
assumeUniqueId?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserKeyDocument.d.ts","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAIL,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"UserKeyDocument.d.ts","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAIL,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAChC,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAE5E,oGAAoG;AACpG,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,IAAI,CAQP;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,0BAA0B,EAAE,CAAC;CAC3C,GAAG,sBAAsB,CAkBzB;AAwBD,wBAAsB,4BAA4B,CAAC,KAAK,EAAE;IACxD,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,SAAS,CAAC,CA+BrB;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,UAAU,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;CACnC,GAAG,OAAO,CAAC,MAAM,CAAC,CAIlB;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,SAAS,CAAC;CACvC,GAAG,OAAO,CAAC,UAAU,CAAC,CAGtB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,MAAM,GACZ,iBAAiB,GAAG,SAAS,CAE/B;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -42,6 +42,8 @@ function buildPendingUserKeyPayload(input) {
|
|
|
42
42
|
fingerprint: input.fingerprint,
|
|
43
43
|
createdAt: input.createdAt,
|
|
44
44
|
deviceWraps: {},
|
|
45
|
+
...(input.signingPublicKey ? { signingPublicKey: input.signingPublicKey } : {}),
|
|
46
|
+
...(input.signatures?.length ? { signatures: input.signatures } : {}),
|
|
45
47
|
},
|
|
46
48
|
},
|
|
47
49
|
};
|
|
@@ -67,7 +69,9 @@ async function createPendingUserKeyDocument(input) {
|
|
|
67
69
|
usernameHashVersion: input.usernameHashVersion,
|
|
68
70
|
publicKey: input.publicKey,
|
|
69
71
|
fingerprint: input.fingerprint,
|
|
70
|
-
createdAt: Date.now(),
|
|
72
|
+
createdAt: input.createdAt ?? Date.now(),
|
|
73
|
+
signingPublicKey: input.signingPublicKey,
|
|
74
|
+
signatures: input.signatures,
|
|
71
75
|
});
|
|
72
76
|
const id = (0, types_2.userKeyDocumentId)(input.grantDocId);
|
|
73
77
|
const create = {
|
|
@@ -110,8 +114,14 @@ async function writeDeviceWrap(input) {
|
|
|
110
114
|
gen.deviceWraps = { ...(gen.deviceWraps ?? {}) };
|
|
111
115
|
const existing = gen.deviceWraps[input.deviceFingerprint];
|
|
112
116
|
if (existing?.wrappedKey) {
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
const addLabel = !existing.label && !!input.wrap.label;
|
|
118
|
+
const addSelfGrant = !existing.wrappedSelfGrantKey && !!input.wrap.wrappedSelfGrantKey;
|
|
119
|
+
if (addLabel || addSelfGrant) {
|
|
120
|
+
gen.deviceWraps[input.deviceFingerprint] = {
|
|
121
|
+
...existing,
|
|
122
|
+
...(addLabel ? { label: input.wrap.label } : {}),
|
|
123
|
+
...(addSelfGrant ? { wrappedSelfGrantKey: input.wrap.wrappedSelfGrantKey } : {}),
|
|
124
|
+
};
|
|
115
125
|
userKeys[input.epoch] = gen;
|
|
116
126
|
await replaceTopLevelField(input.db, input.doc, "userKeys", userKeys);
|
|
117
127
|
}
|
|
@@ -122,6 +132,7 @@ async function writeDeviceWrap(input) {
|
|
|
122
132
|
approvedAt: input.wrap.approvedAt,
|
|
123
133
|
approvedBySigningPublicKey: input.wrap.approvedBySigningPublicKey,
|
|
124
134
|
...(input.wrap.label ? { label: input.wrap.label } : {}),
|
|
135
|
+
...(input.wrap.wrappedSelfGrantKey ? { wrappedSelfGrantKey: input.wrap.wrappedSelfGrantKey } : {}),
|
|
125
136
|
};
|
|
126
137
|
userKeys[input.epoch] = gen;
|
|
127
138
|
await replaceTopLevelField(input.db, input.doc, "userKeys", userKeys);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserKeyDocument.js","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyDocument.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"UserKeyDocument.js","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyDocument.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { BaseMindooTenant } from "../BaseMindooTenant";
|
|
2
2
|
import type { EncryptionKeyPair, MindooDB, MindooDoc, PrivateUserId, SigningKeyPair } from "../types";
|
|
3
|
+
import { type ResolvedUserKeyDocument } from "./resolveUserKeyDocument";
|
|
4
|
+
import { type DeviceCertificatePayload } from "./deviceCertificate";
|
|
3
5
|
import { type PendingUserKeyDevice, type UserKeyDeviceRow, type UserKeyDocumentPayload, type UserKeyEnrollmentStatus } from "./types";
|
|
4
6
|
export declare class UserKeyManager {
|
|
5
7
|
private readonly tenant;
|
|
@@ -11,6 +13,9 @@ export declare class UserKeyManager {
|
|
|
11
13
|
private seededBytesVerifiedForPublicKey;
|
|
12
14
|
private resolvingOwnDeviceWrap;
|
|
13
15
|
private reconcileInFlight;
|
|
16
|
+
private decryptedSelfGrantBytes;
|
|
17
|
+
private seededSelfGrantBytes;
|
|
18
|
+
private resolvingSelfGrantWrap;
|
|
14
19
|
constructor(tenant: BaseMindooTenant);
|
|
15
20
|
noteUserDirectoryFetched(): void;
|
|
16
21
|
noteUserDirectoryFetchFailed(error: unknown): void;
|
|
@@ -26,8 +31,95 @@ export declare class UserKeyManager {
|
|
|
26
31
|
* from PKCS8 and works on every crypto adapter.
|
|
27
32
|
*/
|
|
28
33
|
private seededBytesBelongToLocalPublicKey;
|
|
34
|
+
/**
|
|
35
|
+
* Inject the device self-grant private key (PKCS8) the host decrypted from
|
|
36
|
+
* the identity (Haven unlock), for sessions opened with an empty password.
|
|
37
|
+
* Used only when it belongs to `PrivateUserId.deviceSelfGrantKeyPair`.
|
|
38
|
+
*/
|
|
39
|
+
seedDecryptedSelfGrantKeyBytes(bytes: Uint8Array): void;
|
|
29
40
|
hasFetchedUserDirectory(): boolean;
|
|
30
41
|
ensureLocalUserKeyPair(user: PrivateUserId, password: string): Promise<EncryptionKeyPair>;
|
|
42
|
+
/**
|
|
43
|
+
* Vouch for another device of this person (docs/userkeys.md §9.6): write a
|
|
44
|
+
* `dcert_<fingerprint>` certificate signed with the person's self-grant key
|
|
45
|
+
* and wrap the User-Key (and self-grant key) to the device, so it can sync,
|
|
46
|
+
* write and read without the admin. Requires the admin to have granted
|
|
47
|
+
* device self-grant with the key this device holds.
|
|
48
|
+
*/
|
|
49
|
+
issueDeviceCertificate(device: {
|
|
50
|
+
signingPublicKey: string;
|
|
51
|
+
encryptionPublicKey: string;
|
|
52
|
+
}, label?: string): Promise<{
|
|
53
|
+
docId: string;
|
|
54
|
+
certificate: DeviceCertificatePayload;
|
|
55
|
+
}>;
|
|
56
|
+
/** This person's device certificates in the local `userdirectory` replica. */
|
|
57
|
+
listOwnDeviceCertificates(): Promise<Array<{
|
|
58
|
+
docId: string;
|
|
59
|
+
fingerprint: string;
|
|
60
|
+
certificate: DeviceCertificatePayload;
|
|
61
|
+
}>>;
|
|
62
|
+
/**
|
|
63
|
+
* Withdraw a certificate this person issued (a device they sold or retired):
|
|
64
|
+
* delete its document, so the device stops counting from the delete's
|
|
65
|
+
* trusted time. `fingerprint` is the device's signing-key fingerprint or the
|
|
66
|
+
* document id. Any device of the person can do this, so against a stolen
|
|
67
|
+
* device the admin revokes the key on the grant instead.
|
|
68
|
+
*/
|
|
69
|
+
revokeOwnDeviceCertificate(fingerprint: string): Promise<number>;
|
|
70
|
+
/**
|
|
71
|
+
* Grant devices plus devices this person certified, for wrapping the
|
|
72
|
+
* User-Key and the self-grant key (rotation, self-grant distribution).
|
|
73
|
+
*/
|
|
74
|
+
private devicesForWrapping;
|
|
75
|
+
private generateLocalSelfGrantKey;
|
|
76
|
+
/**
|
|
77
|
+
* Public half of this person's device self-grant key, as held by this
|
|
78
|
+
* device (docs/userkeys.md §9). The admin names it in the grant with
|
|
79
|
+
* `directory.setDeviceSelfGrant`. `null` while this device holds none.
|
|
80
|
+
*/
|
|
81
|
+
getDeviceSelfGrantPublicKey(): Promise<string | null>;
|
|
82
|
+
/**
|
|
83
|
+
* The self-grant private key (PKCS8): from memory, the password-encrypted
|
|
84
|
+
* copy on the identity, or this device's wrap in the own User-Key document.
|
|
85
|
+
* When the admin named a key in the grant, a held key that differs is not
|
|
86
|
+
* returned as long as a wrap of the granted key exists.
|
|
87
|
+
*/
|
|
88
|
+
getSelfGrantPrivateKeyBytes(): Promise<Uint8Array | null>;
|
|
89
|
+
/** Unwrap the self-grant key from this device's wrap and keep it on the identity. */
|
|
90
|
+
private importSelfGrantKeyFromWrap;
|
|
91
|
+
/** The self-grant key the admin named in this person's grant, or `null`. */
|
|
92
|
+
private grantedSelfGrantKey;
|
|
93
|
+
/** Self-grant signer for this device, if it holds the key. */
|
|
94
|
+
private selfGrantSigner;
|
|
95
|
+
/** Wrap the self-grant key to a device, when this device holds it. */
|
|
96
|
+
private wrapSelfGrantKeyFor;
|
|
97
|
+
/**
|
|
98
|
+
* Signing key and signatures for a generation (docs/userkeys.md §9.3).
|
|
99
|
+
* `ownBytes` derive the generation's own signing key. Signs with the
|
|
100
|
+
* previous generation's key when `previous` is given, with the self-grant
|
|
101
|
+
* key when this device holds it, and with its own key when `selfSign`
|
|
102
|
+
* (pending adoption; harmless otherwise).
|
|
103
|
+
*/
|
|
104
|
+
private generationSignatureFields;
|
|
105
|
+
/** The document's generations that count (docs/userkeys.md §9.3). */
|
|
106
|
+
private validated;
|
|
107
|
+
/** Effective cutoff for unsigned generations of this person (tenant policy, self-grant). */
|
|
108
|
+
private generationSignatureCutoff;
|
|
109
|
+
/**
|
|
110
|
+
* Give the current generation its signing key when it has none (or one this
|
|
111
|
+
* device cannot derive), so the next rotation can be chained to it. Written
|
|
112
|
+
* only when the change will count: while the person's document is pending,
|
|
113
|
+
* before the cutoff, or signed by a granted self-grant key.
|
|
114
|
+
*/
|
|
115
|
+
private ensureCurrentGenerationSigningKey;
|
|
116
|
+
/**
|
|
117
|
+
* Make sure this person has a self-grant key and every approved device of
|
|
118
|
+
* the current generation holds it (docs/userkeys.md §9). The first updated
|
|
119
|
+
* device that holds the User-Key and finds no wrapped self-grant key creates
|
|
120
|
+
* one; every device wraps the key it holds to devices that lack it.
|
|
121
|
+
*/
|
|
122
|
+
private ensureSelfGrantKeyDistributed;
|
|
31
123
|
getLocalUserPublicKey(): Promise<string | null>;
|
|
32
124
|
private decryptUserKeyPairBytes;
|
|
33
125
|
getDecryptedUserKeyBytes(): Promise<Uint8Array | null>;
|
|
@@ -45,10 +137,7 @@ export declare class UserKeyManager {
|
|
|
45
137
|
*/
|
|
46
138
|
getUserKeyCryptoKeysForReconcile(): Promise<CryptoKey[]>;
|
|
47
139
|
openUserDirectory(): Promise<MindooDB>;
|
|
48
|
-
resolveOwnUserKeyDocument(): Promise<
|
|
49
|
-
doc: MindooDoc;
|
|
50
|
-
payload: UserKeyDocumentPayload;
|
|
51
|
-
} | null>;
|
|
140
|
+
resolveOwnUserKeyDocument(): Promise<ResolvedUserKeyDocument | null>;
|
|
52
141
|
/**
|
|
53
142
|
* Admin path: create a pending userkey document from a join-request public key.
|
|
54
143
|
*/
|
|
@@ -83,6 +172,8 @@ export declare class UserKeyManager {
|
|
|
83
172
|
* need an explicit approve.
|
|
84
173
|
*/
|
|
85
174
|
private wrapPrivateKeyForActiveGrantDevices;
|
|
175
|
+
/** A device wrap of the User-Key, plus the self-grant key when this device holds it. */
|
|
176
|
+
private buildDeviceWrap;
|
|
86
177
|
private tryImportUserKeyFromWrap;
|
|
87
178
|
writeOwnDeviceWrap(doc: MindooDoc, payload: UserKeyDocumentPayload): Promise<void>;
|
|
88
179
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserKeyManager.d.ts","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"UserKeyManager.d.ts","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyManager.ts"],"names":[],"mappings":"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"}
|