skip recovery
diff --git a/extension/chrome/settings/setup/setup-import-key.ts b/extension/chrome/settings/setup/setup-import-key.ts
index 91f4862a9a5..2b185a25364 100644
--- a/extension/chrome/settings/setup/setup-import-key.ts
+++ b/extension/chrome/settings/setup/setup-import-key.ts
@@ -16,7 +16,7 @@ export class SetupImportKeyModule {
public actionImportPrivateKeyHandle = async (button: HTMLElement) => {
if (button.className.includes('gray')) {
- await Ui.modal.warning('Please double check the pass phrase input field for any issues.');
+ await Ui.modal.warning('Please double check the passphrase input field for any issues.');
return;
}
/* eslint-disable @typescript-eslint/naming-convention */
diff --git a/extension/chrome/settings/setup/setup-key-manager-autogen.ts b/extension/chrome/settings/setup/setup-key-manager-autogen.ts
index bcf04b66593..a528578f150 100644
--- a/extension/chrome/settings/setup/setup-key-manager-autogen.ts
+++ b/extension/chrome/settings/setup/setup-key-manager-autogen.ts
@@ -127,6 +127,6 @@ export class SetupWithEmailKeyManagerModule {
'Failed to store newly generated key on FlowCrypt Email Key Manager',
Lang.general.contactIfNeedAssistance(this.view.isCustomerUrlFesUsed())
);
- await saveKeysAndPassPhrase(this.view.acctEmail, [await KeyUtil.parse(generated.private)], setupOptions); // store encrypted key + pass phrase locally
+ await saveKeysAndPassPhrase(this.view.acctEmail, [await KeyUtil.parse(generated.private)], setupOptions); // store encrypted key + passphrase locally
};
}
diff --git a/extension/chrome/settings/setup/setup-recover-key.ts b/extension/chrome/settings/setup/setup-recover-key.ts
index 2d8ce05ca61..cd03ab330dd 100644
--- a/extension/chrome/settings/setup/setup-recover-key.ts
+++ b/extension/chrome/settings/setup/setup-recover-key.ts
@@ -26,7 +26,7 @@ export class SetupRecoverKeyModule {
return;
}
if (!passphrase) {
- await Ui.modal.warning('Please enter the pass phrase you used when you first set up FlowCrypt, so that we can recover your original keys.');
+ await Ui.modal.warning('Please enter the passphrase you used when you first set up FlowCrypt, so that we can recover your original keys.');
return;
}
let matchedPreviouslyRecoveredKey = false;
@@ -47,13 +47,13 @@ export class SetupRecoverKeyModule {
if (!newlyMatchingKeys.length) {
if (matchedPreviouslyRecoveredKey) {
$('#recovery_password').val('');
- await Ui.modal.warning('This is a correct pass phrase, but it matches a key that was already recovered. Please try another pass phrase.');
+ await Ui.modal.warning('This is a correct passphrase, but it matches a key that was already recovered. Please try another passphrase.');
} else if (this.view.fetchedKeyBackupsUniqueLongids.length > 1) {
await Ui.modal.warning(
- `This pass phrase did not match any of your ${this.view.fetchedKeyBackupsUniqueLongids.length} backed up keys. Please try again.`
+ `This passphrase did not match any of your ${this.view.fetchedKeyBackupsUniqueLongids.length} backed up keys. Please try again.`
);
} else {
- await Ui.modal.warning('This pass phrase did not match your original setup. Please try again.');
+ await Ui.modal.warning('This passphrase did not match your original setup. Please try again.');
}
return;
}
@@ -107,7 +107,7 @@ export class SetupRecoverKeyModule {
})
);
} else {
- Xss.sanitizeRender('#step_2_recovery .recovery_status', `There ${txtKeysTeft} left to recover.
Try different pass phrases to unlock all backups.`);
+ Xss.sanitizeRender('#step_2_recovery .recovery_status', `There ${txtKeysTeft} left to recover.
Try different passphrases to unlock all backups.`);
$('#step_2_recovery .line_skip_recovery').css('display', 'none');
}
};
diff --git a/extension/chrome/settings/setup/setup-render.ts b/extension/chrome/settings/setup/setup-render.ts
index 45c97e3f312..19c24a20ea9 100644
--- a/extension/chrome/settings/setup/setup-render.ts
+++ b/extension/chrome/settings/setup/setup-render.ts
@@ -54,7 +54,7 @@ export class SetupRenderModule {
public renderSetupDone = async () => {
const storedKeys = await KeyStore.get(this.view.acctEmail);
if (this.view.fetchedKeyBackupsUniqueLongids.length > storedKeys.length) {
- // recovery where not all keys were processed: some may have other pass phrase
+ // recovery where not all keys were processed: some may have other passphrase
this.displayBlock('step_4_more_to_recover');
$('h1').text('More keys to recover');
$('.email').text(this.view.acctEmail);
diff --git a/extension/chrome/texts/passphrase_help.htm b/extension/chrome/texts/passphrase_help.htm
index efd15e45270..9696c608872 100644
--- a/extension/chrome/texts/passphrase_help.htm
+++ b/extension/chrome/texts/passphrase_help.htm
@@ -9,7 +9,7 @@
>
Combinations like that are memorable, easy to type and the most secure.
- In contrast, pass phrases like @ut0m4t3d
, Honey167!
or lA45pf8$d
are a poor
+ In contrast, passphrases like @ut0m4t3d
, Honey167!
or lA45pf8$d
are a poor
choice when it comes to security. Because they are so short, on a fleet of 10,000 ordinary computers, these can be guessed in 7 seconds.
diff --git a/extension/js/common/assert.ts b/extension/js/common/assert.ts
index e95aaecda03..66b91a4d27e 100644
--- a/extension/js/common/assert.ts
+++ b/extension/js/common/assert.ts
@@ -49,7 +49,7 @@ export class Assert {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
await Settings.renderSubPage(acctEmail, tabId!, '/chrome/settings/modules/change_passphrase.htm');
} else {
- const msg = `Protect your key with a pass phrase to finish setup.`;
+ const msg = `Protect your key with a passphrase to finish setup.`;
const r = await Ui.renderOverlayPromptAwaitUserChoice(
{ finishSetup: {}, later: { color: 'gray' } },
msg,
diff --git a/extension/js/common/client-configuration.ts b/extension/js/common/client-configuration.ts
index a0601a461c7..351a2ac44e1 100644
--- a/extension/js/common/client-configuration.ts
+++ b/extension/js/common/client-configuration.ts
@@ -128,7 +128,7 @@ export class ClientConfiguration {
};
/**
- * pass phrase session length to be configurable with client configuraiton
+ * passphrase session length to be configurable with client configuraiton
* default 4 hours
*/
public getInMemoryPassPhraseSessionExpirationMs = (): number => {
@@ -166,8 +166,8 @@ export class ClientConfiguration {
};
/**
- * Normally, during setup, "remember pass phrase" is unchecked
- * This option will cause "remember pass phrase" option to be checked by default
+ * Normally, during setup, "remember passphrase" is unchecked
+ * This option will cause "remember passphrase" option to be checked by default
* This behavior is also enabled as a byproduct of PASS_PHRASE_QUIET_AUTOGEN
*/
public rememberPassPhraseByDefault = (): boolean => {
@@ -197,10 +197,10 @@ export class ClientConfiguration {
};
/**
- * When generating keys, user will not be prompted to choose a pass phrase
- * Instead a pass phrase will be automatically generated, and stored locally
- * The pass phrase will NOT be displayed to user, and it will never be asked of the user
- * This creates the smoothest user experience, for organisations that use full-disk-encryption and don't need pass phrase protection
+ * When generating keys, user will not be prompted to choose a passphrase
+ * Instead a passphrase will be automatically generated, and stored locally
+ * The passphrase will NOT be displayed to user, and it will never be asked of the user
+ * This creates the smoothest user experience, for organisations that use full-disk-encryption and don't need passphrase protection
*/
public mustAutogenPassPhraseQuietly = (): boolean => {
return this.usesKeyManager() && (this.clientConfigurationJson.flags || []).includes('PASS_PHRASE_QUIET_AUTOGEN');
diff --git a/extension/js/common/core/crypto/key.ts b/extension/js/common/core/crypto/key.ts
index 07d5478b788..eb017bb436f 100644
--- a/extension/js/common/core/crypto/key.ts
+++ b/extension/js/common/core/crypto/key.ts
@@ -222,7 +222,7 @@ export class KeyUtil {
// if (await KeyUtil.decrypt(parsed, passPhrase, undefined, 'OK-IF-ALREADY-DECRYPTED')) {
allKeys.push(parsed);
// } else {
- // allErr.push(new Error(`Wrong pass phrase for OpenPGP key ${parsed.id} (${parsed.emails[0]})`));
+ // allErr.push(new Error(`Wrong passphrase for OpenPGP key ${parsed.id} (${parsed.emails[0]})`));
// }
} catch (e) {
allErr.push(e as Error);
diff --git a/extension/js/common/core/crypto/pgp/msg-util.ts b/extension/js/common/core/crypto/pgp/msg-util.ts
index 00773e275b6..c724b57b471 100644
--- a/extension/js/common/core/crypto/pgp/msg-util.ts
+++ b/extension/js/common/core/crypto/pgp/msg-util.ts
@@ -207,7 +207,7 @@ export class MsgUtil {
if (!keys.prvForDecryptDecrypted.length && (!msgPwd || prepared.isPkcs7)) {
return {
success: false,
- error: { type: DecryptErrTypes.needPassphrase, message: 'Missing pass phrase' },
+ error: { type: DecryptErrTypes.needPassphrase, message: 'Missing passphrase' },
longids,
isEncrypted,
};
diff --git a/extension/js/common/core/crypto/pgp/pgp-password.ts b/extension/js/common/core/crypto/pgp/pgp-password.ts
index 464aa9bc487..e44290f1673 100644
--- a/extension/js/common/core/crypto/pgp/pgp-password.ts
+++ b/extension/js/common/core/crypto/pgp/pgp-password.ts
@@ -35,7 +35,7 @@ export class PgpPwd {
];
private static CRACK_TIME_WORDS_PASS_PHRASE = [
- // the requirements for a pass phrase are meant to be strict
+ // the requirements for a passphrase are meant to be strict
{ match: 'millenni', word: 'perfect', bar: 100, color: 'green', pass: true },
{ match: 'centu', word: 'great', bar: 80, color: 'green', pass: true },
{ match: 'year', word: 'good', bar: 60, color: 'orange', pass: true },
@@ -81,13 +81,13 @@ export class PgpPwd {
'words',
'in',
'them',
- 'Best pass phrases are long',
+ 'Best passphrases are long',
'have several words',
'in them',
'bestpassphrasesarelong',
'haveseveralwords',
'inthem',
- 'Loss of this pass phrase',
+ 'Loss of this passphrase',
'cannot be recovered',
'Note it down',
'on a paper',
@@ -99,7 +99,7 @@ export class PgpPwd {
'set password',
'set pass word',
'setpassphrase',
- 'set pass phrase',
+ 'set passphrase',
'set passphrase',
];
};
diff --git a/extension/js/common/lang.ts b/extension/js/common/lang.ts
index fef5f946685..06d1e1a6a04 100644
--- a/extension/js/common/lang.ts
+++ b/extension/js/common/lang.ts
@@ -39,19 +39,19 @@ export const Lang = {
confirmSkipRecovery:
'Your account will be set up for encryption again, but your previous encrypted emails will be unreadable. You will need to inform your encrypted contacts that you have a new key. Regular email will not be affected. Are you sure?',
nBackupsAlreadyRecoveredOrLeft: (nGot: number, nBups: number, txtTeft: string) =>
- `You successfully recovered ${nGot} of ${nBups} backups. There ${txtTeft} left.
Try a different pass phrase to unlock all backups.`,
+ `You successfully recovered ${nGot} of ${nBups} backups. There ${txtTeft} left.
Try a different passphrase to unlock all backups.`,
tryDifferentPassPhraseForRemainingBackups:
- 'This pass phrase was already used to recover some of your backups.\n\nThe remaining backups use a different pass phrase.\n\nPlease try another one.\n\nYou can skip this step, but some of your encrypted email may not be readable.',
+ 'This passphrase was already used to recover some of your backups.\n\nThe remaining backups use a different passphrase.\n\nPlease try another one.\n\nYou can skip this step, but some of your encrypted email may not be readable.',
creatingKeysNotAllowedPleaseImport: 'Creating keys is not allowed on your domain. Please import your keys.',
keyBackupsNotAllowed: 'Key backups are not allowed on this domain.',
prvHasFixableCompatIssue:
'This key has minor usability issues that can be fixed. This commonly happens when importing keys from Symantec™ PGP Desktop or other legacy software.It may be missing user IDs, a self-signature, or have an invalid user ID (e.g., a user ID with image data). It is also possible that the key is simply expired.',
- ppMatchAllSet: "Your pass phrase matches. Good job! You're all set.",
+ ppMatchAllSet: "Your passphrase matches. Good job! You're all set.",
noKeys: 'Keys for your account were not set up yet - please ask your systems administrator.',
prvBackupToDesignatedMailboxEmailSubject: (acctEmail: string, fingerprint: string) =>
`FlowCrypt OpenPGP Private Key backup for user ${acctEmail} with id ${fingerprint}`,
prvBackupToDesignatedMailboxEmailBody:
- "Please keep this email and attachment in the mailbox for safekeeping. It will be needed if the user ever needs to set up FlowCrypt again or forgets their pass phrase. Without this, the user won't be able to read their emails.\n\nSee https://flowcrypt.com/docs/technical/enterprise/configuration/backup-to-designated-mailbox.html#account-recovery.",
+ "Please keep this email and attachment in the mailbox for safekeeping. It will be needed if the user ever needs to set up FlowCrypt again or forgets their passphrase. Without this, the user won't be able to read their emails.\n\nSee https://flowcrypt.com/docs/technical/enterprise/configuration/backup-to-designated-mailbox.html#account-recovery.",
},
account: {
googleAcctDisabledOrPolicy: `Your Google Account or Google Email seems to be disabled, or access to this app is disabled by your organisation admin policy. Contact your email administrator.`,
@@ -144,13 +144,13 @@ export const Lang = {
emailAliasChangedAskForReload: 'Your email aliases on Gmail have refreshed since the last time you used FlowCrypt.\nReload the compose window now?',
},
passphraseRequired: {
- sign: 'Enter FlowCrypt pass phrase to sign email',
- draft: 'Enter FlowCrypt pass phrase to load a draft',
- attachment: 'Enter FlowCrypt pass phrase to decrypt a file',
- quote: 'Enter FlowCrypt pass phrase to load quoted content',
- backup: 'Enter FlowCrypt pass phrase to back up',
- updateKey: 'Enter FlowCrypt pass phrase to keep your account keys up to date',
- email: 'Enter FlowCrypt pass phrase to read encrypted email',
+ sign: 'Enter FlowCrypt passphrase to sign email',
+ draft: 'Enter FlowCrypt passphrase to load a draft',
+ attachment: 'Enter FlowCrypt passphrase to decrypt a file',
+ quote: 'Enter FlowCrypt passphrase to load quoted content',
+ backup: 'Enter FlowCrypt passphrase to back up',
+ updateKey: 'Enter FlowCrypt passphrase to keep your account keys up to date',
+ email: 'Enter FlowCrypt passphrase to read encrypted email',
},
settings: {
deleteKeyConfirm: (fingerprint: string) => `Are you sure you want to remove encryption key with fingerprint ${fingerprint}?`,
diff --git a/extension/js/common/platform/store/passphrase-store.ts b/extension/js/common/platform/store/passphrase-store.ts
index 763f2e9606b..a4d59460f2a 100644
--- a/extension/js/common/platform/store/passphrase-store.ts
+++ b/extension/js/common/platform/store/passphrase-store.ts
@@ -8,7 +8,7 @@ import { InMemoryStore } from './in-memory-store.js';
import { ClientConfiguration } from '../../client-configuration.js';
/**
- * Local or session store of pass phrases
+ * Local or session store of passphrases
*/
export class PassphraseStore extends AbstractStore {
// if we implement (and migrate) password storage to use KeyIdentity instead of longid, we'll have `keyInfo: KeyIdentity` here
diff --git a/extension/js/common/settings.ts b/extension/js/common/settings.ts
index 311658ee1ff..1d5de8094af 100644
--- a/extension/js/common/settings.ts
+++ b/extension/js/common/settings.ts
@@ -132,7 +132,7 @@ export class Settings {
if (!oldAcctEmailIndexPrefix) {
throw new Error(`Filter is empty for account_email "${oldAcctEmail}"`);
}
- // in case the destination email address was already set up with an account, recover keys and pass phrases before it's overwritten
+ // in case the destination email address was already set up with an account, recover keys and passphrases before it's overwritten
const oldAccountPrivateKeys = await KeyStore.get(oldAcctEmail);
const newAccountPrivateKeys = await KeyStore.get(newAcctEmail);
const oldAcctPassPhrases: KeyInfoWithIdentityAndOptionalPp[] = [];
@@ -535,8 +535,8 @@ export class Settings {
'',
'NOTE DOWN YOUR PASS PHRASE IN A SAFE PLACE THAT YOU CAN FIND LATER',
'',
- 'If this key was registered on a keyserver (typically they are), you will need this same key (and pass phrase!) to replace it.',
- 'In other words, losing this key or pass phrase may cause people to have trouble writing you encrypted emails, even if you use another key (on FlowCrypt or elsewhere) later on!',
+ 'If this key was registered on a keyserver (typically they are), you will need this same key (and passphrase!) to replace it.',
+ 'In other words, losing this key or passphrase may cause people to have trouble writing you encrypted emails, even if you use another key (on FlowCrypt or elsewhere) later on!',
'',
'acctEmail: ' + acctEmail,
];
diff --git a/extension/js/common/ui/backup-ui/backup-ui-automatic-module.ts b/extension/js/common/ui/backup-ui/backup-ui-automatic-module.ts
index f2acd760b69..bb113ee2d5d 100644
--- a/extension/js/common/ui/backup-ui/backup-ui-automatic-module.ts
+++ b/extension/js/common/ui/backup-ui/backup-ui-automatic-module.ts
@@ -30,8 +30,8 @@ export class BackupUiAutomaticModule extends BackupUiModule {
private setupCreateSimpleAutomaticInboxBackup = async () => {
const prvs = await KeyStoreUtil.parse(await KeyStore.getRequired(this.ui.acctEmail));
if (prvs.find(prv => !prv.key.fullyEncrypted)) {
- await Ui.modal.warning('Key not protected with a pass phrase, skipping');
- throw new UnreportableError('Key not protected with a pass phrase, skipping');
+ await Ui.modal.warning('Key not protected with a passphrase, skipping');
+ throw new UnreportableError('Key not protected with a passphrase, skipping');
}
try {
await this.ui.manualModule.doBackupOnEmailProvider(prvs.map(prv => prv.keyInfo));
diff --git a/extension/js/common/ui/backup-ui/backup-ui-manual-module.ts b/extension/js/common/ui/backup-ui/backup-ui-manual-module.ts
index aabdf3383cd..fb02fb0d6c9 100644
--- a/extension/js/common/ui/backup-ui/backup-ui-manual-module.ts
+++ b/extension/js/common/ui/backup-ui/backup-ui-manual-module.ts
@@ -22,7 +22,7 @@ import { BackupUiModule } from './backup-ui-module.js';
import { Lang } from '../../../../js/common/lang.js';
import { MsgUtil } from '../../core/crypto/pgp/msg-util.js';
-const differentPassphrasesError = `Your keys are protected with different pass phrases.\n\nBacking them up together isn't supported yet.`;
+const differentPassphrasesError = `Your keys are protected with different passphrases.\n\nBacking them up together isn't supported yet.`;
export class BackupUiManualActionModule extends BackupUiModule {
private ppChangedPromiseCancellation: PromiseCancellation = { cancel: false };
private readonly proceedBtn = $('#module_manual .action_manual_backup');
@@ -97,7 +97,7 @@ export class BackupUiManualActionModule extends BackupUiModule {
for (const ki of keyInfosToBackup) {
if (!(await this.isPrivateKeyEncrypted(ki))) {
// todo: this check can also be moved to encryptForBackup method when we solve the same passphrase issue (#4060)
- await Ui.modal.error("Sorry, cannot back up private key because it's not protected with a pass phrase.");
+ await Ui.modal.error("Sorry, cannot back up private key because it's not protected with a passphrase.");
return;
}
}
@@ -145,15 +145,15 @@ export class BackupUiManualActionModule extends BackupUiModule {
return undefined;
}
if (checks.checkStrength && distinctPassphrases[0] && !Settings.evalPasswordStrength(distinctPassphrases[0]).word.pass) {
- await Ui.modal.warning("Please change your pass phrase first.\n\nIt's too weak for this backup method.");
- // Actually, until #956 is resolved, we can only modify the pass phrase of the first key
+ await Ui.modal.warning("Please change your passphrase first.\n\nIt's too weak for this backup method.");
+ // Actually, until #956 is resolved, we can only modify the passphrase of the first key
if (this.ui.parentTabId && kisWithPp[0].passphrase === distinctPassphrases[0]) {
Settings.redirectSubPage(this.ui.acctEmail, this.ui.parentTabId, '/chrome/settings/modules/change_passphrase.htm');
}
return undefined;
}
if (distinctPassphrases.length === 1) {
- // trying to apply the known pass phrase
+ // trying to apply the known passphrase
for (const ki of kisWithPp.filter(ki => !ki.passphrase)) {
if (await KeyUtil.decrypt(await KeyUtil.parse(ki.private), distinctPassphrases[0])) {
ki.passphrase = distinctPassphrases[0];
@@ -166,7 +166,7 @@ export class BackupUiManualActionModule extends BackupUiModule {
await Ui.modal.error(differentPassphrasesError);
return undefined;
}
- // todo: reset invalid pass phrases (mismatch === true)?
+ // todo: reset invalid passphrases (mismatch === true)?
const longids = kisMissingPp.map(ki => ki.longid);
if (this.ui.parentTabId) {
BrowserMsg.send.passphraseDialog(this.ui.parentTabId, { type: 'backup', longids });
@@ -174,10 +174,10 @@ export class BackupUiManualActionModule extends BackupUiModule {
return undefined;
}
} else {
- await Ui.modal.error(`Sorry, can't back up private key because its pass phrase can't be extracted. Please restart your browser and try again.`);
+ await Ui.modal.error(`Sorry, can't back up private key because its passphrase can't be extracted. Please restart your browser and try again.`);
return undefined;
}
- // re-start the function recursively with newly discovered pass phrases
+ // re-start the function recursively with newly discovered passphrases
// todo: #4059 however, this code is never actually executed, because our backup frame gets wiped out by the passphrase frame
return await this.encryptForBackup(keyInfos, checks);
}
diff --git a/extension/js/common/ui/key-import-ui.ts b/extension/js/common/ui/key-import-ui.ts
index 1b3bba4e0fa..6f7aba7cc52 100644
--- a/extension/js/common/ui/key-import-ui.ts
+++ b/extension/js/common/ui/key-import-ui.ts
@@ -411,7 +411,7 @@ export class KeyImportUi {
private decryptAndEncryptAsNeeded = async (toDecrypt: Key, toEncrypt: Key, passphrase: string, contactSubsentence: string): Promise => {
if (!passphrase) {
- throw new UserAlert('Please enter a pass phrase to use with this key');
+ throw new UserAlert('Please enter a passphrase to use with this key');
}
try {
if (toEncrypt.fullyDecrypted) {
@@ -424,10 +424,10 @@ export class KeyImportUi {
this.onBadPassphrase();
if (this.expectedLongid) {
// todo - double check this line, should it not say `this.expectedLongid === PgpKey.longid() ? Or is that checked elsewhere beforehand?
- throw new UserAlert(`This is the right key! However, the pass phrase does not match. Please try a different pass phrase.
- Your original pass phrase might have been different then what you use now.`);
+ throw new UserAlert(`This is the right key! However, the passphrase does not match. Please try a different passphrase.
+ Your original passphrase might have been different then what you use now.`);
} else {
- throw new UserAlert('The pass phrase does not match. Please try a different pass phrase.');
+ throw new UserAlert('The passphrase does not match. Please try a different passphrase.');
}
}
} else if (!toDecrypt.fullyDecrypted) {
diff --git a/extension/js/common/ui/passphrase-ui.ts b/extension/js/common/ui/passphrase-ui.ts
index 46738c99666..32f15e6149e 100644
--- a/extension/js/common/ui/passphrase-ui.ts
+++ b/extension/js/common/ui/passphrase-ui.ts
@@ -66,17 +66,17 @@ export const isCreatePrivateFormInputCorrect = async (section: string, clientCon
const password1 = $(`#${section} .input_password`);
const password2 = $(`#${section} .input_password2`);
if (!password1.val()) {
- await Ui.modal.warning('Pass phrase is needed to protect your private email. Please enter a pass phrase.');
+ await Ui.modal.warning('Passphrase is needed to protect your private email. Please enter a passphrase.');
password1.trigger('focus');
return false;
}
if ($(`#${section} .action_proceed_private`).hasClass('gray')) {
- await Ui.modal.warning('Pass phrase is not strong enough. Please make it stronger, by adding a few words.');
+ await Ui.modal.warning('Passphrase is not strong enough. Please make it stronger, by adding a few words.');
password1.trigger('focus');
return false;
}
if (password1.val() !== password2.val()) {
- await Ui.modal.warning('The pass phrases do not match. Please try again.');
+ await Ui.modal.warning('The passphrases do not match. Please try again.');
password2.val('').trigger('focus');
return false;
}
@@ -87,7 +87,7 @@ export const isCreatePrivateFormInputCorrect = async (section: string, clientCon
if (!clientConfiguration.usesKeyManager()) {
const paperPassPhraseStickyNote = `
- Please write down your pass phrase and store it in safe place or even two.
+ Please write down your passphrase and store it in safe place or even two.
It is needed in order to access your FlowCrypt account.
${notePp}
diff --git a/test/source/mock/google/exported-messages/message-export-15f7f0e992f2c830.json b/test/source/mock/google/exported-messages/message-export-15f7f0e992f2c830.json
index c2fcc0ca3a3..114bd542faf 100644
--- a/test/source/mock/google/exported-messages/message-export-15f7f0e992f2c830.json
+++ b/test/source/mock/google/exported-messages/message-export-15f7f0e992f2c830.json
@@ -4,7 +4,7 @@
"id": "15f7f0e992f2c830",
"threadId": "15f7f0e992f2c830",
"labelIds": ["Label_1", "STARRED", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
@@ -101,7 +101,7 @@
"id": "15f7f0e992f2c830",
"threadId": "15f7f0e992f2c830",
"labelIds": ["Label_1", "STARRED", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"sizeEstimate": 11111,
"raw": "UmVjZWl2ZWQ6IGZyb20gNzE3Mjg0NzMwMjQ0DQoJbmFtZWQgdW5rbm93bg0KCWJ5IGdtYWlsYXBpLmdvb2dsZS5jb20NCgl3aXRoIEhUVFBSRVNUOw0KCVRodSwgMiBOb3YgMjAxNyAxNjoyNjoyMyAtMDcwMA0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7DQogYm91bmRhcnk9Ii0tLS1zaW5pa2FlbC0_PV8xLTE1MDk2NjUxODI4NTgwLjM1NDc0Mzk0MTQzMzkxNzUiDQpGcm9tOiBmbG93Y3J5cHQuY29tcGF0aWJpbGl0eUBnbWFpbC5jb20NClRvOiBmbG93Y3J5cHQuY29tcGF0aWJpbGl0eUBnbWFpbC5jb20NClN1YmplY3Q6IFlvdXIgRmxvd0NyeXB0IEJhY2t1cA0KRGF0ZTogVGh1LCAyIE5vdiAyMDE3IDE2OjI2OjIzIC0wNzAwDQpNZXNzYWdlLUlkOiA8Q0FLYnVMVG9jYl9RSEhMdU9faHJVNXViOXFQLVpyNkpTY2swblBkWlltNHRhaEpXXzlRQG1haWwuZ21haWwuY29tPg0KTUlNRS1WZXJzaW9uOiAxLjANCg0KLS0tLS0tc2luaWthZWwtPz1fMS0xNTA5NjY1MTgyODU4MC4zNTQ3NDM5NDE0MzM5MTc1DQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOA0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQ0KDQo8IS0tIEJ1c2luZXNzIFNvdXJjZSBMaWNlbnNlIDEuMCA9QzI9QTkgMjAxNi0yMDE3IEZsb3dDcnlwdCBMaW1pdGVkLiBVc2UgPQ0KbGltaXRhdGlvbnMgYXBwbHkuIENvbnRhY3QgaHVtYW5AZmxvd2NyeXB0LmNvbSAtLT4NCg0KPGRpdiBkaXI9M0QibHRyIj4NCiAgPGRpdiBzdHlsZT0zRCJmb250LXNpemU6MTIuOHB4Ij5UaGlzIGVtYWlsIGNvbnRhaW5zIGEga2V5IGJhY2t1cC4gSXQgd2lsbD0NCiBoZWxwIHlvdSBhY2Nlc3MgeW91ciBlbmNyeXB0ZWQgbWVzc2FnZXMgZnJvbSBvdGhlciBjb21wdXRlcnMgKGFsb25nIHdpdGggPQ0KeW91ciBwYXNzIHBocmFzZSkuIFlvdSBjYW4gc2FmZWx5IGxlYXZlIGl0IGluIHlvdXIgaW5ib3ggb3IgYXJjaGl2ZSBpdC49DQo8L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZToxMi44cHgiPlRoZSBrZXkgYmVsb3cgaXMgcHJvdGVjdGVkIHdpdGggcGFzcyA9DQpwaHJhc2UgdGhhdCBvbmx5IHlvdSBrbm93LiBZb3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byBub3RlIHlvdXIgcGFzcyBwaHJhc2UgPQ0KZG93bi48L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZToxMi44cHg7Ij4NCiAgICA8c3BhbiBzdHlsZT0zRCJjb2xvcjogcmVkOyI-RE8gTk9UIERFTEVURSBUSElTIEVNQUlMLjwvc3Bhbj4gV3JpdGUgbWUgPQ0KYXQgaHVtYW5AZmxvd2NyeXB0LmNvbSBzbyB0aGF0IEkgY2FuIGhlbHAuIEkgcmVzcG9uZCB2ZXJ5IHByb21wdGx5Lg0KICA8L2Rpdj4NCjwvZGl2Pg0KLS0tLS0tc2luaWthZWwtPz1fMS0xNTA5NjY1MTgyODU4MC4zNTQ3NDM5NDE0MzM5MTc1DQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47DQogbmFtZT1jcnlwdHVwLWJhY2t1cC1mbG93Y3J5cHRjb21wYXRpYmlsaXR5Z21haWxjb20ua2V5DQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Ow0KIGZpbGVuYW1lPWNyeXB0dXAtYmFja3VwLWZsb3djcnlwdGNvbXBhdGliaWxpdHlnbWFpbGNvbS5rZXkNClgtQXR0YWNobWVudC1JZDogZl90Y2RZelpzWHl3DQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCg0KTFMwdExTMUNSVWRKVGlCUVIxQWdVRkpKVmtGVVJTQkxSVmtnUWt4UFEwc3RMUzB0TFEwS1ZtVnljMmx2YmpvZ1JteHZkME55ZVhCMA0KSURVdU1DNDBJRWR0WVdsc0lFVnVZM0o1Y0hScGIyNGdabXh2ZDJOeWVYQjBMbU52YlEwS1EyOXRiV1Z1ZERvZ1UyVmhiV3hsYzNOcw0KZVNCelpXNWtMQ0J5WldObGFYWmxJR0Z1WkNCelpXRnlZMmdnWlc1amNubHdkR1ZrSUdWdFlXbHNEUW9OQ25oallVZENSbTQzY1ZZMA0KUWtWQlEyZExablZtUnpaNWMyVlNVRGxxUzFoYU1YcHlUVFZ6VVhSclIxZHBTMHhyY3pFM09UbHRNRXQzU1ZsMVFRcFJlVmwyZHpaag0KU1ZkaVRUSmtZM1ZDVGs5NldVaHpUSEZzZFhGdldHRkRSR0pWY0VzNGQwa3ZlRzVJTHpsYVNFUjViMjFyTUVGVFpIbEpNRXNLVDJkdQ0KTWtSeVdFWjVVM1ZTYkdkc1VHMXVUVkZHTjNab2NHNVlaV1pzY1hBNVluaFJPVzAwZVdsSVRWTXJSbEZoZWsxMlppOTZZM0pCUzB0bg0KQ21oUWVHTlpXRU14UWtwbVUzVmlOWFJxTVhKWk1qUkJVbkJMT1RGbVYwOVJUelpuUVVaVmRuQmxVMmxPYVV0aU4wTTBiRzFYZFV4bg0KTmpSVlRBcHFURlJNV0U4NVVDOHlWbk15UWtKSVQwRkRjeloxTUhCdFJHNUdkRVJ1Um14bFIweEROV3B5VERaV2RsRkVjRE5sYTBWMg0KWTNGalprTTFUVllLVWpCT05uVldWR1Z6VW1NMWFHeENkSGRvWWtkbk5FaDFTVFZqUmt4TUsycHJVbmRYWTFaVGJIVktVemxOVFhSMQ0KWnpKbFZUZEdRVmRKZWs5RENuaFhZU3RNWm1JNFkwaHdSV2MyWTJsa1IxTjRVMlUwT1hablMwdHllWE4yTlZCa1ZtWlBkVmhvVERZeg0KYVRSVVJXNUxSbk53VDFsQ09IRlllUW8xYmpOR2ExbEdMelZEY0ZsT0wwaFJZVzlEUTNoRVNWaE1SM0F6TTNVd00wOUpkR0ZrUVhSUg0KVlN0eFFVTmhSMjFTYUZGQk9YRjNaVFJwSzJzS1RGZE1NMjk0YjFOM1VTOWhaWGRpTTJaV2J5dExOM2xuUjA1c2RHczJjRzlJVUdOTQ0KTUdSVk5sWklXV1U0YURKTlEwVlBMekZNVWpkNVZuTkxDbGMwTjBJMFptZGtNMmgxV0dnNE5qaEJXRE5aVVc0MFVHUTJiWEZtZERSWA0KWkdORGRWSndSMHBuZGtwT1NIRXhPRXAyU1hselJIQm5jMHhUY1FwUlJqUTBXakJIVDBneWRsRnliazlvU25oSlYwNVZTMDRyVVc1Tg0KZVRoU1RqWlRXakZWUm04MFVDdDJaakY2T1RkWlNUSk5abkpOVEdaSVFpOEtWRlZ1YzNoVE5tWkhja3RvVGxaNFRqZEZWRWcyT1hBeQ0KY2trMlJqZ3pOa1ZhYUdWaVRGRkJVa0ZSUVVJdloydEVRMFI1ZFUxNmEyOU5VV3BEQ2xsTVZXUnNVR2hXYVdsdlVGRkJZaTlYVFdaaA0KYVVVMWJuUm1NM1V5VTJOdE1XMUhkVmhVVVhOVWJWVXllVlJpV1ROcFoxaFVTalpaU2tnMFF3cEdURUl4T0dZMmRTdE9hRnBpTUhJNQ0KTjB4MFpVWTBTbWwxVkhSdE5scEJOak5sYWxObmNDODFURzV6TVZvMWQxazNjRTFPVUhOSU1HTlVWVE1LVlhKR1VXZ3ZaMmh2ZUdGdQ0KVTBoaFRqRllVWEJoYjNaWmMwOUlabk5YWTFsNlFYaDBkbkZvUkZZeWRuRm1TV3hvYVV3MlJXUkZOMVp1T0RSRENsRkZNRGsyUjNVMA0KYVUxMFMxcFRXRU5FVlRsQ01WaE9NaXR5U3pKbEt6bGpNVzVSU0VGWWFrRnhORGwyT1ZkVmVuTjBlbXAyY2tOdFFtRnFWUXBIVXpaRA0KWTNrelZraFNaV3cwTlRoaWIwMU9UMXB4ZGt4UFFrTjBkelJ1ZURKSFJrUnpNVFphVVU1YVJubDNhakZ3VkdoRmVFdE5lRWhzYmtJSw0KVTNjMmRFMUtNRVpLUWtOck1rVTVVekk0UW5WMVpIVTJjMHBLWlhKYVIycFZTMGxoWm05VFEyTlBPSGR3ZG1sNGVrd3hjelJrY1Vweg0KSzJsSUNsSjJNRFI0Wmtock56aHlaMkZRTURFd1RuZHZjVWhxWkN0dmNITXJUbmhNYjBNNVpGTTFVR05FYlRsRFFYVkNlRkpxWmpsbg0KVTBvNFVXODRkd294YW1Wc1pHbzVNM0ZwV1ZVMFdqQlBPRGR5ZWxjclNVUllOa2RDU1dORk9FcG5hSEJQVHl0WVRYaE9NRzVtWWpKRg0KV25CclJtaENUR1UyTW1vS1NrOW5VWE5rYjFsNUsybENTMGRUWjNneWRXOUlTWFpwWm5ocGNUZ3lOMWhIUTFoVVdtMUlhMEYzV25sSw0KVUd3M2JYbHFZUzl4WkdsMVpHeEVDa1p1UW5SUFpYaFVibG8zTjBoWWJFWkRPWE0zTDFCSmRGcGFjVXR1U1ZCMVNVdG9jMWN2VkdzNA0KWm5wd1ZWQm1OMVYxTUhSVEwzWkRlbU00S3dwaFluSndVVTB5Y0hCSk4wODVNMnREUzBwa1dGWjZTMmx2UlRKTlpsWTFSR2hNYWs1UA0KWlRneVQxSlhXazgwZFhkRFp6SjFPRnBJYUVOUGVub0tUWE5OY0VGdE9EbG1LekZ1ZGs5UmRIWkNVemwyTkRWTmFGcGtZbTVrZDFCSQ0KVVVWbk1uQk5Oamc1V25oSWR6bEZaMUJwVDJoNVQwMUdSMDB4Q2pSMFFsb3phbGxtVUhoSGVGUlhOMDVhWm5KNVYxVlJlSFpUVTJ0Rw0KWVV4elVFMXFlRlJDT1ROVUwyWnpTbVJsVlVSSFMwcFNORFJqVW5kbFVBcEJWRkZYU3k5RlFtZDRNV1FyYWtwVlNFdFpiRFZoU0ZWNA0KWkV0TWRuZElNV2xyZW1kSWRVdHJZalJ3VmpCNVlWSnFUMDU1T0hORloxaFphMm9LU0c5SU1YRm1Xa0Z4WWtOdmNYSmhVbTl5VkVWbg0KVHpsUmRucGhURXRpT1dka1JHcEZUWGgxZWtWS2RVRXpVWGhRT1VoeFNGSTFZVlVyVkRodkNtaFljM001VTAxR1ZtcFdiMnMyZERreQ0KZGpaclpXVlZWbEpLV1hocWFHOVNUMXBPVldWTmQyWkpaeTlGVVVWWVFVTlJWVWxIYjJ0S2NXRlpRd28wVkZnelIyOU1WMkUxSzBKVQ0KZHpWRGFFdHBVa001Vms5NVJrNTJjVGhSTW1WMVFucFRVbTlaVUZsVlZUZGxhMFJoZDFWUlZTdFRRM0JPTUVrS00waFphVXBzUjNwRQ0KU2pkNmQwWjVZbVZGVFdSMk1VWTVORVkwVG1WbVVrOWtVa1pqVUhSNmNrRktORXhOTXpoNmIzRXlXVVZWZVVzNVVrNHdDbXhQTWtrNQ0KUWtaM016QkJVaXRRY3k5eGVIUndkRmQwZWs1WVFtOW9XWFZPVG5CaFduUXlWVTFqVFU5YWFGSlpiVWhLYW5FMU9XOUlOalZZT1Fvdg0KYkRoM1JXczBibmhuUm0xRGFtNXdTSGxIY0c0eWFuUmtUWFJTUkhKM1FXVklTMEpLTkZwUlZWWXpVMVV2WTJkd1l6QldXakp5Wnl0YQ0KY1V3S04ybEJWMlp2Wm05RUwwMHZNMkpGVDNVMlpWQnhZMnd5WWt0UGFIYzRVbFF3TjBOcGJXOTJTMVZqV0hWcWNEY3ZhSE5xTkRkNQ0KVGtkTFFWTnpDbkphVFhsS1dGUXJWbkZOUVM5TlYySXJLMnBQVlhkUmEwTjZObVJzZWswNFZ6VlZRekpsZW14dE1YVkpXQ3R1Y2xwdw0KTUV4dlYzcHhNbFpIUndwRlRtSkVjRzU1V0dnd1Z6TkdiVlpsVTJkM1pXb3hSbWMzUVVvMGQyUk1hMUI0WldJNU1UWlZSMDlPY2xWaQ0KUmxsU2RFVTNha0Z2TDJnNVl6TUthM1Z6THpoeWMzaE5WbVpVZGxGMUszUmFVRTgzYkdsWGVHaDFkVkpYWVVjcldVOUtaVEp6T0U1Wg0KZFhGc2VYbFFjSFpMVW5SSFNYRjVNell6Q21NNWFqVldibVp4VDJsc01WTjRRV3BGWjIwM1JUVkJTR3REWkZGRU1pOUNURFFyYUZKbA0KWlhneU4xZGxhbVZrVTBoU1ZubFJOazA0U0RCU1R3b3JORGhsWm14R1pXRkRWRlJYUlRrM01FaEpXakZvVFZGVVpqTmlURVZoUWpBNA0KTnpVNFZYVlpWbUUzWjJWR05tcFJiWEJuT0U5dWExSlFRbEVLWVdOUlNHZENUMVl4Um5wbU1HRnVNSFZOYUZaM01IWkNVVWxZTTFoaw0KWVV4bEszVldWWFYyYkRBd1ZrOU1RalJLUlhKRFVYcExSRWR6UVUxcUNrNHlkVVV4WTBGRFprRkZZWFZVVFdsck9Tc3ZSelYzY0RKbw0KVnpoS1QwOHhiWEpJTjJ4eE4zb3pVbnBvU2s0dlZtdFVSa1pUVDBkNUwyMUNNUXA1ZFRScGJtSXJkVFZoVm5sS1NVdzFiR3B6TDA1Qw0KYm04NVlpOWhSRTlWYlcxcFNIYzBiWGt3UzBOUlZtUkhUbUpzWlhSeFptcGxTbFkwWjAwS1NWRnVXRmxZYkZGblp6TTVPRXhDWVhkRA0KVGt4WlNHdGlMMlJFVGs4d1duTmlNMlJFWTI1c2QyUkRRa1JpTWpGM1dWaFNjRmx0YkhOaFdGSTFDa2xFZUcxaVJ6a3pXVE5LTldOSQ0KVVhWWk1qbDBZMGRHTUdGWFNuQmlSMnd3WlZWQ2JtSlhSbkJpUXpWcVlqSXdLM2R6UmpGQ1FrRkNRMEZCY0FwQ1VVcGFLelpzYWtKbg0KYzBwQ2QyZEVRV2RyVVhKaGQyNXVTbFZLVFdkalJVWlJaMHRCWjAxWFFXZEZRMGRSUlVOSGQwMURTR2RGUVVGTk4yMEtSQzg1Y1RVdw0KTjJ0VWMzQmxTbU5vUkU5eGVGWXJTRkpIYXpWTWEzSkJUbko0YXpCQk4wNXpSMDVDZEN0UVN5dFBaVGsyVURKc2FrdzNjeXRwQ2pNdw0KTUU0NFlUQjNVWGxzWVZCdE5XRTBLMFZRVmlzdldYRXZLelJGTDJoNWQyMXdMM2hXZFhwVlpsZEZVR2wzVUdKV1IzTmtObk42ZGtWSg0KV0FwTlp6TldZMlZIVWpaYVNITm5RWE14T1RaVGMwd3hUV0ZNWjJob2FHMTBhM0pRTDBseVUxVkxUbEIzUldsMWFVNW9VVlJyU1RSTw0KY25sWmJ6Z0tTRmxHUzFsdVEyOHpRbTVIUjNaUmIzRmpMMHRUY3pSQ2JDdHJRM1ZqWTFJeGFtTnJWRzVvU2pkdlZVeEZiM2haTmpKag0KYjBWa2VrRmxTa3BQQ25obUsyTkhNSEptVTNkTE5sZ3lVRlpoUWpOWFRWWkZibUpxWjFKSmJETnplbkIzUjFVeWMyNXZXazVyVDB0WA0KZFdGdGFqSmtWVGRUZVZaUVFRcFFPV2RRYjFsTVNUTmxkbVZGYm1OblVVOW1RbXR5VkcxcmRqZFhNbk42Y25aWWVXNUtXbkpNUWpsUQ0KY21FNVlrMTJkV3N5Y1ZSMU1HbERSbVlLTkdWMUszTmtWVEZwZWpoaVkzVmpNekppYms5VlNXdDVWRzVCYnk4MUx6SnBWM3BRWTNWWA0KTm14eFlscHhObE5FSzBoVlpHTlRXR1ZYVjB3eUNqY3hRMUZ0VW5OYWIxRk9Xa2d4VVV0alppOUhha3AxYkV4VFlVTk9WbWt6VVVoeA0KVFRGcE9HTkZjM1ZITlhGUFJrZzNWM2xPVldkcFJGTlVRZ292Um13NVEwRldaa2xCZG5kMFlUZHBZekZ3U1ZGblNsTlllVVpWUmxvdg0KTVZod1pXWm9WbVp6YlZOU1lWVlVZMnRSU0VwcFN6VnRVVUZQUmtvS00wdFRWV3hwVWtneE9VTk9VbnByUW5odGVGTkJOalZPWlhocQ0KYURoaVVXZFRka2w2VDNaR1NFUlRjVU52WWxoMWRVdDJWelp4ZFRoelQzTk5DbnBZZDFVNVlWSmlXVzVCWWsxWVVtaElia28zVHlzdg0KVUdObVpYUmxhVVEyZGtsVVRqVnJRVE5xZUc1RGRrODRXa1o1T0ZKcmExZFpTRlZNUWdwTlpYUmlhRlJMVVV4dU0yRnRiMlJJYTNKcA0KWkZoelJsSlFUV1pIYUdkU1dpczJiR1ZCVWtGQmNqaFpZVkJMU0dOSlpVUlVTVnByZG0xeVozTUtiQ3RtWWtWQlJsaFVVa1psVEVSRg0KTTBrNWVpOTBhazVwUWtweFkwWkRZazFYVUdOQmQyMUdkMVl3YmtnNFUwUmxURk5zVDNaeGNITkRaa1JQQ2xKcGFFdGlNVWd5VkdwUg0KT1UxRU1ITXZaMEYzUlM5cE5XVk1RblIxVWxoWk1sZHFPVVY1UTFsak0yZHhjVGRRUW1vclJuTXdjbkJ0TmsxWE1BcE5XbVZ1WVhvdg0KUTNFeEszUXJXakJQWkdVMVUwZGxTMWR6Tm1wdk1VZzRUM1V3ZUc5VFlYaGtUVW81UTBwdFQyVmFTMUZCVVcwNVZsRnJjVXNLUm5Zdw0KVEc1VmRrMVdTbGs1WjFGNVUwMDFZV3BVWkd4S1oyeEliekpQTlhWTmQzSmhSbFZTZFVoNlFrUjBZU3M1TVN0NWR6Wk1RVGMyUkVKbQ0KQ2tSMlQwcDBiVzFGU1hkRWMwRk9WM0JTTkhwWVUzSTJVRFZOYzJGSUswTXJiV0pUUTBkeFRYQnRlREpVV2paSFpIaFRWazVEUlU5VQ0KUW1wM2F3cHViVWx1Y0VKUFIwTk9ha0p2UW5kTVVVTlNOMjF6UkM5MVl5dG1jR2Q1WmtkVkx6bEljekp5Y201WFdIaEpSMnBPZUZCUA0KVDNnME5VeENOWEVLYzJadE1IZzBja3B4ZVRGT1dWRm5ZMVZDTTIxMFoyZFRjSEpEYmtnd1dIcDFVWFpHUjBaRFVEQXhVa1J4TmxOYQ0KTVVoeWJ5OTRObGQ1WWpCQ0Ntd3hRelZ3UVZodVpXZFNSRzVRUXpWUmNubzNRbVZ2VGsxTWVtNWtaVEU0WlhkTEwwVnZVVEF2VW14aw0KWlM5TGNGZHFXV2N4UlRCRk4yeGhWZ3BLYUVOTllrZHFSMmxIZWxabU5FbDNRMWxXU1U4NWRGaDJVakZzVmk5U2VFRnVNR0ZLTW1oMw0KUXk5MlVVMDBaRFZqUnpRMlNtUnJSM0pKV2trS01rNDFkeXRZV25OWGRtZEVjWFpzUlhsak1XdFBkR2xLTldOck5GSmFVM0ZDY0daVA0KTkRGQ2NIaG1aMEkxZVZseFNVbFVTa2hVZUdOdlVUbFhDbVZqYTFwUmVuVlpOaXRITkZvd1psSnJURlJrYkZFcmIzTkRSamxpV25wRw0KZVhsSk5UVk9SSFV4ZW5kemRIQlBOMlpxZHk5R1YzY3JVVE5ZTVFwR2MwVkJSVkZGUVVGbU5FcEJkMmhsWkhwMVYzUXhlSEpTUjBSNA0KTkhNMFpYQjBibWRrYkRSeGVrSXdkbEZ0UTFVeGJqQlhaVzVhYXpnMlEzVUtaR3BIY0RSS2RXeEhhRzVEZGxReGNHNDRUbWxLVWpsVA0KUVU4Mk5HdG9SVmhQWVdsMVJucFFTVzkzTlZwT1lqVTFUazFaVmxsbmEwaG5RVEJCQ21GS04yZFNVMGR6YkRkb2QwMVlSU3RFYUZNcg0KTml0VU9HOTVNMjFSZEUwMWVFcHZNM1pUVVdkeEt6TmhWa0pOYzFoUFRIRkJTbUl4VGxsRE1Rb3ZhMjFFTkVwM05tYzNSRk13YVhkRw0KZWtaT1NYWmFXSEJLUVUxQ1REQnZSV3g1UkV0R1FVTTVkRGRNYW1oc2RubDZlVk5oTWpOV1prTllNWE1LVXpCaVlUUlBPRzh5T1hSMg0KVldGNlRqVmtMMWhDWWxwd2VrRTNaelJEWVhOc1kzbEZObmg0V25ad05rbFFTRGN5ZDJkNmJGZG5UM1JSWW05eUNqZDJXbFpMWmpOSA0KY0hOUlZEQnlialZVZW1Wd05FRm9kbmd5WmpSVmRUUndTRlExY1RSQmExaFlNWFZSU2xST2JFSk1aa0ptVFV0aU9GQTBLd3B2VkRSRw0KV2pkR00zTnNNM2xpTDA5RVVqVk1VRVEzVTBWRVJrUjFla1JzZWxsU01XNXZkV0Z2UkZkeGVuSktVMEZwVkROWlpUVXJRVGMxSzJ3Sw0KUjJSU1ZrZEZVSFJ0VTFoR09XOWlaREJ6YURGek5ucHNTRzlPTUVRelVGUlliWFphVlRaSWFFeHRXWE5zT1dselNrTnZVekp3ZFRCdA0KYkZFMkNuUTNTbVEyVFU1bk5Fc3JMeXRoYTFaeWVsVlNXVFIzWVdKS1N6aFJPSEowTTJKc1ZVTkJaM280ZUV4aFdGbG1ObWR1ZFdOMw0KYW1odVIwRklkQXBpYVdSWVVGaHNaM0prUjJkcmIwTldla3hNTHk5VmQwUkpNWE5tWkU1VWVYWkxNRFJ3ZHprNFNVaDFjVUZCTDNKTA0KVFVWaGREWlFVV3BQTkhnS1dVZGhOalJ6U3prclNtZHBjR2ROUjBKdWIyRjFORUZ0UnpZMU1EbGtkVWRwVDFoVFdETlFObFozZWpObg0KYUZGWk5tZFpZVVpSYWt4a2JVTXpDbUZqZEVGVlNHazVOa0pxV1ZKb1VVVjNORGR3TVdnMGVVaGFRWHBEVmtwVWNtUjVaVzVGVkM5RQ0KY2tKMlRIaDBSbTVuV1UwNFVVZGFhVkZLVGdwdVV6bDBXR1pwT0c1MldtNDBjMjVVT0ZVMmRFODFRVVI0UldSUmJuTnplVkpPV0dzMA0KV0hscGFtSlNkMVF3TmtoM1ZFcHlURGRLYVRGNGQzWUtXWHA1WVcxSmJqQldZemRNUmxKR1dFeFFhRlp2VGpsS1pDdHFXbkUxVEU4NQ0KVVVGMFZVUXJVWGhRWTJoV1dtNHpZakZOU25adE5HbzRja0o1Q205bmVWVXZhMmxJYlVkUVZEZFJUR1pwTDJ4bFpWRXdUWE0zZDJKaw0KZEhoRU5EQkNkbVpLTVZORWExZHJVa2hNVXpsaWJFOHlRa05hTDFSblNnb3dPRzVtYWxjMmMyY3lhREl5ZEZKS2NIVkpObTlGWkVwTg0KZEZad2NHaDBTVlozV1ZoMFUzWnBWa2hCVDFoSVptNVJiVzlDZUhWdWQwOVlXalFLYjNsT1luTlRVV1ZrVG05dmIweDFWVzVCWW5KWg0KYW1Sa2RGZEVhVm95VTBSTk1FRTBXREZSY1U0d1pGZG1kRVE0VGxSbFluSjBhek51UkVKTENuVTFPU3MzYjA1Wk1uTlBaa3N5YlZndw0KWkRORVlYb3dRVmhzVVROV1dpOUhhSE0zY3pSUVlUbEJPRzUzVm5sRWVWRTVVME5qYmxVM1RVY3lMd3BOTUM5dVkwTnBkSFF6ZUVWUQ0KU0VoMWMwWkJSekJKVmtFemVGTnlWMU40VVhGS1p6SndkRFZHYm5FNE5qSlpZM1ZIVEV0SFRYbDVjMWhTZVdrS1JIVjJlbkF3UVVOVw0KV2tGcmRXVXZOMDVUTVRGdVdYTmFUR1J2V1hsTlFuWjBhaXRKTlZaTWJFUnlMM1J1UkRObVFXOUJRaXRZZFRoV01XNTBDazFZVDNJcg0KYmxndk4waENlbXBhWVRBM00zQmxUVlZMTW05eE1teEVhWGRhUlhoVE0zWk9Velp5ZUd0dFZHSnhUbkl6YWlzdmNVbGxSa2d3V1Fwbg0KVUdOak1rbE5kRWNyYkVFNFYwbHlhemg2Ylc1dlVXcFNibXRzT0hack5VTlBLM2xoTHl0WE1qZHNaVmszY2xSNU5XVm9hMnQ2YzJwQg0KT0VZS01GcHVka2t5YzA4M1VWUXdkMUpVZEZKaWJWTkNTa1JPTkZsU1NsZzJVRVJoZEdaR1ZISkNaRFJuUTBkUllVYzJZblF2VVcxbg0KY1hCb1p6Wk9Da1ZOYzBKak5qQnRRbFZCWTFwNU1tbzFWR2hqYkVGeVowY3ZkV2xGUzJzdlVYbzJSa3R6VWxSWE5XZFpURlZpWnpkdg0KV2t0ck16ZG9XbGd6TWdwTU5HdHpWVWhLY2xKSVVteFNiRGh3UXpWVVVWTk9SbVJtWmpGWmNGQnJkR1owZUZKT1RYZGxNalZxWkdReg0KT0VWTU9XZDNWM0IxVkc0MGVHNEtVUzlWZGxaeVFXdGhVMFY0U25wWGIwdDBSRlUwVXpCNVZHb3hjVlJaYVhSUU5GUllNa0pFY1ZaSQ0KWlhKMlNrRklhMUIyUzNvNWJteG1VbXgwQ2s5NlRHOVpjbXRzYTFSa1ptWlhhQzg0VGs1MVMwTndXWE5STWxSbGFVaHJOVzlOTVc1WA0KUm1oVFdXUTNWR1Y0UXpWWGRrRlFlRTVoY1V0RWFnbzRjRGxEUVZkMFVVMXpVakZPYTJ3M1RsTjZTbk5tVDFCT1lrUnJWSG8zYkdGMQ0KVlVkbVNHczRVa1p3YmsxRldFTTFkRmhOUVdkQlVEQXllRVVLV1VSTlVWaFNhMFZwZVhKT2VrVjRSRTFZVTA5bEt6SllkR2RSTVVNMA0KWmpGc1p6STFiR295U0RFdmVUVjZUbGh3V1hwWlpWcERTMmRXVTNwRENtWk5URFJWTTBGTU1VWTNOREF5VDNVeE1VRkRlRlZyUTJWbQ0KV1VaaWFUSTVaVlpvZG1aMEsyZzNVM1o0V1U5U1VYUnVhRVIzYzBabVFrSm5RZ3BEUVVGVVFsRktXaXMyYkd0RFVrTjBja05sWTJ4Ug0KYTNsQ2QwbGlSRUZCUVhWaVoxQXZhbEZQVFRGbWFsWnJWRk5MV2sxcmQzcDNLM2hTYjNVS1MxcG9XRVJHVEZCbGJITXpTRzVqWkhWUA0KUjNKMVNYTlRlVFpoTUdwdmJTdFlaMDVXUTBwdk1GWnhZbE5UUTA5eE1sTlJhREZoZDJZMmVGTldDbFZKVldneWFWVkJja1Z1WmtOMA0KUkdSUmVtcHhOeXRMUjJoeGVTOWpPSE42TTFGRk1YWkpjekpRWVRoNVJWZHFXVkJWYjNaQk56RkRNM2xwU1FwWWFYbFBUblpWVm1jeg0KTTIxQ1dYaFVNVk5tU2l0bFdVMUhiamwyUkdGaVkySk5jVTlLYUVadldDOXhVbVkxWmtJeWEweFVjM2wzWms1cWVFOEtSRlk0U3pneg0KT1dwTFNVUmpPVEYxVVZSTU0wWnRZVTVXV20xMVEwMDVVME5ZZUROVVdsZFhRMVIwWW5wQmRUZDJLM2xYUVUwM1kyZ3JaRXBzQ2pBdg0KVTFsbGJFNXZOSEIxVkdoS1VsVlVVa1pKWkN0U1RsTTVhSFZzT0RCWVZHbGhlRVl5TkVsU1pYaEVkbTl1Y0VOTmExVnVTRGx4VWxCeQ0KZWdwUldWTTViM05LZVdKUVoyOVpRbEY0VTBKd01HWnRXVGhLWkRaNGRrcHljMlJKYzNCTVNIVmllbXMyU1c1bVJXaEhaR1Z3TjNVeA0KYUdaWEwwa0tVMDFVY1hwUGVsRlJRMGRzYkZFdllVdHlUVkJNZG5BNU9VUkxaRUYzWm5GWVRrUktOR04wVFZsNlJtNVZOV2t6UzJacw0KU3l0VlpISnRaV3RCQ20xa1NsZE5lWGhYVEU4eVZuVkdLM0JyT1RBNFRGSnNiWFV6WjFSVFJWbHpaMEZhZFZsT05EUlZOSFpNVFVWRw0KTkdJdlJFeFNkVzVwTkhObVFnb3JaakYzZW0xVmRtUmpkV28xVmtoUlNUTjNNSFFyVUhsSWFrcFZka1ZxVGxWRFNsRmFRM2cyYVdSbQ0KVERSclJGSTJjMUJaYlVjeksyVmxlbEVLVDJkV1lYRk9kMDVxYkZRNGMyZHNWMmxyWVVkQ09Ya3dNMFZvUzJOVVNFbHhhbWczUzNKWA0KU2xWeFR6TlZZMmxVYUVaRlQyMHhhRVZUUVVJckNtSjNkbVZZZDFNMFNHRnlXRzVtYlhWVGNYWXJOR05tVEVnMk1raFRPVnBUWTNKWg0KYVRsR1dVSnNhM1JDYkZNNVdFZFVSazFKWWpjM2RrYzRVd29OQ2oxR01EWjREUW90TFMwdExVVk9SQ0JRUjFBZ1VGSkpWa0ZVUlNCTA0KUlZrZ1FreFBRMHN0TFMwdExRMEsNCi0tLS0tLXNpbmlrYWVsLT89XzEtMTUwOTY2NTE4Mjg1ODAuMzU0NzQzOTQxNDMzOTE3NS0tDQo=",
"historyId": "1214302",
diff --git a/test/source/mock/google/exported-messages/message-export-15f84afa553d8a83.json b/test/source/mock/google/exported-messages/message-export-15f84afa553d8a83.json
index 3e9ed1c1eae..2c96328f036 100644
--- a/test/source/mock/google/exported-messages/message-export-15f84afa553d8a83.json
+++ b/test/source/mock/google/exported-messages/message-export-15f84afa553d8a83.json
@@ -4,7 +4,7 @@
"id": "15f84afa553d8a83",
"threadId": "15f84afa553d8a83",
"labelIds": ["Label_1", "STARRED", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
@@ -101,7 +101,7 @@
"id": "15f84afa553d8a83",
"threadId": "15f84afa553d8a83",
"labelIds": ["Label_1", "STARRED", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"sizeEstimate": 11111,
"raw": "UmVjZWl2ZWQ6IGZyb20gNzE3Mjg0NzMwMjQ0DQoJbmFtZWQgdW5rbm93bg0KCWJ5IGdtYWlsYXBpLmdvb2dsZS5jb20NCgl3aXRoIEhUVFBSRVNUOw0KCUZyaSwgMyBOb3YgMjAxNyAxODo0MDoyNCAtMDcwMA0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7DQogYm91bmRhcnk9Ii0tLS1zaW5pa2FlbC0_PV8xLTE1MDk3NTk2MjMwNjQwLjg5MzY4Mzc3MDQ3NDc0ODciDQpGcm9tOiBmbG93Y3J5cHQuY29tcGF0aWJpbGl0eUBnbWFpbC5jb20NClRvOiBmbG93Y3J5cHQuY29tcGF0aWJpbGl0eUBnbWFpbC5jb20NClN1YmplY3Q6IFlvdXIgRmxvd0NyeXB0IEJhY2t1cA0KRGF0ZTogRnJpLCAzIE5vdiAyMDE3IDE4OjQwOjI0IC0wNzAwDQpNZXNzYWdlLUlkOiA8Q0FLYnVMVHJPSkN0bjhPZ3FTazlheCtBcGszVEE2a0JyNGRFSmI2RDdVUlBtSmRpOVBnQG1haWwuZ21haWwuY29tPg0KTUlNRS1WZXJzaW9uOiAxLjANCg0KLS0tLS0tc2luaWthZWwtPz1fMS0xNTA5NzU5NjIzMDY0MC44OTM2ODM3NzA0NzQ3NDg3DQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOA0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQ0KDQo8IS0tIEJ1c2luZXNzIFNvdXJjZSBMaWNlbnNlIDEuMCA9QzI9QTkgMjAxNi0yMDE3IEZsb3dDcnlwdCBMaW1pdGVkLiBVc2UgPQ0KbGltaXRhdGlvbnMgYXBwbHkuIENvbnRhY3QgaHVtYW5AZmxvd2NyeXB0LmNvbSAtLT4NCg0KPGRpdiBkaXI9M0QibHRyIj4NCiAgPGRpdiBzdHlsZT0zRCJmb250LXNpemU6MTIuOHB4Ij5UaGlzIGVtYWlsIGNvbnRhaW5zIGEga2V5IGJhY2t1cC4gSXQgd2lsbD0NCiBoZWxwIHlvdSBhY2Nlc3MgeW91ciBlbmNyeXB0ZWQgbWVzc2FnZXMgZnJvbSBvdGhlciBjb21wdXRlcnMgKGFsb25nIHdpdGggPQ0KeW91ciBwYXNzIHBocmFzZSkuIFlvdSBjYW4gc2FmZWx5IGxlYXZlIGl0IGluIHlvdXIgaW5ib3ggb3IgYXJjaGl2ZSBpdC49DQo8L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZToxMi44cHgiPlRoZSBrZXkgYmVsb3cgaXMgcHJvdGVjdGVkIHdpdGggcGFzcyA9DQpwaHJhc2UgdGhhdCBvbmx5IHlvdSBrbm93LiBZb3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byBub3RlIHlvdXIgcGFzcyBwaHJhc2UgPQ0KZG93bi48L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZToxMi44cHg7Ij4NCiAgICA8c3BhbiBzdHlsZT0zRCJjb2xvcjogcmVkOyI-RE8gTk9UIERFTEVURSBUSElTIEVNQUlMLjwvc3Bhbj4gV3JpdGUgbWUgPQ0KYXQgaHVtYW5AZmxvd2NyeXB0LmNvbSBzbyB0aGF0IEkgY2FuIGhlbHAuIEkgcmVzcG9uZCB2ZXJ5IHByb21wdGx5Lg0KICA8L2Rpdj4NCjwvZGl2Pg0KLS0tLS0tc2luaWthZWwtPz1fMS0xNTA5NzU5NjIzMDY0MC44OTM2ODM3NzA0NzQ3NDg3DQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47DQogbmFtZT1jcnlwdHVwLWJhY2t1cC1mbG93Y3J5cHRjb21wYXRpYmlsaXR5Z21haWxjb20ua2V5DQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Ow0KIGZpbGVuYW1lPWNyeXB0dXAtYmFja3VwLWZsb3djcnlwdGNvbXBhdGliaWxpdHlnbWFpbGNvbS5rZXkNClgtQXR0YWNobWVudC1JZDogZl9OV0t4ekFjYUJLDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCg0KTFMwdExTMUNSVWRKVGlCUVIxQWdVRkpKVmtGVVJTQkxSVmtnUWt4UFEwc3RMUzB0TFEwS1ZtVnljMmx2YmpvZ1JteHZkME55ZVhCMA0KSURVdU1DNDBJRWR0WVdsc0lFVnVZM0o1Y0hScGIyNGdabXh2ZDJOeWVYQjBMbU52YlEwS1EyOXRiV1Z1ZERvZ1UyVmhiV3hsYzNOcw0KZVNCelpXNWtMQ0J5WldObGFYWmxJR0Z1WkNCelpXRnlZMmdnWlc1amNubHdkR1ZrSUdWdFlXbHNEUW9OQ25oallVZENSbTQ1UjJ4Sg0KUWtWQlEybEJWVGg1YUhsdFRuRXliRlI0UlVjeFQxVXdXR3RoT1hSVlNqUkJOM2R6UkdoSVRtNTFhSGg2YWxaUU9BcFVSRzV3VjJJcg0KYTFFM2NFUm5halJUUldwWVZqVk9RVXRNVXpsSlUxSnphWHA0UlhaM2J6aElWM1ZzVERCcmJXMXNZVVZUWkRWdlRuZGpNeXNLVHpSRA0KZUZnelRUbHZUa1JoUlVoWWJYTndhRmQ1ZGtKMlZIaGtXbGN6WkRWSk9XUlVOSFpxU2k5d04wRjZibGs1T1RWaVMyaE1RMHMzUzNsdg0KQ2tvMlRHVXJTRGRKT0VWWVZXWk9Ra2xyU3pkQlZXMW9kSHBoU0RKVmJHaG1RblJLYkRNclZrczNiVUZxWlRaM1ozWm1OR0o2SzNoeg0KZFZvdmN3cEhiRkZCYUZGcWNsSmhlQzk2YWxSNFUwaGtSV3BDU2l0c01tZEpka051YTFabE5ta3ZRbU5xY1V4UlZYWklTbk5uZW1GTA0KY2lzelVta3lVWE1LUVdwV1RETk5kSE5PZVZWb1lUSlJTVzFyVjFOUU5qSktNamhCUjFObmF6VTFOblprT1VOUFVEZzVaSGhqYldoWQ0KYkcxbFZFMDBNRUV5T1VkakNuaE9lbTlDVlVSS2VHSllMeTluYXpGV1ZsaG9UMEU1TDBKck5rcEJVelJVSzIwelNXWjBTek5SU2s1RA0KTDNrclUyNXhSRlk1ZUhkQmJEUkxUUW80Y1VKM1pWVjBSa293V0RKRE5FUmlRemxGU1ZBNVJqSlRlVEpxVjJKTk9XTjFZVlJFTWpGdA0KYWxGa1QxVTFZMkpYYTBwV05EQklNa1puUlVnS1kySkxRamtyUjJ4TmJuUm5LM1JRVlVac2NrbEtVRk5MYUVSVlFrTjViVEo2VldKcg0KVjJ0Nk5qQTJjVFZYTlhad1UxVlBkU3N6UjJsV01saEdDbVZIZG5ZNVlXWnVUMjl2TTNKTWFsWlhORlZwYldORlJFeHllR2xGWkdOMA0KSzI5RVZFa3dXRkpPVkV4SlZVWjBXbk5yWkVWVlpUZHdVRzl4VndvMEsxUlFlamxIZUZWc1psQTVRM05wTVhCNWJHZElTR05zYmtVMw0KY3k5Q0sxb3JkR3BWVDNKb1NXRjVkelpxTUdSWmRHd3dla0pvVFdVeE5Fb0tkelV6Wms4dlFVdGxOR2gwYUZaWlQwZ3hiMm8yZWxOSw0KUzJWRmQwcFpaVGxHT0c5bWMxRkJVa0ZSUVVJdloydEVRMUJ2Vld4VU5FNW1lVGRuQ2xsUGRqVk9Oa1I2YW5KRWFHVkxOSGhEVEU1MA0KTDNFMmMyVm5Nbk5NV25SeFdVbGpTVlV2TlVGT2VHdGthRVZNYjNWREwyNHdPV1JQUWs1dFl3cFJjR2xUU1c1RFMxbEhibEJGU0hGeA0KUW1GalJrdEZkMXBKZUVncmVWVkJlalYzY2s1UVN6aElNSFprWm1oSFRHYzNXbGw2Y0ZWQ05rUldTbUVLU0c4eWIwNU5kVGxWYVZsbg0KTDBJM1pEUXlTMkp6YWtwMVZIRkVRbk12VFVOUmJuWlJjRFUzVFV4SU9EbFVPRUZ2VFRFclF6SnpVRnBDUWxCRENqVktSVFE0VGxKcw0KYTJSSWFqUlBUSFZzZEVGTFFUbFJOSGRJWkU0NWEzQnVaVkUzYTB0WEswOUZSVzQyZWpZMWRIWTJZVVpVUWpnNFEycGpaQXBMYTNaRQ0KVkZkdVIyOHlhemhFTURsSFlWSjNTMlZEVlROeVVFZEZaMUkyWTB4TFZsRjBaVms0ZGs0MWRIVmpXbWhpTVhWUFVWRlFLM1p6U3pBSw0KUWpGMFdrdFVWVVJZU2taSmNtWkNRVlUyTjFsTmQwZGtTekUyUWxOd04xTk1Ubmh5VW1Od2VFSnlRbEI2UmpCdmJDOUdLMjg0ZDA5UQ0KZVVVMkNqUXdUakZMTUZkRmVFMWtXVkZxZWtkVWFHRnFkekpuU1ZJeVEzbE5ka3hEUmt0dmFtMTBhbTF3TW5BNU0ydDZkbXRITkcxMQ0KYzFaaGVWRlNWUXBaV1hObFEzbFFiR1JEVlhweFFYcGtPWGRSZDFCWk4xbHROWFJ3VmpkeGNWSllaazV5YTNsc1JVSlZOazUzUmxneA0KUmpaaWVuQllXbVpGZUhVS0x6RnBhWE5aUjJWTVRsVnhNMGd4Ymt0d2NWVmtSM2RtTUhGeE5VUjFSVFJsUzJkR1ZuaENOekZNVW5SWQ0KYWk5aE9XMDBRbGt4ZDJkVFpUUkRDbHBXUzNod1JFTTFRa3hQU2tOc1VYazJPRFJyUzJSbFZuQldhVmhVYjNadU5FOW9ZbWxUWjFSNg0KYTFJd1JHaGtPVlJQYVhkYWJHNXVTWHAxUXdvck5YcG9hMk5tY0c1eGRWQlNibU54WmxKMlNtOXlVR3BJYkd0RlVXUjZjM2RvTmxwdw0KTnpkRlRTczNNVVZDVmxobVEyWkJSRmhhYXpSdE1HMEtPRmhQVVRGWE1qTlRSVGx4V1ZveFNYTXJVR2RCY2tOQlJVRjNVRVZ3SzI1bw0KVVhsR1QyUjJVaTl4TldkM0wxQndPVE5pYzJSWVEwWk1iRTVGQ2xoYVNVdzFUbXRXTTNsd1dtUk1XRVZ1UlZkamJFZEhOMkkyTkRGcg0KUjBOTVRta3hWRUV2Ulc1VWFISXdTazF5YkVWbldtcG5aa1pFY25RelZncHNlV1pGWkZWelUxSlNUa1ptUjFod01WUTNWbnBXZW5BMw0KUVdGRFV6aDJkbTVxTTNWb0wxVmxaV3RYUmtNeldWZFJlaXMwVEZncmVVTTRlbFlLTDFrMk1qRjNRbXRhVlZac2JFdFlSVU5FZW10SQ0KV0V0b1FXRTVkMUp1YjI0MVJqUllPSGQ1ZVdWT2J6VXJkSFZsZW5CdlFuRlFhM2RrVlRCeUNsQm5OblZtTDBoNGRXdGtOWE5aUzFCVg0KUVd4Sk5FMVJhWG94VFRCa1ZGaFRVa3BDZUUxNWRHOHphak42VUdJdmNuRk5jM04wWVM5b1MyOWFjUXBMUkd0cWVYbEZSVXBSYzBWQw0KTUVoRWJVdERVWEpEVWt0WU9XTndTbTFHVDBvMVkySnBORXR2U1dkR1FVaFplSEUxU210UFZGQjRkV0ZxZUZZS09GRkVNbEp1YTJ4VA0KU2tsWVdtNHZjU3RTYTBFME5VdFlZWFF4WTAxVWJWUmliVUpoWTI1TFpVcGFNbUZxUVhOb0wzQlhUa3czVlhSU1NFNTFDa3B3WlVaWA0KVVZBMWJIbERSMXBzTDBNeGVVRjRVa1Y0VTNGT1IyUnJhaXR2VldWSmF6QmhkbEJJVFZJNWRsTnVkM1ZoYlN0ME4za3liRnA0ZGdwaA0KYmpsQmVHTnZOelZ5Umsxek5taEhlRVZvVFZKb1MyVnNkVmRqWW5kWGFVRTFOVkZKWjFWUVV6QnhRMDF6WTBVMU5Fc3pUbmMzVVhkdw0KV2t3S09WVnlVMWRHVkhoS1VVVlZibFF5VmtwSFJrNTJOamxZV1VOaFRFbFhjMmRyTjJoTlRFbFRObTlRTmpKVVZUQnZOR1JPWjJsbg0KTkVrelRGVXZDbGRxUmtReU5EUXJRakJyU0ZKeU9XRmtUQzlWTjNaWWJtSjBWRkl5YjBGNlNqSTRNVFl2T1RoR2JHUnBNSFpZU1c5RA0KYlVWSkx6TXdRbkUwTkFwWE5scFdhVkV5VFVablRtWXdlRGw0Ym1JNVZFVnBOMVEzUld4SFpWcDZTbE5JU2tWSVF6VlpjVkpMU2xsaw0KZFhaRlUyOXBLMHRwYjNneWRITUtiMU5xVEhOeVZtZ3JhWFJqWTFaUk5FMUlTbUZYTTJwa01IbHFXbWMyZDFkTlVGWnJaa016Ym5wcQ0KVm5OMlRuWlhiVFZsV0dOaVUyZGhhblI0Q2xjdlNsWXhWMlV2ZVd0dE9HRXZZVFl6Wm1GeVQwWTFOazF1YTFkeVNHZDZNRWhHWlRsaQ0KU1V4UWNVbzFaa2Q2U2xJdldtWnRXbFpUT1hCa2FRbzVhblFyVm0xU1JVWnhhR2cxUTFWa2FVY3JVSGh4WlZkc1VHTXJTVVpxWjBGRw0KTm1JdlJFeG9SRWMxVDIwM1NtbEVkVnBoZEROdlkybFdlRm9LUXpaclZXbDBkSFpyVmtOb2NtMWxVbXAwYURKMmRtSldWVkp0YWxCbA0KWVM5NE1UTlZOVFZRVEc5WGVHdHBWbFV6ZGtRM0wwaDJMM05MYUZOSkNrMUpNMlJtVmpSd2ExWjJUMWxWUlhGVU9VSXdZelJVUjFSTA0KVTFCa1pqUmxUSGRpWWtKUGRVeERVVzlYYVVWc1RUaHVNMWhhTUcxaFZsZHJSUXBNZGtkcmRFcEtOVzh5WWtneVoxSmhVR3hUVHpRNA0KZVU1bVNsTllhMVV5VkhaRlUzQkNWRFJyVUhob2NDOURlV1V4TTAxc1pGUjVlRms1T1hVS1lVeGFVemxTWjFGbU0xSm5hV3RaZHpFcg0KVmxsVVZIZDZTbkI2VGs4d1duTmlNMlJFWTI1c2QyUkRRa1JpTWpGM1dWaFNjRmx0YkhOaFdGSTFDa2xFZUcxaVJ6a3pXVE5LTldOSQ0KVVhWWk1qbDBZMGRHTUdGWFNuQmlSMnd3WlZWQ2JtSlhSbkJpUXpWcVlqSXdLM2R6UmpGQ1FrRkNRMEZCY0FwQ1VVcGFMMUp3V0VKbg0KYzBwQ2QyZEVRV2RyVVdZNU5XOVdWV2wxY0RSblJVWlJaMHRCWjAxWFFXZEZRMGRSUlVOSGQwMURTR2RGUVVGSlRUQUtSQzl2UTNGSw0KZDJOTU1WRlJRVVIwVTJreFkySk9jMjB3Vm1kMmVUTnFkVEYzUkVvNFlVdDBRbTByVERSdGIxbG5aMDVuWmpKaWFtaGhORmQzQ25KYQ0KZVdsbWVHeERSRTkwUlUxSFJFSnRRMngxZUV0RlRIWm9iazR5U2xOa1JTOUxORmxUWkRkNFNtOHlPVmhETTJwWGRFSnVSM1pRZUM5VA0KWWdwQ1ZtMXlkakJMVDAxTFRXVTFaVzQyU2xWMWFDOVNjekJPYVhoTGVWb3ZTMU56T1ROWGMxRnBUbTlIVW1aUGVVUjVVakZtYjJndg0KV1c4NWNsZ0taM0ppVUZoemNFMUNhbFpPVDNNNWFtOUtVekEyUzBweU5FSm5jWFkzZGxWT1MyYzFZa1phTldkV1JTczBWVkZsTkZWNQ0KY1Rabk0yOW1NWFUxQ201MU1rVkRTVGcyV1RCelYyRjViV3BJZW5ka1pXWXJZV1JUT1RWMFRXRjNVbFZyYXpScGEzUlVXbTlCVFdOTA0KSzI0MVNUZE1UbWhWVVRkcWNncDFOVkIzV0doSlNHZEZWMEl3YVRsek4zbFZUSHA0VFhsb2RVRTJaM056YUdwYVdXMU1UalE0ZDI5Sg0KTHpsM0wxWjRja0ZNZEc0NVYxZFlOMlVLT1U1Q09HODFkbEZIWjA5b1drZEhWVUZhYURVNWVXOUtZVEJ3YnpWSVEwaElVbnBRV2xoMQ0KWVdNdlpHaFplV1ZPYWs4d1ZISklTV0pNT0dFeENuWktTR0ptUVdKU1pGVm9WMk5VT0ZkQkszQkJaR1ZLWlU0eU1HODNiemh3ZUZSVg0KVDAxc01HeGljV28xYW5KWFIzUnNXVm8wUmtseVZFY3ZaUXBRYW1obFJuaHhVa1pSYlVsdE1XOVFTM2c0UlhseFMzTXZUMnBwZVhSTQ0KYmxkeWRVbHdSVEZOTml0M2ExQmhhamxJYW1WaU9WVkJVSE5YYkVjS1owMWpaa1k0ZFZCNVN6WnFjelZaYW04eVRYZE5MM0JQT1VKSg0KWVhocmF6ZDRiR3R0WkU1eU0xTkhPR1kzZUhsR1ZrY3lRemhVUW5sc1VqbE9DbU13WjJ0Rk1pdERPVkJYTTFvNFluUkZOWFo2VDJoMg0KT1hSSE5qVldOMjVETjJwUUwwUm5iWGg1TnpSb1NXeEhha0Z4YkZCSlJWaDFja1ZKU3dwd01rOXZUbmMzT0VkWmFqZHRlVlZuWnpCcw0KZWxsbE4xUnNZMlpIYUdkU1dpOVNjRk5CVWtGQk16bEZOazFEVEVKd2FtOWtSVFlyZDBweVpIa0taekZhUW1OV2FrMDRTMGg2Y0RGUg0KVUdwME1rbEhRV2RNUldWV2NqQmtaa1U0UjNRdldUWnZUamhuYm5Wb1pXeDJhRlJLV1hJdmRYQjBiazFKQ2pKak0yTm9TSGNyVnk5aw0KVFRSQ1YzZDJabUZ6V0hWTFptZGpXbE5zY1hWTVRVeDJZVFpHUlZaaFlYWjBkWEZ1Y1M5V1ZXSlFRbUZWYkhwdVFnbzBNemhpZWtOTA0KTTJkS2NWSkhaRklyWW5NelF5dFBjWEJtUjBSck5ERjFXRGx1YjJOMmRtNHZVamhpVkVSSVVsUkZWRkJ3ZVhkQ2NXOUNVRWtLTTJsTQ0KYm5KRlZ6RjRibEJSY2pKU1NsZE1TakZvUlVoRmRqVnhlVUYwZFdob1VFNTJUbTB5Y1ZScFRFZFpOekJHTTFaWlZIVTFTV3REYm5sNg0KQ2xRclJWSnJXbTVIV0ZoUFdWVkNjVWxvUnpOdU5GTXpWMlZrUVRGbFdVZzBRemhOVFVwbFZVdFpVMlJ4T1hrelVVNUhRamcwZW1Odw0KUTFkdFN3cFRaV3RZVFRBNE1sSmlZV1o2T0VSbVUwWlVlbTRyY1d0R1kzRm9SU3N6VlRseVNFbEtSVTVhY0ZsM1ZEVkNiazlLZWpZeg0KYjFwRE9FRmpiMjRLVW5Oc01rbGljVXh6UWxkRlJHZG1hamxvV2xwemNqVTRPR2xMUzBaUFdIRkNVak5zTTFoV0wyMDJNMmxEYVdOVA0KWTJwaWJUUTVVbEYwUXpsdUNrOTNkRk5MY0VKNGMzQTJTbUZpY21KTGMwZFVXV3ROV0ZKRGRFSlRlV1ZETUU1blRYbE5lR2RRTURKeg0KTTFCM1JFdGhaM1JKYTJRMlVTczNUQXBZUlV4TVJHaDJVa1ZUV2pGSWJrSnZUVFZ3TVdKeE5WbHZVWGR1ZDJacGQwaGhZMnh1YjNwaw0KYW5CUGVHaE1jSFpRUm05Q1dGSjFTV2RoVjNNS2VEUjRRMHhKU0VkTVJDczRUM0oxVW5oeWFHSmlVRWhNT0V4UVFuaFlaMVJvY1Zobg0KZERkT2NYSlZWMWhtVm1KSVlXTXpRVzVwVUV0WGJ6WjJDbVpRVkVSd05WTmpOa1pNUVU1SWRVcG9UMXBEYzNST2FVUkJWbnBpTlhWQg0KVTNOVlNtb3dRalJpZURCcFowb3JNR3hxVVdKRlZUVk1SVWhKYWdwbFNrMUJSVkZGUVVGbU5FcEJkMmxXV0ZodEwySkViblY2UjBFdw0KYWxsTVRXbHVaRVZ5WXl0dlprdE5hRU5DTmpCVVNXaE9OM2RGTXpkNFptWUtRazUxTm5KcVNVOWtWSEF3YVc1SmJHeFlRV1ZpY1VjMg0KU2sxcFMwY3dSMk0xVEhSeGVISjFlSE0zTUZKcmVIWnVNWEU0TVROeWRETkZUMk5wQ2pCaVJWazJVWFk0TDNGVGIycHphMlZoTVVOWQ0KWW1KamJHcGFVRkZyY21WeE9UZGxUM0JpZUhOSGRFOWpkRkZHUzBJNFFteGhaM1JXTWk5Q1ZncFJhMWRrVFRSalkyZG9XRlIxTHpWMg0KU1hKd1VYWjZObEJDUlU4elMzSnhNMUY2WTFOdmVDODROeXRYYnl0alNFMUtaM0poUjJFeGJuTTRNbklLWlN0dE9EWk9UVU0wTjJGaQ0KVm5JNEswdFVMM1JUVUVoT1NWbHNURmRuVTBwSmJEa3piVVJKYTI5VlYxVkZaQzlCUkRkU2MwdDZaa3BMYWt0WENtZzVUMGx5Y3pKMQ0KVjA4MVpHZFhOWFpyZUVSMVptSk5ZME5KU2s5aVVuUnlNU3R6WVRoVVozWndjVFV3TkdGbGFtMWxhV2xFSzA5NGFTOURkd3BhYlVsSw0KTlc5bVQxSkVTMWw0TkRSTVluRXdXSGxDSzFsU1FtdG1WQ3QzTWk5WU5ITlRiVWxzUW1GNk1scFdPRzFTV1VkbFQyY3JiVTkwYm5NSw0KVTFoWVFrZFBSazUxVjI1VGREWkRSREl3UTNGcVZWSnpRMnRSU0VaaVFuWk5SMnA0TVRKRVVWUlJla3cwVUd0a1JIQklkWE5yV1ZCSQ0KTmt0M0NrdGpla0l3TlhVd2EwTkdVVWxPV1N0aGFuVklZbVZqY0ZaNU0xRjNObk5yVEU5QlV6SjFVa2h4YzNkS1EyZDBWM0JpYTBSVA0KVFdaU1ZVcFhaUXA2T0d4VGFEWXdWalZCTDFwUVpVMWlMMFkyTDA4MFpWQnhhM1pZWW5KSksyRnJMeXREY21zNWJrYzJSMVJKYldaTw0KV2tKSmJEQm5kRzVwZUc4S1VWRjVPVFpXTWpaMFQyNVdUMEZvZVd0U1NXbEtVMGxqVmpSRk1rMVFLM1pyYlRkRFlYUk1iVFJUUVU1UA0KYVRseE5VeGpjRmRrVkZKa2RYWXdDbTB3T1RCaWQwcG5jMmRPZURSbWVFZzJNR2xVV21aVksxSjJlWFYwYlVvMU56UnllbmczWXk4cg0KSzI5MWQyeDBSVEZuWkROSlltUXpNSGR4U3dwRWFUUTFZa1JQYnpWeUwycHBNVlZOY1RKdGRuZHRVWFZrVFRSa1pVaG9LMUpyWm10dg0KTm1kUlJVOUdPVFZ6WVdnNU9WWkZjMFk1WWpjNVFuQUtXbTF3WkVoTlpVdHVhM0p1TVVGaVZtMXBZMlZRVGpNcmJsTnpZakZDU21GSg0KUkhaWU9UZFlja2xLUmpsNk4wVldRVFZZTmtWbU1FRmtUR2xMQ25CVk5HTXhhMW93VTJ0aFVWQm9UR3d6YjAxNVlXaERaWG8wZG5CNg0KVkZvd2F6RTNiVmQ1UjFSWE9WZG5PRk5PZFdaMlVXaGxjRVJJWm5aRWJRcDBTemxxZERsWWRtRTJlRUZCVm1NMVFrVlBSMVkwVm5OWg0KWlZSamNub3dhM3BXUlhFNUwwUjZWRUpIU0hSd1JVcDZaREZKVG5GbmFuRXlVbmtLYzJOSFlrTmxOa2N4UTJaTE9VRk1WVVZKYzNCTw0KZUhCbEwwVlRTV3BVZUhjMWNFRXdNMHhqV0U4eVRVRmhOekV2VkZORU9FUlVjMmxQVm1wTENteHFhRTlHTVdnMFZVdzNNR05UTnpoMA0KZWxwS05rdDRSVWxIV2xKcWRscFJkeXRhWkc5V2JWTjNNRzQwY1hCRFRrdHlNMmR2WVVaNFVuTkdNQXBLTkRsaUwzSmllWFZhTTFveA0KV0c1elpEbHFlWFp2ZHpOaE5GUmtjbEJsWkhkeU1qQTRZblpsSzBOUlVHMUNOMk41TjIxbGFtOHJaR0pLYVVJS01uY3hNVlp6VW5abg0KUWtSRE1qZEtObWx2VG1Fd2NTOWhZeTluWkd4b05XUmFWak5uVjJRelExWXZhWHBLV1RGUmMwRllNREUwVEVaNk4zaEhDbFZKV2xCWQ0KTldNd04wZDJVVk5ZTkZGbFIxTnVNWGR0VEVkc1EyRTJTRGhQVVdKU2FYbzJOMGxtUWpkUE1GRkJjbGRYYVhaVFVrVldWRFpsTkFwaQ0KTVd4a1JsTnFORVZEYTJFeU5rOW5Sa3hUVGxCaFpteE5SMGRrUkRad1lrSnBRakIxZGs1cFVrVnVSRnBMY1Zwb2JsVktRekpFWkVOUw0KVG5BS1NrZFBLMjVwSzB0eldFaHlVbmxCZW1WNVZVWklVVUZqZEZOSVJuaFlkMlJsUW5oaVVHWk5TM1IwYjFsemFVRXZjRFIyZEZOeA0KTVZsTlMyOVZDbmhzUlZac1VURkljM2hRYUdod1JrMWpZVVJQU2tWVmRGWjVSbXhrVUZsM1VuZGxia1pqVUdSTGFGZGFNRzF1T1UxQw0KYTNCdFQxZFFOR3N5U3dweGRIazNURXR0YzB0MmNqazJVbVJGYWt4MVZuSllWbnBPZVV4TmMwUlFhRFZtYzJ4SWRYTXlZV3hYYW5reA0KTlRsa2RsZHBja3RFYlVOVFNYUUtjV1ZPU0dFMVdEVmhlREZ3ZDJSUU5YUkRlRTFRZDBFeFdVUjZkVTV0UzI5d1QyWnhaRkZ0U21OUg0KZFhGUVR5dHBNekpWWVhkUWNEWlVaR3QyQ2xJMlIwVTJiekozYkVscVpGYzJZME42VVhVMVRYbHdTMjl3YmtGa1l6TmtOVm8yV1hwTg0KTUhwT1kyeHlNVGRQTURGMmJrazFhME5FZFV4U2FncGxRVUp2VDB0V1ZITkpjalZ3VUZKNk1tZEdZV1oyVTA5MUwzVjFSMU4zVlRsUw0KYjJoTGJuVXpTa0ZISzI1MVYxY3lVell6TXpSWkwxSkRTVEVLTms5cFMwWk5kVk12Wlc1NllYTlNUVEl3WlV4U2JrdDFOVEpJYlVOVw0KVDFaTlJIZHBOMlZyTld0UEwwVXdla3hRVHpJMmVHSm1LemxhTmxOUkNsSldVRkpwVVdVMllqUXpTVXRyVVRaWlpHdEhSVzVXYTFSMw0KT1hOUVl6Wm5hSGQ1WkV0b1JYbGlOMUZYWWl0S1drdHRNVVIzYzBabVFrSm5RZ3BEUVVGVVFsRktXaTlTY0ZwRFVrSXZNMjFvVmxOTA0KTm01cFFVbGlSRUZCUVU1T2ExQXJkMWgzYzBVMGNHcG5ZWFUxWWt0TGNGUXhTVTFOVDJnS1RtSnROVEpUVlRGYWJrMXhPV3BNWlhsQw0KU1d0TlZYbDBObVY1YzJRdlIxWk5ObEZQZDBoVVkydGxTREZ1Yld4emRtRmlZbTlTYUZJck1HczJDbFJITkVKaWVpOW5kVU5wY0RacQ0KYnpaeE4ySXpWVEZLVjBoVUx6SkRUa0UyTmtrclQyOHZZMGxEZEhwRVFVVTNObVF5Yml0NVlUaFJjazVJVmdwd1ZsZ3dObmg1WldwaA0KUWpBNWJXaENjbHBxWmxWWmRXRnJUMGsxVTBKMWIxbGFaR1ZRWVZCMlJHeHVWRVF6WTNReFZWWTNRVkJpSzNsM2RFUUtNM2xxVFdVNQ0KTWs1TlNqTkZOMmt6TkZsSVVFZHRWRkJNVm05NmFUVXdSalo0TlhsSU9GQnJVbE5tYkdsdmQydFhNMVpsTldvelVHUkZkRlphQ2tObg0KZFhKV1dsSlRaMmhqVDJ0SGVGRjNha3RFS3pOcFJITm9UU3M1TlZrelRXaEdlak5NVkhCeldVWlVlazFKVkdweFkwUkNWbkV2ZHpSUA0KTVFwc2QwNUZkbFpxY0VaT2NEaG9aamw2WW5CVldIb3djR05UUW5WT05rVTVhVlpFVXpocU9FZDZaWEF4U1ZseVFqRm1MelU1YmtGVQ0KUW1FNGRYY0tkRXBVU1V4S09FMTJNSGQ2UW1Wc2VqZHpXbWRzVVU1YWVETTJTMUpxUXk5SWR6SmhaWEpWVlVaUmVrWnFTVE5hWVc4dg0KTkRsSVNteEZiVXhuQ2pkTE5qVjBWVkZUVFRGVWVqbEplVzAwTlZscVRIQnRTWHBxT1hrMlV6UnJXa1JhY1Zkd1dURlNjVlJzY2xCeA0KVEdOblNUWkhUWGQzZEZZelJRcDBhVkZHYTAwemRXbzBZakZ2UlVKdGVVNXZTbk5pVFRWamNFa3lXbkF3WjJjNVpGUnhaRXh2VVdaSg0KTkhCUmJqazBUVlZhVGl0a00ydGhVbUVLVlhKMUwzTm1LMUZwY2t3d1lVTXZVSEZRSzNnMmNXbFJNM1JtYVdVMWVuWkZOVTgxZG5CWg0KYWxkM01VWkNORGhwTjBSaE5tSTFhVzVZYVdOSENsUnliMnBQTms5bEwwSnlNWFJZVUdWbE5XVkZhak5TV1UxMVpUZDNOVVJKUWpjNA0KTTJjckx6SnNaVGRWWjJGRVp6Tklla3BuUlhVMGVUVjROZ29OQ2owclFUQkpEUW90TFMwdExVVk9SQ0JRUjFBZ1VGSkpWa0ZVUlNCTA0KUlZrZ1FreFBRMHN0TFMwdExRMEsNCi0tLS0tLXNpbmlrYWVsLT89XzEtMTUwOTc1OTYyMzA2NDAuODkzNjgzNzcwNDc0NzQ4Ny0tDQo=",
"historyId": "1214295",
diff --git a/test/source/mock/google/exported-messages/message-export-161e0ddd8b234e67.json b/test/source/mock/google/exported-messages/message-export-161e0ddd8b234e67.json
index fea83a087c7..bc5d8e3a483 100644
--- a/test/source/mock/google/exported-messages/message-export-161e0ddd8b234e67.json
+++ b/test/source/mock/google/exported-messages/message-export-161e0ddd8b234e67.json
@@ -4,7 +4,7 @@
"id": "161e0ddd8b234e67",
"threadId": "161e0ddd8b234e67",
"labelIds": ["Label_1", "STARRED", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
@@ -101,7 +101,7 @@
"id": "161e0ddd8b234e67",
"threadId": "161e0ddd8b234e67",
"labelIds": ["Label_1", "STARRED", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"sizeEstimate": 11083,
"raw": "UmVjZWl2ZWQ6IGZyb20gNzE3Mjg0NzMwMjQ0DQoJbmFtZWQgdW5rbm93bg0KCWJ5IGdtYWlsYXBpLmdvb2dsZS5jb20NCgl3aXRoIEhUVFBSRVNUOw0KCVRodSwgMSBNYXIgMjAxOCAwMToyMTozMSAtMDgwMA0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7DQogYm91bmRhcnk9Ii0tLS1zaW5pa2FlbC0_PV8xLTE1MTk4OTYwODcxNTYwLjA4OTIyMjM5ODA4MzcwNDU4Ig0KRnJvbTogZmxvd2NyeXB0LmNvbXBhdGliaWxpdHlAZ21haWwuY29tDQpUbzogZmxvd2NyeXB0LmNvbXBhdGliaWxpdHlAZ21haWwuY29tDQpTdWJqZWN0OiBZb3VyIEZsb3dDcnlwdCBCYWNrdXANCkRhdGU6IFRodSwgMSBNYXIgMjAxOCAwMToyMTozMSAtMDgwMA0KTWVzc2FnZS1JZDogPENBS2J1TFRyd3YtaFFHUGNqRm5BNUZBcGFobzZndndfUncwY1FtT2N3djlGbUttYis0Z0BtYWlsLmdtYWlsLmNvbT4NCk1JTUUtVmVyc2lvbjogMS4wDQoNCi0tLS0tLXNpbmlrYWVsLT89XzEtMTUxOTg5NjA4NzE1NjAuMDg5MjIyMzk4MDgzNzA0NTgNCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04DQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlDQoNCjwhLS0gPUMyPUE5IDIwMTYtMjAxOCBGbG93Q3J5cHQgTGltaXRlZC4gTGltaXRhdGlvbnMgYXBwbHkuIENvbnRhY3QgPQ0KaHVtYW5AZmxvd2NyeXB0LmNvbSAtLT4NCg0KPGRpdiBkaXI9M0QibHRyIj4NCiAgPGRpdiBzdHlsZT0zRCJmb250LXNpemU6MTIuOHB4Ij5UaGlzIGVtYWlsIGNvbnRhaW5zIGEga2V5IGJhY2t1cC4gSXQgd2lsbD0NCiBoZWxwIHlvdSBhY2Nlc3MgeW91ciBlbmNyeXB0ZWQgbWVzc2FnZXMgZnJvbSBvdGhlciBjb21wdXRlcnMgKGFsb25nIHdpdGggPQ0KeW91ciBwYXNzIHBocmFzZSkuIFlvdSBjYW4gc2FmZWx5IGxlYXZlIGl0IGluIHlvdXIgaW5ib3ggb3IgYXJjaGl2ZSBpdC49DQo8L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZToxMi44cHgiPlRoZSBrZXkgYmVsb3cgaXMgcHJvdGVjdGVkIHdpdGggcGFzcyA9DQpwaHJhc2UgdGhhdCBvbmx5IHlvdSBrbm93LiBZb3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byBub3RlIHlvdXIgcGFzcyBwaHJhc2UgPQ0KZG93bi48L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZToxMi44cHg7Ij4NCiAgICA8c3BhbiBzdHlsZT0zRCJjb2xvcjogcmVkOyI-RE8gTk9UIERFTEVURSBUSElTIEVNQUlMLjwvc3Bhbj4gV3JpdGUgbWUgPQ0KYXQgaHVtYW5AZmxvd2NyeXB0LmNvbSBzbyB0aGF0IEkgY2FuIGhlbHAuIEkgcmVzcG9uZCB2ZXJ5IHByb21wdGx5Lg0KICA8L2Rpdj4NCjwvZGl2Pg0KLS0tLS0tc2luaWthZWwtPz1fMS0xNTE5ODk2MDg3MTU2MC4wODkyMjIzOTgwODM3MDQ1OA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOw0KIG5hbWU9Y3J5cHR1cC1iYWNrdXAtZmxvd2NyeXB0Y29tcGF0aWJpbGl0eWdtYWlsY29tLmtleQ0KQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsNCiBmaWxlbmFtZT1jcnlwdHVwLWJhY2t1cC1mbG93Y3J5cHRjb21wYXRpYmlsaXR5Z21haWxjb20ua2V5DQpYLUF0dGFjaG1lbnQtSWQ6IGZfeVRZT1lzWnJCbg0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0DQoNCkxTMHRMUzFDUlVkSlRpQlFSMUFnVUZKSlZrRlVSU0JMUlZrZ1FreFBRMHN0TFMwdExRMEtWbVZ5YzJsdmJqb2dSbXh2ZDBOeWVYQjANCklEVXVNeTR6SUVkdFlXbHNJRVZ1WTNKNWNIUnBiMjRnWm14dmQyTnllWEIwTG1OdmJRMEtRMjl0YldWdWREb2dVMlZoYld4bGMzTnMNCmVTQnpaVzVrTENCeVpXTmxhWFpsSUdGdVpDQnpaV0Z5WTJnZ1pXNWpjbmx3ZEdWa0lHVnRZV2xzRFFvTkNuaGpZVWRDUm00M2NWWTANClFrVkJRMmRMWm5WbVJ6WjVjMlZTVURscVMxaGFNWHB5VFRWelVYUnJSMWRwUzB4cmN6RTNPVGx0TUV0M1NWbDFRUXBSZVZsMmR6WmoNClNWZGlUVEprWTNWQ1RrOTZXVWh6VEhGc2RYRnZXR0ZEUkdKVmNFczRkMGt2ZUc1SUx6bGFTRVI1YjIxck1FRlRaSGxKTUVzS1QyZHUNCk1rUnlXRVo1VTNWU2JHZHNVRzF1VFZGR04zWm9jRzVZWldac2NYQTVZbmhST1cwMGVXbElUVk1yUmxGaGVrMTJaaTk2WTNKQlMwdG4NCkNtaFFlR05aV0VNeFFrcG1VM1ZpTlhScU1YSlpNalJCVW5CTE9URm1WMDlSVHpablFVWlZkbkJsVTJsT2FVdGlOME0wYkcxWGRVeG4NCk5qUlZUQXBxVEZSTVdFODVVQzh5Vm5NeVFrSklUMEZEY3paMU1IQnRSRzVHZEVSdVJteGxSMHhETldweVREWldkbEZFY0RObGEwVjINClkzRmpaa00xVFZZS1VqQk9OblZXVkdWelVtTTFhR3hDZEhkb1lrZG5ORWgxU1RWalJreE1LMnByVW5kWFkxWlRiSFZLVXpsTlRYUjENClp6SmxWVGRHUVZkSmVrOURDbmhYWVN0TVptSTRZMGh3UldjMlkybGtSMU40VTJVME9YWm5TMHR5ZVhOMk5WQmtWbVpQZFZob1REWXoNCmFUUlVSVzVMUm5Od1QxbENPSEZZZVFvMWJqTkdhMWxHTHpWRGNGbE9MMGhSWVc5RFEzaEVTVmhNUjNBek0zVXdNMDlKZEdGa1FYUlINClZTdHhRVU5oUjIxU2FGRkJPWEYzWlRScEsyc0tURmRNTTI5NGIxTjNVUzloWlhkaU0yWldieXRMTjNsblIwNXNkR3MyY0c5SVVHTk0NCk1HUlZObFpJV1dVNGFESk5RMFZQTHpGTVVqZDVWbk5MQ2xjME4wSTBabWRrTTJoMVdHZzROamhCV0ROWlVXNDBVR1EyYlhGbWREUlgNClpHTkRkVkp3UjBwbmRrcE9TSEV4T0VwMlNYbHpSSEJuYzB4VGNRcFJSalEwV2pCSFQwZ3lkbEZ5Yms5b1NuaEpWMDVWUzA0clVXNU4NCmVUaFNUalpUV2pGVlJtODBVQ3QyWmpGNk9UZFpTVEpOWm5KTlRHWklRaThLVkZWdWMzaFRObVpIY2t0b1RsWjRUamRGVkVnMk9YQXkNCmNrazJSamd6TmtWYWFHVmlURkZCVWtGUlFVSXZaMnRFUTBWRWFrVjVWM28zVWpkWENsbEhkemhOVVhWaFdHcEVWRVp5Wlcxdk0yZFENClRWVlBNRlpFV0ZwME4ySmlVVFI1WjJOWVdGUnpZVGxTYm1scFVFZEZWa0prYTAxYVdpdElUd3A1ZVhka2IwNUZlbVJ4WnpaamNYbHMNCllubHVRVVZzVUhWYU5UTklMMng1YmxSRkszVmhTalJuZVZKSFVXcHlVbEUxVFVGeVZGaHJiMlJtTUdRS016SjJNbGcwTkU4MmVuUjQNClpsQnpSRGd4YzFKRU16a3dUVkJPZFRSVVdWUnFlWE5sTTFRd1JYVndiVFZsUVhoa2EweDROaTlhYlhwVlVsZGhDbTh5VW1ReVlVRlANCk5GUnNZMWR0UVVNNWJ6WjJPVzByYUhZNFkyNWxTbGxJT0dNMFFtODJUbkJRZW5OeGJHRkZha053YWpjd2FIUk5ka1owTHdwWk1qSlgNCmFuZG1hSGRoZFRsdVZqUkhVblVyVDJrdmVIaHhPVk5JT1ZSSFdVSmxhRUlyV2xwTE5VeHpPRFY0YWpCdkwwVjRUemxCVlZGQk1GSUsNCk16RjFhRFpsYTNSWFNXZDFSRFpHUjFGVmVTOXhTMGN5Wm5sVE4yZFBkWGM0VjBkSWNIWlVNeTkwVjBkd1RYZE1abTFDWjFKdVF6TnoNCldXOXNDbEptVW1GT00yZDJlVEU0WVdSQlIyMXZia3R3WkhsWFNFczBiVWRTWVhBMGIwb3pUREZhY0hkRGFUUllUbmxvVmtKeVNrSnYNCk5rNVRVSEF6WmdwNmFYazNNalpITkhoWFduQXZjVmhWZDIxVlRXVlRaMjlIWTB4aWIweHhaMUl3UkcxRloxRnBkSGxWUzNaeFVHeDMNClVVcHNjSGRaVERGclozb0taRVZSTWl0c1IwczVRMVZDYkVkc00yc3ZOMEpZWjFGWVRFNXphRFoxTVROcFUwcFFNazV1T0VGSFZHOHINClNHTkNia0YxYUVsUldXMW5kRFJKQ2tsUmVIWm9hazlRYlcxYWIxWnVaVUZWT1ZadGJ6VjNNaTlwZFhSeFJVeExTWGRhYjBreVkwZDQNCldWRlBXR05qVXpScVFVNDVPR1EwZWtadlJBcDBiamhXVDNKeFQyUnJhbXhLTkVkR1ltVjBRa3h1VldsVWEzUkNXRTQyZURoUFZtcGwNClJsSlVSSGRTV1dacVpqZG1VR1l5ZUdjME9HUXJRWFlLVWxJNVNreFBaRkJOUkhkaVZIUlRWVXRJZFRWRU4yVkRTVk5DUVd4dFdsa3YNClpVVjRNVWRDYURVMFMzaGtUVVJRZWk5amFVMVVUbkF3UWs5cENqTTVSVUk1VFRWaFMxWnJhRGhLWm1adWRHY3ZSMVJwVUVoUFVERXcNCk5ETkxTa3gwVG1wSWJHWnNPVFYyUW5oM1RqQnFORlY2VTNsYWNXUXlkQXBCTTI1dlRYaHVhRUpHTVVoUFYzZGFlRFpSVjBwTWNFUlQNClVXNXBhMWxDZWtGaFQwWkJjV3huVTBkbmR6WmxZVk5DV1VsWU5rVTFXaXRNVFVvS2VYcEtNMDFoYjBKWlRYSlJaMkUzV1ROaEszTnYNClZHVlZOREpxZFhwUFNEazFLM05IUjBoeFJtdG9XSFJEUzBScldUaHhRMUUyVGpKRlNIaE9Dbmx3Y0hsYWMydEpVRmQzTUhWV2VWRkQNCmMwTTRaRVJaYnpCVGIwRkNaakZRVm5GeE4wbG1SMnR0T1habVVuaERka2xRV0dwUVdtRlBRWGw2VFFvNWVrUkNlV1phZUhKS00wOTQNClRHUlNjMHBpTDBkalFUZzJUalpTTURoR01HRlFTVkJxVHl0TmFsSmxNR2hJTW1VNWVUTTBiREJFYm5OeVJHc0tkSFJvS3pkalZuVk0NClREbFFTSHA0T0U5Qk9YWktNbXBTUjBJdlJVOUdSV0ZhWjBobVdGZFVOV3h2TVZBMUwwSlJPWFJzZUhWWVRVZFphVU01Q2s1T1VXVkoNCmRGWk5PRkI2TUdOWWR6UkljSEpyUXpSa1ZtRktSMGRKU21oV1FsaHdVMHREWkZRdlZ6TnNSRWMyYjI5aGFHeHpNVE5JZUVodGVBcDUNCmFubzJiMDFyZG1kMFoxaHVjekpuWTFGaU0zWllWVlo0YWxoSlJrVnhMMjlMVjFCU01UQk9aRFZKWkdRdlVGWjBNazlHTWt0RVExZEYNCmJqRUtZVkJhZVV4YVIzUnZlV2h6VUVJNWRHMTVSblF6TkVsSmN6SnFNVmwwWjFwSE1DOHdOM0JQWVhkalUxQm1OMlZtVWxKWk5YRjINCmRtSk1kMHRXQ2xaT1Z6TjRaVFZHUVU0dmNrRlBibW92U0ZCM09VWnVjSGMxV25ORlF6RlpjSHB1TmpWTE1qWXlXR3RPZUV4MFFXbE0NClVtOTZUSFJoVlV0a1JBb3JUVUpEV1dwamJGcHVXRU5hTURZeWNWRllWbTB4Y0RjclFqQndaM2N6YkdoUk1VRjJiakl4U0RKQlVubHANCk9URlJjbXd5WjA4ME1tRnRaV1VLYjBWc2JsRmFXalZTTVRKWlVtWjJXVEJVUlZwdGRVZzRVakpZVTNjclRHVk1XVlF2UWk5a1VXbDQNClMwOXhMMXBhTWs1RVpYWjJRVlJ5ZVdkMENrMVlSek5pYTJoS1pXcEtOalZVVGxVMVNYZ3ZNRFZ6UldadlJtTXlOVUpNY0hsbFJVTlANCk1VZFhOMUZZVVZsUFMxaHVNVmc1WWtocGJWWkdOQXBqWmtnM01XMXBSVElyZEZSQlIyaEVMMHhRTDNWWVdGVkNjakZqUm01V2NWVm0NCmIzSnFVRTlNTTNkeVVtdFhZbkZ5TlVoamQzRlVNVXRtVURjS2FqVlJOMW94YURVMWIwWTFNVFF6UkcxNmRVZHNkVmhZUkU5S2RGZDINCmJreE9aWGQ2YWxwbGVUTkxObkYzU1RRMFpXZHZPRlpyTTFoWWJtNVBDbkkwVW5OdmIwWkNSM0pCTmxVcksxbENhMmhOWVVSNVdUTTQNClptNWFkREZqSzBwSE9VMVZSRUp5TUdaVmR6WTFXR2h0VkVaMllXZEpWbGRUYVFwNU4xWkhlWHBIYTNWM2FWZFFSbTFNTUROWFQzSkMNCk56UldialJFYUZWSVkxQnZOV0ZVZFZwMmRVeFRlWFZqWkhwRVJVMXNLM05FYW5CVFpsY0tObFZuV1N0dlJWVkpaamRJVmtSWlF6QlUNCk1HTTJXRkU0TUhvdlRrOHdXbk5pTTJSRVkyNXNkMlJEUWtSaU1qRjNXVmhTY0ZsdGJITmhXRkkxQ2tsRWVHMWlSemt6V1ROS05XTkkNClVYVlpNamwwWTBkR01HRlhTbkJpUjJ3d1pWVkNibUpYUm5CaVF6VnFZakl3SzNkelJqRkNRa0ZDUTBGQmNBcENVVXBhS3pac2FrSm4NCmMwcENkMmRFUVdkclVYSmhkMjV1U2xWS1RXZGpSVVpSWjB0QlowMVhRV2RGUTBkUlJVTkhkMDFEU0dkRlFVRk5OMjBLUkM4NWNUVXcNCk4ydFVjM0JsU21Ob1JFOXhlRllyU0ZKSGF6Vk1hM0pCVG5KNGF6QkJOMDV6UjA1Q2RDdFFTeXRQWlRrMlVESnNha3czY3l0cENqTXcNCk1FNDRZVEIzVVhsc1lWQnROV0UwSzBWUVZpc3ZXWEV2S3pSRkwyaDVkMjF3TDNoV2RYcFZabGRGVUdsM1VHSldSM05rTm5ONmRrVkoNCldBcE5aek5XWTJWSFVqWmFTSE5uUVhNeE9UWlRjMHd4VFdGTVoyaG9hRzEwYTNKUUwwbHlVMVZMVGxCM1JXbDFhVTVvVVZSclNUUk8NCmNubFpiemdLU0ZsR1MxbHVRMjh6UW01SFIzWlJiM0ZqTDB0VGN6UkNiQ3RyUTNWalkxSXhhbU5yVkc1b1NqZHZWVXhGYjNoWk5qSmoNCmIwVmtla0ZsU2twUENuaG1LMk5ITUhKbVUzZExObGd5VUZaaFFqTlhUVlpGYm1KcVoxSkpiRE56ZW5CM1IxVXljMjV2V2s1clQwdFgNCmRXRnRhakprVlRkVGVWWlFRUXBRT1dkUWIxbE1TVE5sZG1WRmJtTm5VVTltUW10eVZHMXJkamRYTW5ONmNuWlllVzVLV25KTVFqbFENCmNtRTVZazEyZFdzeWNWUjFNR2xEUm1ZS05HVjFLM05rVlRGcGVqaGlZM1ZqTXpKaWJrOVZTV3Q1Vkc1QmJ5ODFMekpwVjNwUVkzVlgNCk5teHhZbHB4TmxORUswaFZaR05UV0dWWFYwd3lDamN4UTFGdFVuTmFiMUZPV2tneFVVdGpaaTlIYWtwMWJFeFRZVU5PVm1relVVaHgNClRURnBPR05GYzNWSE5YRlBSa2czVjNsT1ZXZHBSRk5VUWdvdlJtdzVRMEZXWmtsQmRuZDBZVGRwWXpGd1NWRm5TbE5ZZVVaVlJsb3YNCk1WaHdaV1pvVm1aemJWTlNZVlZVWTJ0UlNFcHBTelZ0VVVGUFJrb0tNMHRUVld4cFVrZ3hPVU5PVW5wclFuaHRlRk5CTmpWT1pYaHENCmFEaGlVV2RUZGtsNlQzWkdTRVJUY1VOdllsaDFkVXQyVnpaeGRUaHpUM05OQ25wWWQxVTVZVkppV1c1QllrMVlVbWhJYmtvM1R5c3YNClVHTm1aWFJsYVVRMmRrbFVUalZyUVROcWVHNURkazg0V2taNU9GSnJhMWRaU0ZWTVFncE5aWFJpYUZSTFVVeHVNMkZ0YjJSSWEzSnANClpGaHpSbEpRVFdaSGFHZFNXaXMyYkdWQlVrRkJjamhaWVZCTFNHTkpaVVJVU1ZwcmRtMXlaM01LYkN0bVlrVkJSbGhVVWtabFRFUkYNCk0wazVlaTkwYWs1cFFrcHhZMFpEWWsxWFVHTkJkMjFHZDFZd2JrZzRVMFJsVEZOc1QzWnhjSE5EWmtSUENsSnBhRXRpTVVneVZHcFINCk9VMUVNSE12WjBGM1JTOXBOV1ZNUW5SMVVsaFpNbGRxT1VWNVExbGpNMmR4Y1RkUVFtb3JSbk13Y25CdE5rMVhNQXBOV21WdVlYb3YNClEzRXhLM1FyV2pCUFpHVTFVMGRsUzFkek5tcHZNVWc0VDNVd2VHOVRZWGhrVFVvNVEwcHRUMlZhUzFGQlVXMDVWbEZyY1VzS1JuWXcNClRHNVZkazFXU2xrNVoxRjVVMDAxWVdwVVpHeEtaMnhJYnpKUE5YVk5kM0poUmxWU2RVaDZRa1IwWVNzNU1TdDVkelpNUVRjMlJFSm0NCkNrUjJUMHAwYlcxRlNYZEVjMEZPVjNCU05IcFlVM0kyVURWTmMyRklLME1yYldKVFEwZHhUWEJ0ZURKVVdqWkhaSGhUVms1RFJVOVUNClFtcDNhd3B1YlVsdWNFSlBSME5PYWtKdlFuZE1VVU5TTjIxelJDOTFZeXRtY0dkNVprZFZMemxJY3pKeWNtNVhXSGhKUjJwT2VGQlANClQzZzBOVXhDTlhFS2MyWnRNSGcwY2tweGVURk9XVkZuWTFWQ00yMTBaMmRUY0hKRGJrZ3dXSHAxVVhaR1IwWkRVREF4VWtSeE5sTmENCk1VaHlieTk0TmxkNVlqQkNDbXd4UXpWd1FWaHVaV2RTUkc1UVF6VlJjbm8zUW1WdlRrMU1lbTVrWlRFNFpYZExMMFZ2VVRBdlVteGsNClpTOUxjRmRxV1djeFJUQkZOMnhoVmdwS2FFTk5Za2RxUjJsSGVsWm1ORWwzUTFsV1NVODVkRmgyVWpGc1ZpOVNlRUZ1TUdGS01taDMNClF5OTJVVTAwWkRWalJ6UTJTbVJyUjNKSldra0tNazQxZHl0WVduTlhkbWRFY1hac1JYbGpNV3RQZEdsS05XTnJORkphVTNGQ2NHWlQNCk5ERkNjSGhtWjBJMWVWbHhTVWxVU2toVWVHTnZVVGxYQ21WamExcFJlblZaTml0SE5Gb3dabEpyVEZSa2JGRXJiM05EUmpsaVducEcNCmVYbEpOVFZPUkhVeGVuZHpkSEJQTjJacWR5OUdWM2NyVVROWU1RcEdjMFZCUlZGRlFVRm1ORXBCZDJobFV6ZENTbWhJTlU1SVIwRTQNCk9GUXhLMGxNYzNWWVowWndNMmRTUkN0SU9VeE5VVUo0Y0ZaVGJWUkxZMDRLZW14clFtczNSM0pZUjBReFluWkxlSEUxVXpaVldUWmoNCk0zTnlWRzVLZFVWSmFVOVZNRVozTDBSV1l6STRPVW8wY1hsbllYb3hORlY0VVVneENtZzJablJzYWtGT1ZVeEhUbkp3UVdWUE1qa3cNClpsbE5TSGsyWmtzeFpVSXlUalo0ZERJNFVXOVJkSEpYVldNMVpGYzNhbE5IWlhaa1VtRm9SZ296VkRVNGRHMWpVME5aYUU5TFYySnENClpYRTRhbUpXVWxKNmMyVkVkVzEwTUZaVFRrdGpRMlpTUkZKVWJUTmlVbnBrTm5SeWJETkNjbXR5V0hJS0syOHZWbVp0S3pFMFlUWnMNCmJXNVlWVkpYTkdjMWFreFNLelJqV205R1dIaHVPRUZWUW10dVRtRjFUelZuYUhSRE9EUkxUM1JJWlc1eVlrdElDazlHZEhsc2JtbHoNCllqRnJhSFZKY2xwdGNpOUhTamxUVTNNcmFFNVdjM2xUS3prNWJtWnVVekpGYVRaemJVeE9Na2Q1ZWtack5VdFlUR3hWTWdvMVNYRm0NCloxbDFhR1ZSVGxkU1V6UjRlSFE1VEhsMksyRnhSRk15WVRkdFZVUlFORzFpTlc1b2VGVk5kVnBrTlVaVGVVMXJkVmxwTjNoNlV6VUsNCmMyUldkaXREZVdkTVlpOURURkJGZEhSbmFHYzNVRTlFVnpKVEsxRlNaVEprTjBOWVZEa3piRWREY2pneFoxZHBOR0p3T0hSMVlqbFcNCk1WTnVDbXRGTTJVeWVDOWpUeTlOV2pWdk5uQXdaV2gxV25KQlNsQlVaU3Q0SzFST01rbDNOR0Y2VkdzdmJHaFBjakIyVW1zMVJIVnoNClZIRnZMMVozTUFvMFdrUmFPRWh5UlcxUE56ZzRZMDVNY0VGM1ZXTkpOa3REV1U5eVZFRnFjRWxPTm0xc09VOW9hbWRaVTJ0SlFsUnoNCk1VdE9WRFpQZGxWcVZuSUtOVTgwTUVVM2EwNTFVM05RVTIwM1VGSXdWRWx1WW5aelVIWktaU3N6ZWtNM1dWTmtiVzFNTlRScFZVSjANClpGWnJSMFpqTDBRM09GTnJNMlJwQ2tsNGJsUlVUMFpHUjFCTE16UTBjelJNTDNwM1RGaDZSbEIxYVZCamFEaGFObTl5Vld0VldYTm0NCk5uaENjMUZaVUdkUmExUndVRUp3VkZkTlFRcGxlbmg0ZDNodlNYTk1jbkJIWkdGck1sbzRZelJwVURsc2ExaHJWMnhyYWxkeEt6Z3YNClZUWm1jVTU1WjI1Q1JrNDVMM2Q0UTNsblVXcDRNMkVLVERCMUszTjNVMjVZVWxoSU9IcHFZVTUyV25rd0szUk9iVkpGY25NelRsRkQNCmJGTjNWWE12VlhwMlEzQk5aVVp6V0c5dFJWVjZaRXR0TlZkVUNsUkNTMkZuZEVkblpWaHlMMWdyUlU5U2FEaGlMMUUyUTFsbk16Rm4NClJVZDJWRlptZWpZMGEweFBlVWxZWW1kd2VqaERXVU4zTkdkVVJrSnROQXBTV1UxcmFGWmlaV1YyYXpSMGFFRlBOVkpMTTNsRVVHMXYNClZWb3JaR0Y1VjA0elNUWmtiMGxvSzBzNGVXa3pTR2N6V1c5dVJrWTFSR01yVlhNS1lreFJRVGQ2YlUxM1VHTmlURnBCTTIxNVZtVXYNClRGUTFRelp6YTJKUWVYSklVREZMYW5KMU1VeEdXamhKVUVWUE1qVXlkbUo2UjB4REsweDNDbUZCTURaUkwzRlliVXh6ZDIxYWVIbG4NCmVISXhSamc1YlZKVFpYZGpNVTR3TlVoNE5IQTBhalowTUZvNU9HNTZZbUpYWVZKRFVHNTRXazVRUkFvM2VHcFNjRWhDYzBNMUx5dFkNCmJtdHFMMjl0ZW01U2RHaFVZelpvU0VzdmFuTlpkRzVrV0RWcGJYYzFaSFJPZEZWbk1rdzFOWGRQYlhkWlVtUUtjRzVYYTNsTVFuSlMNCk1rOWxTVTVqVlhOVVYySkhPVWRvYkhwSFRYSnNRamxzV0ZOMWNrSlRhemhEU0ZKbk9ITjBkWE5PV2pkVlVTOVdXVzFoQ25vdk5Xb3INCk1rZGxVVGxUVG5WeFJHaFFVVXdyY1dOR1pVSTFjVFpXWm1Nd2EwWlJUV3RVY0U5V1RrRjBiblphUlRrd1MxcHRSbFpoY3pSU1VRcGENCmNtcG1jbVp5Tm1jd1kwSnhOekpZY1haWWVWWm1SV0pFTWxaV0x5OUdNbXRRU0U1cGRXcEljV1JNVkRsUUwydEdOWGhoT0d4RlJIUksNClRFRUthVU14VjNKS1Qwc3pjbVp6UVc5TFVFOTJWM29yWWt4cGRUbE1LelJDTHk5RmVHZENRamhYT1ZCS1NIVnpVSE5SWW5GUVRIaGsNCkwyNXhNVXhwQ2xZeGF6UXlURUpRVG5SSE9XcEZUbXBvZUd4a0sxRlRXVlozV2twUk1FSnJRVzlKT1U4elZXcHRNMFJJZUdsb1dUTjENCk1VTnNXRGszV2s0d1NncE9jbTgzVXpsb2FFdGFNVWRPVGt4RWVEVTBOMWxNV1N0cVFTdFBUak13ZFhac09VWktZV053UjJOdmJtd3oNCmRYSnVaR0l6UzA1S2VVWXpiMVlLU2pka1ZHOUdhRzEzYTFORGRrWXJkakJpU1RkME1IaDRaR000ZVhSVlJXUktTMmhvVTBaSFUwY3cNCllTdE5WVkExUzBoVk1IVjVaV2hEUTBkVkNuRjFiakZxYUhWV1pXVkNSbUpoTHpoTE9XOUxSMEZpTVhwWk5UUlhaRlZEZEZoVFRXWkUNClIwZG9PRXN6TjFBcmVsRldaM2hXTm1oM1REZFdPUXB0VFhaRVRVTjBkVlZTYkZsT05FOHJWRTV3YVZGMVVWb3hPRUo2VTI0eGFXbGkNCmRsbE9ZVk5STkRWWGVXdHdkWFJOVjBsc1NXTk1ORWQ0TUdRS2QzcEhhbVZ5YjA5NlkzWXdkR05xTDJWSWEwZFVhMHhIUW14NU9UaEgNClQwbDFiMmxQWlVsT1JFbERSRnBHUXpWUlkwOHZVRWR2U3l0alIwcDVDa05ZYTNsaVdTdFFLMDlTVDB4a2NIaGtVMUZoUVVoNVpIVTENClZ6QnljRE5pV21OUU5HbFljblJsY0ROM016ZFlRM2Q0VXpkM2MwWm1Ra0puUWdwRFFVRlVRbEZLV2lzMmJHdERVa04wY2tObFkyeFINCmEzbENkMGxpUkVGQlFYVmlaMUF2YWxGUFRURm1hbFpyVkZOTFdrMXJkM3AzSzNoU2IzVUtTMXBvV0VSR1RGQmxiSE16U0c1alpIVlANClIzSjFTWE5UZVRaaE1HcHZiU3RZWjA1V1EwcHZNRlp4WWxOVFEwOXhNbE5SYURGaGQyWTJlRk5XQ2xWSlZXZ3lhVlZCY2tWdVprTjANClJHUlJlbXB4Tnl0TFIyaHhlUzlqT0hONk0xRkZNWFpKY3pKUVlUaDVSVmRxV1ZCVmIzWkJOekZETTNscFNRcFlhWGxQVG5aVlZtY3oNCk0yMUNXWGhVTVZObVNpdGxXVTFIYmpsMlJHRmlZMkpOY1U5S2FFWnZXQzl4VW1ZMVprSXlhMHhVYzNsM1prNXFlRThLUkZZNFN6Z3oNCk9XcExTVVJqT1RGMVVWUk1NMFp0WVU1V1dtMTFRMDA1VTBOWWVETlVXbGRYUTFSMFlucEJkVGQySzNsWFFVMDNZMmdyWkVwc0NqQXYNClUxbGxiRTV2TkhCMVZHaEtVbFZVVWtaSlpDdFNUbE01YUhWc09EQllWR2xoZUVZeU5FbFNaWGhFZG05dWNFTk5hMVZ1U0RseFVsQnkNCmVncFJXVk01YjNOS2VXSlFaMjlaUWxGNFUwSndNR1p0V1RoS1pEWjRka3B5YzJSSmMzQk1TSFZpZW1zMlNXNW1SV2hIWkdWd04zVXgNCmFHWlhMMGtLVTAxVWNYcFBlbEZSUTBkc2JGRXZZVXR5VFZCTWRuQTVPVVJMWkVGM1puRllUa1JLTkdOMFRWbDZSbTVWTldrelMyWnMNClN5dFZaSEp0Wld0QkNtMWtTbGROZVhoWFRFOHlWblZHSzNCck9UQTRURkpzYlhVeloxUlRSVmx6WjBGYWRWbE9ORFJWTkhaTVRVVkcNCk5HSXZSRXhTZFc1cE5ITm1RZ29yWmpGM2VtMVZkbVJqZFdvMVZraFJTVE4zTUhRclVIbElha3BWZGtWcVRsVkRTbEZhUTNnMmFXUm0NClREUnJSRkkyYzFCWmJVY3pLMlZsZWxFS1QyZFdZWEZPZDA1cWJGUTRjMmRzVjJscllVZENPWGt3TTBWb1MyTlVTRWx4YW1nM1MzSlgNClNsVnhUek5WWTJsVWFFWkZUMjB4YUVWVFFVSXJDbUozZG1WWWQxTTBTR0Z5V0c1bWJYVlRjWFlyTkdObVRFZzJNa2hUT1ZwVFkzSloNCmFUbEdXVUpzYTNSQ2JGTTVXRWRVUmsxSllqYzNka2M0VXdvTkNqMXVNR2dyRFFvdExTMHRMVVZPUkNCUVIxQWdVRkpKVmtGVVJTQkwNClJWa2dRa3hQUTBzdExTMHRMUTBLDQotLS0tLS1zaW5pa2FlbC0_PV8xLTE1MTk4OTYwODcxNTYwLjA4OTIyMjM5ODA4MzcwNDU4LS0NCg==",
"historyId": "1214289",
diff --git a/test/source/mock/google/exported-messages/message-export-1631d0d78df8dd16.json b/test/source/mock/google/exported-messages/message-export-1631d0d78df8dd16.json
index c0a0802a4fe..1584349fd22 100644
--- a/test/source/mock/google/exported-messages/message-export-1631d0d78df8dd16.json
+++ b/test/source/mock/google/exported-messages/message-export-1631d0d78df8dd16.json
@@ -4,7 +4,7 @@
"id": "1631d0d78df8dd16",
"threadId": "1631d0d78df8dd16",
"labelIds": ["UNREAD", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"historyId": "1351",
"internalDate": "1525200811000",
"payload": {
diff --git a/test/source/mock/google/exported-messages/message-export-16819bec18d4e011.json b/test/source/mock/google/exported-messages/message-export-16819bec18d4e011.json
index 7e0de4d7470..249750a8a28 100644
--- a/test/source/mock/google/exported-messages/message-export-16819bec18d4e011.json
+++ b/test/source/mock/google/exported-messages/message-export-16819bec18d4e011.json
@@ -98,7 +98,7 @@
},
{
"name": "Subject",
- "value": "for ci tests that change pass phrase"
+ "value": "for ci tests that change passphrase"
},
{
"name": "To",
diff --git a/test/source/mock/google/exported-messages/message-export-173fd735b2d9eaf4.json b/test/source/mock/google/exported-messages/message-export-173fd735b2d9eaf4.json
index b3f9e970572..ce80bcbe4f7 100644
--- a/test/source/mock/google/exported-messages/message-export-173fd735b2d9eaf4.json
+++ b/test/source/mock/google/exported-messages/message-export-173fd735b2d9eaf4.json
@@ -4,7 +4,7 @@
"id": "173fd735b2d9eaf4",
"threadId": "173fd735b2d9eaf4",
"labelIds": ["SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
@@ -109,7 +109,7 @@
"id": "173fd735b2d9eaf4",
"threadId": "173fd735b2d9eaf4",
"labelIds": ["SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"sizeEstimate": 3179,
"raw": "UmVjZWl2ZWQ6IGZyb20gNzE3Mjg0NzMwMjQ0DQoJbmFtZWQgdW5rbm93bg0KCWJ5IGdtYWlsYXBpLmdvb2dsZS5jb20NCgl3aXRoIEhUVFBSRVNUOw0KCU1vbiwgMTcgQXVnIDIwMjAgMTA6MjQ6MjEgLTA3MDANCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOw0KIGJvdW5kYXJ5PSItLS0tc2luaWthZWwtPz1fMS0xNTk3Njg1MDYxMzgxMC41NTk2OTgxNDg1OTk0NTc1Ig0KT3BlbnBncDogaWQ9MDc0ODFDOEFDRjlENDlGRQ0KRnJvbTogY2kudGVzdHMuZ21haWxAZmxvd2NyeXB0LmRldg0KVG86IGNpLnRlc3RzLmdtYWlsQGZsb3djcnlwdC5kZXYNClN1YmplY3Q6IFlvdXIgRmxvd0NyeXB0IEJhY2t1cA0KRGF0ZTogTW9uLCAxNyBBdWcgMjAyMCAxMDoyNDoyMSAtMDcwMA0KTWVzc2FnZS1JZDogPENBTzlGWTl0TlE3ZV9WPTgwK2EyMkoxMDhMbjV0RzZoaVpLLSt0a21HVndvNGZZckQzUUBtYWlsLmdtYWlsLmNvbT4NCk1JTUUtVmVyc2lvbjogMS4wDQoNCi0tLS0tLXNpbmlrYWVsLT89XzEtMTU5NzY4NTA2MTM4MTAuNTU5Njk4MTQ4NTk5NDU3NQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUNCg0KPCEtLSA9QzI9QTkgMjAxNi0yMDE4IEZsb3dDcnlwdCBMaW1pdGVkLiBMaW1pdGF0aW9ucyBhcHBseS4gQ29udGFjdCA9DQpodW1hbkBmbG93Y3J5cHQuY29tIC0tPg0KDQo8ZGl2IGRpcj0zRCJsdHIiPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZTogMTIuOHB4OyI-VGhpcyBlbWFpbCBjb250YWlucyBhIGtleSBiYWNrdXAuIEl0ID0NCndpbGwgaGVscCB5b3UgYWNjZXNzIHlvdXIgZW5jcnlwdGVkIG1lc3NhZ2VzIGZyb20NCiAgICBvdGhlciBjb21wdXRlcnMgKGFsb25nIHdpdGggeW91ciBwYXNzIHBocmFzZSkuIFlvdSBjYW4gc2FmZWx5IGxlYXZlIGl0ID0NCmluIHlvdXIgaW5ib3ggb3IgYXJjaGl2ZSBpdC48L2Rpdj4NCiAgPGJyPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZTogMTIuOHB4OyI-VGhlIGtleSBiZWxvdyBpcyBwcm90ZWN0ZWQgd2l0aCBwYXNzID0NCnBocmFzZSB0aGF0IG9ubHkgeW91IGtub3cuIFlvdSBzaG91bGQgbWFrZSBzdXJlIHRvDQogICAgbm90ZSB5b3VyIHBhc3MgcGhyYXNlIGRvd24uPC9kaXY-DQogIDxicj4NCiAgPGRpdiBzdHlsZT0zRCJmb250LXNpemU6IDEyLjhweDsiPg0KICAgIDxzcGFuIHN0eWxlPTNEImNvbG9yOiByZWQ7Ij5ETyBOT1QgREVMRVRFIFRISVMgRU1BSUwuPC9zcGFuPiBFbWFpbCA9DQpodW1hbkBmbG93Y3J5cHQuY29tIGlmIHlvdSBuZWVkIGhlbHAuIFdlIHJlc3BvbmQNCiAgICBwcm9tcHRseS4NCiAgPC9kaXY-DQo8L2Rpdj4NCi0tLS0tLXNpbmlrYWVsLT89XzEtMTU5NzY4NTA2MTM4MTAuNTU5Njk4MTQ4NTk5NDU3NQ0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Ata2V5czsNCiBuYW1lPWZsb3djcnlwdC1iYWNrdXAtY2l0ZXN0c2dtYWlsZmxvd2NyeXB0ZGV2LmtleQ0KQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsNCiBmaWxlbmFtZT1mbG93Y3J5cHQtYmFja3VwLWNpdGVzdHNnbWFpbGZsb3djcnlwdGRldi5rZXkNClgtQXR0YWNobWVudC1JZDogZl9YQWFwQWh4T0tIekpNTWNmSHJmc0FJVUlpRURLRXBAZmxvd2NyeXB0DQpDb250ZW50LUlkOiA8Zl9YQWFwQWh4T0tIekpNTWNmSHJmc0FJVUlpRURLRXBAZmxvd2NyeXB0Pg0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0DQoNCkxTMHRMUzFDUlVkSlRpQlFSMUFnVUZKSlZrRlVSU0JMUlZrZ1FreFBRMHN0TFMwdExRMEtWbVZ5YzJsdmJqb2dSbXh2ZDBOeWVYQjANCklFVnRZV2xzSUVWdVkzSjVjSFJwYjI0Z055NDRMamtOQ2tOdmJXMWxiblE2SUZObFlXMXNaWE56YkhrZ2MyVnVaQ0JoYm1RZ2NtVmoNClpXbDJaU0JsYm1OeWVYQjBaV1FnWlcxaGFXd05DZzBLZUZsWlJWaDZjVGxTUWxsS1MzZFpRa0pCU0dGU2R6aENRVkZrUVZsQ01pOW8NCmFtcEtZVlphWWtSaWIxZHBjMnhXUlRnNFFUVkNhVGREUlVoV0RRb3hVR1ZPWmtkRlRUTmthaXREVVUxSmNWcFNWSEZFUlVNeVdqZG4NClQwSktkVm8xYzFKSWFUWm9SMVZEUVVaTVEwZHdWa3RhVHpsdFEzWXZOMmNOQ25ZNFFsUlRRelU1WkdwUU9XVjZVMmxXVkRkS2NtVnQNClZHcG1NMlp0VGt0dlVHVkZOSGtyZEc5aVUySXdjbkZWZVdWamRsUTBVRUZUV1RGcFF3MEtSRTB3YzFJeU1XaGhWM2RuVVRCcloxWkgNClZucGtRMEU0V1RKcmRXUkhWbnBrU0UxMVdqSXhhR0ZYZUVGYWJYaDJaREpPZVdWWVFqQk1iVkpzRFFwa2FqZERhbmRSVVVabmIwRkoNClFWVkRXSHB4T1ZKQldVeERVV05KUVhkSlJVWlJaMHRCWjFGWFFXZEZRVUZvYTBKQmFITkVRV2cwUWtGRFJVb05Da1ZCWkVsSVNYSlENCmJsVnVLMFpwUlVWdE5rOWpORWhZZDJjMWMzZE9RUzlKUWpCblkybHpLMlJUWmpReVZtZEVLMHgxVlZGMUwwSXdaeXRzYkEwS2NYUjYNClpXZE1TMVZIV0M5RFJFeHBha3B0TTJaUFVFWkxWemRzTTFRelFVSkJURkZIVFhGWVkyRXhhbkIxVFVWU1VXUnhLMlJGTlhsNGFIRlQNCkRRcElTWEZZTkhsWlEyRnRiR3BQWVZWT2VEUnpSVmg2Y1RsU1FrbExTM2RaUWtKQlIxaFdVVVZHUVZGRlNGRkpURU5rTmpsRWQyNUYNCmNGbE5RMmNOQ2pkeWNXTmFka1ppVDNwa1ZrUnZMMVkzYUZOaGNHVXJSVlpRZDFKQmQwVkpRaTgwU2tGM2FVOTROV2xpT1ZacVZtZDENClFqRmlVaTlNUldjNVN3MEtUVnBXY0c5S1pXczFlRkozWjBwWlZYSlFNRklyUmxORGNUTnhVV2QxTUVSRVNrMVVaWEJ0UVN0TGN5OXcNClZsTmxPR0pxVEZod05rOTZhRXhFRFFwcE9YZHlVWE5KYkhSRGJFeDZaMjQxU1hGdlUxWklSMEYzYm1kRlIwSlpTVUZCYTBaQmJEZzINCmRsVlJRMGQzZDBGSlVXdFJRakJuWTJseksyUU5DbE5tTkZkSlVWTmlielY2WjJSbVEwUnRla0V3UkRoblNGTkNlVXQ2TlRGS0wycE0NClkwRlFNR1J0V1hwalR6TktSME4yUmxKd1dFUmxXRGRDY3cwS1pVSXdSSGhxWlRoUk1YYzFNblZJYlRSQ1dWcG5kMFF2WmtaWmFVRlQNCmJsSlJla05JZDFSd2QzbHJNVEV3Vnl0cVVIUXJjazVhTms5SlVscElEUW93WkNzclIxRXdQUTBLUFhKWUwyOE5DaTB0TFMwdFJVNUUNCklGQkhVQ0JRVWtsV1FWUkZJRXRGV1NCQ1RFOURTeTB0TFMwdERRbz0NCi0tLS0tLXNpbmlrYWVsLT89XzEtMTU5NzY4NTA2MTM4MTAuNTU5Njk4MTQ4NTk5NDU3NS0tDQo=",
"historyId": "2032",
diff --git a/test/source/mock/google/exported-messages/message-export-188923a75165a3c8.json b/test/source/mock/google/exported-messages/message-export-188923a75165a3c8.json
index 62d3f1097e8..9f3857954b8 100644
--- a/test/source/mock/google/exported-messages/message-export-188923a75165a3c8.json
+++ b/test/source/mock/google/exported-messages/message-export-188923a75165a3c8.json
@@ -4,7 +4,7 @@
"id": "188923a75165a3c8",
"threadId": "188923a75165a3c8",
"labelIds": ["Label_15", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
@@ -109,7 +109,7 @@
"id": "188923a75165a3c8",
"threadId": "188923a75165a3c8",
"labelIds": ["Label_15", "SENT", "INBOX"],
- "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your pass phrase). You can safely leave it in your inbox or archive it. The key below",
+ "snippet": "This email contains a key backup. It will help you access your encrypted messages from other computers (along with your passphrase). You can safely leave it in your inbox or archive it. The key below",
"sizeEstimate": 11303,
"raw": "UmVjZWl2ZWQ6IGZyb20gNzE3Mjg0NzMwMjQ0DQoJbmFtZWQgdW5rbm93bg0KCWJ5IGdtYWlsYXBpLmdvb2dsZS5jb20NCgl3aXRoIEhUVFBSRVNUOw0KCVR1ZSwgNiBKdW4gMjAyMyAxMjo0MToyNCAtMDcwMA0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7DQogYm91bmRhcnk9Ii0tLS1zaW5pa2FlbC0_PV8xLTE2ODYwODA0ODM0OTgwLjE3NDE2NzQwMTIwOTI0NDQ1Ig0KT3BlbnBncDogaWQ9RThGMDUxN0JBNkQ3REFCNjA4MUM5NkU0QURBQzI3OUM5NTA5MzIwNw0KRnJvbTogZmxvd2NyeXB0LmNvbXBhdGliaWxpdHlAZ21haWwuY29tDQpUbzogZmxvd2NyeXB0LmNvbXBhdGliaWxpdHlAZ21haWwuY29tDQpTdWJqZWN0OiBZb3VyIEZsb3dDcnlwdCBCYWNrdXANCkRhdGU6IFR1ZSwgNiBKdW4gMjAyMyAxMjo0MToyNCAtMDcwMA0KTWVzc2FnZS1JZDogPENBS2J1TFRwSHZMQnN6WVZxallpX2VveEVxVEtFOC1xQkhGZ2I3WERmQkhHT0J2eXNkd0BtYWlsLmdtYWlsLmNvbT4NCk1JTUUtVmVyc2lvbjogMS4wDQoNCi0tLS0tLXNpbmlrYWVsLT89XzEtMTY4NjA4MDQ4MzQ5ODAuMTc0MTY3NDAxMjA5MjQ0NDUNCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04DQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlDQoNCjwhLS0gPUMyPUE5IDIwMTYtMjAxOCBGbG93Q3J5cHQgTGltaXRlZC4gTGltaXRhdGlvbnMgYXBwbHkuIENvbnRhY3QgPQ0KaHVtYW5AZmxvd2NyeXB0LmNvbSAtLT4NCg0KPGRpdiBkaXI9M0QibHRyIj4NCiAgPGRpdiBzdHlsZT0zRCJmb250LXNpemU6IDEyLjhweCI-DQogICAgVGhpcyBlbWFpbCBjb250YWlucyBhIGtleSBiYWNrdXAuIEl0IHdpbGwgaGVscCB5b3UgYWNjZXNzIHlvdXIgPQ0KZW5jcnlwdGVkIG1lc3NhZ2VzIGZyb20gb3RoZXIgY29tcHV0ZXJzIChhbG9uZyB3aXRoIHlvdXIgcGFzcyBwaHJhc2UpLiBZb3UgPQ0KY2FuIHNhZmVseSBsZWF2ZQ0KICAgIGl0IGluIHlvdXIgaW5ib3ggb3IgYXJjaGl2ZSBpdC4NCiAgPC9kaXY-DQogIDxiciAvPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZTogMTIuOHB4Ij5UaGUga2V5IGJlbG93IGlzIHByb3RlY3RlZCB3aXRoIHBhc3MgPQ0KcGhyYXNlIHRoYXQgb25seSB5b3Uga25vdy4gWW91IHNob3VsZCBtYWtlIHN1cmUgdG8gbm90ZSB5b3VyIHBhc3MgcGhyYXNlID0NCmRvd24uPC9kaXY-DQogIDxiciAvPg0KICA8ZGl2IHN0eWxlPTNEImZvbnQtc2l6ZTogMTIuOHB4Ij4NCiAgICA8c3BhbiBzdHlsZT0zRCJjb2xvcjogcmVkIj5ETyBOT1QgREVMRVRFIFRISVMgRU1BSUwuPC9zcGFuPiBFbWFpbCA9DQpodW1hbkBmbG93Y3J5cHQuY29tIGlmIHlvdSBuZWVkIGhlbHAuIFdlIHJlc3BvbmQgcHJvbXB0bHkuDQogIDwvZGl2Pg0KPC9kaXY-DQoNCi0tLS0tLXNpbmlrYWVsLT89XzEtMTY4NjA4MDQ4MzQ5ODAuMTc0MTY3NDAxMjA5MjQ0NDUNCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLWtleXM7DQogbmFtZT1mbG93Y3J5cHQtYmFja3VwLWZsb3djcnlwdGNvbXBhdGliaWxpdHlnbWFpbGNvbS01NTIwQ0FDRTJDQjYxRUE3MTNFNUIwMDU3RkRFNjg1NTQ4QUVBNzg4LmFzYw0KQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsNCiBmaWxlbmFtZSowPWZsb3djcnlwdC1iYWNrdXAtZmxvd2NyeXB0Y29tcGF0aWJpbGl0eWdtYWlsY29tLTU1Ow0KIGZpbGVuYW1lKjE9MjBDQUNFMkNCNjFFQTcxM0U1QjAwNTdGREU2ODU1NDhBRUE3ODguYXNjDQpYLUF0dGFjaG1lbnQtSWQ6IGZfUm5kaU5SYVB1QnhKeFBFQ3p1dnRNUkhxU2VnS3FuQGZsb3djcnlwdA0KQ29udGVudC1JZDogPGZfUm5kaU5SYVB1QnhKeFBFQ3p1dnRNUkhxU2VnS3FuQGZsb3djcnlwdD4NCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KDQpMUzB0TFMxQ1JVZEpUaUJRUjFBZ1VGSkpWa0ZVUlNCTFJWa2dRa3hQUTBzdExTMHRMUXBXWlhKemFXOXVPaUJHYkc5M1EzSjVjSFFnDQpSVzFoYVd3Z1JXNWpjbmx3ZEdsdmJpQTRMalF1TndwRGIyMXRaVzUwT2lCVFpXRnRiR1Z6YzJ4NUlITmxibVFnWVc1a0lISmxZMlZwDQpkbVVnWlc1amNubHdkR1ZrSUdWdFlXbHNDZ3A0WTJGSFFrWnVPVWRzU1VKRlFVTnBRVlU0ZVdoNWJVNXhNbXhVZUVWSE1VOVZNRmhyDQpZVGwwVlVvMFFUZDNjMFJvU0U1dWRXaDRlbXBXVURnS1ZFUnVjRmRpSzJ0Uk4zQkVaMm8wVTBWcVdGWTFUa0ZMVEZNNVNWTlNjMmw2DQplRVYyZDI4NFNGZDFiRXd3YTIxdGJHRkZVMlExYjA1M1l6TXJDazgwUTNoWU0wMDViMDVFWVVWSVdHMXpjR2hYZVhaQ2RsUjRaRnBYDQpNMlExU1Rsa1ZEUjJha292Y0RkQmVtNVpPVGsxWWt0b1RFTkxOMHQ1YndwS05reGxLMGczU1RoRldGVm1Ua0pKYTBzM1FWVnRhSFI2DQpZVWd5Vld4b1prSjBTbXd6SzFaTE4yMUJhbVUyZDJkMlpqUmllaXQ0YzNWYUwzTUtSMnhSUVdoUmFuSlNZWGd2ZW1wVWVGTklaRVZxDQpRa29yYkRKblNYWkRibXRXWlRacEwwSmphbkZNVVZWMlNFcHpaM3BoUzNJck0xSnBNbEZ6Q2tGcVZrd3pUWFJ6VG5sVmFHRXlVVWx0DQphMWRUVURZeVNqSTRRVWRUWjJzMU5UWjJaRGxEVDFBNE9XUjRZMjFvV0d4dFpWUk5OREJCTWpsSFl3cDRUbnB2UWxWRVNuaGlXQzh2DQpaMnN4VmxaWWFFOUJPUzlDYXpaS1FWTTBWQ3R0TTBsbWRFc3pVVXBPUXk5NUsxTnVjVVJXT1hoM1FXdzBTMDBLT0hGQ2QyVlZkRVpLDQpNRmd5UXpSRVlrTTVSVWxRT1VZeVUza3lhbGRpVFRsamRXRlVSREl4YldwUlpFOVZOV05pVjJ0S1ZqUXdTREpHWjBWSUNtTmlTMEk1DQpLMGRzVFc1MFp5dDBVRlZHYkhKSlNsQlRTMmhFVlVKRGVXMHllbFZpYTFkcmVqWXdObkUxVnpWMmNGTlZUM1VyTTBkcFZqSllSZ3BsDQpSM1oyT1dGbWJrOXZiek55VEdwV1Z6UlZhVzFqUlVSTWNuaHBSV1JqZEN0dlJGUkpNRmhTVGxSTVNWVkdkRnB6YTJSRlZXVTNjRkJ2DQpjVmNLTkN0VVVIbzVSM2hWYkdaUU9VTnphVEZ3ZVd4blNFaGpiRzVGTjNNdlFpdGFLM1JxVlU5eWFFbGhlWGMyYWpCa1dYUnNNSHBDDQphRTFsTVRSS0NuYzFNMlpQTDBGTFpUUm9kR2hXV1U5SU1XOXFObnBUU2t0bFJYZEtXV1U1UmpodlpuTlJRVkpCVVVGQ0wyZHJSRU5RDQpiMVZzVkRST1puazNad3BaVDNZMVRqWkVlbXB5UkdobFN6UjRRMHhPZEM5eE5uTmxaekp6VEZwMGNWbEpZMGxWTHpWQlRuaHJaR2hGDQpURzkxUXk5dU1EbGtUMEpPYldNS1VYQnBVMGx1UTB0WlIyNVFSVWh4Y1VKaFkwWkxSWGRhU1hoSUszbFZRWG8xZDNKT1VFczRTREIyDQpaR1pvUjB4bk4xcFplbkJWUWpaRVZrcGhDa2h2TW05T1RYVTVWV2xaWnk5Q04yUTBNa3RpYzJwS2RWUnhSRUp6TDAxRFVXNTJVWEExDQpOMDFNU0RnNVZEaEJiMDB4SzBNeWMxQmFRa0pRUXdvMVNrVTBPRTVTYkd0a1NHbzBUMHgxYkhSQlMwRTVVVFIzU0dST09XdHdibVZSDQpOMnRMVnl0UFJVVnVObm8yTlhSMk5tRkdWRUk0T0VOcVkyUUtTMnQyUkZSWGJrZHZNbXM0UkRBNVIyRlNkMHRsUTFVemNsQkhSV2RTDQpObU5NUzFaUmRHVlpPSFpPTlhSMVkxcG9ZakYxVDFGUlVDdDJjMHN3Q2tJeGRGcExWRlZFV0VwR1NYSm1Ra0ZWTmpkWlRYZEhaRXN4DQpOa0pUY0RkVFRFNTRjbEpqY0hoQ2NrSlFla1l3YjJ3dlJpdHZPSGRQVUhsRk5nbzBNRTR4U3pCWFJYaE5aRmxSYW5wSFZHaGhhbmN5DQpaMGxTTWtONVRYWk1RMFpMYjJwdGRHcHRjREp3T1ROcmVuWnJSelJ0ZFhOV1lYbFJVbFVLV1ZselpVTjVVR3hrUTFWNmNVRjZaRGwzDQpVWGRRV1RkWmJUVjBjRlkzY1hGU1dHWk9jbXQ1YkVWQ1ZUWk9kMFpZTVVZMllucHdXRnBtUlhoMUNpOHhhV2x6V1VkbFRFNVZjVE5JDQpNVzVMY0hGVlpFZDNaakJ4Y1RWRWRVVTBaVXRuUmxaNFFqY3hURkowV0dvdllUbHRORUpaTVhkblUyVTBRd3BhVmt0NGNFUkROVUpNDQpUMHBEYkZGNU5qZzBhMHRrWlZad1ZtbFlWRzkyYmpSUGFHSnBVMmRVZW10U01FUm9aRGxVVDJsM1dteHVia2w2ZFVNS0t6VjZhR3RqDQpabkJ1Y1hWUVVtNWpjV1pTZGtwdmNsQnFTR3hyUlZGa2VuTjNhRFphY0RjM1JVMHJOekZGUWxaWVprTm1RVVJZV21zMGJUQnRDamhZDQpUMUV4VnpJelUwVTVjVmxhTVVseksxQm5RWEpEUVVWQmQxQkZjQ3R1YUZGNVJrOWtkbEl2Y1RWbmR5OVFjRGt6WW5Oa1dFTkdUR3hPDQpSUXBZV2tsTU5VNXJWak41Y0Zwa1RGaEZia1ZYWTJ4SFJ6ZGlOalF4YTBkRFRFNXBNVlJCTDBWdVZHaHlNRXBOY214RloxcHFaMlpHDQpSSEowTTFZS2JIbG1SV1JWYzFOU1VrNUdaa2RZY0RGVU4xWjZWbnB3TjBGaFExTTRkblp1YWpOMWFDOVZaV1ZyVjBaRE0xbFhVWG9yDQpORXhZSzNsRE9IcFdDaTlaTmpJeGQwSnJXbFZXYkd4TFdFVkRSSHByU0ZoTGFFRmhPWGRTYm05dU5VWTBXRGgzZVhsbFRtODFLM1IxDQpaWHB3YjBKeFVHdDNaRlV3Y2dwUVp6WjFaaTlJZUhWclpEVnpXVXRRVlVGc1NUUk5VV2w2TVUwd1pGUllVMUpLUW5oTmVYUnZNMm96DQplbEJpTDNKeFRYTnpkR0V2YUV0dlduRUtTMFJyYW5sNVJVVktVWE5GUWpCSVJHMUxRMUZ5UTFKTFdEbGpjRXB0Ums5S05XTmlhVFJMDQpiMGxuUmtGSVdYaHhOVXByVDFSUWVIVmhhbmhXQ2poUlJESlNibXRzVTBwSldGcHVMM0VyVW10Qk5EVkxXR0YwTVdOTlZHMVVZbTFDDQpZV051UzJWS1dqSmhha0Z6YUM5d1YwNU1OMVYwVWtoT2RRcEtjR1ZHVjFGUU5XeDVRMGRhYkM5RE1YbEJlRkpGZUZOeFRrZGthMm9yDQpiMVZsU1dzd1lYWlFTRTFTT1haVGJuZDFZVzByZERkNU1teGFlSFlLWVc0NVFYaGpiemMxY2taTmN6Wm9SM2hGYUUxU2FFdGxiSFZYDQpZMkozVjJsQk5UVlJTV2RWVUZNd2NVTk5jMk5GTlRSTE0wNTNOMUYzY0ZwTUNqbFZjbE5YUmxSNFNsRkZWVzVVTWxaS1IwWk9kalk1DQpXRmxEWVV4SlYzTm5hemRvVFV4SlV6WnZVRFl5VkZVd2J6UmtUbWRwWnpSSk0weFZMd3BYYWtaRU1qUTBLMEl3YTBoU2NqbGhaRXd2DQpWVGQyV0c1aWRGUlNNbTlCZWtveU9ERTJMems0Um14a2FUQjJXRWx2UTIxRlNTOHpNRUp4TkRRS1Z6WmFWbWxSTWsxR1owNW1NSGc1DQplRzVpT1ZSRmFUZFVOMFZzUjJWYWVrcFRTRXBGU0VNMVdYRlNTMHBaWkhWMlJWTnZhU3RMYVc5NE1uUnpDbTlUYWt4emNsWm9LMmwwDQpZMk5XVVRSTlNFcGhWek5xWkRCNWFscG5ObmRYVFZCV2EyWkRNMjU2YWxaemRrNTJWMjAxWlZoallsTm5ZV3AwZUFwWEwwcFdNVmRsDQpMM2xyYlRoaEwyRTJNMlpoY2s5R05UWk5ibXRYY2tobmVqQklSbVU1WWtsTVVIRktOV1pIZWtwU0wxcG1iVnBXVXpsd1pHa0tPV3AwDQpLMVp0VWtWR2NXaG9OVU5WWkdsSEsxQjRjV1ZYYkZCakswbEdhbWRCUmpaaUwwUk1hRVJITlU5dE4wcHBSSFZhWVhRemIyTnBWbmhhDQpDa00yYTFWcGRIUjJhMVpEYUhKdFpWSnFkR2d5ZG5aaVZsVlNiV3BRWldFdmVERXpWVFUxVUV4dlYzaHJhVlpWTTNaRU55OUlkaTl6DQpTMmhUU1FwTlNUTmtabFkwY0d0V2RrOVpWVVZ4VkRsQ01HTTBWRWRVUzFOUVpHWTBaVXgzWW1KQ1QzVk1RMUZ2VjJsRmJFMDRiak5ZDQpXakJ0WVZaWGEwVUtUSFpIYTNSS1NqVnZNbUpJTW1kU1lWQnNVMDgwT0hsT1prcFRXR3RWTWxSMlJWTndRbFEwYTFCNGFIQXZRM2xsDQpNVE5OYkdSVWVYaFpPVGwxQ21GTVdsTTVVbWRSWmpOU1oybHJXWGN4SzFaWlZGUjNla3B3ZWs1UE1GcHpZak5rUkdOdWJIZGtRMEpFDQpZakl4ZDFsWVVuQlpiV3h6WVZoU05RcEpSSGh0WWtjNU0xa3pTalZqU0ZGMVdUSTVkR05IUmpCaFYwcHdZa2RzTUdWVlFtNWlWMFp3DQpZa00xYW1JeU1DdDNjMFl4UWtKQlFrTkJRWEFLUWxGS1dpOVNjRmhDWjNOS1FuZG5SRUZuYTFGbU9UVnZWbFZwZFhBMFowVkdVV2RMDQpRV2ROVjBGblJVTkhVVVZEUjNkTlEwaG5SVUZCU1Uwd0NrUXZiME54U25kalRERlJVVUZFZEZOcE1XTmlUbk50TUZabmRua3phblV4DQpkMFJLT0dGTGRFSnRLMHcwYlc5WloyZE9aMll5WW1wb1lUUlhkd3B5V25scFpuaHNRMFJQZEVWTlIwUkNiVU5zZFhoTFJVeDJhRzVPDQpNa3BUWkVVdlN6UlpVMlEzZUVwdk1qbFlRek5xVjNSQ2JrZDJVSGd2VTJJS1FsWnRjbll3UzA5TlMwMWxOV1Z1TmtwVmRXZ3ZVbk13DQpUbWw0UzNsYUwwdFRjemt6VjNOUmFVNXZSMUptVDNsRWVWSXhabTlvTDFsdk9YSllDbWR5WWxCWWMzQk5RbXBXVGs5ek9XcHZTbE13DQpOa3RLY2pSQ1ozRjJOM1pWVGt0bk5XSkdXalZuVmtVck5GVlJaVFJWZVhFMlp6TnZaakYxTlFwdWRUSkZRMGs0Tmxrd2MxZGhlVzFxDQpTSHAzWkdWbUsyRmtVemsxZEUxaGQxSlZhMnMwYVd0MFZGcHZRVTFqU3l0dU5VazNURTVvVlZFM2FuSUtkVFZRZDFob1NVaG5SVmRDDQpNR2s1Y3pkNVZVeDZlRTE1YUhWQk5tZHpjMmhxV2xsdFRFNDBPSGR2U1M4NWR5OVdlSEpCVEhSdU9WZFhXRGRsQ2psT1FqaHZOWFpSDQpSMmRQYUZwSFIxVkJXbWcxT1hsdlNtRXdjRzgxU0VOSVNGSjZVRnBZZFdGakwyUm9XWGxsVG1wUE1GUnlTRWxpVERoaE1RcDJTa2hpDQpaa0ZpVW1SVmFGZGpWRGhYUVN0d1FXUmxTbVZPTWpCdk4yODRjSGhVVlU5TmJEQnNZbkZxTldweVYwZDBiRmxhTkVaSmNsUkhMMlVLDQpVR3BvWlVaNGNWSkdVVzFKYlRGdlVFdDRPRVY1Y1V0ekwwOXFhWGwwVEc1WGNuVkpjRVV4VFRZcmQydFFZV281U0dwbFlqbFZRVkJ6DQpWMnhIQ21kTlkyWkdPSFZRZVVzMmFuTTFXV3B2TWsxM1RTOXdUemxDU1dGNGEyczNlR3hyYldST2NqTlRSemhtTjNoNVJsWkhNa000DQpWRUo1YkZJNVRncGpNR2RyUlRJclF6bFFWek5hT0dKMFJUVjJlazlvZGpsMFJ6WTFWamR1UXpkcVVDOUVaMjE0ZVRjMGFFbHNSMnBCDQpjV3hRU1VWWWRYSkZTVXNLY0RKUGIwNTNOemhIV1dvM2JYbFZaMmN3YkhwWlpUZFViR05tUjJoblVsb3ZVbkJUUVZKQlFUTTVSVFpODQpRMHhDY0dwdlpFVTJLM2RLY21SNUNtY3hXa0pqVm1wTk9FdEllbkF4VVZCcWRESkpSMEZuVEVWbFZuSXdaR1pGT0VkMEwxazJiMDQ0DQpaMjUxYUdWc2RtaFVTbGx5TDNWd2RHNU5TUW95WXpOamFFaDNLMWN2WkUwMFFsZDNkbVpoYzFoMVMyWm5ZMXBUYkhGMVRFMU1kbUUyDQpSa1ZXWVdGMmRIVnhibkV2VmxWaVVFSmhWV3g2YmtJS05ETTRZbnBEU3pOblNuRlNSMlJTSzJKek0wTXJUM0Z3WmtkRWF6UXhkVmc1DQpibTlqZG5adUwxSTRZbFJFU0ZKVVJWUlFjSGwzUW5GdlFsQkpDak5wVEc1eVJWY3hlRzVRVVhJeVVrcFhURW94YUVWSVJYWTFjWGxCDQpkSFZvYUZCT2RrNXRNbkZVYVV4SFdUY3dSak5XV1ZSMU5VbHJRMjU1ZWdwVUswVlNhMXB1UjFoWVQxbFZRbkZKYUVjemJqUlRNMWRsDQpaRUV4WlZsSU5FTTRUVTFLWlZWTFdWTmtjVGw1TTFGT1IwSTROSHBqY0VOWGJVc0tVMlZyV0Uwd09ESlNZbUZtZWpoRVpsTkdWSHB1DQpLM0ZyUm1OeGFFVXJNMVU1Y2toSlNrVk9XbkJaZDFRMVFtNVBTbm8yTTI5YVF6aEJZMjl1Q2xKemJESkpZbkZNYzBKWFJVUm5abW81DQphRnBhYzNJMU9EaHBTMHRHVDFoeFFsSXpiRE5ZVmk5dE5qTnBRMmxqVTJOcVltMDBPVkpSZEVNNWJncFBkM1JUUzNCQ2VITndOa3BoDQpZbkppUzNOSFZGbHJUVmhTUTNSQ1UzbGxRekJPWjAxNVRYaG5VREF5Y3pOUWQwUkxZV2QwU1d0a05sRXJOMHdLV0VWTVRFUm9kbEpGDQpVMW94U0c1Q2IwMDFjREZpY1RWWmIxRjNibmRtYVhkSVlXTnNibTk2Wkdwd1QzaG9USEIyVUVadlFsaFNkVWxuWVZkekNuZzBlRU5NDQpTVWhIVEVRck9FOXlkVko0Y21oaVlsQklURGhNVUVKNFdHZFVhSEZZWjNRM1RuRnlWVmRZWmxaaVNHRmpNMEZ1YVZCTFYyODJkZ3BtDQpVRlJFY0RWVFl6WkdURUZPU0hWS2FFOWFRM04wVG1sRVFWWjZZalYxUVZOelZVcHFNRUkwWW5nd2FXZEtLekJzYWxGaVJWVTFURVZJDQpTV29LWlVwTlFVVlJSVUZCWmpSS1FYZHBWbGhZYlM5aVJHNTFla2RCTUdwWlRFMXBibVJGY21NcmIyWkxUV2hEUWpZd1ZFbG9UamQzDQpSVE0zZUdabUNrSk9kVFp5YWtsUFpGUndNR2x1U1d4c1dFRmxZbkZITmtwTmFVdEhNRWRqTlV4MGNYaHlkWGh6TnpCU2EzaDJiakZ4DQpPREV6Y25RelJVOWphUW93WWtWWk5sRjJPQzl4VTI5cWMydGxZVEZEV0dKaVkyeHFXbEJSYTNKbGNUazNaVTl3WW5oelIzUlBZM1JSDQpSa3RDT0VKc1lXZDBWakl2UWxZS1VXdFhaRTAwWTJObmFGaFVkUzgxZGtseWNGRjJlalpRUWtWUE0wdHljVE5SZW1OVGIzZ3ZPRGNyDQpWMjhyWTBoTlNtZHlZVWRoTVc1ek9ESnlDbVVyYlRnMlRrMURORGRoWWxaeU9DdExWQzkwVTFCSVRrbFpiRXhYWjFOS1NXdzVNMjFFDQpTV3R2VlZkVlJXUXZRVVEzVW5OTGVtWktTMnBMVndwb09VOUpjbk15ZFZkUE5XUm5WelYyYTNoRWRXWmlUV05EU1VwUFlsSjBjakVyDQpjMkU0VkdkMmNIRTFNRFJoWldwdFpXbHBSQ3RQZUdrdlEzY0tXbTFKU2pWdlprOVNSRXRaZURRMFRHSnhNRmg1UWl0WlVrSnJabFFyDQpkekl2V0RSelUyMUpiRUpoZWpKYVZqaHRVbGxIWlU5bksyMVBkRzV6Q2xOWVdFSkhUMFpPZFZkdVUzUTJRMFF5TUVOeGFsVlNjME5yDQpVVWhHWWtKMlRVZHFlREV5UkZGVVVYcE1ORkJyWkVSd1NIVnphMWxRU0RaTGR3cExZM3BDTURWMU1HdERSbEZKVGxrcllXcDFTR0psDQpZM0JXZVROUmR6WnphMHhQUVZNeWRWSkljWE4zU2tObmRGZHdZbXRFVTAxbVVsVktWMlVLZWpoc1UyZzJNRlkxUVM5YVVHVk5ZaTlHDQpOaTlQTkdWUWNXdDJXR0p5U1N0aGF5OHJRM0pyT1c1SE5rZFVTVzFtVGxwQ1NXd3daM1J1YVhodkNsRlJlVGsyVmpJMmRFOXVWazlCDQphSGxyVWtscFNsTkpZMVkwUlRKTlVDdDJhMjAzUTJGMFRHMDBVMEZPVDJrNWNUVk1ZM0JYWkZSU1pIVjJNQXB0TURrd1luZEtaM05uDQpUbmcwWm5oSU5qQnBWRnBtVlN0U2RubDFkRzFLTlRjMGNucDROMk12S3l0dmRYZHNkRVV4WjJRelNXSmtNekIzY1VzS1JHazBOV0pFDQpUMjgxY2k5cWFURlZUWEV5YlhaM2JWRjFaRTAwWkdWSWFDdFNhMlpyYnpablVVVlBSamsxYzJGb09UbFdSWE5HT1dJM09VSndDbHB0DQpjR1JJVFdWTGJtdHliakZCWWxadGFXTmxVRTR6SzI1VGMySXhRa3BoU1VSMldEazNXSEpKU2tZNWVqZEZWa0UxV0RaRlpqQkJaRXhwDQpTd3B3VlRSak1XdGFNRk5yWVZGUWFFeHNNMjlOZVdGb1EyVjZOSFp3ZWxSYU1Hc3hOMjFYZVVkVVZ6bFhaemhUVG5WbWRsRm9aWEJFDQpTR1oyUkcwS2RFczVhblE1V0haaE5uaEJRVlpqTlVKRlQwZFdORlp6V1dWVVkzSjZNR3Q2VmtWeE9TOUVlbFJDUjBoMGNFVktlbVF4DQpTVTV4WjJweE1sSjVDbk5qUjJKRFpUWkhNVU5tU3psQlRGVkZTWE53VG5od1pTOUZVMGxxVkhoM05YQkJNRE5NWTFoUE1rMUJZVGN4DQpMMVJUUkRoRVZITnBUMVpxU3dwc2FtaFBSakZvTkZWTU56QmpVemM0ZEhwYVNqWkxlRVZKUjFwU2FuWmFVWGNyV21SdlZtMVRkekJ1DQpOSEZ3UTA1TGNqTm5iMkZHZUZKelJqQUtTalE1WWk5eVlubDFXak5hTVZodWMyUTVhbmwyYjNjellUUlVaSEpRWldSM2NqSXdPR0oyDQpaU3REVVZCdFFqZGplVGR0WldwdksyUmlTbWxDQ2pKM01URldjMUoyWjBKRVF6STNTalpwYjA1aE1IRXZZV012WjJSc2FEVmtXbFl6DQpaMWRrTTBOV0wybDZTbGt4VVhOQldEQXhORXhHZWpkNFJ3cFZTVnBRV0RWak1EZEhkbEZUV0RSUlpVZFRiakYzYlV4SGJFTmhOa2c0DQpUMUZpVW1sNk5qZEpaa0kzVHpCUlFYSlhWMmwyVTFKRlZsUTJaVFFLWWpGc1pFWlRhalJGUTJ0aE1qWlBaMFpNVTA1UVlXWnNUVWRIDQpaRVEyY0dKQ2FVSXdkWFpPYVZKRmJrUmFTM0ZhYUc1VlNrTXlSR1JEVWs1d0NrcEhUeXR1YVN0TGMxaEljbEo1UVhwbGVWVkdTRkZCDQpZM1JUU0VaNFdIZGtaVUo0WWxCbVRVdDBkRzlaYzJsQkwzQTBkblJUY1RGWlRVdHZWUXA0YkVWV2JGRXhTSE40VUdob2NFWk5ZMkZFDQpUMHBGVlhSV2VVWnNaRkJaZDFKM1pXNUdZMUJrUzJoWFdqQnRiamxOUW10d2JVOVhVRFJyTWtzS2NYUjVOMHhMYlhOTGRuSTVObEprDQpSV3BNZFZaeVdGWjZUbmxNVFhORVVHZzFabk5zU0hWek1tRnNWMnA1TVRVNVpIWlhhWEpMUkcxRFUwbDBDbkZsVGtoaE5WZzFZWGd4DQpjSGRrVURWMFEzaE5VSGRCTVZsRWVuVk9iVXR2Y0U5bWNXUlJiVXBqVVhWeFVFOHJhVE15VldGM1VIQTJWR1JyZGdwU05rZEZObTh5DQpkMnhKYW1SWE5tTkRlbEYxTlUxNWNFdHZjRzVCWkdNelpEVmFObGw2VFRCNlRtTnNjakUzVHpBeGRtNUpOV3REUkhWTVVtb0taVUZDDQpiMDlMVmxSelNYSTFjRkJTZWpKblJtRm1kbE5QZFM5MWRVZFRkMVU1VW05b1MyNTFNMHBCUnl0dWRWZFhNbE0yTXpNMFdTOVNRMGt4DQpDalpQYVV0R1RYVlRMMlZ1ZW1GelVrMHlNR1ZNVW01TGRUVXlTRzFEVms5V1RVUjNhVGRsYXpWclR5OUZNSHBNVUU4eU5uaGlaaXM1DQpXalpUVVFwU1ZsQlNhVkZsTm1JME0wbExhMUUyV1dSclIwVnVWbXRVZHpselVHTTJaMmgzZVdSTGFFVjVZamRSVjJJclNscExiVEZFDQpkM05HWmtKQ1owSUtRMEZCVkVKUlNsb3ZVbkJhUTFKQ0x6TnRhRlpUU3padWFVRkpZa1JCUVVGT1RtdFFLM2RZZDNORk5IQnFaMkYxDQpOV0pMUzNCVU1VbE5UVTlvQ2s1aWJUVXlVMVV4V201TmNUbHFUR1Y1UWtsclRWVjVkRFpsZVhOa0wwZFdUVFpSVDNkSVZHTnJaVWd4DQpibTFzYzNaaFltSnZVbWhTS3pCck5ncFVSelJDWW5vdlozVkRhWEEyYW04MmNUZGlNMVV4U2xkSVZDOHlRMDVCTmpaSkswOXZMMk5KDQpRM1I2UkVGRk56WmtNbTRyZVdFNFVYSk9TRllLY0ZaWU1EWjRlV1ZxWVVJd09XMW9RbkphYW1aVldYVmhhMDlKTlZOQ2RXOVpXbVJsDQpVR0ZRZGtSc2JsUkVNMk4wTVZWV04wRlFZaXQ1ZDNSRUNqTjVhazFsT1RKT1RVb3pSVGRwTXpSWlNGQkhiVlJRVEZadmVtazFNRVkyDQplRFY1U0RoUWExSlRabXhwYjNkclZ6TldaVFZxTTFCa1JYUldXZ3BEWjNWeVZscFNVMmRvWTA5clIzaFJkMnBMUkNzemFVUnphRTByDQpPVFZaTTAxb1Jub3pURlJ3YzFsR1ZIcE5TVlJxY1dORVFsWnhMM2MwVHpFS2JIZE9SWFpXYW5CR1RuQTRhR1k1ZW1Kd1ZWaDZNSEJqDQpVMEoxVGpaRk9XbFdSRk00YWpoSGVtVndNVWxaY2tJeFppODFPVzVCVkVKaE9IVjNDblJLVkVsTVNqaE5kakIzZWtKbGJIbzNjMXBuDQpiRkZPV25nek5rdFNha012U0hjeVlXVnlWVlZHVVhwR2Fra3pXbUZ2THpRNVNFcHNSVzFNWndvM1N6WTFkRlZSVTAweFZIbzVTWGx0DQpORFZaYWt4d2JVbDZhamw1TmxNMGExcEVXbkZYY0ZreFVuRlViSEpRY1V4alowazJSMDEzZDNSV00wVUtkR2xSUm10Tk0zVnFOR0l4DQpiMFZDYlhsT2IwcHpZazAxWTNCSk1scHdNR2RuT1dSVWNXUk1iMUZtU1RSd1VXNDVORTFWV2s0clpETnJZVkpoQ2xWeWRTOXpaaXRSDQphWEpNTUdGREwxQnhVQ3Q0Tm5GcFVUTjBabWxsTlhwMlJUVlBOWFp3V1dwWGR6RkdRalE0YVRkRVlUWmlOV2x1V0dsalJ3cFVjbTlxDQpUelpQWlM5Q2NqRjBXRkJsWlRWbFJXb3pVbGxOZFdVM2R6VkVTVUkzT0RObkt5OHliR1UzVldkaFJHY3pTSHBLWjBWMU5IazFlRFlLDQpQU3RCTUVrS0xTMHRMUzFGVGtRZ1VFZFFJRkJTU1ZaQlZFVWdTMFZaSUVKTVQwTkxMUzB0TFMwSw0KLS0tLS0tc2luaWthZWwtPz1fMS0xNjg2MDgwNDgzNDk4MC4xNzQxNjc0MDEyMDkyNDQ0NS0tDQo=",
"historyId": "1423368",
diff --git a/test/source/tests/compose.ts b/test/source/tests/compose.ts
index 369033df536..99815bc84e1 100644
--- a/test/source/tests/compose.ts
+++ b/test/source/tests/compose.ts
@@ -169,7 +169,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
);
test(
- 'compose - trying to send PWD encrypted message with pass phrase - should show err',
+ 'compose - trying to send PWD encrypted message with passphrase - should show err',
testWithBrowser(async (t, browser) => {
const acctEmail = 'ci.tests.gmail@flowcrypt.test';
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'ci.tests.gmail');
@@ -180,14 +180,14 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
await composePage.waitAndType('@input-password', msgPwd);
await composePage.waitAndClick('@action-send', { delay: 1 });
await PageRecipe.waitForModalAndRespond(composePage, 'error', {
- contentToCheck: 'Please do not use your private key pass phrase as a password for this message',
+ contentToCheck: 'Please do not use your private key passphrase as a password for this message',
clickOn: 'confirm',
});
// changing case should result in this error too
await composePage.waitAndType('@input-password', msgPwd.toUpperCase());
await composePage.waitAndClick('@action-send', { delay: 1 });
await PageRecipe.waitForModalAndRespond(composePage, 'error', {
- contentToCheck: 'Please do not use your private key pass phrase as a password for this message',
+ contentToCheck: 'Please do not use your private key passphrase as a password for this message',
clickOn: 'confirm',
});
const forgottenPassphrase = 'this passphrase is forgotten';
@@ -198,7 +198,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
await composePage.waitAndType('@input-password', forgottenPassphrase);
await composePage.waitAndClick('@action-send', { delay: 1 });
await PageRecipe.waitForModalAndRespond(composePage, 'error', {
- contentToCheck: 'Please do not use your private key pass phrase as a password for this message',
+ contentToCheck: 'Please do not use your private key passphrase as a password for this message',
clickOn: 'confirm',
});
})
@@ -274,7 +274,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
);
test(
- 'compose - signed with entered pass phrase + will remember pass phrase in session',
+ 'compose - signed with entered passphrase + will remember passphrase in session',
testWithBrowser(async (t, browser) => {
const acctEmail = 'ci.tests.gmail@flowcrypt.test';
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'ci.tests.gmail', {
@@ -285,17 +285,17 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
await SettingsPageRecipe.forgetAllPassPhrasesInStorage(settingsPage, k.passphrase);
const inboxPage = await browser.newExtensionInboxPage(t, acctEmail);
const composeFrame = await InboxPageRecipe.openAndGetComposeFrame(inboxPage);
- await ComposePageRecipe.fillMsg(composeFrame, { to: 'human@flowcrypt.com' }, 'sign with entered pass phrase', undefined, {
+ await ComposePageRecipe.fillMsg(composeFrame, { to: 'human@flowcrypt.com' }, 'sign with entered passphrase', undefined, {
encrypt: false,
});
await composeFrame.waitAndClick('@action-send');
await inboxPage.waitAll('@dialog-passphrase');
const passphraseDialog = await inboxPage.getFrame(['passphrase.htm']);
- await passphraseDialog.waitForContent('@lost-pass-phrase', 'Lost pass phrase?');
+ await passphraseDialog.waitForContent('@lost-pass-phrase', 'Lost passphrase?');
await passphraseDialog.waitAndType('@input-pass-phrase', k.passphrase);
await passphraseDialog.waitAndClick('@action-confirm-pass-phrase-entry');
await inboxPage.waitTillGone('@dialog-passphrase');
- await inboxPage.waitTillGone('@container-new-message'); // confirming pass phrase will auto-send the message
+ await inboxPage.waitTillGone('@container-new-message'); // confirming passphrase will auto-send the message
// signed - done, now try to see if it remembered pp in session
const composePage = await ComposePageRecipe.openStandalone(t, browser, 'compose');
await ComposePageRecipe.fillMsg(composePage, { to: 'human@flowcrypt.com' }, 'signed message pp in session', undefined, {
@@ -802,7 +802,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
for (const inputMethod of ['mouse', 'keyboard']) {
test(
- `compose - reply - pass phrase dialog - dialog ok (${inputMethod})`,
+ `compose - reply - passphrase dialog - dialog ok (${inputMethod})`,
testWithBrowser(async (t, browser) => {
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
const pp = Config.key('flowcrypt.compatibility.1pp1').passphrase;
@@ -838,7 +838,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
);
test(
- `compose - reply - pass phrase dialog - dialog cancel (${inputMethod})`,
+ `compose - reply - passphrase dialog - dialog cancel (${inputMethod})`,
testWithBrowser(async (t, browser) => {
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
const pp = Config.key('flowcrypt.compatibility.1pp1').passphrase;
@@ -858,7 +858,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
);
test(
- `compose - pass phrase dialog - dialog cancel (${inputMethod})`,
+ `compose - passphrase dialog - dialog cancel (${inputMethod})`,
testWithBrowser(async (t, browser) => {
const k = Config.key('ci.tests.gmail');
const acctEmail = 'ci.tests.gmail@flowcrypt.test';
@@ -875,7 +875,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
expect(passphraseDialog.frame.detached).to.equal(false);
await Util.sleep(0.5);
expect(await composeFrame.read('@action-send')).to.eq('Signing...');
- await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt pass phrase to sign email');
+ await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt passphrase to sign email');
await ComposePageRecipe.cancelPassphraseDialog(inboxPage, inputMethod);
await Util.sleep(0.5);
await composeFrame.waitForContent('@action-send', 'Sign and Send');
@@ -883,7 +883,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
);
test(
- `compose - non-primary pass phrase dialog - dialog cancel (${inputMethod})`,
+ `compose - non-primary passphrase dialog - dialog cancel (${inputMethod})`,
testWithBrowser(async (t, browser) => {
const k = Config.key('ci.tests.gmail');
const acctEmail = 'ci.tests.gmail@flowcrypt.test';
@@ -905,7 +905,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
const passphraseDialog = await inboxPage.getFrame(['passphrase.htm']);
expect(passphraseDialog.frame.detached).to.equal(false);
await composeFrame.waitForContent('@action-send', 'Loading...');
- await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt pass phrase to sign email');
+ await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt passphrase to sign email');
await passphraseDialog.waitForContent('@which-key', '47FB 0318 3E03 A8ED 44E3 BBFC CEA2 D53B B9D2 4871');
await ComposePageRecipe.cancelPassphraseDialog(inboxPage, inputMethod);
await composeFrame.waitForContent('@action-send', 'Encrypt, Sign, and Send');
@@ -914,7 +914,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
} // end of tests per inputMethod
test(
- `compose - signed and encrypted S/MIME message - pass phrase dialog`,
+ `compose - signed and encrypted S/MIME message - passphrase dialog`,
testWithBrowser(async (t, browser) => {
const k = Config.key('ci.tests.gmail');
const acctEmail = 'ci.tests.gmail@flowcrypt.test';
@@ -935,7 +935,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
await composeFrame.waitAndClick('@action-send', { delay: 2 });
const passphraseDialog = await inboxPage.getFrame(['passphrase.htm']);
expect(passphraseDialog.frame.detached).to.equal(false);
- await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt pass phrase to sign email');
+ await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt passphrase to sign email');
await passphraseDialog.waitForContent('@which-key', '47FB 0318 3E03 A8ED 44E3 BBFC CEA2 D53B B9D2 4871');
await passphraseDialog.waitAndType('@input-pass-phrase', forgottenPassphrase);
await passphraseDialog.waitAndClick('@action-confirm-pass-phrase-entry');
@@ -1327,7 +1327,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
);
test(
- 'compose - loading drafts - PKCS#7 encrypted draft with forgotten non-primary pass phrase',
+ 'compose - loading drafts - PKCS#7 encrypted draft with forgotten non-primary passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.imported@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1376,7 +1376,7 @@ export const defineComposeTests = (testVariant: TestVariant, testWithBrowser: Te
await composeFrame.waitAndClick('@action-open-passphrase-dialog');
const passphraseDialog = await inboxPage.getFrame(['passphrase.htm']);
await passphraseDialog.waitForSelTestState('ready');
- expect(await passphraseDialog.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to load a draft');
+ expect(await passphraseDialog.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to load a draft');
const whichKeyText = await passphraseDialog.read('@which-key');
expect(whichKeyText).to.include('9B5F CFF5 76A0 3249 5AFE 7780 5354 351B 39AB 3BC6');
expect(whichKeyText).to.not.include('CB04 85FE 44FC 22FF 09AF 0DB3 1B38 3D03 34E3 8B28');
diff --git a/test/source/tests/decrypt.ts b/test/source/tests/decrypt.ts
index 3cc7a9551bd..809571c6b9c 100644
--- a/test/source/tests/decrypt.ts
+++ b/test/source/tests/decrypt.ts
@@ -1065,7 +1065,7 @@ XZ8r4OC6sguP/yozWlkG+7dDxsgKQVBENeG6Lw==
);
test(
- `compose - #5125 test pass phrase anti brute force protection`,
+ `compose - #5125 test passphrase anti brute force protection`,
testWithBrowser(async (t, browser) => {
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
const wrongPassphrase = 'wrong';
@@ -1094,7 +1094,7 @@ XZ8r4OC6sguP/yozWlkG+7dDxsgKQVBENeG6Lw==
);
test(
- 'decrypt - by entering pass phrase + remember in session',
+ 'decrypt - by entering passphrase + remember in session',
testWithBrowser(async (t, browser) => {
const { acctEmail, authHdr } = await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
const pp = Config.key('flowcrypt.compatibility.1pp1').passphrase;
@@ -1977,7 +1977,7 @@ XZ8r4OC6sguP/yozWlkG+7dDxsgKQVBENeG6Lw==
})
);
- test.todo('decrypt - by entering secondary pass phrase');
+ test.todo('decrypt - by entering secondary passphrase');
test(
`decrypt - signed only - parse error in a badge`,
diff --git a/test/source/tests/elements.ts b/test/source/tests/elements.ts
index 202e8d4ffe6..c2c7dc9b698 100644
--- a/test/source/tests/elements.ts
+++ b/test/source/tests/elements.ts
@@ -36,11 +36,11 @@ export const defineElementTests = (testVariant: TestVariant, testWithBrowser: Te
);
await ppPage.waitAndType('@input-pass-phrase', passphrase);
await ppPage.waitAndClick('@action-confirm-pass-phrase-entry', { delay: 1 });
- await ppPage.waitForContent('.ui-toast-title', '1 of 3 keys was unlocked by this pass phrase');
+ await ppPage.waitForContent('.ui-toast-title', '1 of 3 keys was unlocked by this passphrase');
await SettingsPageRecipe.addKeyTest(t, browser, acctEmail, testConstants.testkey0389D3A7, passphrase, {}, false);
await ppPage.waitAndType('@input-pass-phrase', passphrase);
await ppPage.waitAndClick('@action-confirm-pass-phrase-entry', { delay: 1 });
- await ppPage.waitForContent('.ui-toast-title', '2 of 4 keys were unlocked by this pass phrase');
+ await ppPage.waitForContent('.ui-toast-title', '2 of 4 keys were unlocked by this passphrase');
})
);
diff --git a/test/source/tests/flaky.ts b/test/source/tests/flaky.ts
index f95e5598a4d..ffb2d1f0717 100644
--- a/test/source/tests/flaky.ts
+++ b/test/source/tests/flaky.ts
@@ -426,13 +426,13 @@ export const defineFlakyTests = (testVariant: TestVariant, testWithBrowser: Test
const inboxPage = await browser.newExtensionInboxPage(t, acctEmail);
await BrowserRecipe.finishSession(inboxPage);
const composeFrame = await InboxPageRecipe.openAndGetComposeFrame(inboxPage);
- await ComposePageRecipe.fillMsg(composeFrame, { to: 'human@flowcrypt.com' }, 'should not send as pass phrase is not known', undefined, {
+ await ComposePageRecipe.fillMsg(composeFrame, { to: 'human@flowcrypt.com' }, 'should not send as passphrase is not known', undefined, {
encrypt: false,
});
await composeFrame.waitAndClick('@action-send');
await inboxPage.waitAll('@dialog-passphrase');
const passphraseDialog = await inboxPage.getFrame(['passphrase.htm']);
- await passphraseDialog.waitForContent('@lost-pass-phrase-with-ekm', 'Ask your IT staff for help if you lost your pass phrase.');
+ await passphraseDialog.waitForContent('@lost-pass-phrase-with-ekm', 'Ask your IT staff for help if you lost your passphrase.');
expect(await passphraseDialog.hasClass('@forget-pass-phrase-label', 'hidden')).to.equal(true);
expect(await passphraseDialog.isChecked('@forget-pass-phrase-checkbox')).to.equal(true);
await inboxPage.close();
@@ -603,7 +603,7 @@ export const defineFlakyTests = (testVariant: TestVariant, testWithBrowser: Test
})
);
test(
- 'decrypt - entering pass phrase should unlock all keys that match the pass phrase',
+ 'decrypt - entering passphrase should unlock all keys that match the passphrase',
testWithBrowser(
async (t, browser) => {
const acctEmail = 'flowcrypt.compatibility@gmail.com';
diff --git a/test/source/tests/page-recipe/settings-page-recipe.ts b/test/source/tests/page-recipe/settings-page-recipe.ts
index 1f95744bb2b..f62a9b479cf 100644
--- a/test/source/tests/page-recipe/settings-page-recipe.ts
+++ b/test/source/tests/page-recipe/settings-page-recipe.ts
@@ -61,7 +61,7 @@ export class SettingsPageRecipe extends PageRecipe {
await securityFrame.waitAndClick('@action-show-confirm-new-pp', { delay: 1 });
await securityFrame.waitAndType('@input-confirm-new-pp', newPp, { delay: 1 });
await securityFrame.waitAndClick('@action-confirm-new-pp', { delay: 1 });
- await securityFrame.waitAndRespondToModal('info', 'confirm', 'Now that you changed your pass phrase, you should back up your key');
+ await securityFrame.waitAndRespondToModal('info', 'confirm', 'Now that you changed your passphrase, you should back up your key');
await securityFrame.waitAll('@container-backup-dialog'); // offers a new backup
await securityFrame.waitAndClick('@input-backup-step3manual-file');
await securityFrame.waitAndClick('@action-backup-step3manual-continue');
diff --git a/test/source/tests/page-recipe/setup-page-recipe.ts b/test/source/tests/page-recipe/setup-page-recipe.ts
index fc3b40ff2b5..d37969abfb5 100644
--- a/test/source/tests/page-recipe/setup-page-recipe.ts
+++ b/test/source/tests/page-recipe/setup-page-recipe.ts
@@ -81,7 +81,7 @@ export class SetupPageRecipe extends PageRecipe {
expect(await settingsPage.isChecked('@input-step2bmanualcreate-save-passphrase')).to.equal(checks.isSavePassphraseChecked);
}
await settingsPage.waitAndClick('@input-step2bmanualcreate-create-and-save');
- await settingsPage.waitAndRespondToModal('confirm-checkbox', 'confirm', 'Please write down your pass phrase');
+ await settingsPage.waitAndRespondToModal('confirm-checkbox', 'confirm', 'Please write down your passphrase');
if (backup === 'none') {
await settingsPage.waitAll('@input-backup-step3manual-no-backup', { timeout: 90 });
await settingsPage.waitAndClick('@input-backup-step3manual-no-backup');
@@ -186,7 +186,7 @@ export class SetupPageRecipe extends PageRecipe {
await Util.sleep(1);
const generatedPp = await settingsPage.value('@input-step2bmanualenter-passphrase');
if (!/^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$/.test(generatedPp)) {
- throw new Error(`Import naked key page did not generate proper pass phrase, instead got: ${generatedPp}`);
+ throw new Error(`Import naked key page did not generate proper passphrase, instead got: ${generatedPp}`);
}
const ppValidationExpect = 'GREAT (time to crack: centuries)';
const ppValidationResult = await settingsPage.read('@container-password-feedback', true);
diff --git a/test/source/tests/settings.ts b/test/source/tests/settings.ts
index 150ee74cccc..3e44426e9f1 100644
--- a/test/source/tests/settings.ts
+++ b/test/source/tests/settings.ts
@@ -131,7 +131,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - test pass phrase',
+ 'settings - test passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.compatibility@gmail.com';
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
@@ -153,27 +153,27 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
const baseUrl = `chrome/elements/passphrase.htm?acctEmail=${acctEmail}&longids=${longid}&parentTabId=`;
let passphrasePage = await browser.newPage(t, baseUrl.concat('&type=sign'));
await passphrasePage.waitForSelTestState('ready');
- expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to sign email');
+ expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to sign email');
await passphrasePage.close();
passphrasePage = await browser.newPage(t, baseUrl.concat('&type=message'));
await passphrasePage.waitForSelTestState('ready');
- expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to read encrypted email');
+ expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to read encrypted email');
await passphrasePage.close();
passphrasePage = await browser.newPage(t, baseUrl.concat('&type=draft'));
await passphrasePage.waitForSelTestState('ready');
- expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to load a draft');
+ expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to load a draft');
await passphrasePage.close();
passphrasePage = await browser.newPage(t, baseUrl.concat('&type=attachment'));
await passphrasePage.waitForSelTestState('ready');
- expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to decrypt a file');
+ expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to decrypt a file');
await passphrasePage.close();
passphrasePage = await browser.newPage(t, baseUrl.concat('&type=quote'));
await passphrasePage.waitForSelTestState('ready');
- expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to load quoted content');
+ expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to load quoted content');
await passphrasePage.close();
passphrasePage = await browser.newPage(t, baseUrl.concat('&type=backup'));
await passphrasePage.waitForSelTestState('ready');
- expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt pass phrase to back up');
+ expect(await passphrasePage.read('@passphrase-text')).to.equal('Enter FlowCrypt passphrase to back up');
await passphrasePage.close();
})
);
@@ -555,21 +555,21 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
await addKeyPopup.waitAndClick('@source-generate');
// Check if error modal displays correctly when user didn't enter passphrase
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-create-and-save');
- await addKeyPopup.waitAndRespondToModal('warning', 'confirm', 'Pass phrase is needed to protect your private email.');
+ await addKeyPopup.waitAndRespondToModal('warning', 'confirm', 'Passphrase is needed to protect your private email.');
// Check if error modal displays correctly when user enters weak passphrase
await addKeyPopup.waitAndType('@input-step2bmanualcreate-passphrase-1', 'short passphrase');
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-create-and-save');
- await addKeyPopup.waitAndRespondToModal('warning', 'confirm', 'Pass phrase is not strong enough.');
+ await addKeyPopup.waitAndRespondToModal('warning', 'confirm', 'Passphrase is not strong enough.');
// Check if error modal displays correctly when pasphrase doesn't match
const passphrase = 'long enough to suit requirements';
await addKeyPopup.waitAndType('@input-step2bmanualcreate-passphrase-1', passphrase);
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-create-and-save');
- await addKeyPopup.waitAndRespondToModal('warning', 'confirm', 'The pass phrases do not match.');
+ await addKeyPopup.waitAndRespondToModal('warning', 'confirm', 'The passphrases do not match.');
await addKeyPopup.waitAndType('@input-step2bmanualcreate-passphrase-2', passphrase);
// Uncheck backup_inbox to check if backup view correctly displayed
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-backup-inbox');
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-create-and-save');
- await addKeyPopup.waitAndRespondToModal('confirm-checkbox', 'confirm', 'Please write down your pass phrase');
+ await addKeyPopup.waitAndRespondToModal('confirm-checkbox', 'confirm', 'Please write down your passphrase');
await addKeyPopup.waitAndClick('@input-backup-step3manual-no-backup'); // choose no_backup so that it doesn't affect other tests.
await addKeyPopup.waitAndClick('@action-backup-step3manual-continue');
await SettingsPageRecipe.ready(settingsPage);
@@ -597,7 +597,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
await addKeyPopup.waitAndType('@input-step2bmanualcreate-passphrase-2', passphrase);
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-backup-inbox');
await addKeyPopup.waitAndClick('@input-step2bmanualcreate-create-and-save');
- await addKeyPopup.waitAndRespondToModal('confirm-checkbox', 'confirm', 'Please write down your pass phrase');
+ await addKeyPopup.waitAndRespondToModal('confirm-checkbox', 'confirm', 'Please write down your passphrase');
await addKeyPopup.waitAndClick('@input-backup-step3manual-no-backup'); // choose no_backup so that it doesn't affect other tests.
await addKeyPopup.waitAndClick('@action-backup-step3manual-continue');
await SettingsPageRecipe.ready(settingsPage);
@@ -686,13 +686,13 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
});
// change pp - should not ask for pp because already in session
await SettingsPageRecipe.changePassphrase(settingsPage, undefined, newPp);
- // now it will remember the pass phrase so decrypts without asking
+ // now it will remember the passphrase so decrypts without asking
await InboxPageRecipe.checkDecryptMsg(t, browser, {
acctEmail,
threadId: '16819bec18d4e011',
content: ['changed correctly if this can be decrypted'],
});
- // test decrypt - should ask for new pass phrase
+ // test decrypt - should ask for new passphrase
await InboxPageRecipe.checkDecryptMsg(t, browser, {
acctEmail,
threadId: '16819bec18d4e011',
@@ -753,7 +753,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
threadId: '179f6feb575df213',
content: ['changed correctly if this can be decrypted'],
});
- // test decrypt - should ask for new pass phrase
+ // test decrypt - should ask for new passphrase
await InboxPageRecipe.checkDecryptMsg(t, browser, {
acctEmail,
threadId: '179f6feb575df213',
@@ -776,13 +776,13 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
await SettingsPageRecipe.forgetAllPassPhrasesInStorage(settingsPage, passphrase);
// pp wiped after switching to session - should be needed to change pp
await SettingsPageRecipe.changePassphrase(settingsPage, passphrase, newPp);
- // now it will remember the pass phrase so decrypts without asking
+ // now it will remember the passphrase so decrypts without asking
await InboxPageRecipe.checkDecryptMsg(t, browser, {
acctEmail,
threadId: '16819bec18d4e011',
content: ['changed correctly if this can be decrypted'],
});
- // test decrypt - should ask for new pass phrase
+ // test decrypt - should ask for new passphrase
await InboxPageRecipe.checkDecryptMsg(t, browser, {
acctEmail,
threadId: '16819bec18d4e011',
@@ -950,7 +950,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - attachment previews with entering pass phrase',
+ 'settings - attachment previews with entering passphrase',
testWithBrowser(async (t, browser) => {
await BrowserRecipe.setupCommonAcctWithAttester(t, browser, 'compatibility');
const settingsPage = await browser.newExtensionSettingsPage(t, 'flowcrypt.compatibility@gmail.com');
@@ -1314,7 +1314,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - manual backup several keys to file with the same pass phrase',
+ 'settings - manual backup several keys to file with the same passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.multiple@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1386,7 +1386,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - manual backup several keys to inbox with the same strong pass phrase',
+ 'settings - manual backup several keys to inbox with the same strong passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.multiple.inbox2@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1436,7 +1436,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - manual backup several keys to file with a missing but guessed pass phrase',
+ 'settings - manual backup several keys to file with a missing but guessed passphrase',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -1493,7 +1493,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - manual backup several keys to inbox with a missing pass phrase',
+ 'settings - manual backup several keys to inbox with a missing passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.multiple@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1534,12 +1534,12 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
expect(await backupFrame.isDisabled('[data-id="CB0485FE44FC22FF09AF0DB31B383D0334E38B28"]')).to.equal(false);
expect(await backupFrame.isDisabled('[data-id="515431151DDD3EA232B37A4C98ACFA1EADAB5B92"]')).to.equal(false);
await backupFrame.waitAndClick('@action-backup-step3manual-continue');
- await backupFrame.waitAndRespondToModal('error', 'confirm', 'Your keys are protected with different pass phrases');
+ await backupFrame.waitAndRespondToModal('error', 'confirm', 'Your keys are protected with different passphrases');
await settingsPage.close();
})
);
test(
- 'settings - manual backup a key with a missing pass phrase',
+ 'settings - manual backup a key with a missing passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.multiple@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1577,7 +1577,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - manual backup several keys to file with different pass phrases',
+ 'settings - manual backup several keys to file with different passphrases',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.multiple@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1619,7 +1619,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
expect(await backupPage.isDisabled('[data-id="515431151DDD3EA232B37A4C98ACFA1EADAB5B92"]')).to.equal(false);
await backupPage.waitAndClick('@input-backup-step3manual-file');
await backupPage.waitAndClick('@action-backup-step3manual-continue');
- await backupPage.waitAndRespondToModal('error', 'confirm', 'Your keys are protected with different pass phrases');
+ await backupPage.waitAndRespondToModal('error', 'confirm', 'Your keys are protected with different passphrases');
await backupPage.close();
})
);
@@ -1721,7 +1721,7 @@ export const defineSettingsTests = (testVariant: TestVariant, testWithBrowser: T
})
);
test(
- 'settings - manual backup to inbox keys with weak pass phrases results in error',
+ 'settings - manual backup to inbox keys with weak passphrases results in error',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
diff --git a/test/source/tests/setup.ts b/test/source/tests/setup.ts
index 6898cf8ed61..86fd2a9b4c9 100644
--- a/test/source/tests/setup.ts
+++ b/test/source/tests/setup.ts
@@ -237,7 +237,7 @@ export const defineSetupTests = (testVariant: TestVariant, testWithBrowser: Test
);
test(
- 'setup - import key - naked - choose my own pass phrase',
+ 'setup - import key - naked - choose my own passphrase',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -255,7 +255,7 @@ export const defineSetupTests = (testVariant: TestVariant, testWithBrowser: Test
);
test(
- 'setup - import key - naked - auto-generate a pass phrase',
+ 'setup - import key - naked - auto-generate a passphrase',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -272,7 +272,7 @@ export const defineSetupTests = (testVariant: TestVariant, testWithBrowser: Test
})
);
- test.todo('setup - import key - naked - do not supply pass phrase gets error');
+ test.todo('setup - import key - naked - do not supply passphrase gets error');
test(
'setup - import key - fix key self signatures',
@@ -525,7 +525,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - recover with a pass phrase - skip remaining',
+ 'setup - recover with a passphrase - skip remaining',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.compatibility@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -540,7 +540,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - recover with a pass phrase - 1pp1 then 2pp1',
+ 'setup - recover with a passphrase - 1pp1 then 2pp1',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -561,7 +561,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - recover with a pass phrase - 1pp2 then 2pp1',
+ 'setup - recover with a passphrase - 1pp2 then 2pp1',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.compatibility@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -577,7 +577,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - recover with a pass phrase - 2pp1 then 1pp1',
+ 'setup - recover with a passphrase - 2pp1 then 1pp1',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -598,7 +598,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - recover with a pass phrase - 2pp1 then 1pp2',
+ 'setup - recover with a passphrase - 2pp1 then 1pp2',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -619,7 +619,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - recover with a pass phrase - 1pp1 then 1pp2 (shows already recovered), then 2pp1',
+ 'setup - recover with a passphrase - 1pp1 then 1pp2 (shows already recovered), then 2pp1',
testWithBrowser(async (t, browser) => {
t.context.mockApi!.configProvider = new ConfigurationProvider({
attester: {
@@ -933,8 +933,8 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
})
);
- test.todo('setup - recover with a pass phrase - 1pp1 then wrong, then skip');
- // test('setup - recover with a pass phrase - 1pp1 then wrong, then skip', test_with_browser(async (t, browser) => {
+ test.todo('setup - recover with a passphrase - 1pp1 then wrong, then skip');
+ // test('setup - recover with a passphrase - 1pp1 then wrong, then skip', test_with_browser(async (t, browser) => {
// const settingsPage = await BrowserRecipe.open_settings_login_approve(t, browser,'flowcrypt.compatibility@gmail.com');
// await SetupPageRecipe.setup_recover(settingsPage, 'flowcrypt.compatibility.1pp1', {has_recover_more: true, click_recover_more: true});
// await SetupPageRecipe.setup_recover(settingsPage, 'flowcrypt.wrong.passphrase', {wrong_passphrase: true});
@@ -942,7 +942,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
// }));
test(
- 'setup - recover with a pass phrase - no remaining',
+ 'setup - recover with a passphrase - no remaining',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.recovered@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -954,7 +954,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - fail to recover with a wrong pass phrase',
+ 'setup - fail to recover with a wrong passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.recovered@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -969,7 +969,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
);
test(
- 'setup - fail to recover with a wrong pass phrase at first, then recover with good pass phrase',
+ 'setup - fail to recover with a wrong passphrase at first, then recover with good passphrase',
testWithBrowser(async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.recovered@gmail.com';
t.context.mockApi!.configProvider = new ConfigurationProvider({
@@ -1445,7 +1445,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
expect(await myKeyFrame.read('@content-fingerprint')).to.contain('00B0 1158 0796 9D75');
await SettingsPageRecipe.closeDialog(settingsPage);
await Util.sleep(2);
- // check that it does not offer any pass phrase options
+ // check that it does not offer any passphrase options
await SettingsPageRecipe.toggleScreen(settingsPage, 'basic');
const securityFrame = await SettingsPageRecipe.awaitNewPageFrame(settingsPage, '@action-open-security-page', ['security.htm', 'placement=settings']);
await Util.sleep(1);
@@ -1548,7 +1548,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
{
const passphraseDialog = await gmailPage.getFrame(['passphrase.htm']);
await Util.sleep(2);
- await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt pass phrase to keep your account keys up to date');
+ await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt passphrase to keep your account keys up to date');
await passphraseDialog.waitAndType('@input-pass-phrase', passphrase);
await passphraseDialog.waitAndClick('@action-confirm-pass-phrase-entry');
}
@@ -1624,7 +1624,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
await gmailPage.waitAll('@dialog-passphrase');
{
const passphraseDialog = await gmailPage.getFrame(['passphrase.htm']);
- await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt pass phrase to keep your account keys up to date');
+ await passphraseDialog.waitForContent('@passphrase-text', 'Enter FlowCrypt passphrase to keep your account keys up to date');
await passphraseDialog.waitAndType('@input-pass-phrase', passphrase);
await passphraseDialog.waitAndClick('@action-confirm-pass-phrase-entry');
}
@@ -2075,7 +2075,7 @@ AN8G3r5Htj8olot+jm9mIa5XLXWzMNUZgg==
expect(await myKeyFrame.read('@content-key-expiration')).to.equal('Does not expire');
await SettingsPageRecipe.closeDialog(settingsPage);
await Util.sleep(2);
- // check that it does not offer any pass phrase options
+ // check that it does not offer any passphrase options
await SettingsPageRecipe.toggleScreen(settingsPage, 'basic');
const securityFrame = await SettingsPageRecipe.awaitNewPageFrame(settingsPage, '@action-open-security-page', ['security.htm', 'placement=settings']);
await Util.sleep(1);
diff --git a/test/source/tests/tooling/browser-recipe.ts b/test/source/tests/tooling/browser-recipe.ts
index a68216eba13..b884efd5d7f 100644
--- a/test/source/tests/tooling/browser-recipe.ts
+++ b/test/source/tests/tooling/browser-recipe.ts
@@ -325,7 +325,7 @@ export class BrowserRecipe {
const page = pgpBlockFrame.getPage();
await page.notPresent('@action-finish-session');
const errBadgeContent = await pgpBlockFrame.read('@pgp-error');
- expect(errBadgeContent).to.equal('pass phrase needed');
+ expect(errBadgeContent).to.equal('passphrase needed');
await pgpBlockFrame.notPresent('@action-print');
await pgpBlockFrame.waitAndClick('@action-show-passphrase-dialog', { delay: 1 });
await page.waitAll('@dialog-passphrase');
diff --git a/test/source/tests/unit-node.ts b/test/source/tests/unit-node.ts
index 1d4577444fb..a0bdbb67089 100644
--- a/test/source/tests/unit-node.ts
+++ b/test/source/tests/unit-node.ts
@@ -1095,7 +1095,7 @@ jLwe8W9IMt765T5x5oux9MmPDXF05xHfm4qfH/BMO3a802x5u2gJjJjuknrFdgXY
test('[MsgUtil.decryptMessage] handles long message', async t => {
const data = Buf.fromUtfStr('The test string concatenated many times to produce large output'.repeat(100000));
- const passphrase = 'pass phrase';
+ const passphrase = 'passphrase';
const prv = await KeyUtil.parse(prvEncryptForSubkeyOnly);
const encrypted = await MsgUtil.encryptMessage({
pubkeys: [await KeyUtil.asPublicKey(prv)],
@@ -1373,7 +1373,7 @@ jSB6A93JmnQGIkAem/kzGkKclmfAdGfc4FS+3Cn+6Q==Xmrz
test('[MsgUtil.encryptMessage] do not decrypt message when encrypted for key not meant for encryption', async t => {
const data = Buf.fromUtfStr('hello');
- const passphrase = 'pass phrase';
+ const passphrase = 'passphrase';
const tmpPrv = await KeyUtil.parse(prvEncryptForSubkeyOnly);
await KeyUtil.encrypt(tmpPrv, passphrase);
expect(tmpPrv.fullyEncrypted).to.equal(true);