@protontech/drive-sdk 0.6.2 → 0.7.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/dist/internal/apiService/apiService.d.ts +2 -2
- package/dist/internal/apiService/apiService.js.map +1 -1
- package/dist/internal/apiService/errors.js +4 -3
- package/dist/internal/apiService/errors.js.map +1 -1
- package/dist/internal/download/cryptoService.js +8 -6
- package/dist/internal/download/cryptoService.js.map +1 -1
- package/dist/internal/download/fileDownloader.d.ts +2 -1
- package/dist/internal/download/fileDownloader.js +6 -3
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/download/index.d.ts +1 -1
- package/dist/internal/download/index.js +3 -3
- package/dist/internal/download/index.js.map +1 -1
- package/dist/internal/nodes/apiService.d.ts +9 -8
- package/dist/internal/nodes/apiService.js +14 -5
- package/dist/internal/nodes/apiService.js.map +1 -1
- package/dist/internal/nodes/apiService.test.js +5 -5
- package/dist/internal/nodes/apiService.test.js.map +1 -1
- package/dist/internal/nodes/cryptoReporter.d.ts +3 -3
- package/dist/internal/nodes/cryptoReporter.js.map +1 -1
- package/dist/internal/nodes/cryptoService.d.ts +12 -21
- package/dist/internal/nodes/cryptoService.js +45 -14
- package/dist/internal/nodes/cryptoService.js.map +1 -1
- package/dist/internal/nodes/cryptoService.test.js +262 -17
- package/dist/internal/nodes/cryptoService.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +13 -3
- package/dist/internal/nodes/nodesAccess.d.ts +8 -1
- package/dist/internal/nodes/nodesAccess.js +13 -0
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.d.ts +4 -4
- package/dist/internal/nodes/nodesManagement.js +16 -20
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.test.js +21 -10
- package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
- package/dist/internal/photos/upload.d.ts +2 -2
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/sharingPublic/index.d.ts +6 -6
- package/dist/internal/sharingPublic/index.js +8 -7
- package/dist/internal/sharingPublic/index.js.map +1 -1
- package/dist/internal/sharingPublic/nodes.d.ts +16 -3
- package/dist/internal/sharingPublic/nodes.js +34 -2
- package/dist/internal/sharingPublic/nodes.js.map +1 -1
- package/dist/internal/sharingPublic/unauthApiService.d.ts +17 -0
- package/dist/internal/sharingPublic/unauthApiService.js +31 -0
- package/dist/internal/sharingPublic/unauthApiService.js.map +1 -0
- package/dist/internal/sharingPublic/unauthApiService.test.d.ts +1 -0
- package/dist/internal/sharingPublic/unauthApiService.test.js +27 -0
- package/dist/internal/sharingPublic/unauthApiService.test.js.map +1 -0
- package/dist/internal/upload/apiService.d.ts +4 -3
- package/dist/internal/upload/apiService.js.map +1 -1
- package/dist/internal/upload/cryptoService.d.ts +8 -3
- package/dist/internal/upload/cryptoService.js +45 -9
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/fileUploader.test.js +1 -1
- package/dist/internal/upload/fileUploader.test.js.map +1 -1
- package/dist/internal/upload/interface.d.ts +25 -13
- package/dist/internal/upload/manager.js +7 -4
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +5 -4
- package/dist/internal/upload/manager.test.js.map +1 -1
- package/dist/internal/upload/streamUploader.js +9 -4
- package/dist/internal/upload/streamUploader.js.map +1 -1
- package/dist/internal/upload/streamUploader.test.js +8 -5
- package/dist/internal/upload/streamUploader.test.js.map +1 -1
- package/dist/protonDriveClient.d.ts +1 -1
- package/dist/protonDriveClient.js +2 -1
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePublicLinkClient.d.ts +2 -1
- package/dist/protonDrivePublicLinkClient.js +7 -5
- package/dist/protonDrivePublicLinkClient.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/apiService/apiService.ts +2 -2
- package/src/internal/apiService/errors.ts +5 -4
- package/src/internal/download/cryptoService.ts +13 -6
- package/src/internal/download/fileDownloader.ts +4 -2
- package/src/internal/download/index.ts +3 -0
- package/src/internal/nodes/apiService.test.ts +5 -5
- package/src/internal/nodes/apiService.ts +23 -10
- package/src/internal/nodes/cryptoReporter.ts +3 -3
- package/src/internal/nodes/cryptoService.test.ts +370 -18
- package/src/internal/nodes/cryptoService.ts +73 -32
- package/src/internal/nodes/interface.ts +16 -2
- package/src/internal/nodes/nodesAccess.ts +17 -0
- package/src/internal/nodes/nodesManagement.test.ts +21 -10
- package/src/internal/nodes/nodesManagement.ts +20 -24
- package/src/internal/photos/upload.ts +3 -3
- package/src/internal/sharingPublic/index.ts +7 -3
- package/src/internal/sharingPublic/nodes.ts +43 -2
- package/src/internal/sharingPublic/unauthApiService.test.ts +29 -0
- package/src/internal/sharingPublic/unauthApiService.ts +32 -0
- package/src/internal/upload/apiService.ts +4 -3
- package/src/internal/upload/cryptoService.ts +73 -12
- package/src/internal/upload/fileUploader.test.ts +1 -1
- package/src/internal/upload/interface.ts +24 -13
- package/src/internal/upload/manager.test.ts +5 -4
- package/src/internal/upload/manager.ts +7 -4
- package/src/internal/upload/streamUploader.test.ts +8 -5
- package/src/internal/upload/streamUploader.ts +10 -4
- package/src/protonDriveClient.ts +7 -2
- package/src/protonDrivePublicLinkClient.ts +8 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SharingPublicNodesAccess = void 0;
|
|
3
|
+
exports.SharingPublicNodesManagement = exports.SharingPublicNodesAccess = void 0;
|
|
4
4
|
const nodesAccess_1 = require("../nodes/nodesAccess");
|
|
5
|
+
const nodesManagement_1 = require("../nodes/nodesManagement");
|
|
5
6
|
const mediaTypes_1 = require("../nodes/mediaTypes");
|
|
6
7
|
const uids_1 = require("../uids");
|
|
7
8
|
class SharingPublicNodesAccess extends nodesAccess_1.NodesAccess {
|
|
@@ -9,15 +10,18 @@ class SharingPublicNodesAccess extends nodesAccess_1.NodesAccess {
|
|
|
9
10
|
token;
|
|
10
11
|
publicShareKey;
|
|
11
12
|
publicRootNodeUid;
|
|
12
|
-
|
|
13
|
+
isAnonymousContext;
|
|
14
|
+
constructor(telemetry, apiService, cache, cryptoCache, cryptoService, sharesService, url, token, publicShareKey, publicRootNodeUid, isAnonymousContext) {
|
|
13
15
|
super(telemetry, apiService, cache, cryptoCache, cryptoService, sharesService);
|
|
14
16
|
this.url = url;
|
|
15
17
|
this.token = token;
|
|
16
18
|
this.publicShareKey = publicShareKey;
|
|
17
19
|
this.publicRootNodeUid = publicRootNodeUid;
|
|
20
|
+
this.isAnonymousContext = isAnonymousContext;
|
|
18
21
|
this.token = token;
|
|
19
22
|
this.publicShareKey = publicShareKey;
|
|
20
23
|
this.publicRootNodeUid = publicRootNodeUid;
|
|
24
|
+
this.isAnonymousContext = isAnonymousContext;
|
|
21
25
|
}
|
|
22
26
|
async getParentKeys(node) {
|
|
23
27
|
// If we reached the root node of the public link, return the public
|
|
@@ -41,6 +45,34 @@ class SharingPublicNodesAccess extends nodesAccess_1.NodesAccess {
|
|
|
41
45
|
// Public link doesn't support specific node URLs.
|
|
42
46
|
return this.url;
|
|
43
47
|
}
|
|
48
|
+
async getNodeSigningKeys(uids) {
|
|
49
|
+
if (this.isAnonymousContext) {
|
|
50
|
+
const nodeKeys = uids.nodeUid ? await this.getNodeKeys(uids.nodeUid) : { key: undefined };
|
|
51
|
+
const parentNodeKeys = uids.parentNodeUid ? await this.getNodeKeys(uids.parentNodeUid) : { key: undefined };
|
|
52
|
+
return {
|
|
53
|
+
type: 'nodeKey',
|
|
54
|
+
nodeKey: nodeKeys.key,
|
|
55
|
+
parentNodeKey: parentNodeKeys.key,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return super.getNodeSigningKeys(uids);
|
|
59
|
+
}
|
|
44
60
|
}
|
|
45
61
|
exports.SharingPublicNodesAccess = SharingPublicNodesAccess;
|
|
62
|
+
class SharingPublicNodesManagement extends nodesManagement_1.NodesManagement {
|
|
63
|
+
constructor(apiService, cryptoCache, cryptoService, nodesAccess) {
|
|
64
|
+
super(apiService, cryptoCache, cryptoService, nodesAccess);
|
|
65
|
+
}
|
|
66
|
+
async *deleteNodes(nodeUids, signal) {
|
|
67
|
+
// Public link does not support trashing and deleting trashed nodes.
|
|
68
|
+
// Instead, if user is owner, API allows directly deleting existing nodes.
|
|
69
|
+
for await (const result of this.apiService.deleteExistingNodes(nodeUids, signal)) {
|
|
70
|
+
if (result.ok) {
|
|
71
|
+
await this.nodesAccess.notifyNodeDeleted(result.uid);
|
|
72
|
+
}
|
|
73
|
+
yield result;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SharingPublicNodesManagement = SharingPublicNodesManagement;
|
|
46
78
|
//# sourceMappingURL=nodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/nodes.ts"],"names":[],"mappings":";;;AAKA,sDAAmD;AACnD,oDAAsE;AACtE,kCAAuC;AAKvC,MAAa,wBAAyB,SAAQ,yBAAW;IAQzC;IACA;IACA;IACA;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DriveAPIService } from '../apiService';
|
|
2
|
+
/**
|
|
3
|
+
* Drive API Service for public links.
|
|
4
|
+
*
|
|
5
|
+
* This service is used to make requests to the Drive API without
|
|
6
|
+
* authentication. The unauth context uses the same endpoint, but
|
|
7
|
+
* with an `unauth` prefix. The goal is to avoid the need to use
|
|
8
|
+
* different path and use the exact endpoint for both contexts.
|
|
9
|
+
* However, API has global logic for handling expired sessions that
|
|
10
|
+
* is not compatible with the unauth context. For this reason, this
|
|
11
|
+
* service is used to make requests to the Drive API for public
|
|
12
|
+
* link context in the mean time.
|
|
13
|
+
*/
|
|
14
|
+
export declare class UnauthDriveAPIService extends DriveAPIService {
|
|
15
|
+
protected makeRequest<RequestPayload, ResponsePayload>(url: string, method?: string, data?: RequestPayload, signal?: AbortSignal): Promise<ResponsePayload>;
|
|
16
|
+
}
|
|
17
|
+
export declare function getUnauthEndpoint(url: string): string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnauthDriveAPIService = void 0;
|
|
4
|
+
exports.getUnauthEndpoint = getUnauthEndpoint;
|
|
5
|
+
const apiService_1 = require("../apiService");
|
|
6
|
+
/**
|
|
7
|
+
* Drive API Service for public links.
|
|
8
|
+
*
|
|
9
|
+
* This service is used to make requests to the Drive API without
|
|
10
|
+
* authentication. The unauth context uses the same endpoint, but
|
|
11
|
+
* with an `unauth` prefix. The goal is to avoid the need to use
|
|
12
|
+
* different path and use the exact endpoint for both contexts.
|
|
13
|
+
* However, API has global logic for handling expired sessions that
|
|
14
|
+
* is not compatible with the unauth context. For this reason, this
|
|
15
|
+
* service is used to make requests to the Drive API for public
|
|
16
|
+
* link context in the mean time.
|
|
17
|
+
*/
|
|
18
|
+
class UnauthDriveAPIService extends apiService_1.DriveAPIService {
|
|
19
|
+
async makeRequest(url, method = 'GET', data, signal) {
|
|
20
|
+
const unauthUrl = getUnauthEndpoint(url);
|
|
21
|
+
return super.makeRequest(unauthUrl, method, data, signal);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.UnauthDriveAPIService = UnauthDriveAPIService;
|
|
25
|
+
function getUnauthEndpoint(url) {
|
|
26
|
+
if (url.startsWith('drive/urls/') || url.startsWith('drive/v2/urls/')) {
|
|
27
|
+
return url;
|
|
28
|
+
}
|
|
29
|
+
return url.replace(/^drive\//, 'drive/unauth/');
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=unauthApiService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unauthApiService.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/unauthApiService.ts"],"names":[],"mappings":";;;AA0BA,8CAKC;AA/BD,8CAAgD;AAEhD;;;;;;;;;;;GAWG;AACH,MAAa,qBAAsB,SAAQ,4BAAe;IAC5C,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,MAAM,GAAG,KAAK,EACd,IAAqB,EACrB,MAAoB;QAEpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACJ;AAVD,sDAUC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IACzC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpE,OAAO,GAAG,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const unauthApiService_1 = require("./unauthApiService");
|
|
4
|
+
describe('getUnauthEndpoint', () => {
|
|
5
|
+
it('should not change urls endpoints', () => {
|
|
6
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/urls/anything')).toBe('drive/urls/anything');
|
|
7
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/urls/drive/anything')).toBe('drive/urls/drive/anything');
|
|
8
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/urls/drive/v2/anything')).toBe('drive/urls/drive/v2/anything');
|
|
9
|
+
});
|
|
10
|
+
it('should not change v2/urls endpoints', () => {
|
|
11
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/urls/anything')).toBe('drive/v2/urls/anything');
|
|
12
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/urls/drive/anything')).toBe('drive/v2/urls/drive/anything');
|
|
13
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/urls/drive/v2/anything')).toBe('drive/v2/urls/drive/v2/anything');
|
|
14
|
+
});
|
|
15
|
+
it('should put unauth prefix for v2 endpoints', () => {
|
|
16
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/anything')).toBe('drive/unauth/v2/anything');
|
|
17
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/drive/anything')).toBe('drive/unauth/v2/drive/anything');
|
|
18
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/drive/v2/anything')).toBe('drive/unauth/v2/drive/v2/anything');
|
|
19
|
+
});
|
|
20
|
+
it('should put unauth prefix for non-v2 endpoints', () => {
|
|
21
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything')).toBe('drive/unauth/anything');
|
|
22
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything/v2/anything')).toBe('drive/unauth/anything/v2/anything');
|
|
23
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything/drive/anything')).toBe('drive/unauth/anything/drive/anything');
|
|
24
|
+
expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything/drive/v2/anything')).toBe('drive/unauth/anything/drive/v2/anything');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=unauthApiService.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unauthApiService.test.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/unauthApiService.test.ts"],"names":[],"mappings":";;AAAA,yDAAuD;AAEvD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,IAAA,oCAAiB,EAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAA,oCAAiB,EAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzF,MAAM,CAAC,IAAA,oCAAiB,EAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAA,oCAAiB,EAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACnF,MAAM,CAAC,IAAA,oCAAiB,EAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAA,oCAAiB,EAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,oCAAiB,EAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAChF,MAAM,CAAC,IAAA,oCAAiB,EAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC5F,MAAM,CAAC,IAAA,oCAAiB,EAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,IAAA,oCAAiB,EAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAA,oCAAiB,EAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAClG,MAAM,CAAC,IAAA,oCAAiB,EAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACxG,MAAM,CAAC,IAAA,oCAAiB,EAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AnonymousUser } from '../../interface';
|
|
1
2
|
import { DriveAPIService } from '../apiService';
|
|
2
3
|
import { UploadTokens } from './interface';
|
|
3
4
|
import { ThumbnailType } from '../../interface';
|
|
@@ -15,7 +16,7 @@ export declare class UploadAPIService {
|
|
|
15
16
|
armoredNodePassphraseSignature: string;
|
|
16
17
|
base64ContentKeyPacket: string;
|
|
17
18
|
armoredContentKeyPacketSignature: string;
|
|
18
|
-
signatureEmail: string;
|
|
19
|
+
signatureEmail: string | AnonymousUser;
|
|
19
20
|
}): Promise<{
|
|
20
21
|
nodeUid: string;
|
|
21
22
|
nodeRevisionUid: string;
|
|
@@ -30,7 +31,7 @@ export declare class UploadAPIService {
|
|
|
30
31
|
verificationCode: Uint8Array;
|
|
31
32
|
base64ContentKeyPacket: string;
|
|
32
33
|
}>;
|
|
33
|
-
requestBlockUpload(draftNodeRevisionUid: string, addressId: string, blocks: {
|
|
34
|
+
requestBlockUpload(draftNodeRevisionUid: string, addressId: string | AnonymousUser, blocks: {
|
|
34
35
|
contentBlocks: {
|
|
35
36
|
index: number;
|
|
36
37
|
hash: Uint8Array;
|
|
@@ -46,7 +47,7 @@ export declare class UploadAPIService {
|
|
|
46
47
|
}): Promise<UploadTokens>;
|
|
47
48
|
commitDraftRevision(draftNodeRevisionUid: string, options: {
|
|
48
49
|
armoredManifestSignature: string;
|
|
49
|
-
signatureEmail: string;
|
|
50
|
+
signatureEmail: string | AnonymousUser;
|
|
50
51
|
armoredExtendedAttributes?: string;
|
|
51
52
|
}): Promise<void>;
|
|
52
53
|
deleteDraft(draftNodeUid: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiService.js","sourceRoot":"","sources":["../../../src/internal/upload/apiService.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAEzB,yCAAkF;
|
|
1
|
+
{"version":3,"file":"apiService.js","sourceRoot":"","sources":["../../../src/internal/upload/apiService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DriveCrypto, PrivateKey, SessionKey } from '../../crypto';
|
|
2
|
-
import { Thumbnail } from '../../interface';
|
|
3
|
-
import { EncryptedBlock, EncryptedThumbnail, NodeCrypto, NodeRevisionDraftKeys, NodesService } from './interface';
|
|
2
|
+
import { Thumbnail, AnonymousUser } from '../../interface';
|
|
3
|
+
import { EncryptedBlock, EncryptedThumbnail, NodeCrypto, NodeCryptoSigningKeys, NodeRevisionDraftKeys, NodesService } from './interface';
|
|
4
4
|
export declare class UploadCryptoService {
|
|
5
5
|
protected driveCrypto: DriveCrypto;
|
|
6
6
|
protected nodesService: NodesService;
|
|
@@ -9,13 +9,18 @@ export declare class UploadCryptoService {
|
|
|
9
9
|
key: PrivateKey;
|
|
10
10
|
hashKey: Uint8Array;
|
|
11
11
|
}, name: string): Promise<NodeCrypto>;
|
|
12
|
+
getSigningKeysForExistingNode(uids: {
|
|
13
|
+
nodeUid: string;
|
|
14
|
+
parentNodeUid?: string;
|
|
15
|
+
}): Promise<NodeCryptoSigningKeys>;
|
|
16
|
+
private getSigningKeys;
|
|
12
17
|
encryptThumbnail(nodeRevisionDraftKeys: NodeRevisionDraftKeys, thumbnail: Thumbnail): Promise<EncryptedThumbnail>;
|
|
13
18
|
encryptBlock(verifyBlock: (encryptedBlock: Uint8Array) => Promise<{
|
|
14
19
|
verificationToken: Uint8Array;
|
|
15
20
|
}>, nodeRevisionDraftKeys: NodeRevisionDraftKeys, block: Uint8Array, index: number): Promise<EncryptedBlock>;
|
|
16
21
|
commitFile(nodeRevisionDraftKeys: NodeRevisionDraftKeys, manifest: Uint8Array, extendedAttributes?: string): Promise<{
|
|
17
22
|
armoredManifestSignature: string;
|
|
18
|
-
signatureEmail: string;
|
|
23
|
+
signatureEmail: string | AnonymousUser;
|
|
19
24
|
armoredExtendedAttributes?: string;
|
|
20
25
|
}>;
|
|
21
26
|
getContentKeyPacketSessionKey(nodeKey: PrivateKey, base64ContentKeyPacket: string): Promise<SessionKey>;
|
|
@@ -13,10 +13,13 @@ class UploadCryptoService {
|
|
|
13
13
|
this.nodesService = nodesService;
|
|
14
14
|
}
|
|
15
15
|
async generateFileCrypto(parentUid, parentKeys, name) {
|
|
16
|
-
const
|
|
16
|
+
const signingKeys = await this.getSigningKeys({ parentNodeUid: parentUid });
|
|
17
|
+
if (!signingKeys.nameAndPassphraseSigningKey) {
|
|
18
|
+
throw new Error('Cannot create new node without a name and passphrase signing key');
|
|
19
|
+
}
|
|
17
20
|
const [nodeKeys, { armoredNodeName }, hash] = await Promise.all([
|
|
18
|
-
this.driveCrypto.generateKey([parentKeys.key],
|
|
19
|
-
this.driveCrypto.encryptNodeName(name, undefined, parentKeys.key,
|
|
21
|
+
this.driveCrypto.generateKey([parentKeys.key], signingKeys.nameAndPassphraseSigningKey),
|
|
22
|
+
this.driveCrypto.encryptNodeName(name, undefined, parentKeys.key, signingKeys.nameAndPassphraseSigningKey),
|
|
20
23
|
this.driveCrypto.generateLookupHash(name, parentKeys.hashKey),
|
|
21
24
|
]);
|
|
22
25
|
const contentKey = await this.driveCrypto.generateContentKey(nodeKeys.decrypted.key);
|
|
@@ -27,11 +30,44 @@ class UploadCryptoService {
|
|
|
27
30
|
encryptedName: armoredNodeName,
|
|
28
31
|
hash,
|
|
29
32
|
},
|
|
30
|
-
|
|
33
|
+
signingKeys: {
|
|
34
|
+
email: signingKeys.email,
|
|
35
|
+
addressId: signingKeys.addressId,
|
|
36
|
+
nameAndPassphraseSigningKey: signingKeys.nameAndPassphraseSigningKey,
|
|
37
|
+
contentSigningKey: signingKeys.contentSigningKey || nodeKeys.decrypted.key,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async getSigningKeysForExistingNode(uids) {
|
|
42
|
+
const signingKeys = await this.getSigningKeys(uids);
|
|
43
|
+
if (!signingKeys.nameAndPassphraseSigningKey) {
|
|
44
|
+
throw new Error('Cannot get name and passphrase signing key for existing node');
|
|
45
|
+
}
|
|
46
|
+
if (!signingKeys.contentSigningKey) {
|
|
47
|
+
throw new Error('Cannot get content signing key for existing node');
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
email: signingKeys.email,
|
|
51
|
+
addressId: signingKeys.addressId,
|
|
52
|
+
nameAndPassphraseSigningKey: signingKeys.nameAndPassphraseSigningKey,
|
|
53
|
+
contentSigningKey: signingKeys.contentSigningKey,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async getSigningKeys(uids) {
|
|
57
|
+
const signingKeys = await this.nodesService.getNodeSigningKeys(uids);
|
|
58
|
+
const email = signingKeys.type === 'userAddress' ? signingKeys.email : null;
|
|
59
|
+
const addressId = signingKeys.type === 'userAddress' ? signingKeys.addressId : null;
|
|
60
|
+
const nameAndPassphraseSigningKey = signingKeys.type === 'userAddress' ? signingKeys.key : signingKeys.parentNodeKey;
|
|
61
|
+
const contentSigningKey = signingKeys.type === 'userAddress' ? signingKeys.key : signingKeys.nodeKey;
|
|
62
|
+
return {
|
|
63
|
+
email,
|
|
64
|
+
addressId,
|
|
65
|
+
nameAndPassphraseSigningKey,
|
|
66
|
+
contentSigningKey,
|
|
31
67
|
};
|
|
32
68
|
}
|
|
33
69
|
async encryptThumbnail(nodeRevisionDraftKeys, thumbnail) {
|
|
34
|
-
const { encryptedData } = await this.driveCrypto.encryptThumbnailBlock(thumbnail.thumbnail, nodeRevisionDraftKeys.contentKeyPacketSessionKey, nodeRevisionDraftKeys.
|
|
70
|
+
const { encryptedData } = await this.driveCrypto.encryptThumbnailBlock(thumbnail.thumbnail, nodeRevisionDraftKeys.contentKeyPacketSessionKey, nodeRevisionDraftKeys.signingKeys.contentSigningKey);
|
|
35
71
|
const digest = await crypto.subtle.digest('SHA-256', encryptedData);
|
|
36
72
|
return {
|
|
37
73
|
type: thumbnail.type,
|
|
@@ -42,7 +78,7 @@ class UploadCryptoService {
|
|
|
42
78
|
};
|
|
43
79
|
}
|
|
44
80
|
async encryptBlock(verifyBlock, nodeRevisionDraftKeys, block, index) {
|
|
45
|
-
const { encryptedData, armoredSignature } = await this.driveCrypto.encryptBlock(block, nodeRevisionDraftKeys.key, nodeRevisionDraftKeys.contentKeyPacketSessionKey, nodeRevisionDraftKeys.
|
|
81
|
+
const { encryptedData, armoredSignature } = await this.driveCrypto.encryptBlock(block, nodeRevisionDraftKeys.key, nodeRevisionDraftKeys.contentKeyPacketSessionKey, nodeRevisionDraftKeys.signingKeys.contentSigningKey);
|
|
46
82
|
const digest = await crypto.subtle.digest('SHA-256', encryptedData);
|
|
47
83
|
const { verificationToken } = await verifyBlock(encryptedData);
|
|
48
84
|
return {
|
|
@@ -56,13 +92,13 @@ class UploadCryptoService {
|
|
|
56
92
|
};
|
|
57
93
|
}
|
|
58
94
|
async commitFile(nodeRevisionDraftKeys, manifest, extendedAttributes) {
|
|
59
|
-
const { armoredManifestSignature } = await this.driveCrypto.signManifest(manifest, nodeRevisionDraftKeys.
|
|
95
|
+
const { armoredManifestSignature } = await this.driveCrypto.signManifest(manifest, nodeRevisionDraftKeys.signingKeys.contentSigningKey);
|
|
60
96
|
const { armoredExtendedAttributes } = extendedAttributes
|
|
61
|
-
? await this.driveCrypto.encryptExtendedAttributes(extendedAttributes, nodeRevisionDraftKeys.key, nodeRevisionDraftKeys.
|
|
97
|
+
? await this.driveCrypto.encryptExtendedAttributes(extendedAttributes, nodeRevisionDraftKeys.key, nodeRevisionDraftKeys.signingKeys.contentSigningKey)
|
|
62
98
|
: { armoredExtendedAttributes: undefined };
|
|
63
99
|
return {
|
|
64
100
|
armoredManifestSignature,
|
|
65
|
-
signatureEmail: nodeRevisionDraftKeys.
|
|
101
|
+
signatureEmail: nodeRevisionDraftKeys.signingKeys.email,
|
|
66
102
|
armoredExtendedAttributes,
|
|
67
103
|
};
|
|
68
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoService.js","sourceRoot":"","sources":["../../../src/internal/upload/cryptoService.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAGzB,yCAA8C;
|
|
1
|
+
{"version":3,"file":"cryptoService.js","sourceRoot":"","sources":["../../../src/internal/upload/cryptoService.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAGzB,yCAA8C;AAW9C,MAAa,mBAAmB;IAEd;IACA;IAFd,YACc,WAAwB,EACxB,YAA0B;QAD1B,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QAEpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACpB,SAAiB,EACjB,UAAoD,EACpD,IAAY;QAEZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAC;YACvF,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,2BAA2B,CAAC;YAC1G,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;SAChE,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAErF,OAAO;YACH,QAAQ;YACR,UAAU;YACV,aAAa,EAAE;gBACX,aAAa,EAAE,eAAe;gBAC9B,IAAI;aACP;YACD,WAAW,EAAE;gBACT,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,2BAA2B,EAAE,WAAW,CAAC,2BAA2B;gBACpE,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG;aAC7E;SACJ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,IAGnC;QACG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO;YACH,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,2BAA2B,EAAE,WAAW,CAAC,2BAA2B;YACpE,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;SACnD,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,IAA+F;QAO/F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAErE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,2BAA2B,GAC7B,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;QACrF,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;QAErG,OAAO;YACH,KAAK;YACL,SAAS;YACT,2BAA2B;YAC3B,iBAAiB;SACpB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,gBAAgB,CAClB,qBAA4C,EAC5C,SAAoB;QAEpB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAClE,SAAS,CAAC,SAAS,EACnB,qBAAqB,CAAC,0BAA0B,EAChD,qBAAqB,CAAC,WAAW,CAAC,iBAAiB,CACtD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAEpE,OAAO;YACH,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,aAAa,EAAE,aAAa;YAC5B,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;YACxC,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CACd,WAAuF,EACvF,qBAA4C,EAC5C,KAAiB,EACjB,KAAa;QAEb,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAC3E,KAAK,EACL,qBAAqB,CAAC,GAAG,EACzB,qBAAqB,CAAC,0BAA0B,EAChD,qBAAqB,CAAC,WAAW,CAAC,iBAAiB,CACtD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;QAE/D,OAAO;YACH,KAAK;YACL,aAAa;YACb,gBAAgB;YAChB,iBAAiB;YACjB,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,qBAA4C,EAC5C,QAAoB,EACpB,kBAA2B;QAM3B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CACpE,QAAQ,EACR,qBAAqB,CAAC,WAAW,CAAC,iBAAiB,CACtD,CAAC;QAEF,MAAM,EAAE,yBAAyB,EAAE,GAAG,kBAAkB;YACpD,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAC5C,kBAAkB,EAClB,qBAAqB,CAAC,GAAG,EACzB,qBAAqB,CAAC,WAAW,CAAC,iBAAiB,CACtD;YACH,CAAC,CAAC,EAAE,yBAAyB,EAAE,SAAS,EAAE,CAAC;QAE/C,OAAO;YACH,wBAAwB;YACxB,cAAc,EAAE,qBAAqB,CAAC,WAAW,CAAC,KAAK;YACvD,yBAAyB;SAC5B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,OAAmB,EAAE,sBAA8B;QACnF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CACpE,sBAAsB,EACtB,SAAS,EACT,OAAO,EACP,EAAE,CACL,CAAC;QACF,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,WAAW,CACb,0BAAsC,EACtC,gBAA4B,EAC5B,aAAyB;QAIzB,0EAA0E;QAC1E,EAAE;QACF,gEAAgE;QAChE,qEAAqE;QACrE,EAAE;QACF,yEAAyE;QACzE,sDAAsD;QACtD,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,uBAAc,CAAC,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,yCAAyC,EAAE;gBAC5E,KAAK;aACR,CAAC,CAAC;QACP,CAAC;QAED,0DAA0D;QAC1D,gDAAgD;QAChD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtG,OAAO;YACH,iBAAiB;SACpB,CAAC;IACN,CAAC;CACJ;AA7MD,kDA6MC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUploader.test.js","sourceRoot":"","sources":["../../../src/internal/upload/fileUploader.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fileUploader.test.js","sourceRoot":"","sources":["../../../src/internal/upload/fileUploader.test.ts"],"names":[],"mappings":";;AACA,iDAA8C;AAI9C,6CAAgD;AAKhD,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC,KAAK,UAAU,gBAAgB,CAC3B,WAAiD,EACjD,CAAM,EACN,KAAiB,EACjB,KAAa;IAEb,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO;QACH,KAAK;QACL,aAAa,EAAE,KAAK;QACpB,gBAAgB,EAAE,WAAW;QAC7B,iBAAiB,EAAE,mBAAmB;QACtC,YAAY,EAAE,KAAK,CAAC,MAAM;QAC1B,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,yBAAyB;QACvD,IAAI,EAAE,WAAW;KACpB,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CACpB,CAAS,EACT,EAAU,EACV,cAA0B,EAC1B,UAA2C;IAE3C,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,IAAI,SAA0B,CAAC;IAC/B,IAAI,UAAyC,CAAC;IAC9C,IAAI,aAAkC,CAAC;IACvC,IAAI,aAA4B,CAAC;IACjC,IAAI,aAA4B,CAAC;IACjC,IAAI,aAAgC,CAAC;IACrC,IAAI,QAAwB,CAAC;IAC7B,IAAI,UAA4B,CAAC;IACjC,IAAI,QAA6B,CAAC;IAClC,IAAI,eAAgC,CAAC;IAErC,IAAI,QAAsB,CAAC;IAE3B,IAAI,cAAgC,CAAC;IAErC,UAAU,CAAC,GAAG,EAAE;QACZ,gEAAgE;QAChE,SAAS,GAAG;YACR,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;gBAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;aACnB,CAAC;YACF,yBAAyB,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;YACvB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;SAC5B,CAAC;QAEF,gEAAgE;QAChE,UAAU,GAAG;YACT,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,EAAE,CAAC,CAAC;oBACjE,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO,EAAE,iBAAiB,KAAK,CAAC,KAAK,EAAE;oBACvC,KAAK,EAAE,eAAe,KAAK,CAAC,KAAK,EAAE;iBACtC,CAAC,CAAC;gBACH,eAAe,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAA2B,EAAE,EAAE,CAAC,CAAC;oBAC7E,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,OAAO,EAAE,qBAAqB,SAAS,CAAC,IAAI,EAAE;oBAC9C,KAAK,EAAE,mBAAmB,SAAS,CAAC,IAAI,EAAE;iBAC7C,CAAC,CAAC;aACN,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC;SAC7D,CAAC;QAEF,gEAAgE;QAChE,aAAa,GAAG;YACZ,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBACpE,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,aAAa,EAAE,SAAS,CAAC,SAAS;gBAClC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;gBACxC,aAAa,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI;gBACzC,IAAI,EAAE,eAAe;aACxB,CAAC,CAAC;YACH,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;SAC/D,CAAC;QAEF,gEAAgE;QAChE,aAAa,GAAG;YACZ,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACtD,CAAC;QAEF,gEAAgE;QAChE,aAAa,GAAG;YACZ,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACtD,CAAC;QAEF,aAAa,GAAG;YACZ,eAAe,EAAE,aAAa;YAC9B,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;aAC1C;SACiB,CAAC;QAEvB,QAAQ,GAAG,EAAoB,CAAC;QAEhC,UAAU,GAAG,IAAI,6BAAgB,EAAE,CAAC;QACpC,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACrB,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAExC,QAAQ,GAAG,IAAI,2BAAY,CACvB,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,eAAe,CAAC,MAAM,CACzB,CAAC;QAEF,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAe,EAAE,aAAa,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;YACxF,eAAe,EAAE,aAAa;YAC9B,OAAO,EAAE,SAAS;SACrB,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,uCAAuC;QACvC,MAAM,IAAI,GAAG;YACT,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC;SACtC,CAAC;QACV,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAE5D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAE5D,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAE5D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAE5D,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAEhE,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAEhE,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACnF,wBAAwB,CAC3B,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YACzF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;YAE7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,eAAe,EAAE,aAAa;gBAC9B,OAAO,EAAE,SAAS;aACrB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PrivateKey, SessionKey } from '../../crypto';
|
|
2
|
-
import { MetricVolumeType, ThumbnailType, Result, Revision } from '../../interface';
|
|
2
|
+
import { MetricVolumeType, ThumbnailType, Result, Revision, AnonymousUser } from '../../interface';
|
|
3
3
|
import { DecryptedNode } from '../nodes';
|
|
4
4
|
export type NodeRevisionDraft = {
|
|
5
5
|
nodeUid: string;
|
|
@@ -18,7 +18,7 @@ export type NodeRevisionDraft = {
|
|
|
18
18
|
export type NodeRevisionDraftKeys = {
|
|
19
19
|
key: PrivateKey;
|
|
20
20
|
contentKeyPacketSessionKey: SessionKey;
|
|
21
|
-
|
|
21
|
+
signingKeys: NodeCryptoSigningKeys;
|
|
22
22
|
};
|
|
23
23
|
export type NodeCrypto = {
|
|
24
24
|
nodeKeys: {
|
|
@@ -46,12 +46,13 @@ export type NodeCrypto = {
|
|
|
46
46
|
encryptedName: string;
|
|
47
47
|
hash: string;
|
|
48
48
|
};
|
|
49
|
-
|
|
49
|
+
signingKeys: NodeCryptoSigningKeys;
|
|
50
50
|
};
|
|
51
|
-
export type
|
|
52
|
-
email: string;
|
|
53
|
-
addressId: string;
|
|
54
|
-
|
|
51
|
+
export type NodeCryptoSigningKeys = {
|
|
52
|
+
email: string | AnonymousUser;
|
|
53
|
+
addressId: string | AnonymousUser;
|
|
54
|
+
nameAndPassphraseSigningKey: PrivateKey;
|
|
55
|
+
contentSigningKey: PrivateKey;
|
|
55
56
|
};
|
|
56
57
|
export type EncryptedBlockMetadata = {
|
|
57
58
|
encryptedSize: number;
|
|
@@ -91,12 +92,13 @@ export interface NodesService {
|
|
|
91
92
|
contentKeyPacketSessionKey?: SessionKey;
|
|
92
93
|
hashKey?: Uint8Array;
|
|
93
94
|
}>;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
getNodeSigningKeys(uids: {
|
|
96
|
+
nodeUid: string;
|
|
97
|
+
parentNodeUid?: string;
|
|
98
|
+
} | {
|
|
99
|
+
nodeUid?: string;
|
|
100
|
+
parentNodeUid: string;
|
|
101
|
+
}): Promise<NodeSigningKeys>;
|
|
100
102
|
notifyChildCreated(nodeUid: string): Promise<void>;
|
|
101
103
|
notifyNodeChanged(nodeUid: string): Promise<void>;
|
|
102
104
|
}
|
|
@@ -115,6 +117,16 @@ export interface NodesServiceNode {
|
|
|
115
117
|
parentUid?: string;
|
|
116
118
|
activeRevision?: Result<Revision, Error>;
|
|
117
119
|
}
|
|
120
|
+
export type NodeSigningKeys = {
|
|
121
|
+
type: 'userAddress';
|
|
122
|
+
email: string;
|
|
123
|
+
addressId: string;
|
|
124
|
+
key: PrivateKey;
|
|
125
|
+
} | {
|
|
126
|
+
type: 'nodeKey';
|
|
127
|
+
nodeKey?: PrivateKey;
|
|
128
|
+
parentNodeKey?: PrivateKey;
|
|
129
|
+
};
|
|
118
130
|
/**
|
|
119
131
|
* Interface describing the dependencies to the shares module.
|
|
120
132
|
*/
|
|
@@ -40,7 +40,7 @@ class UploadManager {
|
|
|
40
40
|
nodeKeys: {
|
|
41
41
|
key: generatedNodeCrypto.nodeKeys.decrypted.key,
|
|
42
42
|
contentKeyPacketSessionKey: generatedNodeCrypto.contentKey.decrypted.contentKeyPacketSessionKey,
|
|
43
|
-
|
|
43
|
+
signingKeys: generatedNodeCrypto.signingKeys,
|
|
44
44
|
},
|
|
45
45
|
parentNodeKeys: {
|
|
46
46
|
hashKey: parentKeys.hashKey,
|
|
@@ -65,7 +65,7 @@ class UploadManager {
|
|
|
65
65
|
armoredNodePassphraseSignature: generatedNodeCrypto.nodeKeys.encrypted.armoredPassphraseSignature,
|
|
66
66
|
base64ContentKeyPacket: generatedNodeCrypto.contentKey.encrypted.base64ContentKeyPacket,
|
|
67
67
|
armoredContentKeyPacketSignature: generatedNodeCrypto.contentKey.encrypted.armoredContentKeyPacketSignature,
|
|
68
|
-
signatureEmail: generatedNodeCrypto.
|
|
68
|
+
signatureEmail: generatedNodeCrypto.signingKeys.email,
|
|
69
69
|
});
|
|
70
70
|
return result;
|
|
71
71
|
}
|
|
@@ -128,7 +128,10 @@ class UploadManager {
|
|
|
128
128
|
if (!node.activeRevision?.ok || !nodeKeys.contentKeyPacketSessionKey) {
|
|
129
129
|
throw new errors_1.ValidationError((0, ttag_1.c)('Error').t `Creating revisions in non-files is not allowed`);
|
|
130
130
|
}
|
|
131
|
-
const
|
|
131
|
+
const signingKeys = await this.cryptoService.getSigningKeysForExistingNode({
|
|
132
|
+
nodeUid,
|
|
133
|
+
parentNodeUid: node.parentUid,
|
|
134
|
+
});
|
|
132
135
|
const { nodeRevisionUid } = await this.apiService.createDraftRevision(nodeUid, {
|
|
133
136
|
currentRevisionUid: node.activeRevision.value.uid,
|
|
134
137
|
intendedUploadSize: metadata.expectedSize,
|
|
@@ -139,7 +142,7 @@ class UploadManager {
|
|
|
139
142
|
nodeKeys: {
|
|
140
143
|
key: nodeKeys.key,
|
|
141
144
|
contentKeyPacketSessionKey: nodeKeys.contentKeyPacketSessionKey,
|
|
142
|
-
|
|
145
|
+
signingKeys,
|
|
143
146
|
},
|
|
144
147
|
};
|
|
145
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/internal/upload/manager.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAGzB,yCAAsF;AAEtF,oCAA0D;AAI1D,kCAAoD;AAEpD;;;;GAIG;AACH,MAAa,aAAa;IAKR;IACA;IACA;IACA;IAPJ,MAAM,CAAS;IAEzB,YACI,SAA+B,EACrB,UAA4B,EAC5B,aAAkC,EAClC,YAA0B,EAC1B,SAA6B;QAH7B,eAAU,GAAV,UAAU,CAAkB;QAC5B,kBAAa,GAAb,aAAa,CAAqB;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAoB;QAEvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,eAAuB,EAAE,IAAY,EAAE,QAAwB;QACjF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,wBAAe,CAAC,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,8CAA8C,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnE,eAAe,EACf,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,EACpD,IAAI,CACP,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC5D,eAAe,EACf,UAAU,CAAC,OAAO,EAClB,IAAI,EACJ,QAAQ,EACR,mBAAmB,CACtB,CAAC;QAEF,OAAO;YACH,OAAO;YACP,eAAe;YACf,QAAQ,EAAE;gBACN,GAAG,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG;gBAC/C,0BAA0B,EAAE,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,0BAA0B;gBAC/F,
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/internal/upload/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ describe('UploadManager', () => {
|
|
|
43
43
|
encryptedName: 'newNode:encryptedName',
|
|
44
44
|
hash: 'newNode:hash',
|
|
45
45
|
},
|
|
46
|
-
|
|
46
|
+
signingKeys: {
|
|
47
47
|
email: 'signatureEmail',
|
|
48
48
|
},
|
|
49
49
|
}),
|
|
@@ -62,7 +62,8 @@ describe('UploadManager', () => {
|
|
|
62
62
|
hashKey: 'parentNode:hashKey',
|
|
63
63
|
key: 'parentNode:nodekey',
|
|
64
64
|
}),
|
|
65
|
-
|
|
65
|
+
getNodeSigningKeys: jest.fn().mockResolvedValue({
|
|
66
|
+
type: 'userAddress',
|
|
66
67
|
email: 'signatureEmail',
|
|
67
68
|
addressId: 'addressId',
|
|
68
69
|
}),
|
|
@@ -88,7 +89,7 @@ describe('UploadManager', () => {
|
|
|
88
89
|
nodeKeys: {
|
|
89
90
|
key: 'newNode:key',
|
|
90
91
|
contentKeyPacketSessionKey: 'newNode:ContentKeyPacketSessionKey',
|
|
91
|
-
|
|
92
|
+
signingKeys: {
|
|
92
93
|
email: 'signatureEmail',
|
|
93
94
|
},
|
|
94
95
|
},
|
|
@@ -138,7 +139,7 @@ describe('UploadManager', () => {
|
|
|
138
139
|
nodeKeys: {
|
|
139
140
|
key: 'newNode:key',
|
|
140
141
|
contentKeyPacketSessionKey: 'newNode:ContentKeyPacketSessionKey',
|
|
141
|
-
|
|
142
|
+
signingKeys: {
|
|
142
143
|
email: 'signatureEmail',
|
|
143
144
|
},
|
|
144
145
|
},
|