diff --git a/extension/chrome/settings/modules/my_key.htm b/extension/chrome/settings/modules/my_key.htm index 22a2a14ee1f..ed5df927756 100644 --- a/extension/chrome/settings/modules/my_key.htm +++ b/extension/chrome/settings/modules/my_key.htm @@ -36,7 +36,7 @@
Private Key for   update  update  revocation certificate
+
Never send this to anyone!
Copy private key to clipboard @@ -63,4 +63,4 @@ - \ No newline at end of file + diff --git a/test/source/tests/settings.ts b/test/source/tests/settings.ts index 6fa9d378180..1e91d981582 100644 --- a/test/source/tests/settings.ts +++ b/test/source/tests/settings.ts @@ -14,7 +14,8 @@ import { TestUrls } from './../browser/test-urls'; import { TestVariant } from './../util'; import { expect } from 'chai'; import { SetupPageRecipe } from './page-recipe/setup-page-recipe'; -import { unprotectedPrvKey } from './tooling/consts'; +import { testKeyMultiple1b383d0334e38b28, testKeyMultiple98acfa1eadab5b92, unprotectedPrvKey } from './tooling/consts'; +import { PageRecipe } from './page-recipe/abstract-page-recipe'; // tslint:disable:no-blank-lines-func @@ -243,6 +244,37 @@ export let defineSettingsTests = (testVariant: TestVariant, testWithBrowser: Tes await SettingsPageRecipe.addKeyTest(t, browser, 'ci.tests.gmail@flowcrypt.dev', unprotectedPrvKey, 'this is a new passphrase to protect previously unprotected key'); })); + ava.default('settings - my key page - update non-first private key', testWithBrowser(undefined, async (t, browser) => { + const acctEmail = 'flowcrypt.test.key.multiple@gmail.com'; + const settingsPage1 = await BrowserRecipe.openSettingsLoginApprove(t, browser, acctEmail); + await SetupPageRecipe.manualEnter(settingsPage1, 'unused', { + submitPubkey: false, + usedPgpBefore: false, + key: { + title: '?', + armored: testKeyMultiple1b383d0334e38b28, + passphrase: '1234', + longid: '1b383d0334e38b28', + } + }); + await settingsPage1.close(); + + await SettingsPageRecipe.addKeyTest(t, browser, acctEmail, testKeyMultiple98acfa1eadab5b92, '1234'); + + const settingsPage = await browser.newPage(t, TestUrls.extensionSettings(acctEmail)); + await SettingsPageRecipe.toggleScreen(settingsPage, 'additional'); + // open key at index 1 + const myKeyFrame = await SettingsPageRecipe.awaitNewPageFrame(settingsPage, `@action-show-key-1`, ['my_key.htm', 'placement=settings']); + await Util.sleep(1); + await myKeyFrame.waitAll('@content-fingerprint'); + await myKeyFrame.waitAndClick('@action-update-prv'); + await myKeyFrame.waitAndType('@input-prv-key', testKeyMultiple98acfa1eadab5b92); + await myKeyFrame.type('@input-passphrase', '1234'); + await myKeyFrame.waitAndClick('@action-update-key'); + await PageRecipe.waitForModalAndRespond(myKeyFrame, 'confirm', { contentToCheck: 'Public and private key updated locally', clickOn: 'cancel' }); + await settingsPage.close(); + })); + ava.todo('settings - change passphrase - mismatch curent pp'); ava.todo('settings - change passphrase - mismatch new pp'); diff --git a/test/source/tests/tooling/consts.ts b/test/source/tests/tooling/consts.ts index 1cfee460e2f..f283c5662e7 100644 --- a/test/source/tests/tooling/consts.ts +++ b/test/source/tests/tooling/consts.ts @@ -181,4 +181,106 @@ BEEpFqFcWbUgy576qtVYYczJSgKyWDIXfDd9LJDcdSBRxVC/YaY+yQLWRULkkk2fVYLxxVb2G8QX dYU0CKNXUkv+q8TEUw== =LKvX -----END PGP PRIVATE KEY BLOCK----- -`; \ No newline at end of file +`; + +export const testKeyMultiple1b383d0334e38b28 = `-----BEGIN PGP PRIVATE KEY BLOCK----- + +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 +=9S9p +-----END PGP PRIVATE KEY BLOCK-----`; + +export const testKeyMultiple98acfa1eadab5b92 = `-----BEGIN PGP PRIVATE KEY BLOCK----- + +xcMGBF/3BtsBCADBoXomWXjSi7+Fu7b1eFOIQBNCVCtglgIc9Ko9EzyeNb8UcC8PKFALqgVSCbUD +ziRTywdCB2c8yTM+bnAd960qOuL0ABVyE2gn+TVuXpnPG4LYUBbnIkBHCbyCklbWywzC9ir/r/kS +uYf8ZJx+03cOZviJQRR+NHkv+NWKorJMIcG8DMsrmjz2FfC/YTLCEZSWagnAmnaPXpT9dLt+Jbxr +vIEe0q02qVd+ueTL5mpxpVgGGuZ7AfsYcL8kwzYLNOE2Okg3szDLcSpKWiYTYF87dyjjjqa5qM1k +kPZF+/ZJCTRmq0YxmQnZLxH6sOhmdhJz6VLQidyEoQh1xfALvc/5ABEBAAH+CQMIbcyquXWldvXx +jB3M20MKc1NsiJiapv9WUYdwcbE0cK2QMzvCEWG0E3sFN+GABeiwdTl3jM0J+pJb2EhysO0nD5Bp +yb9Ug3Vv5Sdyp4KYh45UV4mBd+ZWUXRE1ptxjlI3yasBXFI1TX6gmzq1GeReWXqC41RirXu9z0sf +euFTX3ZTQslHI6uu+Z0OJZG5Jo1dtr6Z0FwmHop2AMUJGAGaLSrANI0kkHJvIPdkxeev6CORqisR +U3APWezhH+ky4ptdxu3l7PrhXAEvUgpk4vVaA590X9m6ToAYFOqpObhXEFEcs4ZfJJmBQ8nO+9l0 +mQYKtIi81KWU8ogExGR/PyLdicnbMo6k1eSzOC/+5ch/PBTvVCW5r7FRJJsQ0evr3DT4QL958qRR +LPPvAnnTJ4G5ajuzI83gYqunlszV4hY/wdLcLFJgs7NKhf1tZEkcZmbGxl/RBA1x8lAg8N1WH82V +zc6RuqVkNipgFtJDFOcz/DxHm6swhMIyHSTCgku+XrDy+GeCfKZWqmPn64Lkl6DNJkUTGY3+RCXD +8c5rHwyf7Xc9CF/x1qttRA8+QYpxEHSUEFZychSkddf66T335uk2I5lkiGQ9ho9HYFrQUMD4MQ9B +DDncYvbALbFSjNDVkZGogBLgTWzwW/DHYeXR7q8MOT0U/QS2iCtLjJziYKH8l1sKFHiJTFg+OFXA +mOqxqaWU0JwgAgkHFEslM+TlcNp25kxOS/7g6qabjKCOBsEMGieQop4grWw3T1XgdWVbgcsFMrXs +RPxn7LEjxL8OnchLD+EE4mZlTXpMk5KqMqB2CylbWAPP9+wp9bEf/s9Oy9FOS3qzAuvmL7fDqefy +/zQRPFgXX/fWadJ4lldOeKc/zExCSlNx2v8au4K4lD6t/+Ipl6/XI2VrRBGCvH0jH8ASrlrLWxn+ +zSVmbG93Y3J5cHQudGVzdC5rZXkubXVsdGlwbGVAZ21haWwuY29twsCJBBMBCAAzFiEEUVQxFR3d +PqIys3pMmKz6Hq2rW5IFAl/3BtsCGwMFCwkIBwIGFQgJCgsCBRYCAwEAAAoJEJis+h6tq1uS5ScH +/22iVKx1a5qdS+2a1K4b2cql9Bd4GPYsINva6aAHthtV8XxtSvKxQhpc4nFuUSjENyB/nMGADxA+ +q94JbTdV5BHynVQCI0tKjgaX7Wj2sCDHZUqQiwWc2tFDYjsFMRSJdtoTRk9R0k+AXapQ9LovIGFC +2v6H8UY8EI/VhnV5HLPpNkTrCLzPB1uF5wWUFXw7rNkbb6hxf73y5shczluWU+dt+oeoZ6tnui63 +GtuSZBNCU+F9QpqgX3q/2LOqai+qPMJrimh+wqfxAFNopn2vbQ+vlNz3k9SMHTyCqJwK5KCzjhW+ +n/srQ3CQ9CMHSHIkMj4aYcX5vn0VSjq6wJtqTQ3HwwYEX/cG2wEIAMKk4gpsSF6LoHoln+2aVex6 +n+2ZEZe5NSk5vRt3dvqq0KHvjBulHvaxpV2LcEnw6+N602Etvk9uCNq2x7zN0k8Il0yd+ej3ke94 +tlFEMU9OD3P0ntaERZP/A7tMF3bw7icH5QllRji+7JioBySJ8+m10LXpGH2nNaigDB9Uelkdi7Tt +7yL4L0AmXr1JJB4qdZcsRNg6FZzontGvbjqci/H5Cp51cJaeDUb9wsuvnmwYOqtyp3d1DB46NK29 +vXMJNxoi6MZ5kJj01w1HwlpWWcvwAmj+FVONJ3o10zv3bVeEyyNSP43GQ+jq0cdBCrldr7iyf+oZ +zsq4zDTGREV/rxEAEQEAAf4JAwg/hb0Gmn3YBfFzPbi4xr2KelxoZk4YWL0pajBwsoEdURLK0fvl +qxqxs8qy5Kcz0bqIAsSZryDMt7nHzoCUaL+I/XvFHYI/OUhbXLRe4b1iwp6G0AN6knILMCRtKkP5 +XvbI6TLU7KeVjxweZ3qbP413CqeBXm4ysg2zVREbyCxcS2VgChMo7GJVbV4hYjTBUjppINUBNY6w +hgbgLXM9wJXjX1TSepz2y/35gVdxPkBPqhkCEKisxrE1NjGrnL6jOtK4O2Y3CfHl7jzV+pxdLGag +wWOzRCgEf4m2CDXbg2lG2KB8f7g3YkPT2b0yoRrf6p7eIaVDfWuh9OOMfcwj50T3ith2ROWFFyMP +rl2iAETyQY361CffdaDQdARhPH2rJR2XHVIDnndkm9ugx8kO8VLg+VeqpOswpSwNASgO1CuGIZkl +VuixKdrss6cwnODrhUk3K529KHdO8M1nfEQOYQFMbFmQ/73c+gQyZOr5CgbHFKsk31QikPb8n4jz +KWADljfww6Ew9bLNYMNVyOksAoGkgy58a+W4ewx0jOcV9CJ6HXhQtoDAQf8V/F1If2FX8oq7MgQB +ig+GElL4hvVcxxWv5AHBJjTM5ZcXAge3sDf5u5mMwQWT1Rxx0xXEvFOHvn3qTzNJ3ZDVmzFMz58o +IQcoGU8VCNSWGcr0bwpssjJIFEwdB1SvOAT8ftZ9s04AYoDvdOGT9L0DJxjV7Vhu1oHVs5iky4Jl +2treBmeETKfjMTn3ze62K13UKwgixBGIxpC2PuDRJ1O5UfLnFr8kXXMsaRqCQS2KtE8QOAyfL78+ +iVwGwVBCKCmlx9WqkHwTyor4YbLauCj9NkjkFT94goYjLgG0QGtSTIMcZnGQLlhFMzz8WXVdJtPr +v5WvpdR7Ot62yGBZkANYl8B1H1tg0V7aWvnaeCjCwHYEGAEIACAWIQRRVDEVHd0+ojKzekyYrPoe +ratbkgUCX/cG2wIbDAAKCRCYrPoeratbklpAB/9sVdJcPSl2T0WrCUgVphbelTPSDZDV3e0tXqOQ +uVEBKbe/SsqxVg5v0/fFSfDsnks7hz4xk4u7M6GIq2qcuh+8qc8AXYsEEQ+E1X5eOwY0T59vjvjq +40DpCAW5DCXvmauoP0GGijw/Gu21UvFoIL4grGHbMBntxXArMtLqFYa3GHsDBfy9957iTrpuYExp +Qhb2hMOaD7jK2qcP3mTFIBuYt0bPEZLhyMssa9ssK0dcY+JWs6LOeMPzCC1+bz7jCHiBCG5DBG8j +h6VN43eiceJMKCGcndDbIkmHT/JiAtUj2VdKXAldLPIuECUzXtTGL8LdqgSYvxo0b0RiIv6pBNI+ +=Iqrh +-----END PGP PRIVATE KEY BLOCK-----`; diff --git a/test/source/util/index.ts b/test/source/util/index.ts index 4636387482f..d1bfdbee4d3 100644 --- a/test/source/util/index.ts +++ b/test/source/util/index.ts @@ -97,7 +97,7 @@ Config.secrets().auth.google.push( // these don't contain any secrets, so not wo { "email": "flowcrypt.test.key.import.naked@gmail.com" }, { "email": "flowcrypt.test.key.recovered@gmail.com" }, { "email": "flowcrypt.test.key.new.manual@gmail.com" }, - { "email": "flowcrypt.test.key.multibackup@gmail.com" }, + { "email": "flowcrypt.test.key.multiple@gmail.com" }, { "email": "has.pub@org-rules-test.flowcrypt.com" }, { "email": "no.pub@org-rules-test.flowcrypt.com" }, { "email": "user@no-submit-org-rule.flowcrypt.com" },