Skip to content

tests for handling revoked key from EKM #1491

Description

@tomholub

I'd need two tests written, both using mock FES and mock EKM.

For both tests, you will want to add a public key to attester mock for the recipient email.

Here is a sample of a revoked key. For the valid key, can use any already available key in the EKM mock.

const revokedPrv = `
-----BEGIN PGP PRIVATE KEY BLOCK-----

lFgEYW8BThYJKwYBBAHaRw8BAQdAYtEoS4d+3cwQWXcs3lvMQueypexTYai7uXQm
xqyOoKoAAP92ki9qlV4AX2m+WPUq//vL03GGge+Y4rcyN3f5/Y/2AhMdiHUEIBYK
AB0FAmFvAiwWIQQ5MbdBPbsvpgzvhc5fFZeJEKF4CgAKCRBfFZeJEKF4CqTkAQCm
fxfc57sQWB1+jmWSCHq5umaDJFSl9geRATb9Lor5PQEA8azanLnXlpRUCCJHLtsm
6hgMops48vU2l3RuB6cqAwa0FXJldm9la2RAZmxvd2NyeXB0LmNvbYheBBMWCgAG
BQJhbwFrAAoJEF8Vl4kQoXgKEP8A/2B2biuLIDPIaEPg/xkZbca1ESTnqxZEEHcD
/5FRf6psAQDcVYKzZtSXqmZqxc/xACLT/Oiu5mJKFHZjaZUAzdPUBLQVcmV2b2tl
ZEBmbG93Y3J5cHQuY29tiF4EExYKAAYFAmFvAWsACgkQXxWXiRCheAp5ygEAt2sP
yeSm0uVPwODhwX7ezB9jW6uVt0R8S8iM3rQdEMsA/jDep5LNn47K6o8VrDt0zYo6
7j75aKC1vFGkOGlD1TwF
=1tta
-----END PGP PRIVATE KEY BLOCK-----
`;

test that returns only revoked key from EKM during setup

here is browser implementation, updated to fit iOS

// ekm:        return { privateKeys: [{ decryptedPrivateKey: revokedPrv }] };

    ava.default('revoked from ekm - shows error when ', testWithBrowser(undefined, async (t, browser) => {
      const settingsPage = await BrowserRecipe.openSettingsLoginApprove(t, browser, acct);
      await SetupPageRecipe.autoSetupWithEKM(settingsPage);
      const composePage = await ComposePageRecipe.openStandalone(t, browser, acct);
      await ComposePageRecipe.fillMsg(composePage, { to: 'robot@flowcrypt.com' }, 'should err');
      await ComposePageRecipe.sendAndClose(composePage, {expectErr: "Your own account keys are not usable for encryption"});
    }));

test that has one revoked key followed by one valid key returned by EKM during setup

// ekm:        return { privateKeys: [{ decryptedPrivateKey: revokedPrv }, { decryptedPrivateKey: validKey }] };

    ava.default('first.key.revoked from ekm - selects valid own key when sending', testWithBrowser(undefined, async (t, browser) => {
      const settingsPage = await BrowserRecipe.openSettingsLoginApprove(t, browser, acct);
      await SetupPageRecipe.autoSetupWithEKM(settingsPage);
      const composePage = await ComposePageRecipe.openStandalone(t, browser, acct);
      await ComposePageRecipe.fillMsg(composePage, { to: 'robot@flowcrypt.com' }, 'choose valid key');
      await ComposePageRecipe.sendAndClose(composePage); // no error sending msg, checks for success render
    }));

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions