@protontech/drive-sdk 0.6.1 → 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.
Files changed (119) hide show
  1. package/dist/featureFlags.d.ts +7 -0
  2. package/dist/featureFlags.js +14 -0
  3. package/dist/featureFlags.js.map +1 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +3 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/interface/featureFlags.d.ts +7 -0
  8. package/dist/interface/featureFlags.js +3 -0
  9. package/dist/interface/featureFlags.js.map +1 -0
  10. package/dist/interface/index.d.ts +3 -0
  11. package/dist/interface/index.js.map +1 -1
  12. package/dist/internal/apiService/apiService.d.ts +2 -2
  13. package/dist/internal/apiService/apiService.js.map +1 -1
  14. package/dist/internal/apiService/errors.js +4 -3
  15. package/dist/internal/apiService/errors.js.map +1 -1
  16. package/dist/internal/download/cryptoService.js +8 -6
  17. package/dist/internal/download/cryptoService.js.map +1 -1
  18. package/dist/internal/download/fileDownloader.d.ts +2 -1
  19. package/dist/internal/download/fileDownloader.js +6 -3
  20. package/dist/internal/download/fileDownloader.js.map +1 -1
  21. package/dist/internal/download/index.d.ts +1 -1
  22. package/dist/internal/download/index.js +3 -3
  23. package/dist/internal/download/index.js.map +1 -1
  24. package/dist/internal/nodes/apiService.d.ts +9 -8
  25. package/dist/internal/nodes/apiService.js +14 -5
  26. package/dist/internal/nodes/apiService.js.map +1 -1
  27. package/dist/internal/nodes/apiService.test.js +5 -5
  28. package/dist/internal/nodes/apiService.test.js.map +1 -1
  29. package/dist/internal/nodes/cryptoReporter.d.ts +3 -3
  30. package/dist/internal/nodes/cryptoReporter.js.map +1 -1
  31. package/dist/internal/nodes/cryptoService.d.ts +12 -21
  32. package/dist/internal/nodes/cryptoService.js +45 -14
  33. package/dist/internal/nodes/cryptoService.js.map +1 -1
  34. package/dist/internal/nodes/cryptoService.test.js +262 -17
  35. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  36. package/dist/internal/nodes/interface.d.ts +13 -3
  37. package/dist/internal/nodes/nodesAccess.d.ts +8 -1
  38. package/dist/internal/nodes/nodesAccess.js +13 -0
  39. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  40. package/dist/internal/nodes/nodesManagement.d.ts +4 -4
  41. package/dist/internal/nodes/nodesManagement.js +16 -20
  42. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  43. package/dist/internal/nodes/nodesManagement.test.js +21 -10
  44. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  45. package/dist/internal/photos/upload.d.ts +2 -2
  46. package/dist/internal/photos/upload.js +1 -1
  47. package/dist/internal/photos/upload.js.map +1 -1
  48. package/dist/internal/sharingPublic/index.d.ts +6 -6
  49. package/dist/internal/sharingPublic/index.js +8 -7
  50. package/dist/internal/sharingPublic/index.js.map +1 -1
  51. package/dist/internal/sharingPublic/nodes.d.ts +16 -3
  52. package/dist/internal/sharingPublic/nodes.js +34 -2
  53. package/dist/internal/sharingPublic/nodes.js.map +1 -1
  54. package/dist/internal/sharingPublic/unauthApiService.d.ts +17 -0
  55. package/dist/internal/sharingPublic/unauthApiService.js +31 -0
  56. package/dist/internal/sharingPublic/unauthApiService.js.map +1 -0
  57. package/dist/internal/sharingPublic/unauthApiService.test.d.ts +1 -0
  58. package/dist/internal/sharingPublic/unauthApiService.test.js +27 -0
  59. package/dist/internal/sharingPublic/unauthApiService.test.js.map +1 -0
  60. package/dist/internal/upload/apiService.d.ts +4 -3
  61. package/dist/internal/upload/apiService.js.map +1 -1
  62. package/dist/internal/upload/cryptoService.d.ts +8 -3
  63. package/dist/internal/upload/cryptoService.js +45 -9
  64. package/dist/internal/upload/cryptoService.js.map +1 -1
  65. package/dist/internal/upload/fileUploader.d.ts +5 -2
  66. package/dist/internal/upload/fileUploader.js +7 -4
  67. package/dist/internal/upload/fileUploader.js.map +1 -1
  68. package/dist/internal/upload/fileUploader.test.js +1 -1
  69. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  70. package/dist/internal/upload/interface.d.ts +25 -13
  71. package/dist/internal/upload/manager.js +7 -4
  72. package/dist/internal/upload/manager.js.map +1 -1
  73. package/dist/internal/upload/manager.test.js +5 -4
  74. package/dist/internal/upload/manager.test.js.map +1 -1
  75. package/dist/internal/upload/streamUploader.js +9 -4
  76. package/dist/internal/upload/streamUploader.js.map +1 -1
  77. package/dist/internal/upload/streamUploader.test.js +8 -5
  78. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  79. package/dist/protonDriveClient.d.ts +2 -2
  80. package/dist/protonDriveClient.js +7 -2
  81. package/dist/protonDriveClient.js.map +1 -1
  82. package/dist/protonDrivePublicLinkClient.d.ts +2 -1
  83. package/dist/protonDrivePublicLinkClient.js +7 -5
  84. package/dist/protonDrivePublicLinkClient.js.map +1 -1
  85. package/package.json +1 -1
  86. package/src/featureFlags.ts +11 -0
  87. package/src/index.ts +1 -0
  88. package/src/interface/featureFlags.ts +7 -0
  89. package/src/interface/index.ts +3 -0
  90. package/src/internal/apiService/apiService.ts +2 -2
  91. package/src/internal/apiService/errors.ts +5 -4
  92. package/src/internal/download/cryptoService.ts +13 -6
  93. package/src/internal/download/fileDownloader.ts +4 -2
  94. package/src/internal/download/index.ts +3 -0
  95. package/src/internal/nodes/apiService.test.ts +5 -5
  96. package/src/internal/nodes/apiService.ts +23 -10
  97. package/src/internal/nodes/cryptoReporter.ts +3 -3
  98. package/src/internal/nodes/cryptoService.test.ts +370 -18
  99. package/src/internal/nodes/cryptoService.ts +73 -32
  100. package/src/internal/nodes/interface.ts +16 -2
  101. package/src/internal/nodes/nodesAccess.ts +17 -0
  102. package/src/internal/nodes/nodesManagement.test.ts +21 -10
  103. package/src/internal/nodes/nodesManagement.ts +20 -24
  104. package/src/internal/photos/upload.ts +3 -3
  105. package/src/internal/sharingPublic/index.ts +7 -3
  106. package/src/internal/sharingPublic/nodes.ts +43 -2
  107. package/src/internal/sharingPublic/unauthApiService.test.ts +29 -0
  108. package/src/internal/sharingPublic/unauthApiService.ts +32 -0
  109. package/src/internal/upload/apiService.ts +4 -3
  110. package/src/internal/upload/cryptoService.ts +73 -12
  111. package/src/internal/upload/fileUploader.test.ts +1 -1
  112. package/src/internal/upload/fileUploader.ts +18 -11
  113. package/src/internal/upload/interface.ts +24 -13
  114. package/src/internal/upload/manager.test.ts +5 -4
  115. package/src/internal/upload/manager.ts +7 -4
  116. package/src/internal/upload/streamUploader.test.ts +8 -5
  117. package/src/internal/upload/streamUploader.ts +10 -4
  118. package/src/protonDriveClient.ts +12 -2
  119. package/src/protonDrivePublicLinkClient.ts +8 -3
@@ -207,6 +207,40 @@ describe('nodesCryptoService', () => {
207
207
  error: 'verification error',
208
208
  });
209
209
  });
210
+ it('on older node name ignores NOT_SIGNED', async () => {
211
+ encryptedNode.creationTime = new Date('2020-12-31');
212
+ driveCrypto.decryptNodeName = jest.fn(async () => Promise.resolve({
213
+ name: 'name',
214
+ verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
215
+ verificationErrors: [new Error('missing signature')],
216
+ }));
217
+ const result = await cryptoService.decryptNode(encryptedNode, parentKey);
218
+ verifyResult(result, {
219
+ nameAuthor: {
220
+ ok: true,
221
+ value: 'nameSignatureEmail',
222
+ },
223
+ });
224
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
225
+ });
226
+ it('on newer node name does not ignore NOT_SIGNED', async () => {
227
+ encryptedNode.creationTime = new Date('2021-01-01');
228
+ driveCrypto.decryptNodeName = jest.fn(async () => Promise.resolve({
229
+ name: 'name',
230
+ verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
231
+ verificationErrors: [new Error('missing signature')],
232
+ }));
233
+ const result = await cryptoService.decryptNode(encryptedNode, parentKey);
234
+ verifyResult(result, {
235
+ nameAuthor: {
236
+ ok: false,
237
+ error: {
238
+ claimedAuthor: 'nameSignatureEmail',
239
+ error: 'Missing signature for name',
240
+ },
241
+ },
242
+ });
243
+ });
210
244
  it('on hash key', async () => {
211
245
  driveCrypto.decryptNodeHashKey = jest.fn(async () => Promise.resolve({
212
246
  hashKey: new Uint8Array(),
@@ -228,6 +262,40 @@ describe('nodesCryptoService', () => {
228
262
  error: 'verification error',
229
263
  });
230
264
  });
265
+ it('on older node hash key ignores NOT_SIGNED', async () => {
266
+ encryptedNode.creationTime = new Date('2021-07-31');
267
+ driveCrypto.decryptNodeHashKey = jest.fn(async () => Promise.resolve({
268
+ hashKey: new Uint8Array(),
269
+ verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
270
+ verificationErrors: [new Error('missing signature')],
271
+ }));
272
+ const result = await cryptoService.decryptNode(encryptedNode, parentKey);
273
+ verifyResult(result, {
274
+ keyAuthor: {
275
+ ok: true,
276
+ value: 'signatureEmail',
277
+ },
278
+ });
279
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
280
+ });
281
+ it('on newer node hash key does not ignore NOT_SIGNED', async () => {
282
+ encryptedNode.creationTime = new Date('2021-08-01');
283
+ driveCrypto.decryptNodeHashKey = jest.fn(async () => Promise.resolve({
284
+ hashKey: new Uint8Array(),
285
+ verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
286
+ verificationErrors: [new Error('missing signature')],
287
+ }));
288
+ const result = await cryptoService.decryptNode(encryptedNode, parentKey);
289
+ verifyResult(result, {
290
+ keyAuthor: {
291
+ ok: false,
292
+ error: {
293
+ claimedAuthor: 'signatureEmail',
294
+ error: 'Missing signature for hash key',
295
+ },
296
+ },
297
+ });
298
+ });
231
299
  it('on node key and hash key reports error from node key', async () => {
232
300
  driveCrypto.decryptKey = jest.fn(async () => Promise.resolve({
233
301
  passphrase: 'pass',
@@ -814,24 +882,170 @@ describe('nodesCryptoService', () => {
814
882
  });
815
883
  });
816
884
  });
885
+ describe('createFolder', () => {
886
+ let parentKeys;
887
+ beforeEach(() => {
888
+ parentKeys = {
889
+ key: 'parentKey',
890
+ hashKey: new Uint8Array([1, 2, 3]),
891
+ };
892
+ driveCrypto.generateKey = jest.fn().mockResolvedValue({
893
+ encrypted: {
894
+ armoredKey: 'encryptedNodeKey',
895
+ armoredPassphrase: 'encryptedPassphrase',
896
+ armoredPassphraseSignature: 'passphraseSignature',
897
+ },
898
+ decrypted: {
899
+ key: 'nodeKey',
900
+ passphrase: 'nodePassphrase',
901
+ passphraseSessionKey: 'passphraseSessionKey',
902
+ },
903
+ });
904
+ driveCrypto.encryptNodeName = jest.fn().mockResolvedValue({
905
+ armoredNodeName: 'encryptedNodeName',
906
+ });
907
+ driveCrypto.generateLookupHash = jest.fn().mockResolvedValue('lookupHash');
908
+ driveCrypto.generateHashKey = jest.fn().mockResolvedValue({
909
+ armoredHashKey: 'encryptedHashKey',
910
+ hashKey: new Uint8Array([4, 5, 6]),
911
+ });
912
+ driveCrypto.encryptExtendedAttributes = jest.fn().mockResolvedValue({
913
+ armoredExtendedAttributes: 'encryptedAttributes',
914
+ });
915
+ });
916
+ it('should encrypt new folder with account key', async () => {
917
+ const signingKeys = {
918
+ type: 'userAddress',
919
+ email: 'test@example.com',
920
+ addressId: 'addressId',
921
+ key: 'addressKey',
922
+ };
923
+ const result = await cryptoService.createFolder(parentKeys, signingKeys, 'New Folder', '{"modificationTime": 1234567890}');
924
+ expect(result).toEqual({
925
+ encryptedCrypto: {
926
+ encryptedName: 'encryptedNodeName',
927
+ hash: 'lookupHash',
928
+ armoredKey: 'encryptedNodeKey',
929
+ armoredNodePassphrase: 'encryptedPassphrase',
930
+ armoredNodePassphraseSignature: 'passphraseSignature',
931
+ folder: {
932
+ armoredExtendedAttributes: 'encryptedAttributes',
933
+ armoredHashKey: 'encryptedHashKey',
934
+ },
935
+ signatureEmail: 'test@example.com',
936
+ nameSignatureEmail: 'test@example.com',
937
+ },
938
+ keys: {
939
+ passphrase: 'nodePassphrase',
940
+ key: 'nodeKey',
941
+ passphraseSessionKey: 'passphraseSessionKey',
942
+ hashKey: new Uint8Array([4, 5, 6]),
943
+ },
944
+ });
945
+ expect(driveCrypto.generateKey).toHaveBeenCalledWith([parentKeys.key], signingKeys.key);
946
+ expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('New Folder', undefined, parentKeys.key, signingKeys.key);
947
+ expect(driveCrypto.generateLookupHash).toHaveBeenCalledWith('New Folder', parentKeys.hashKey);
948
+ expect(driveCrypto.generateHashKey).toHaveBeenCalledWith('nodeKey');
949
+ expect(driveCrypto.encryptExtendedAttributes).toHaveBeenCalledWith('{"modificationTime": 1234567890}', 'nodeKey', signingKeys.key);
950
+ });
951
+ it('should encrypt new folder with node key', async () => {
952
+ const signingKeys = {
953
+ type: 'nodeKey',
954
+ nodeKey: 'nodeSigningKey',
955
+ parentNodeKey: 'parentNodeKey',
956
+ };
957
+ const result = await cryptoService.createFolder(parentKeys, signingKeys, 'New Folder', '{"modificationTime": 1234567890}');
958
+ expect(result).toEqual({
959
+ encryptedCrypto: {
960
+ encryptedName: 'encryptedNodeName',
961
+ hash: 'lookupHash',
962
+ armoredKey: 'encryptedNodeKey',
963
+ armoredNodePassphrase: 'encryptedPassphrase',
964
+ armoredNodePassphraseSignature: 'passphraseSignature',
965
+ folder: {
966
+ armoredExtendedAttributes: 'encryptedAttributes',
967
+ armoredHashKey: 'encryptedHashKey',
968
+ },
969
+ signatureEmail: null,
970
+ nameSignatureEmail: null,
971
+ },
972
+ keys: {
973
+ passphrase: 'nodePassphrase',
974
+ key: 'nodeKey',
975
+ passphraseSessionKey: 'passphraseSessionKey',
976
+ hashKey: new Uint8Array([4, 5, 6]),
977
+ },
978
+ });
979
+ expect(driveCrypto.generateKey).toHaveBeenCalledWith([parentKeys.key], signingKeys.parentNodeKey);
980
+ expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('New Folder', undefined, parentKeys.key, signingKeys.parentNodeKey);
981
+ expect(driveCrypto.generateLookupHash).toHaveBeenCalledWith('New Folder', parentKeys.hashKey);
982
+ expect(driveCrypto.generateHashKey).toHaveBeenCalledWith('nodeKey');
983
+ expect(driveCrypto.encryptExtendedAttributes).toHaveBeenCalledWith('{"modificationTime": 1234567890}', 'nodeKey', signingKeys.nodeKey);
984
+ });
985
+ });
986
+ describe('encryptNewName', () => {
987
+ let parentKeys;
988
+ let nodeNameSessionKey;
989
+ beforeEach(() => {
990
+ parentKeys = {
991
+ key: 'parentKey',
992
+ hashKey: new Uint8Array([1, 2, 3]),
993
+ };
994
+ nodeNameSessionKey = 'nameSessionKey';
995
+ driveCrypto.encryptNodeName = jest.fn().mockResolvedValue({
996
+ armoredNodeName: 'encryptedNewNodeName',
997
+ });
998
+ driveCrypto.generateLookupHash = jest.fn().mockResolvedValue('newHash');
999
+ });
1000
+ it('should encrypt new name with account key', async () => {
1001
+ const signingKeys = {
1002
+ type: 'userAddress',
1003
+ email: 'test@example.com',
1004
+ addressId: 'addressId',
1005
+ key: 'addressKey',
1006
+ };
1007
+ const result = await cryptoService.encryptNewName(parentKeys, nodeNameSessionKey, signingKeys, 'Renamed File.txt');
1008
+ expect(result).toEqual({
1009
+ signatureEmail: 'test@example.com',
1010
+ armoredNodeName: 'encryptedNewNodeName',
1011
+ hash: 'newHash',
1012
+ });
1013
+ expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('Renamed File.txt', nodeNameSessionKey, parentKeys.key, signingKeys.key);
1014
+ expect(driveCrypto.generateLookupHash).toHaveBeenCalledWith('Renamed File.txt', parentKeys.hashKey);
1015
+ });
1016
+ it('should encrypt new name with node key', async () => {
1017
+ const signingKeys = {
1018
+ type: 'nodeKey',
1019
+ nodeKey: 'nodeSigningKey',
1020
+ parentNodeKey: 'parentNodeKey',
1021
+ };
1022
+ const result = await cryptoService.encryptNewName(parentKeys, nodeNameSessionKey, signingKeys, 'Renamed File.txt');
1023
+ expect(result).toEqual({
1024
+ signatureEmail: null,
1025
+ armoredNodeName: 'encryptedNewNodeName',
1026
+ hash: 'newHash',
1027
+ });
1028
+ expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('Renamed File.txt', nodeNameSessionKey, parentKeys.key, signingKeys.parentNodeKey);
1029
+ expect(driveCrypto.generateLookupHash).toHaveBeenCalledWith('Renamed File.txt', parentKeys.hashKey);
1030
+ });
1031
+ });
817
1032
  describe('encryptNodeWithNewParent', () => {
818
- it('should encrypt node data for move operation', async () => {
819
- const node = {
1033
+ let node;
1034
+ let keys;
1035
+ let parentKeys;
1036
+ beforeEach(() => {
1037
+ node = {
820
1038
  name: { ok: true, value: 'testFile.txt' },
821
1039
  };
822
- const keys = {
1040
+ keys = {
823
1041
  passphrase: 'nodePassphrase',
824
1042
  passphraseSessionKey: 'nodePassphraseSessionKey',
825
1043
  nameSessionKey: 'nameSessionKey',
826
1044
  };
827
- const parentKeys = {
1045
+ parentKeys = {
828
1046
  key: 'newParentKey',
829
1047
  hashKey: new Uint8Array([1, 2, 3]),
830
1048
  };
831
- const address = {
832
- email: 'test@example.com',
833
- addressKey: 'addressKey',
834
- };
835
1049
  driveCrypto.encryptNodeName = jest.fn().mockResolvedValue({
836
1050
  armoredNodeName: 'encryptedNodeName',
837
1051
  });
@@ -840,7 +1054,15 @@ describe('nodesCryptoService', () => {
840
1054
  armoredPassphrase: 'encryptedPassphrase',
841
1055
  armoredPassphraseSignature: 'passphraseSignature',
842
1056
  });
843
- const result = await cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, address);
1057
+ });
1058
+ it('should encrypt node data for move operation with account key (logged in context)', async () => {
1059
+ const signingKeys = {
1060
+ type: 'userAddress',
1061
+ email: 'test@example.com',
1062
+ addressId: 'addressId',
1063
+ key: 'addressKey',
1064
+ };
1065
+ const result = await cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, signingKeys);
844
1066
  expect(result).toEqual({
845
1067
  encryptedName: 'encryptedNodeName',
846
1068
  hash: 'newHash',
@@ -849,9 +1071,28 @@ describe('nodesCryptoService', () => {
849
1071
  signatureEmail: 'test@example.com',
850
1072
  nameSignatureEmail: 'test@example.com',
851
1073
  });
852
- expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('testFile.txt', keys.nameSessionKey, parentKeys.key, address.addressKey);
1074
+ expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('testFile.txt', keys.nameSessionKey, parentKeys.key, signingKeys.key);
1075
+ expect(driveCrypto.generateLookupHash).toHaveBeenCalledWith('testFile.txt', parentKeys.hashKey);
1076
+ expect(driveCrypto.encryptPassphrase).toHaveBeenCalledWith(keys.passphrase, keys.passphraseSessionKey, [parentKeys.key], signingKeys.key);
1077
+ });
1078
+ it('should encrypt node data for move operation with node key (anonymous context)', async () => {
1079
+ const signingKeys = {
1080
+ type: 'nodeKey',
1081
+ nodeKey: 'addressKey',
1082
+ parentNodeKey: 'parentNodeKey',
1083
+ };
1084
+ const result = await cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, signingKeys);
1085
+ expect(result).toEqual({
1086
+ encryptedName: 'encryptedNodeName',
1087
+ hash: 'newHash',
1088
+ armoredNodePassphrase: 'encryptedPassphrase',
1089
+ armoredNodePassphraseSignature: 'passphraseSignature',
1090
+ signatureEmail: null,
1091
+ nameSignatureEmail: null,
1092
+ });
1093
+ expect(driveCrypto.encryptNodeName).toHaveBeenCalledWith('testFile.txt', keys.nameSessionKey, parentKeys.key, signingKeys.nodeKey);
853
1094
  expect(driveCrypto.generateLookupHash).toHaveBeenCalledWith('testFile.txt', parentKeys.hashKey);
854
- expect(driveCrypto.encryptPassphrase).toHaveBeenCalledWith(keys.passphrase, keys.passphraseSessionKey, [parentKeys.key], address.addressKey);
1095
+ expect(driveCrypto.encryptPassphrase).toHaveBeenCalledWith(keys.passphrase, keys.passphraseSessionKey, [parentKeys.key], signingKeys.nodeKey);
855
1096
  });
856
1097
  it('should throw error when moving to non-folder', async () => {
857
1098
  const node = {
@@ -866,11 +1107,13 @@ describe('nodesCryptoService', () => {
866
1107
  key: 'newParentKey',
867
1108
  hashKey: undefined,
868
1109
  };
869
- const address = {
1110
+ const signingKeys = {
1111
+ type: 'userAddress',
870
1112
  email: 'test@example.com',
871
- addressKey: 'addressKey',
1113
+ addressId: 'addressId',
1114
+ key: 'addressKey',
872
1115
  };
873
- await expect(cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, address)).rejects.toThrow('Moving item to a non-folder is not allowed');
1116
+ await expect(cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, signingKeys)).rejects.toThrow('Moving item to a non-folder is not allowed');
874
1117
  });
875
1118
  it('should throw error when node has invalid name', async () => {
876
1119
  const node = {
@@ -885,11 +1128,13 @@ describe('nodesCryptoService', () => {
885
1128
  key: 'newParentKey',
886
1129
  hashKey: new Uint8Array([1, 2, 3]),
887
1130
  };
888
- const address = {
1131
+ const signingKeys = {
1132
+ type: 'userAddress',
889
1133
  email: 'test@example.com',
890
- addressKey: 'addressKey',
1134
+ addressId: 'addressId',
1135
+ key: 'addressKey',
891
1136
  };
892
- await expect(cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, address)).rejects.toThrow('Cannot move item without a valid name, please rename the item first');
1137
+ await expect(cryptoService.encryptNodeWithNewParent(node, keys, parentKeys, signingKeys)).rejects.toThrow('Cannot move item without a valid name, please rename the item first');
893
1138
  });
894
1139
  });
895
1140
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cryptoService.test.js","sourceRoot":"","sources":["../../../src/internal/nodes/cryptoService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cryptoService.test.js","sourceRoot":"","sources":["../../../src/internal/nodes/cryptoService.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { PrivateKey, SessionKey } from '../../crypto';
2
- import { NodeEntity, Result, InvalidNameError, Author, MemberRole, NodeType, ThumbnailType, MetricVolumeType, Revision, RevisionState } from '../../interface';
2
+ import { NodeEntity, Result, InvalidNameError, Author, MemberRole, NodeType, ThumbnailType, MetricVolumeType, Revision, RevisionState, AnonymousUser } from '../../interface';
3
3
  export type FilterOptions = {
4
4
  type?: NodeType;
5
5
  };
@@ -34,8 +34,8 @@ export interface EncryptedNode extends BaseNode {
34
34
  encryptedCrypto: EncryptedNodeFolderCrypto | EncryptedNodeFileCrypto | EncryptedNodeAlbumCrypto;
35
35
  }
36
36
  export interface EncryptedNodeCrypto {
37
- signatureEmail?: string;
38
- nameSignatureEmail?: string;
37
+ signatureEmail?: string | AnonymousUser;
38
+ nameSignatureEmail?: string | AnonymousUser;
39
39
  armoredKey: string;
40
40
  armoredNodePassphrase: string;
41
41
  armoredNodePassphraseSignature?: string;
@@ -61,6 +61,16 @@ export interface EncryptedNodeFolderCrypto extends EncryptedNodeCrypto {
61
61
  }
62
62
  export interface EncryptedNodeAlbumCrypto extends EncryptedNodeCrypto {
63
63
  }
64
+ export type NodeSigningKeys = {
65
+ type: 'userAddress';
66
+ email: string;
67
+ addressId: string;
68
+ key: PrivateKey;
69
+ } | {
70
+ type: 'nodeKey';
71
+ nodeKey?: PrivateKey;
72
+ parentNodeKey?: PrivateKey;
73
+ };
64
74
  /**
65
75
  * Interface used only internally in the nodes module.
66
76
  *
@@ -4,7 +4,7 @@ import { NodeAPIService } from './apiService';
4
4
  import { NodesCache } from './cache';
5
5
  import { NodesCryptoCache } from './cryptoCache';
6
6
  import { NodesCryptoService } from './cryptoService';
7
- import { SharesService, DecryptedUnparsedNode, DecryptedNode, DecryptedNodeKeys, FilterOptions } from './interface';
7
+ import { SharesService, DecryptedUnparsedNode, DecryptedNode, DecryptedNodeKeys, FilterOptions, NodeSigningKeys } from './interface';
8
8
  /**
9
9
  * Provides access to node metadata.
10
10
  *
@@ -54,6 +54,13 @@ export declare class NodesAccess {
54
54
  contentKeyPacketSessionKey?: SessionKey;
55
55
  nameSessionKey: SessionKey;
56
56
  }>;
57
+ getNodeSigningKeys(uids: {
58
+ nodeUid: string;
59
+ parentNodeUid?: string;
60
+ } | {
61
+ nodeUid?: string;
62
+ parentNodeUid: string;
63
+ }): Promise<NodeSigningKeys>;
57
64
  getRootNodeEmailKey(nodeUid: string): Promise<{
58
65
  email: string;
59
66
  addressId: string;
@@ -360,6 +360,19 @@ class NodesAccess {
360
360
  nameSessionKey,
361
361
  };
362
362
  }
363
+ async getNodeSigningKeys(uids) {
364
+ const contextNodeUid = uids.nodeUid || uids.parentNodeUid;
365
+ if (!contextNodeUid) {
366
+ throw new Error('Context node UID is required for signing keys');
367
+ }
368
+ const address = await this.getRootNodeEmailKey(contextNodeUid);
369
+ return {
370
+ type: 'userAddress',
371
+ email: address.email,
372
+ addressId: address.addressId,
373
+ key: address.addressKey,
374
+ };
375
+ }
363
376
  async getRootNodeEmailKey(nodeUid) {
364
377
  const rootNode = await this.getRootNode(nodeUid);
365
378
  if (!rootNode.shareId) {