mindoodb 0.0.93 → 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.
Files changed (146) hide show
  1. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +17 -1
  2. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
  3. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +63 -4
  4. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
  5. package/dist/appendonlystores/network/HttpTransport.d.ts +10 -1
  6. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
  7. package/dist/appendonlystores/network/HttpTransport.js +45 -3
  8. package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
  9. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +22 -0
  10. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
  11. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +33 -0
  12. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
  13. package/dist/browser/index.mjs +39 -0
  14. package/dist/core/BaseMindooDB.d.ts +9 -0
  15. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  16. package/dist/core/BaseMindooDB.js +65 -2
  17. package/dist/core/BaseMindooDB.js.map +1 -1
  18. package/dist/core/BaseMindooTenant.d.ts +75 -1
  19. package/dist/core/BaseMindooTenant.d.ts.map +1 -1
  20. package/dist/core/BaseMindooTenant.js +229 -7
  21. package/dist/core/BaseMindooTenant.js.map +1 -1
  22. package/dist/core/BaseMindooTenantDirectory.d.ts +165 -2
  23. package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
  24. package/dist/core/BaseMindooTenantDirectory.js +648 -112
  25. package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
  26. package/dist/core/BaseMindooTenantFactory.d.ts +30 -0
  27. package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
  28. package/dist/core/BaseMindooTenantFactory.js +95 -0
  29. package/dist/core/BaseMindooTenantFactory.js.map +1 -1
  30. package/dist/core/accesscontrol/DirectoryStateNode.d.ts +45 -0
  31. package/dist/core/accesscontrol/DirectoryStateNode.d.ts.map +1 -1
  32. package/dist/core/accesscontrol/DirectoryStateNode.js +58 -0
  33. package/dist/core/accesscontrol/DirectoryStateNode.js.map +1 -1
  34. package/dist/core/accesscontrol/adminKeys.d.ts +130 -0
  35. package/dist/core/accesscontrol/adminKeys.d.ts.map +1 -0
  36. package/dist/core/accesscontrol/adminKeys.js +164 -0
  37. package/dist/core/accesscontrol/adminKeys.js.map +1 -0
  38. package/dist/core/accesscontrol/directoryAdminResolver.d.ts +54 -0
  39. package/dist/core/accesscontrol/directoryAdminResolver.d.ts.map +1 -0
  40. package/dist/core/accesscontrol/directoryAdminResolver.js +217 -0
  41. package/dist/core/accesscontrol/directoryAdminResolver.js.map +1 -0
  42. package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -1
  43. package/dist/core/accesscontrol/directoryProjection.js +34 -0
  44. package/dist/core/accesscontrol/directoryProjection.js.map +1 -1
  45. package/dist/core/accesscontrol/grantKeys.d.ts +16 -0
  46. package/dist/core/accesscontrol/grantKeys.d.ts.map +1 -1
  47. package/dist/core/accesscontrol/grantKeys.js +37 -0
  48. package/dist/core/accesscontrol/grantKeys.js.map +1 -1
  49. package/dist/core/accesscontrol/types.d.ts +33 -2
  50. package/dist/core/accesscontrol/types.d.ts.map +1 -1
  51. package/dist/core/accesscontrol/types.js +32 -0
  52. package/dist/core/accesscontrol/types.js.map +1 -1
  53. package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -1
  54. package/dist/core/appendonlystores/network/AuthenticationService.js +8 -0
  55. package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -1
  56. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +16 -1
  57. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
  58. package/dist/core/appendonlystores/network/types.d.ts +13 -0
  59. package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
  60. package/dist/core/appendonlystores/network/types.js.map +1 -1
  61. package/dist/core/builtinDbInvariants.d.ts +18 -2
  62. package/dist/core/builtinDbInvariants.d.ts.map +1 -1
  63. package/dist/core/builtinDbInvariants.js +41 -5
  64. package/dist/core/builtinDbInvariants.js.map +1 -1
  65. package/dist/core/index.d.ts +5 -2
  66. package/dist/core/index.d.ts.map +1 -1
  67. package/dist/core/index.js +28 -5
  68. package/dist/core/index.js.map +1 -1
  69. package/dist/core/live/LiveChannel.d.ts +41 -0
  70. package/dist/core/live/LiveChannel.d.ts.map +1 -0
  71. package/dist/core/live/LiveChannel.js +151 -0
  72. package/dist/core/live/LiveChannel.js.map +1 -0
  73. package/dist/core/types.d.ts +182 -0
  74. package/dist/core/types.d.ts.map +1 -1
  75. package/dist/core/types.js.map +1 -1
  76. package/dist/core/uri/MindooURI.d.ts +1 -1
  77. package/dist/core/uri/MindooURI.d.ts.map +1 -1
  78. package/dist/core/uri/MindooURI.js +2 -0
  79. package/dist/core/uri/MindooURI.js.map +1 -1
  80. package/dist/core/uri/adminUri.d.ts +52 -0
  81. package/dist/core/uri/adminUri.d.ts.map +1 -0
  82. package/dist/core/uri/adminUri.js +100 -0
  83. package/dist/core/uri/adminUri.js.map +1 -0
  84. package/dist/core/uri/joinRequestUri.d.ts.map +1 -1
  85. package/dist/core/uri/joinRequestUri.js +14 -1
  86. package/dist/core/uri/joinRequestUri.js.map +1 -1
  87. package/dist/core/userid/index.d.ts +9 -0
  88. package/dist/core/userid/index.d.ts.map +1 -1
  89. package/dist/core/userkeys/UserKeyDocument.d.ts +7 -1
  90. package/dist/core/userkeys/UserKeyDocument.d.ts.map +1 -1
  91. package/dist/core/userkeys/UserKeyDocument.js +14 -3
  92. package/dist/core/userkeys/UserKeyDocument.js.map +1 -1
  93. package/dist/core/userkeys/UserKeyManager.d.ts +95 -4
  94. package/dist/core/userkeys/UserKeyManager.d.ts.map +1 -1
  95. package/dist/core/userkeys/UserKeyManager.js +606 -59
  96. package/dist/core/userkeys/UserKeyManager.js.map +1 -1
  97. package/dist/core/userkeys/deviceCertificate.d.ts +46 -0
  98. package/dist/core/userkeys/deviceCertificate.d.ts.map +1 -0
  99. package/dist/core/userkeys/deviceCertificate.js +86 -0
  100. package/dist/core/userkeys/deviceCertificate.js.map +1 -0
  101. package/dist/core/userkeys/generationSignature.d.ts +32 -0
  102. package/dist/core/userkeys/generationSignature.d.ts.map +1 -0
  103. package/dist/core/userkeys/generationSignature.js +136 -0
  104. package/dist/core/userkeys/generationSignature.js.map +1 -0
  105. package/dist/core/userkeys/generationValidity.d.ts +75 -0
  106. package/dist/core/userkeys/generationValidity.d.ts.map +1 -0
  107. package/dist/core/userkeys/generationValidity.js +175 -0
  108. package/dist/core/userkeys/generationValidity.js.map +1 -0
  109. package/dist/core/userkeys/index.d.ts +5 -2
  110. package/dist/core/userkeys/index.d.ts.map +1 -1
  111. package/dist/core/userkeys/index.js +21 -1
  112. package/dist/core/userkeys/index.js.map +1 -1
  113. package/dist/core/userkeys/resolveUserKeyDocument.d.ts +16 -0
  114. package/dist/core/userkeys/resolveUserKeyDocument.d.ts.map +1 -1
  115. package/dist/core/userkeys/resolveUserKeyDocument.js +42 -1
  116. package/dist/core/userkeys/resolveUserKeyDocument.js.map +1 -1
  117. package/dist/core/userkeys/types.d.ts +26 -0
  118. package/dist/core/userkeys/types.d.ts.map +1 -1
  119. package/dist/core/userkeys/types.js +3 -1
  120. package/dist/core/userkeys/types.js.map +1 -1
  121. package/dist/core/userkeys/validateUserKeyDocument.d.ts.map +1 -1
  122. package/dist/core/userkeys/validateUserKeyDocument.js +7 -0
  123. package/dist/core/userkeys/validateUserKeyDocument.js.map +1 -1
  124. package/dist/node/server/MindooDBServer.d.ts.map +1 -1
  125. package/dist/node/server/MindooDBServer.js +11 -0
  126. package/dist/node/server/MindooDBServer.js.map +1 -1
  127. package/dist/server/SyncEventBus.d.ts +22 -0
  128. package/dist/server/SyncEventBus.d.ts.map +1 -1
  129. package/dist/server/SyncEventBus.js +21 -0
  130. package/dist/server/SyncEventBus.js.map +1 -1
  131. package/dist/server/TenantManager.d.ts +9 -0
  132. package/dist/server/TenantManager.d.ts.map +1 -1
  133. package/dist/server/TenantManager.js +96 -0
  134. package/dist/server/TenantManager.js.map +1 -1
  135. package/dist/server/http/MindooDBServerCore.d.ts +39 -1
  136. package/dist/server/http/MindooDBServerCore.d.ts.map +1 -1
  137. package/dist/server/http/MindooDBServerCore.js +121 -2
  138. package/dist/server/http/MindooDBServerCore.js.map +1 -1
  139. package/dist/server/http/types.d.ts +10 -1
  140. package/dist/server/http/types.d.ts.map +1 -1
  141. package/dist/server/http/types.js.map +1 -1
  142. package/dist/server/index.d.ts +2 -2
  143. package/dist/server/index.d.ts.map +1 -1
  144. package/dist/server/index.js +2 -1
  145. package/dist/server/index.js.map +1 -1
  146. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MindooURI.js","sourceRoot":"","sources":["../../../src/core/uri/MindooURI.ts"],"names":[],"mappings":"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"}
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,CA4BjE;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,CAqDb"}
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
- if (!signing || !encryption || userKey === null) {
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":"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"}
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;CACjC"}
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,EACvB,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;CACnB,GAAG,sBAAsB,CAgBzB;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,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,SAAS,CAAC,CA6BrB;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,CA2BhB;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"}
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
- if (!existing.label && input.wrap.label) {
114
- gen.deviceWraps[input.deviceFingerprint] = { ...existing, label: input.wrap.label };
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":"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"}
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":"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"}
1
+ {"version":3,"file":"UserKeyManager.d.ts","sourceRoot":"","sources":["../../../src/core/userkeys/UserKeyManager.ts"],"names":[],"mappings":"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"}