Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue #1362 Upgrade to openpgp.js v5 #1374

Merged
merged 185 commits into from Feb 18, 2022
Merged
Show file tree
Hide file tree
Changes from 182 commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
c8e2825
wip issue 1362
Feb 3, 2022
045c253
update local copy
Feb 3, 2022
c091b3d
add old version for reference
Feb 3, 2022
8d22994
wip
Feb 3, 2022
479a81c
wip
Feb 3, 2022
4ccb2ff
wip
Feb 3, 2022
c8ceff8
wip
Feb 3, 2022
ad376d5
wip
Feb 3, 2022
a2ff73e
wip
Feb 3, 2022
5d71a3c
wip
Feb 3, 2022
33d7bf6
wip
Feb 3, 2022
0f58944
wip
Feb 3, 2022
0a28c31
wip
Feb 3, 2022
e6a5f81
wip
Feb 3, 2022
8f14ee4
wip
Feb 4, 2022
48a1603
wip
Feb 4, 2022
4b033d8
wip
Feb 4, 2022
48083bd
wip
Feb 4, 2022
e096883
wip
Feb 4, 2022
5dea93e
wip
Feb 4, 2022
a6139ed
wip
Feb 4, 2022
f4401e5
wip
Feb 5, 2022
5199534
wip
Feb 5, 2022
df8aae8
wip
Feb 5, 2022
2169ee3
wip
Feb 5, 2022
a1d529a
wip
Feb 5, 2022
5266d30
wip
Feb 5, 2022
6caa9e9
wip
Feb 5, 2022
4fc6df0
wip
Feb 5, 2022
af630a0
wip
Feb 5, 2022
c514b04
wip
Feb 6, 2022
31ec18e
wip
Feb 6, 2022
629bd14
wip
Feb 6, 2022
abe1855
wip
Feb 6, 2022
4e4f7f8
wip
Feb 6, 2022
24b0cd2
wip
Feb 6, 2022
7adb33b
wip
Feb 6, 2022
edeb0ee
wip
Feb 6, 2022
23f6a6b
wip
Feb 6, 2022
cecea49
wip
Feb 6, 2022
0c991f6
wip
Feb 6, 2022
dfc0832
wip
Feb 6, 2022
da90df6
wip
Feb 6, 2022
be06bc4
Merge remote-tracking branch 'origin/master' into issue-1362-openpgp-…
Feb 6, 2022
50894a9
wip
Feb 6, 2022
70dabb4
wip
Feb 6, 2022
eacc82c
wip
Feb 6, 2022
ef7824c
wip
Feb 6, 2022
f424796
wip
Feb 6, 2022
20464f5
wip
Feb 6, 2022
b26d274
wip
Feb 6, 2022
b5183d8
wip
Feb 6, 2022
287b5e8
wip
Feb 6, 2022
a879d04
wip
Feb 6, 2022
7b42263
wip
Feb 7, 2022
e843a1f
wip
Feb 7, 2022
3026822
wip
Feb 7, 2022
0cf29b8
wip
Feb 7, 2022
d5ee749
wip
Feb 7, 2022
94def1b
wip
Feb 7, 2022
473d9f1
wip
Feb 7, 2022
6f75ac5
wip
Feb 7, 2022
35e6248
wip
Feb 7, 2022
48c72aa
wip
Feb 7, 2022
fc96f1b
wip
Feb 7, 2022
d7f59bd
wip
Feb 7, 2022
fff755e
wip
Feb 7, 2022
e46e3dc
Merge remote-tracking branch 'origin/master' into issue-1362-openpgp-…
Feb 8, 2022
2e8b12b
wip
Feb 8, 2022
c41dde8
wip
Feb 8, 2022
ad23f04
wip
Feb 8, 2022
d22eec9
wip
Feb 8, 2022
79e8fef
wip
Feb 8, 2022
30db75c
wip
Feb 8, 2022
9b51612
wip
Feb 8, 2022
5a860f9
wip
Feb 8, 2022
7c3f348
wip
Feb 8, 2022
9fc62ff
wip
Feb 9, 2022
4d594a9
wip
Feb 9, 2022
ffcffe2
wip
Feb 9, 2022
938ab44
wip
Feb 9, 2022
7e99ada
wip
Feb 9, 2022
6fabe55
wip
Feb 9, 2022
71bcee2
wip
Feb 9, 2022
0c68330
wip
Feb 9, 2022
9f39607
wip
Feb 9, 2022
3a07a62
wip
Feb 9, 2022
f433134
wip
Feb 9, 2022
586f0a5
wip
Feb 9, 2022
86ca36c
wip
Feb 9, 2022
9e00a7e
wip
Feb 9, 2022
2b2ddfe
wip
Feb 9, 2022
a21e26c
wip
Feb 9, 2022
8270318
wip
Feb 9, 2022
845cda5
wip
Feb 9, 2022
c59c4bd
wip
Feb 9, 2022
6b69d12
wip
Feb 9, 2022
b1b82ec
wip
Feb 9, 2022
78a5496
wip
Feb 9, 2022
d8de985
wip
Feb 9, 2022
41b64e5
wip
Feb 9, 2022
bb07d61
wip
Feb 9, 2022
a483fd5
wip
Feb 9, 2022
9562dca
wip
Feb 9, 2022
bf80cde
wip
Feb 9, 2022
300e402
wip
Feb 9, 2022
2092c65
wip
Feb 9, 2022
ab5a552
wip
Feb 9, 2022
d7c078f
wip
Feb 9, 2022
cf4653b
wip
Feb 9, 2022
0a4d7b7
wip
Feb 9, 2022
319e74c
wip
Feb 9, 2022
86cc85b
wip
Feb 9, 2022
bc351c8
wip
Feb 9, 2022
ef592ba
wip
Feb 9, 2022
f83c068
wip
Feb 9, 2022
29933e3
wip
Feb 9, 2022
825ee29
wip
Feb 9, 2022
01c591f
wip
Feb 9, 2022
b7d1a32
wip
Feb 9, 2022
8f0c948
wip
Feb 9, 2022
e77aee9
wip
Feb 9, 2022
9b1b055
wip
Feb 9, 2022
a51b9e3
wip
Feb 9, 2022
964e637
fix build script
Feb 9, 2022
a4fa1e3
wip
Feb 9, 2022
27aa8ef
wip
Feb 9, 2022
b457d5f
wip
Feb 9, 2022
7052b3c
wip
Feb 10, 2022
1db53b3
cleanup and formatting
Feb 10, 2022
e133ec1
comment about key.getExpirationTime()
Feb 10, 2022
86e74d3
refactor (algoInfo as any)
Feb 10, 2022
706e624
remove unnecessary code
Feb 10, 2022
40239f4
fix encrypt
Feb 10, 2022
f4ff14f
wip
Feb 10, 2022
477f504
wip
Feb 10, 2022
32a7ecd
wip
Feb 10, 2022
47b8dbd
wip
Feb 10, 2022
f7bc979
wip
Feb 10, 2022
6a7354c
wip
Feb 10, 2022
a6c632b
wip
Feb 10, 2022
2c07d45
wip
Feb 10, 2022
50e3f90
fix
Feb 10, 2022
982660e
wip
Feb 11, 2022
48c193c
wip
Feb 11, 2022
1cc6651
wip
Feb 11, 2022
e31a387
wip
Feb 11, 2022
ca9062e
wip
Feb 11, 2022
ed54f01
wip
Feb 11, 2022
bd54221
wip
Feb 11, 2022
4d68bc2
clarify error messages in the lastSig()
Feb 12, 2022
0749839
deduplicate preparation of encryptionKeys
Feb 12, 2022
10cec19
add block
Feb 12, 2022
7bb4272
update build script
Feb 12, 2022
fc2cff3
remove test.sh
Feb 12, 2022
d2eb325
fix gitignore
Feb 12, 2022
67753da
remove random()
Feb 12, 2022
7d3bc2e
indicate origin of the str_to_hex()
Feb 12, 2022
dcc0142
wip
Feb 12, 2022
f983021
latestValidKeyBindingSig
Feb 12, 2022
b4f4924
str_to_hex LGPL
Feb 12, 2022
de8f3e3
wip
Feb 12, 2022
f963686
Add web-stream-tools
Feb 12, 2022
1cc254b
wip
Feb 12, 2022
240e84e
import readToEnd() from web-stream-tools
Feb 12, 2022
aca13e8
Merge remote-tracking branch 'origin/master' into issue-1362-openpgp-…
Feb 12, 2022
bdab05b
added ambiets.d.ts
Feb 12, 2022
c30fdf0
wip
Feb 12, 2022
b1fba8b
added web-stream-tools.d.ts
Feb 13, 2022
4896c96
patch web-stream-tools
Feb 13, 2022
e8b5584
wip
Feb 13, 2022
1bdc156
Change type of PrvKeyInfo.decrypted to PrivateKey
Feb 13, 2022
27dfeb2
revert to openpgp.js patch
Feb 13, 2022
c858565
import web-stream-tools
tomholub Feb 13, 2022
e767033
clean up
tomholub Feb 13, 2022
b0a929c
cleanup
tomholub Feb 13, 2022
2a8c6c2
remove openpgp.d.ts
Feb 13, 2022
bc2c186
fix path
Feb 13, 2022
18f006a
remove reference to .d.ts
Feb 13, 2022
8cb4f80
added todos
tomholub Feb 13, 2022
bab071d
use Math.max() in the lastSig()
Feb 15, 2022
c86b194
Merge branch 'issue-1362-openpgp-js-v5' of github.com:FlowCrypt/flowc…
Feb 15, 2022
3a900d0
Merge remote-tracking branch 'origin/master' into issue-1362-openpgp-…
Feb 16, 2022
6bdb332
Merge branch 'master' into issue-1362-openpgp-js-v5
sosnovsky Feb 17, 2022
d06f77d
disable test video reporter
sosnovsky Feb 17, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions Core/.gitignore
Expand Up @@ -2,3 +2,4 @@
build/*
tmp/*
node_modules
/test.sh
91 changes: 73 additions & 18 deletions Core/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion Core/package.json
Expand Up @@ -4,7 +4,9 @@
"description": "TypeScript core for FlowCrypt iOS internal use",
"dependencies": {
"encoding-japanese": "^1.0.30",
"openpgp": "^5.1.0",
"sanitize-html": "2.6.1",
"@openpgp/web-stream-tools": "^0.0.9",
"zxcvbn": "4.4.2"
},
"devDependencies": {
Expand Down Expand Up @@ -41,4 +43,4 @@
"license": "SEE LICENSE IN <LICENSE>",
"private": true,
"homepage": "https://flowcrypt.com"
}
}
24 changes: 18 additions & 6 deletions Core/source/core/pgp-armor.ts
Expand Up @@ -5,10 +5,10 @@
import { Buf } from './buf';
import { ReplaceableMsgBlockType } from './msg-block';
import { Str } from './common';
import { openpgp } from './pgp';
import { CleartextMessage, Data, Message, readCleartextMessage, readMessage } from 'openpgp';

export type PreparedForDecrypt = { isArmored: boolean, isCleartext: true, message: OpenPGP.cleartext.CleartextMessage }
| { isArmored: boolean, isCleartext: false, message: OpenPGP.message.Message };
export type PreparedForDecrypt = { isArmored: boolean, isCleartext: true, message: CleartextMessage }
| { isArmored: boolean, isCleartext: false, message: Message<Data> };

type CryptoArmorHeaderDefinitions = { readonly [type in ReplaceableMsgBlockType | 'null' | 'signature']: CryptoArmorHeaderDefinition; };
type CryptoArmorHeaderDefinition = { begin: string, middle?: string, end: string | RegExp, replace: boolean };
Expand Down Expand Up @@ -83,11 +83,23 @@ export class PgpArmor {
const isArmoredSignedOnly = utfChunk.includes(PgpArmor.headers('signedMsg').begin);
const isArmored = isArmoredEncrypted || isArmoredSignedOnly;
if (isArmoredSignedOnly) {
return { isArmored, isCleartext: true, message: await openpgp.cleartext.readArmored(new Buf(encrypted).toUtfStr()) };
return {
isArmored,
isCleartext: true,
message: await readCleartextMessage({cleartextMessage: (new Buf(encrypted)).toUtfStr()})
};
} else if (isArmoredEncrypted) {
return { isArmored, isCleartext: false, message: await openpgp.message.readArmored(new Buf(encrypted).toUtfStr()) };
return {
isArmored,
isCleartext: false,
message: await readMessage({armoredMessage: (new Buf(encrypted)).toUtfStr()})
};
} else if (encrypted instanceof Uint8Array) {
return { isArmored, isCleartext: false, message: await openpgp.message.read(encrypted) };
return {
isArmored,
isCleartext: false,
message: await readMessage({binaryMessage: encrypted})
};
}
throw new Error('Message does not have armor headers');
}
Expand Down
33 changes: 0 additions & 33 deletions Core/source/core/pgp-hash.ts

This file was deleted.