private string SignAndEncryptEmail(byte[] data, string key, IList<string> recipients)
		{
			try
			{
				if (!PromptForPasswordAndKey())
					return null;

				var context = new CryptoContext(Passphrase);
				var crypto = new PgpCrypto(context);
				var headers = GetEncryptedMailHeaders();

				return crypto.SignAndEncryptText(data, key, recipients, headers);
			}
			catch (Exception ex)
			{
				Passphrase = null;

				WriteErrorData("SignAndEncryptEmail", ex);
				ShowErrorBox(ex.Message);

				throw;
			}
		}