ezmlm-web interface:

* move gnupg key generation process into the background if possible
* declare non-configurable variables _after_ reading the configuration
  file, thus preventing them from being accidentaly "configured"
This commit is contained in:
lars 2008-10-15 01:05:48 +00:00
parent 0afddf2487
commit 5b98b18ff9
20 changed files with 278 additions and 35 deletions

View file

@ -33,6 +33,7 @@ use MIME::QuotedPrint;
# optional modules - they will be loaded later if they are available
#Encode
#POSIX
#Mail::Ezmlm::GpgEzmlm
#Mail::Ezmlm::GpgKeyRing
#Mail::Address OR Email::Address
@ -70,7 +71,7 @@ $UID = $EUID;
$GID = $EGID;
my $VERSION;
$VERSION = '3.3~rc1';
$VERSION = '3.3.1';
my $q = new CGI;
$q->import_names('Q');
@ -106,23 +107,12 @@ use vars qw[$DEFAULT_INTERFACE_TYPE];
use vars qw[$ENCRYPTION_SUPPORT $GPG_KEYRING_DEFAULT_LOCATION];
# settings for multi-domain setups
use vars qw[%DOMAINS $CURRENT_DOMAIN];
# cached data
use vars qw[%CACHED_DATA];
# available features
use vars qw[%FEATURES];
# some deprecated configuration settings - they have to be registered
# otherwise old configuration files would break
use vars qw[$HTML_CSS_FILE]; # replaced by HTML_CSS_COMMON since v3.2
# "pagedata" contains the hdf tree for clearsilver
# "pagename" refers to the template file that should be used
# "ui_template" is one of "basic", "normal" and "expert"
use vars qw[$pagedata $pagename];
use vars qw[$error $customError $warning $customWarning $success];
use vars qw[$ui_template $LOGIN_NAME];
# Get user configuration stuff
my $config_file;
if (defined($opt_C)) {
@ -148,6 +138,22 @@ unless (my $return = do $config_file) {
}
# define some more variables, that may not be manipulated via the config
# file
# "pagedata" contains the hdf tree for clearsilver
# "pagename" refers to the template file that should be used
# "ui_template" is one of "basic", "normal" and "expert"
use vars qw[$pagedata $pagename];
use vars qw[$error $customError $warning $customWarning $success];
use vars qw[$ui_template $LOGIN_NAME];
use vars qw[$posix_enabled $child_return];
# cached data
use vars qw[%CACHED_DATA];
# available features
use vars qw[%FEATURES];
####### validate configuration and apply some default settings ##########
# do we support encrypted mailing lists an keyring management?
@ -287,6 +293,9 @@ unless (defined($MAIL_ADDRESS_PREFIX)) {
# get the current login name advertised to the webserver (if it is defined)
$LOGIN_NAME = lc($ENV{'REMOTE_USER'});
# check if the POSIX module is available
$posix_enabled = &safely_import_module("POSIX");
###################### process a request ########################
@ -493,7 +502,10 @@ if (defined($action) && ($action eq 'show_mime_examples')) {
if (($subset =~ /^[\w]*$/)
&& (-e "$TEMPLATE_DIR/gnupg_$subset" . ".cs")) {
if ($action eq 'gnupg_do') {
$success = 'UpdateGnupg' if (&manage_gnupg_keys($list));
if (&manage_gnupg_keys($list)) {
# some functions may set 'success' on their own
$success = 'UpdateGnupg' unless $success;
}
} else {
# warnings are defined in the respective subs
$pagename = 'gnupg_' . $subset;
@ -2104,10 +2116,21 @@ sub gnupg_import_key {
# ------------------------------------------------------------------------
# cleanup child processes, that are finished
sub reap_child {
# we may not overwrite the current error setting
local $!;
wait();
$child_return = $?;
}
# ------------------------------------------------------------------------
sub gnupg_generate_key {
my $list = shift;
my ($keyring, $key_name, $key_comment, $key_size, $key_expires);
my ($child_pid);
$keyring = get_keyring($list);
@ -2150,13 +2173,68 @@ sub gnupg_generate_key {
return (1==0);
}
if ($keyring->generate_private_key($key_name, $key_comment,
&get_listaddress($list), $key_size, $key_expires)) {
$pagename = 'gnupg_secret';
return (0==0);
# do the key generation - preferably in the background
if ($posix_enabled) {
# we can try to put the key generation into the background
$child_return = 0;
# we need to cleanup zombie processes
local $SIG{CHLD} = \&reap_child;
$child_pid = POSIX::fork();
if (!defined($child_pid)) {
# forking failed
warn "[ezmlm-web] failed to fork process for key generation: $!";
$error = 'GnupgGenerateKey';
return (0==1);
} elsif ($child_pid == 0) {
# this is the child process
# we will disconnect from the parent process and call gpg
# the following code is taken from "man perlipc"
chdir('/') or die "Can't chdir to /: $!";
open(STDIN, '/dev/null') or die "Can't read /dev/null: $!";
open(STDOUT, '>/dev/null') or die "Can't write to /dev/null: $!";
# the child continues ...
POSIX::setsid() or die "Can't start a new session: $!";
open(STDERR, '>&STDOUT') or die "Can't dup stdout: $!";
# now we are completely disconnected from the parent process
if ($keyring->generate_private_key($key_name, $key_comment,
&get_listaddress($list), $key_size, $key_expires)) {
# the child process finished its job
# avoid to call destructors and so on - just use "_exit" instead
# of "exit".
POSIX::_exit(0);
} else {
# report an eror back
POSIX::_exit(1);
}
} else {
# this is the parent process - we will wait for the child for about
# five seconds. If it still did not return an error, then the key
# generation seems to be running without problems.
sleep 5;
# check if the child process is still alive
if ($child_return == 0) {
# the child did return an error - it seems to run successfully
$pagename = 'gnupg_secret';
$success = 'GnupgGenerateKeyInBackground';
return (0==0);
} else {
# the child died with an error
$error = 'GnupgGenerateKey';
return (0==1);
}
}
} else {
$error = 'GnupgGenerateKey';
return (0==1);
# no POSIX module available - thus we will run the key generation
# directly. This will most likely block the web interface for some time.
if ($keyring->generate_private_key($key_name, $key_comment,
&get_listaddress($list), $key_size, $key_expires)) {
$pagename = 'gnupg_secret';
$success = 'GnupgGenerateKey';
return (0==0);
} else {
$error = 'GnupgGenerateKey';
return (0==1);
}
}
}

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n"
"POT-Creation-Date: 2008-10-14 02:33+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n"
"POT-Creation-Date: 2008-10-14 02:33+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n"
"POT-Creation-Date: 2008-10-14 02:33+0200\n"
"PO-Revision-Date: 2008-10-12 01:40+0200\n"
"Last-Translator: Lars Kruse <lars@systemausfall.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -512,6 +512,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "Der Schlüssel wurde importiert."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "Verschlüsselung für die Mailingliste ist nun aktiv."

View file

@ -498,6 +498,16 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "The key was successfully imported."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr "The key was created successfully."
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
"The key is created in the background. It will be visible in a few minutes."
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "Encryption is now enabled for this list."

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web 3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2008-09-13 19:51+0200\n"
"Last-Translator: Jose Luis Martinez <jlmartinez@capside.com>\n"
"Language-Team: <>\n"
@ -510,6 +510,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "La clave se importó con éxito."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "La encriptación está habilitada para esta lista."

View file

@ -492,6 +492,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:24+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2008-04-24 10:34+0200\n"
"Last-Translator: Lionel <ouhaich@razzer.net>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -506,6 +506,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2007-12-19 06:54+0000\n"
"Last-Translator: kkk <kamu@hcf.hu>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "A kulcs sikeresen importálva!"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "A titkosítás bekapcsolva a listára!"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -508,6 +508,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: 2008-08-20 09:47+0200\n"
"Last-Translator: kinneko <kinneko@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -509,6 +509,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -633,6 +633,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "Chave importada com sucesso"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
#, fuzzy
msgid "Encryption is now enabled for this list."

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -511,6 +511,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "Chave importada com sucesso"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "Criptografia está agora ativada na lista."

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: 2008-05-22 10:27+0200\n"
"Last-Translator: azlk <azlk@mail.ru>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -509,6 +509,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "Ключ успешно импортирован."
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "Шифрование для этого списка теперь включено."

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -511,6 +511,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr "Ključ je bil uspešno uvožen"
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr "Šifriranje za ta seznam je zdaj omogočeno "

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ezmlm-web v3.3\n"
"Report-Msgid-Bugs-To: devel@sumpfralle.de\n"
"POT-Creation-Date: 2008-10-12 01:25+0200\n"
"POT-Creation-Date: 2008-10-14 02:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -507,6 +507,15 @@ msgstr ""
msgid "The key was successfully imported."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKey
msgid "The key was created successfully."
msgstr ""
#: Lang.SuccessMessage.GnupgGenerateKeyInBackground
msgid ""
"The key is created in the background. It will be visible in a few minutes."
msgstr ""
#: Lang.SuccessMessage.GpgEzmlmConvertEnable
msgid "Encryption is now enabled for this list."
msgstr ""

View file

@ -150,6 +150,8 @@ Lang {
SaveFile = The file was saved.
ResetFile = The customized text file was successfully removed. From now on, the system-wide default text file will be used instead of it.
GnupgKeyImport = The key was successfully imported.
GnupgGenerateKey = The key was created successfully.
GnupgGenerateKeyInBackground = The key is created in the background. It will be visible in a few minutes.
GpgEzmlmConvertEnable = Encryption is now enabled for this list.
GpgEzmlmConvertDisable = Encryption is now disabled for this list.
}