@protontech/drive-sdk 0.11.0 → 0.12.1
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/crypto/driveCrypto.d.ts +16 -1
- package/dist/crypto/driveCrypto.js +55 -19
- package/dist/crypto/driveCrypto.js.map +1 -1
- package/dist/crypto/driveCrypto.test.js +1 -1
- package/dist/crypto/driveCrypto.test.js.map +1 -1
- package/dist/crypto/interface.d.ts +22 -8
- package/dist/crypto/openPGPCrypto.d.ts +30 -7
- package/dist/crypto/openPGPCrypto.js +46 -8
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/interface/featureFlags.d.ts +4 -1
- package/dist/interface/featureFlags.js +5 -0
- package/dist/interface/featureFlags.js.map +1 -1
- package/dist/interface/index.d.ts +1 -0
- package/dist/interface/index.js +3 -1
- package/dist/interface/index.js.map +1 -1
- package/dist/internal/photos/index.d.ts +2 -2
- package/dist/internal/photos/index.js +2 -2
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/upload.d.ts +2 -2
- package/dist/internal/photos/upload.js +2 -2
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/sharingPublic/nodes.js +11 -4
- package/dist/internal/sharingPublic/nodes.js.map +1 -1
- package/dist/internal/upload/cryptoService.d.ts +4 -2
- package/dist/internal/upload/cryptoService.js +14 -2
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/index.d.ts +2 -2
- package/dist/internal/upload/index.js +2 -2
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/protonDriveClient.js +1 -1
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.d.ts +1 -1
- package/dist/protonDrivePhotosClient.js +6 -2
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/protonDrivePublicLinkClient.d.ts +3 -2
- package/dist/protonDrivePublicLinkClient.js +6 -2
- package/dist/protonDrivePublicLinkClient.js.map +1 -1
- package/package.json +1 -1
- package/src/crypto/driveCrypto.test.ts +1 -0
- package/src/crypto/driveCrypto.ts +51 -10
- package/src/crypto/interface.ts +21 -8
- package/src/crypto/openPGPCrypto.ts +68 -8
- package/src/interface/featureFlags.ts +5 -1
- package/src/interface/index.ts +1 -0
- package/src/internal/photos/index.ts +3 -1
- package/src/internal/photos/upload.ts +14 -6
- package/src/internal/sharingPublic/nodes.ts +11 -4
- package/src/internal/upload/cryptoService.ts +24 -2
- package/src/internal/upload/index.ts +3 -2
- package/src/protonDriveClient.ts +1 -0
- package/src/protonDrivePhotosClient.ts +14 -9
- package/src/protonDrivePublicLinkClient.ts +8 -0
|
@@ -9,6 +9,19 @@ import { OpenPGPCrypto, PrivateKey, PublicKey, SessionKey, SRPModule, SRPVerifie
|
|
|
9
9
|
* but we do share same key generation across shares and nodes modules,
|
|
10
10
|
* for example, which we can generelise here and in each module just
|
|
11
11
|
* call with specific arguments.
|
|
12
|
+
*
|
|
13
|
+
* Note about AEAD encryption:
|
|
14
|
+
*
|
|
15
|
+
* The algorithm of generated session key or encrypted data is defined by
|
|
16
|
+
* the encryption key preferences. If encryption key was generated with
|
|
17
|
+
* `aeadProtect` set to true, session key or encrypted data should use
|
|
18
|
+
* AEAD algorithm.
|
|
19
|
+
*
|
|
20
|
+
* However, in Drive, we do not want to use the AEAD algorithm everywhere,
|
|
21
|
+
* only for file content. Thus, we must pass the `enableAeadWithEncryptionKeys`
|
|
22
|
+
* flag explicitely to control whether to use the encryption key preferences
|
|
23
|
+
* to avoid using AEAD on places where it would not be supported. It should
|
|
24
|
+
* be set to false by default everywhere except for content encryption.
|
|
12
25
|
*/
|
|
13
26
|
export declare class DriveCrypto {
|
|
14
27
|
private telemetry;
|
|
@@ -28,7 +41,9 @@ export declare class DriveCrypto {
|
|
|
28
41
|
* signature) for sending to the server
|
|
29
42
|
* - decrypted data (key, sessionKey) for crypto usage
|
|
30
43
|
*/
|
|
31
|
-
generateKey(encryptionKeys: PrivateKey[], signingKey: PrivateKey
|
|
44
|
+
generateKey(encryptionKeys: PrivateKey[], signingKey: PrivateKey, { enableAead }?: {
|
|
45
|
+
enableAead: boolean;
|
|
46
|
+
}): Promise<{
|
|
32
47
|
encrypted: {
|
|
33
48
|
armoredKey: string;
|
|
34
49
|
armoredPassphrase: string;
|
|
@@ -20,6 +20,19 @@ var SIGNING_CONTEXTS;
|
|
|
20
20
|
* but we do share same key generation across shares and nodes modules,
|
|
21
21
|
* for example, which we can generelise here and in each module just
|
|
22
22
|
* call with specific arguments.
|
|
23
|
+
*
|
|
24
|
+
* Note about AEAD encryption:
|
|
25
|
+
*
|
|
26
|
+
* The algorithm of generated session key or encrypted data is defined by
|
|
27
|
+
* the encryption key preferences. If encryption key was generated with
|
|
28
|
+
* `aeadProtect` set to true, session key or encrypted data should use
|
|
29
|
+
* AEAD algorithm.
|
|
30
|
+
*
|
|
31
|
+
* However, in Drive, we do not want to use the AEAD algorithm everywhere,
|
|
32
|
+
* only for file content. Thus, we must pass the `enableAeadWithEncryptionKeys`
|
|
33
|
+
* flag explicitely to control whether to use the encryption key preferences
|
|
34
|
+
* to avoid using AEAD on places where it would not be supported. It should
|
|
35
|
+
* be set to false by default everywhere except for content encryption.
|
|
23
36
|
*/
|
|
24
37
|
class DriveCrypto {
|
|
25
38
|
telemetry;
|
|
@@ -46,11 +59,12 @@ class DriveCrypto {
|
|
|
46
59
|
* signature) for sending to the server
|
|
47
60
|
* - decrypted data (key, sessionKey) for crypto usage
|
|
48
61
|
*/
|
|
49
|
-
async generateKey(encryptionKeys, signingKey) {
|
|
62
|
+
async generateKey(encryptionKeys, signingKey, { enableAead } = { enableAead: false }) {
|
|
50
63
|
const passphrase = this.openPGPCrypto.generatePassphrase();
|
|
51
64
|
const [{ privateKey, armoredKey }, passphraseSessionKey] = await Promise.all([
|
|
52
|
-
this.openPGPCrypto.generateKey(passphrase),
|
|
53
|
-
|
|
65
|
+
this.openPGPCrypto.generateKey(passphrase, { enableAead }),
|
|
66
|
+
// See note in the interface documentation about AEAD encryption.
|
|
67
|
+
this.openPGPCrypto.generateSessionKey(encryptionKeys, { enableAeadWithEncryptionKeys: false }),
|
|
54
68
|
]);
|
|
55
69
|
const { armoredPassphrase, armoredPassphraseSignature } = await this.encryptPassphrase(passphrase, passphraseSessionKey, encryptionKeys, signingKey);
|
|
56
70
|
return {
|
|
@@ -73,7 +87,10 @@ class DriveCrypto {
|
|
|
73
87
|
* @returns Object with serialised key packet and decrypted session key.
|
|
74
88
|
*/
|
|
75
89
|
async generateContentKey(encryptionKey) {
|
|
76
|
-
|
|
90
|
+
// See note in the interface documentation about AEAD encryption.
|
|
91
|
+
const contentKeyPacketSessionKey = await this.openPGPCrypto.generateSessionKey([encryptionKey], {
|
|
92
|
+
enableAeadWithEncryptionKeys: true,
|
|
93
|
+
});
|
|
77
94
|
const { signature: armoredContentKeyPacketSignature } = await this.openPGPCrypto.signArmored(contentKeyPacketSessionKey.data, [encryptionKey]);
|
|
78
95
|
const { keyPacket } = await this.openPGPCrypto.encryptSessionKey(contentKeyPacketSessionKey, [encryptionKey]);
|
|
79
96
|
return {
|
|
@@ -94,7 +111,9 @@ class DriveCrypto {
|
|
|
94
111
|
* @returns Object with armored passphrase and passphrase signature.
|
|
95
112
|
*/
|
|
96
113
|
async encryptPassphrase(passphrase, sessionKey, encryptionKeys, signingKey) {
|
|
97
|
-
const { armoredData: armoredPassphrase, armoredSignature: armoredPassphraseSignature } = await this.openPGPCrypto.encryptAndSignDetachedArmored(new TextEncoder().encode(passphrase), sessionKey, encryptionKeys, signingKey
|
|
114
|
+
const { armoredData: armoredPassphrase, armoredSignature: armoredPassphraseSignature } = await this.openPGPCrypto.encryptAndSignDetachedArmored(new TextEncoder().encode(passphrase), sessionKey, encryptionKeys, signingKey,
|
|
115
|
+
// See note in the interface documentation about AEAD encryption.
|
|
116
|
+
{ enableAeadWithEncryptionKeys: false });
|
|
98
117
|
return {
|
|
99
118
|
armoredPassphrase,
|
|
100
119
|
armoredPassphraseSignature,
|
|
@@ -142,7 +161,9 @@ class DriveCrypto {
|
|
|
142
161
|
*/
|
|
143
162
|
async encryptPublicLinkPasswordAndSessionKey(password, addressKey, bcryptPassphrase, sharePassphraseSessionKey) {
|
|
144
163
|
const [{ armoredData: armoredPassword }, { keyPacket }, srp] = await Promise.all([
|
|
145
|
-
this.openPGPCrypto.encryptArmored(new TextEncoder().encode(password), [addressKey]
|
|
164
|
+
this.openPGPCrypto.encryptArmored(new TextEncoder().encode(password), [addressKey], undefined,
|
|
165
|
+
// See note in the interface documentation about AEAD encryption.
|
|
166
|
+
{ enableAeadWithEncryptionKeys: false }),
|
|
146
167
|
this.openPGPCrypto.encryptSessionKeyWithPassword(sharePassphraseSessionKey, bcryptPassphrase),
|
|
147
168
|
this.srpModule.getSrpVerifier(password),
|
|
148
169
|
]);
|
|
@@ -207,7 +228,9 @@ class DriveCrypto {
|
|
|
207
228
|
* It encrypts and armors signature with provided session and encryption keys.
|
|
208
229
|
*/
|
|
209
230
|
async encryptSignature(signature, encryptionKey, sessionKey) {
|
|
210
|
-
const { armoredData: armoredSignature } = await this.openPGPCrypto.encryptArmored(signature, [encryptionKey], sessionKey
|
|
231
|
+
const { armoredData: armoredSignature } = await this.openPGPCrypto.encryptArmored(signature, [encryptionKey], sessionKey,
|
|
232
|
+
// See note in the interface documentation about AEAD encryption.
|
|
233
|
+
{ enableAeadWithEncryptionKeys: false });
|
|
211
234
|
return {
|
|
212
235
|
armoredSignature,
|
|
213
236
|
};
|
|
@@ -222,7 +245,9 @@ class DriveCrypto {
|
|
|
222
245
|
//const passphrase crypto.getRandomValues(new Uint8Array(32));
|
|
223
246
|
const passphrase = this.openPGPCrypto.generatePassphrase();
|
|
224
247
|
const hashKey = new TextEncoder().encode(passphrase);
|
|
225
|
-
const { armoredData: armoredHashKey } = await this.openPGPCrypto.encryptAndSignArmored(hashKey, undefined, [encryptionAndSigningKey], encryptionAndSigningKey
|
|
248
|
+
const { armoredData: armoredHashKey } = await this.openPGPCrypto.encryptAndSignArmored(hashKey, undefined, [encryptionAndSigningKey], encryptionAndSigningKey,
|
|
249
|
+
// See note in the interface documentation about AEAD encryption.
|
|
250
|
+
{ enableAeadWithEncryptionKeys: false });
|
|
226
251
|
return {
|
|
227
252
|
armoredHashKey,
|
|
228
253
|
hashKey,
|
|
@@ -245,7 +270,9 @@ class DriveCrypto {
|
|
|
245
270
|
if (!sessionKey && !encryptionKey) {
|
|
246
271
|
throw new Error('Neither session nor encryption key provided for encrypting node name');
|
|
247
272
|
}
|
|
248
|
-
const { armoredData: armoredNodeName } = await this.openPGPCrypto.encryptAndSignArmored(new TextEncoder().encode(nodeName), sessionKey, encryptionKey ? [encryptionKey] : [], signingKey
|
|
273
|
+
const { armoredData: armoredNodeName } = await this.openPGPCrypto.encryptAndSignArmored(new TextEncoder().encode(nodeName), sessionKey, encryptionKey ? [encryptionKey] : [], signingKey,
|
|
274
|
+
// See note in the interface documentation about AEAD encryption.
|
|
275
|
+
{ enableAeadWithEncryptionKeys: false });
|
|
249
276
|
return {
|
|
250
277
|
armoredNodeName,
|
|
251
278
|
};
|
|
@@ -285,7 +312,9 @@ class DriveCrypto {
|
|
|
285
312
|
};
|
|
286
313
|
}
|
|
287
314
|
async encryptExtendedAttributes(extendedAttributes, encryptionKey, signingKey) {
|
|
288
|
-
const { armoredData: armoredExtendedAttributes } = await this.openPGPCrypto.encryptAndSignArmored(new TextEncoder().encode(extendedAttributes), undefined, [encryptionKey], signingKey,
|
|
315
|
+
const { armoredData: armoredExtendedAttributes } = await this.openPGPCrypto.encryptAndSignArmored(new TextEncoder().encode(extendedAttributes), undefined, [encryptionKey], signingKey,
|
|
316
|
+
// See note in the interface documentation about AEAD encryption.
|
|
317
|
+
{ compress: true, enableAeadWithEncryptionKeys: false });
|
|
289
318
|
return {
|
|
290
319
|
armoredExtendedAttributes,
|
|
291
320
|
};
|
|
@@ -327,8 +356,10 @@ class DriveCrypto {
|
|
|
327
356
|
async encryptThumbnailBlock(thumbnailData, sessionKey, signingKey) {
|
|
328
357
|
const start = performance.now();
|
|
329
358
|
const { encryptedData } = await this.openPGPCrypto.encryptAndSign(thumbnailData, sessionKey, [], // Thumbnails use the session key so we do not send encryption key.
|
|
330
|
-
signingKey
|
|
331
|
-
|
|
359
|
+
signingKey,
|
|
360
|
+
// See note in the interface documentation about AEAD encryption.
|
|
361
|
+
{ enableAeadWithEncryptionKeys: true });
|
|
362
|
+
this.recordPerformance('content_encryption', sessionKey, thumbnailData.length, start);
|
|
332
363
|
return {
|
|
333
364
|
encryptedData,
|
|
334
365
|
};
|
|
@@ -336,7 +367,7 @@ class DriveCrypto {
|
|
|
336
367
|
async decryptThumbnailBlock(encryptedThumbnail, sessionKey, verificationKeys) {
|
|
337
368
|
const start = performance.now();
|
|
338
369
|
const { data: decryptedThumbnail, verified, verificationErrors, } = await this.openPGPCrypto.decryptAndVerify(encryptedThumbnail, sessionKey, verificationKeys);
|
|
339
|
-
this.recordPerformance('content_decryption', decryptedThumbnail.length, start);
|
|
370
|
+
this.recordPerformance('content_decryption', sessionKey, decryptedThumbnail.length, start);
|
|
340
371
|
return {
|
|
341
372
|
decryptedThumbnail,
|
|
342
373
|
verified,
|
|
@@ -346,8 +377,10 @@ class DriveCrypto {
|
|
|
346
377
|
async encryptBlock(blockData, encryptionKey, sessionKey, signingKey) {
|
|
347
378
|
const start = performance.now();
|
|
348
379
|
const { encryptedData, signature } = await this.openPGPCrypto.encryptAndSignDetached(blockData, sessionKey, [], // Blocks use the session key so we do not send encryption key.
|
|
349
|
-
signingKey
|
|
350
|
-
|
|
380
|
+
signingKey,
|
|
381
|
+
// See note in the interface documentation about AEAD encryption.
|
|
382
|
+
{ enableAeadWithEncryptionKeys: true });
|
|
383
|
+
this.recordPerformance('content_encryption', sessionKey, blockData.length, start);
|
|
351
384
|
const { armoredSignature } = await this.encryptSignature(signature, encryptionKey, sessionKey);
|
|
352
385
|
return {
|
|
353
386
|
encryptedData,
|
|
@@ -357,7 +390,7 @@ class DriveCrypto {
|
|
|
357
390
|
async decryptBlock(encryptedBlock, sessionKey) {
|
|
358
391
|
const start = performance.now();
|
|
359
392
|
const { data: decryptedBlock } = await this.openPGPCrypto.decryptAndVerify(encryptedBlock, sessionKey, []);
|
|
360
|
-
this.recordPerformance('content_decryption', decryptedBlock.length, start);
|
|
393
|
+
this.recordPerformance('content_decryption', sessionKey, decryptedBlock.length, start);
|
|
361
394
|
return decryptedBlock;
|
|
362
395
|
}
|
|
363
396
|
async signManifest(manifest, signingKey) {
|
|
@@ -378,16 +411,19 @@ class DriveCrypto {
|
|
|
378
411
|
return uint8ArrayToUtf8(password);
|
|
379
412
|
}
|
|
380
413
|
async encryptShareUrlPassword(password, encryptionKey, signingKey) {
|
|
381
|
-
const { armoredData } = await this.openPGPCrypto.encryptAndSignArmored(new TextEncoder().encode(password), undefined, [encryptionKey], signingKey
|
|
414
|
+
const { armoredData } = await this.openPGPCrypto.encryptAndSignArmored(new TextEncoder().encode(password), undefined, [encryptionKey], signingKey,
|
|
415
|
+
// See note in the interface documentation about AEAD encryption.
|
|
416
|
+
{ enableAeadWithEncryptionKeys: false });
|
|
382
417
|
return armoredData;
|
|
383
418
|
}
|
|
384
|
-
recordPerformance(type, bytesProcessed, start) {
|
|
419
|
+
recordPerformance(type, sessionKey, bytesProcessed, start) {
|
|
385
420
|
const end = performance.now();
|
|
386
421
|
const duration = end - start;
|
|
422
|
+
const cryptoModel = sessionKey.aeadAlgorithm ? 'v1.5' : 'v1';
|
|
387
423
|
this.telemetry.recordMetric({
|
|
388
424
|
eventName: 'performance',
|
|
389
425
|
type,
|
|
390
|
-
cryptoModel
|
|
426
|
+
cryptoModel,
|
|
391
427
|
bytesProcessed,
|
|
392
428
|
milliseconds: Math.round(duration),
|
|
393
429
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driveCrypto.js","sourceRoot":"","sources":["../../src/crypto/driveCrypto.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driveCrypto.js","sourceRoot":"","sources":["../../src/crypto/driveCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ describe('DriveCrypto.encryptShareUrlPassword', () => {
|
|
|
54
54
|
const signingKey = 'mockSigningKey';
|
|
55
55
|
const result = await driveCrypto.encryptShareUrlPassword(password, encryptionKey, signingKey);
|
|
56
56
|
expect(result).toBe('-----BEGIN PGP MESSAGE-----\nencrypted data\n-----END PGP MESSAGE-----');
|
|
57
|
-
expect(mockOpenPGPCrypto.encryptAndSignArmored).toHaveBeenCalledWith(new TextEncoder().encode(password), undefined, [encryptionKey], signingKey);
|
|
57
|
+
expect(mockOpenPGPCrypto.encryptAndSignArmored).toHaveBeenCalledWith(new TextEncoder().encode(password), undefined, [encryptionKey], signingKey, { enableAeadWithEncryptionKeys: false });
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
//# sourceMappingURL=driveCrypto.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driveCrypto.test.js","sourceRoot":"","sources":["../../src/crypto/driveCrypto.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"driveCrypto.test.js","sourceRoot":"","sources":["../../src/crypto/driveCrypto.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,8 @@ export interface PrivateKey extends PublicKey {
|
|
|
25
25
|
}
|
|
26
26
|
export interface SessionKey {
|
|
27
27
|
data: Uint8Array<ArrayBuffer>;
|
|
28
|
-
algorithm:
|
|
28
|
+
algorithm: string | null;
|
|
29
|
+
aeadAlgorithm: string | null;
|
|
29
30
|
}
|
|
30
31
|
export declare enum VERIFICATION_STATUS {
|
|
31
32
|
NOT_SIGNED = 0,
|
|
@@ -65,7 +66,9 @@ export interface OpenPGPCrypto {
|
|
|
65
66
|
* 32 random bytes are generated and encoded into a base64 string.
|
|
66
67
|
*/
|
|
67
68
|
generatePassphrase: () => string;
|
|
68
|
-
generateSessionKey: (encryptionKeys: PublicKey[]
|
|
69
|
+
generateSessionKey: (encryptionKeys: PublicKey[], options: {
|
|
70
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
71
|
+
}) => Promise<SessionKey>;
|
|
69
72
|
encryptSessionKey: (sessionKey: SessionKey, encryptionKeys: PublicKey | PublicKey[]) => Promise<{
|
|
70
73
|
keyPacket: Uint8Array<ArrayBuffer>;
|
|
71
74
|
}>;
|
|
@@ -77,26 +80,37 @@ export interface OpenPGPCrypto {
|
|
|
77
80
|
*
|
|
78
81
|
* The key pair is generated using the Curve25519 algorithm.
|
|
79
82
|
*/
|
|
80
|
-
generateKey: (passphrase: string
|
|
83
|
+
generateKey: (passphrase: string, options: {
|
|
84
|
+
enableAead: boolean;
|
|
85
|
+
}) => Promise<{
|
|
81
86
|
privateKey: PrivateKey;
|
|
82
87
|
armoredKey: string;
|
|
83
88
|
}>;
|
|
84
|
-
encryptArmored: (data: Uint8Array<ArrayBuffer>, encryptionKeys: PublicKey[], sessionKey
|
|
89
|
+
encryptArmored: (data: Uint8Array<ArrayBuffer>, encryptionKeys: PublicKey[], sessionKey: SessionKey | undefined, options: {
|
|
90
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
91
|
+
}) => Promise<{
|
|
85
92
|
armoredData: string;
|
|
86
93
|
}>;
|
|
87
|
-
encryptAndSign: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey
|
|
94
|
+
encryptAndSign: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
95
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
96
|
+
}) => Promise<{
|
|
88
97
|
encryptedData: Uint8Array<ArrayBuffer>;
|
|
89
98
|
}>;
|
|
90
|
-
encryptAndSignArmored: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey | undefined, encryptionKeys: PublicKey[], signingKey: PrivateKey, options
|
|
99
|
+
encryptAndSignArmored: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey | undefined, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
91
100
|
compress?: boolean;
|
|
101
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
92
102
|
}) => Promise<{
|
|
93
103
|
armoredData: string;
|
|
94
104
|
}>;
|
|
95
|
-
encryptAndSignDetached: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey
|
|
105
|
+
encryptAndSignDetached: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
106
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
107
|
+
}) => Promise<{
|
|
96
108
|
encryptedData: Uint8Array<ArrayBuffer>;
|
|
97
109
|
signature: Uint8Array<ArrayBuffer>;
|
|
98
110
|
}>;
|
|
99
|
-
encryptAndSignDetachedArmored: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey
|
|
111
|
+
encryptAndSignDetachedArmored: (data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
112
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
113
|
+
}) => Promise<{
|
|
100
114
|
armoredData: string;
|
|
101
115
|
armoredSignature: string;
|
|
102
116
|
}>;
|
|
@@ -10,6 +10,9 @@ export interface OpenPGPCryptoProxy {
|
|
|
10
10
|
}[];
|
|
11
11
|
type: 'ecc';
|
|
12
12
|
curve: 'ed25519Legacy';
|
|
13
|
+
config?: {
|
|
14
|
+
aeadProtect: boolean;
|
|
15
|
+
};
|
|
13
16
|
}) => Promise<PrivateKey>;
|
|
14
17
|
exportPrivateKey: (options: {
|
|
15
18
|
privateKey: PrivateKey;
|
|
@@ -21,6 +24,9 @@ export interface OpenPGPCryptoProxy {
|
|
|
21
24
|
}) => Promise<PrivateKey>;
|
|
22
25
|
generateSessionKey: (options: {
|
|
23
26
|
recipientKeys: PublicKey[];
|
|
27
|
+
config?: {
|
|
28
|
+
ignoreSEIPDv2FeatureFlag: boolean;
|
|
29
|
+
};
|
|
24
30
|
}) => Promise<SessionKey>;
|
|
25
31
|
encryptSessionKey: (options: SessionKey & {
|
|
26
32
|
format: 'binary';
|
|
@@ -40,6 +46,9 @@ export interface OpenPGPCryptoProxy {
|
|
|
40
46
|
signingKeys?: PrivateKey;
|
|
41
47
|
detached?: Detached;
|
|
42
48
|
compress?: boolean;
|
|
49
|
+
config?: {
|
|
50
|
+
ignoreSEIPDv2FeatureFlag: boolean;
|
|
51
|
+
};
|
|
43
52
|
}) => Promise<Detached extends true ? {
|
|
44
53
|
message: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
|
|
45
54
|
signature: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
|
|
@@ -94,33 +103,47 @@ export declare class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
94
103
|
private cryptoProxy;
|
|
95
104
|
constructor(cryptoProxy: OpenPGPCryptoProxy);
|
|
96
105
|
generatePassphrase(): string;
|
|
97
|
-
generateSessionKey(encryptionKeys: PublicKey[]
|
|
106
|
+
generateSessionKey(encryptionKeys: PublicKey[], options: {
|
|
107
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
108
|
+
}): Promise<SessionKey>;
|
|
98
109
|
encryptSessionKey(sessionKey: SessionKey, encryptionKeys: PublicKey | PublicKey[]): Promise<{
|
|
99
110
|
keyPacket: Uint8Array<ArrayBuffer>;
|
|
100
111
|
}>;
|
|
101
112
|
encryptSessionKeyWithPassword(sessionKey: SessionKey, password: string): Promise<{
|
|
102
113
|
keyPacket: Uint8Array<ArrayBuffer>;
|
|
103
114
|
}>;
|
|
104
|
-
generateKey(passphrase: string
|
|
115
|
+
generateKey(passphrase: string, options: {
|
|
116
|
+
enableAead: boolean;
|
|
117
|
+
}): Promise<{
|
|
105
118
|
armoredKey: string;
|
|
106
119
|
privateKey: PrivateKey;
|
|
107
120
|
}>;
|
|
108
|
-
encryptArmored(data: Uint8Array<ArrayBuffer>, encryptionKeys: PublicKey[], sessionKey
|
|
121
|
+
encryptArmored(data: Uint8Array<ArrayBuffer>, encryptionKeys: PublicKey[], sessionKey: SessionKey | undefined, options: {
|
|
122
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
123
|
+
}): Promise<{
|
|
109
124
|
armoredData: string;
|
|
110
125
|
}>;
|
|
111
|
-
encryptAndSign(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey
|
|
126
|
+
encryptAndSign(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
127
|
+
compress?: boolean;
|
|
128
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
129
|
+
}): Promise<{
|
|
112
130
|
encryptedData: Uint8Array<ArrayBuffer>;
|
|
113
131
|
}>;
|
|
114
|
-
encryptAndSignArmored(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey | undefined, encryptionKeys: PublicKey[], signingKey: PrivateKey, options
|
|
132
|
+
encryptAndSignArmored(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey | undefined, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
115
133
|
compress?: boolean;
|
|
134
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
116
135
|
}): Promise<{
|
|
117
136
|
armoredData: string;
|
|
118
137
|
}>;
|
|
119
|
-
encryptAndSignDetached(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey
|
|
138
|
+
encryptAndSignDetached(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
139
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
140
|
+
}): Promise<{
|
|
120
141
|
encryptedData: Uint8Array<ArrayBuffer>;
|
|
121
142
|
signature: Uint8Array<ArrayBuffer>;
|
|
122
143
|
}>;
|
|
123
|
-
encryptAndSignDetachedArmored(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey
|
|
144
|
+
encryptAndSignDetachedArmored(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, encryptionKeys: PublicKey[], signingKey: PrivateKey, options: {
|
|
145
|
+
enableAeadWithEncryptionKeys: boolean;
|
|
146
|
+
}): Promise<{
|
|
124
147
|
armoredData: string;
|
|
125
148
|
armoredSignature: string;
|
|
126
149
|
}>;
|
|
@@ -20,8 +20,15 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
20
20
|
// generating of random bytes without encoding it into base64.
|
|
21
21
|
return (0, utils_1.uint8ArrayToBase64String)(value);
|
|
22
22
|
}
|
|
23
|
-
async generateSessionKey(encryptionKeys) {
|
|
24
|
-
return this.cryptoProxy.generateSessionKey({
|
|
23
|
+
async generateSessionKey(encryptionKeys, options) {
|
|
24
|
+
return this.cryptoProxy.generateSessionKey({
|
|
25
|
+
recipientKeys: encryptionKeys,
|
|
26
|
+
// `ignoreSEIPDv2FeatureFlag` means that the key preferences are
|
|
27
|
+
// ignored. If set to `true`, the session key will be generated
|
|
28
|
+
// the standard non-AEAD algorithm. If set to `false`, the session
|
|
29
|
+
// key will always follow the encryption key preferences.
|
|
30
|
+
config: { ignoreSEIPDv2FeatureFlag: !options.enableAeadWithEncryptionKeys },
|
|
31
|
+
});
|
|
25
32
|
}
|
|
26
33
|
async encryptSessionKey(sessionKey, encryptionKeys) {
|
|
27
34
|
const keyPacket = await this.cryptoProxy.encryptSessionKey({
|
|
@@ -43,11 +50,12 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
43
50
|
keyPacket,
|
|
44
51
|
};
|
|
45
52
|
}
|
|
46
|
-
async generateKey(passphrase) {
|
|
53
|
+
async generateKey(passphrase, options) {
|
|
47
54
|
const privateKey = await this.cryptoProxy.generateKey({
|
|
48
55
|
userIDs: [{ name: 'Drive key' }],
|
|
49
56
|
type: 'ecc',
|
|
50
57
|
curve: 'ed25519Legacy',
|
|
58
|
+
config: { aeadProtect: options.enableAead },
|
|
51
59
|
});
|
|
52
60
|
const armoredKey = await this.cryptoProxy.exportPrivateKey({
|
|
53
61
|
privateKey,
|
|
@@ -58,17 +66,22 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
58
66
|
privateKey,
|
|
59
67
|
};
|
|
60
68
|
}
|
|
61
|
-
async encryptArmored(data, encryptionKeys, sessionKey) {
|
|
69
|
+
async encryptArmored(data, encryptionKeys, sessionKey, options) {
|
|
62
70
|
const { message: armoredData } = await this.cryptoProxy.encryptMessage({
|
|
63
71
|
binaryData: data,
|
|
64
72
|
sessionKey,
|
|
65
73
|
encryptionKeys,
|
|
74
|
+
// `ignoreSEIPDv2FeatureFlag` means that the key preferences are
|
|
75
|
+
// ignored. If set to `true`, the encrypted data will be generated
|
|
76
|
+
// the standard non-AEAD algorithm. If set to `false`, the session
|
|
77
|
+
// key will always follow the encryption key preferences.
|
|
78
|
+
config: { ignoreSEIPDv2FeatureFlag: !options.enableAeadWithEncryptionKeys },
|
|
66
79
|
});
|
|
67
80
|
return {
|
|
68
81
|
armoredData: armoredData,
|
|
69
82
|
};
|
|
70
83
|
}
|
|
71
|
-
async encryptAndSign(data, sessionKey, encryptionKeys, signingKey) {
|
|
84
|
+
async encryptAndSign(data, sessionKey, encryptionKeys, signingKey, options) {
|
|
72
85
|
const { message: encryptedData } = await this.cryptoProxy.encryptMessage({
|
|
73
86
|
binaryData: data,
|
|
74
87
|
sessionKey,
|
|
@@ -76,12 +89,17 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
76
89
|
encryptionKeys,
|
|
77
90
|
format: 'binary',
|
|
78
91
|
detached: false,
|
|
92
|
+
// `ignoreSEIPDv2FeatureFlag` means that the key preferences are
|
|
93
|
+
// ignored. If set to `true`, the encrypted data will be generated
|
|
94
|
+
// the standard non-AEAD algorithm. If set to `false`, the session
|
|
95
|
+
// key will always follow the encryption key preferences.
|
|
96
|
+
config: { ignoreSEIPDv2FeatureFlag: !options.enableAeadWithEncryptionKeys },
|
|
79
97
|
});
|
|
80
98
|
return {
|
|
81
99
|
encryptedData: encryptedData,
|
|
82
100
|
};
|
|
83
101
|
}
|
|
84
|
-
async encryptAndSignArmored(data, sessionKey, encryptionKeys, signingKey, options
|
|
102
|
+
async encryptAndSignArmored(data, sessionKey, encryptionKeys, signingKey, options) {
|
|
85
103
|
const { message: armoredData } = await this.cryptoProxy.encryptMessage({
|
|
86
104
|
binaryData: data,
|
|
87
105
|
encryptionKeys,
|
|
@@ -89,12 +107,17 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
89
107
|
signingKeys: signingKey,
|
|
90
108
|
detached: false,
|
|
91
109
|
compress: options.compress || false,
|
|
110
|
+
// `ignoreSEIPDv2FeatureFlag` means that the key preferences are
|
|
111
|
+
// ignored. If set to `true`, the encrypted data will be generated
|
|
112
|
+
// the standard non-AEAD algorithm. If set to `false`, the session
|
|
113
|
+
// key will always follow the encryption key preferences.
|
|
114
|
+
config: { ignoreSEIPDv2FeatureFlag: !options.enableAeadWithEncryptionKeys },
|
|
92
115
|
});
|
|
93
116
|
return {
|
|
94
117
|
armoredData: armoredData,
|
|
95
118
|
};
|
|
96
119
|
}
|
|
97
|
-
async encryptAndSignDetached(data, sessionKey, encryptionKeys, signingKey) {
|
|
120
|
+
async encryptAndSignDetached(data, sessionKey, encryptionKeys, signingKey, options) {
|
|
98
121
|
const { message: encryptedData, signature } = await this.cryptoProxy.encryptMessage({
|
|
99
122
|
binaryData: data,
|
|
100
123
|
sessionKey,
|
|
@@ -102,19 +125,29 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
102
125
|
encryptionKeys,
|
|
103
126
|
format: 'binary',
|
|
104
127
|
detached: true,
|
|
128
|
+
// `ignoreSEIPDv2FeatureFlag` means that the key preferences are
|
|
129
|
+
// ignored. If set to `true`, the encrypted data will be generated
|
|
130
|
+
// the standard non-AEAD algorithm. If set to `false`, the session
|
|
131
|
+
// key will always follow the encryption key preferences.
|
|
132
|
+
config: { ignoreSEIPDv2FeatureFlag: !options.enableAeadWithEncryptionKeys },
|
|
105
133
|
});
|
|
106
134
|
return {
|
|
107
135
|
encryptedData: encryptedData,
|
|
108
136
|
signature: signature,
|
|
109
137
|
};
|
|
110
138
|
}
|
|
111
|
-
async encryptAndSignDetachedArmored(data, sessionKey, encryptionKeys, signingKey) {
|
|
139
|
+
async encryptAndSignDetachedArmored(data, sessionKey, encryptionKeys, signingKey, options) {
|
|
112
140
|
const { message: armoredData, signature: armoredSignature } = await this.cryptoProxy.encryptMessage({
|
|
113
141
|
binaryData: data,
|
|
114
142
|
sessionKey,
|
|
115
143
|
signingKeys: signingKey,
|
|
116
144
|
encryptionKeys,
|
|
117
145
|
detached: true,
|
|
146
|
+
// `ignoreSEIPDv2FeatureFlag` means that the key preferences are
|
|
147
|
+
// ignored. If set to `true`, the encrypted data will be generated
|
|
148
|
+
// the standard non-AEAD algorithm. If set to `false`, the session
|
|
149
|
+
// key will always follow the encryption key preferences.
|
|
150
|
+
config: { ignoreSEIPDv2FeatureFlag: !options.enableAeadWithEncryptionKeys },
|
|
118
151
|
});
|
|
119
152
|
return {
|
|
120
153
|
armoredData: armoredData,
|
|
@@ -175,6 +208,11 @@ class OpenPGPCryptoWithCryptoProxy {
|
|
|
175
208
|
if (!sessionKey) {
|
|
176
209
|
throw new Error('Could not decrypt session key');
|
|
177
210
|
}
|
|
211
|
+
// Encrypted OpenPGP v6 session keys used for AEAD do not store algorithm information, so we hardcode it
|
|
212
|
+
if (sessionKey.algorithm === null) {
|
|
213
|
+
sessionKey.algorithm = 'aes256';
|
|
214
|
+
sessionKey.aeadAlgorithm = 'gcm';
|
|
215
|
+
}
|
|
178
216
|
return sessionKey;
|
|
179
217
|
}
|
|
180
218
|
async decryptArmoredSessionKey(armoredData, decryptionKeys) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openPGPCrypto.js","sourceRoot":"","sources":["../../src/crypto/openPGPCrypto.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAGzB,mCAAmD;
|
|
1
|
+
{"version":3,"file":"openPGPCrypto.js","sourceRoot":"","sources":["../../src/crypto/openPGPCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,8 @@
|
|
|
3
3
|
* Applications must supply their own implementation.
|
|
4
4
|
*/
|
|
5
5
|
export interface FeatureFlagProvider {
|
|
6
|
-
isEnabled(flagName:
|
|
6
|
+
isEnabled(flagName: FeatureFlags, signal?: AbortSignal): Promise<boolean>;
|
|
7
|
+
}
|
|
8
|
+
export declare enum FeatureFlags {
|
|
9
|
+
DriveCryptoEncryptBlocksWithPgpAead = "DriveCryptoEncryptBlocksWithPgpAead"
|
|
7
10
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureFlags = void 0;
|
|
4
|
+
var FeatureFlags;
|
|
5
|
+
(function (FeatureFlags) {
|
|
6
|
+
FeatureFlags["DriveCryptoEncryptBlocksWithPgpAead"] = "DriveCryptoEncryptBlocksWithPgpAead";
|
|
7
|
+
})(FeatureFlags || (exports.FeatureFlags = FeatureFlags = {}));
|
|
3
8
|
//# sourceMappingURL=featureFlags.js.map
|