prepare new release of v0.3.4 with Japanese translation

This commit is contained in:
lars 2007-02-26 23:39:42 +00:00
parent d2e91a7f08
commit 71ea9cd469
729 changed files with 120489 additions and 0 deletions

View file

@ -0,0 +1,256 @@
#
# Copyright 2007 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""Create an SSL certificate to encrypt the webinterface connection via stunnel
requires:
- stunnel (>= 4.0)
- "M2Crypto" python module
"""
__revision__ = "$Id"
import cryptobox.plugins.base
import subprocess
import os
import cherrypy
CERT_FILENAME = 'cryptobox-ssl-certificate.pem'
KEY_BITS = 1024
ISSUER_INFOS = {
"ST": "SomeIssuerState",
"L": "SomeIssuerLocality",
"O": "SomeIssuerOrganization",
"OU": "CryptoBox-ServerIssuer",
"CN": "cryptoboxIssuer",
"emailAddress": "infoIssuer@cryptobox.org"}
CERT_INFOS = {
"ST": "SomeState",
"L": "SomeLocality",
"O": "SomeOrganization",
"OU": "CryptoBox-Server",
"CN": "*",
"emailAddress": "info@cryptobox.org"}
EXPIRE_TIME = 60*60*24*365*20 # 20 years forward and backward
SIGN_DIGEST = "md5"
PID_FILE = os.path.join("/tmp/cryptobox-stunnel.pid")
class encrypted_webinterface(cryptobox.plugins.base.CryptoBoxPlugin):
"""Provide an encrypted webinterface connection via stunnel
"""
plugin_capabilities = [ "system" ]
plugin_visibility = []
request_auth = True
rank = 80
def do_action(self):
"""The action handler.
"""
return None
def get_status(self):
"""Retrieve the current state of the webinterface connection
"""
if self.__is_encrypted():
return "1"
else:
return "0"
def get_warnings(self):
"""check if the connection is encrypted
"""
warnings = []
## check if m2crypto is available
try:
import M2Crypto
except ImportError:
warnings.append((45, "Plugins.%s.MissingModuleM2Crypto" % self.get_name()))
if not os.path.isfile(self.root_action.STUNNEL_BIN):
warnings.append((44, "Plugins.%s.MissingProgramStunnel" % self.get_name()))
if not self.__is_encrypted():
## plaintext connection -> "heavy security risk" (priority=20..39)
warnings.append((25, "Plugins.%s.NoSSL" % self.get_name()))
return warnings
def __is_encrypted(self):
"""perform some checks for encrypted connections
"""
if cherrypy.request.scheme == "https":
return True
## check an environment setting - this is quite common behind proxies
if os.environ.has_key("HTTPS"):
return True
## check if it is a local connection (or via stunnel)
if cherrypy.request.headers.has_key("Remote-Host") \
and (cherrypy.request.headers["Remote-Host"] == "127.0.0.1"):
return True
## the arbitrarily chosen header is documented in README.proxy
if cherrypy.request.headers.has_key("X-SSL-Request") \
and (cherrypy.request.headers["X-SSL-Request"] == "1"):
return True
## it looks like a plain connection
return False
def handle_event(self, event, event_info=None):
"""Create a certificate during startup (if it does not exist) and run stunnel
"""
if event == "bootup":
cert_abs_name = self.cbox.prefs.get_misc_config_filename(CERT_FILENAME)
if not os.path.isfile(cert_abs_name):
try:
cert = self.__get_certificate()
self.cbox.prefs.create_misc_config_file(CERT_FILENAME, cert)
self.cbox.log.info("Created new SSL certificate: %s" % \
cert_abs_name)
## make it non-readable for other users
try:
os.chmod(cert_abs_name, 0600)
except OSError, err_msg:
self.cbox.log.warn("Failed to change permissions of secret " \
+ "certificate file (%s): %s" % \
(cert_abs_name, err_msg))
except IOError, err_msg:
## do not run stunnel without a certificate
self.cbox.log.warn("Failed to create new SSL certificate (%s): %s" \
% (cert_abs_name, err_msg))
return
self.__run_stunnel(cert_abs_name)
elif event == "shutdown":
self.__kill_stunnel()
def __kill_stunnel(self):
"""try to kill a running stunnel daemon
"""
if not os.path.isfile(PID_FILE):
self.cbox.log.warn("Could not find the pid file of a running stunnel " \
+ "daemon: %s" % PID_FILE)
return
try:
pfile = open(PID_FILE, "r")
try:
pid = pfile.read().strip()
except IOError, err_msg:
self.cbox.log.warn("Failed to read the pid file (%s): %s" % (PID_FILE, err_msg))
pfile.close()
return
pfile.close()
except IOError, err_msg:
self.cbox.log.warn("Failed to open the pid file (%s): %s" % (PID_FILE, err_msg))
return
if pid.isdigit():
pid = int(pid)
else:
return
try:
## SIGTERM = 15
os.kill(pid, 15)
self.cbox.log.info("Successfully stopped stunnel")
try:
os.remove(PID_FILE)
except OSError, err_msg:
self.cbox.log.warn("Failed to remove the pid file (%s) of stunnel: %s" \
% (PID_FILE, err_msg))
except OSError, err_msg:
self.cbox.log.warn("Failed to kill stunnel process (PID: %d): %s" % \
(pid, err_msg))
def __run_stunnel(self, cert_name, dest_port=443):
## retrieve currently requested port (not necessarily the port served
## by cherrypy - e.g. in a proxy setup)
request_port = cherrypy.config.get("server.socket_port", 80)
self.cbox.log.debug("[encrypted_webinterface] starting " \
+ "%s on port %s for %s" % \
(self.root_action.STUNNEL_BIN, dest_port, request_port))
proc = subprocess.Popen(
shell = False,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
args = [
self.cbox.prefs["Programs"]["super"],
self.cbox.prefs["Programs"]["CryptoBoxRootActions"],
"plugin", os.path.join(self.plugin_dir, "root_action.py"),
cert_name,
str(request_port),
str(dest_port),
PID_FILE ])
(output, error) = proc.communicate()
if proc.returncode == 0:
self.cbox.log.info("Successfully started 'stunnel'")
return True
else:
self.cbox.log.warn("Failed to run 'stunnel': %s" % error)
return False
def __get_certificate(self):
"""Create a self-signed certificate and return its pem content
The code is mainly inspired by:
https://dev.tribler.org/browser/m2crypto/trunk/contrib/SimpleX509create.py
"""
import M2Crypto
import time
string_type = 0x1000 | 1 # see http://www.koders.com/python/..
# ../fid07A99E089F55187896A06CD4E0B6F21B9B8F5B0B.aspx?s=bavaria
key_gen_number = 0x10001 # commonly used for key generation: 65537
rsa_key = M2Crypto.RSA.gen_key(KEY_BITS, key_gen_number, callback=lambda: None)
rsa_key2 = M2Crypto.RSA.gen_key(KEY_BITS, key_gen_number, callback=lambda: None)
pkey = M2Crypto.EVP.PKey(md=SIGN_DIGEST)
pkey.assign_rsa(rsa_key)
sign_key = M2Crypto.EVP.PKey(md=SIGN_DIGEST)
sign_key.assign_rsa(rsa_key2)
subject = M2Crypto.X509.X509_Name()
for (key, value) in CERT_INFOS.items():
subject.add_entry_by_txt(key, string_type, value, -1, -1, 0)
issuer = M2Crypto.X509.X509_Name(M2Crypto.m2.x509_name_new())
for (key, value) in ISSUER_INFOS.items():
issuer.add_entry_by_txt(key, string_type, value, -1, -1, 0)
## time object
asn_time1 = M2Crypto.ASN1.ASN1_UTCTIME()
asn_time1.set_time(long(time.time()) - EXPIRE_TIME)
asn_time2 = M2Crypto.ASN1.ASN1_UTCTIME()
asn_time2.set_time(long(time.time()) + EXPIRE_TIME)
request = M2Crypto.X509.Request()
request.set_subject_name(subject)
request.set_pubkey(pkey)
request.sign(pkey=pkey, md=SIGN_DIGEST)
cert = M2Crypto.X509.X509()
## always create a unique version number
cert.set_version(0)
cert.set_serial_number(long(time.time()))
cert.set_pubkey(pkey)
cert.set_not_before(asn_time1)
cert.set_not_after(asn_time2)
cert.set_subject_name(request.get_subject())
cert.set_issuer_name(issuer)
cert.sign(pkey, SIGN_DIGEST)
result = ""
result += cert.as_pem()
result += pkey.as_pem(cipher=None)
return result

View file

@ -0,0 +1,35 @@
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,49 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\n"
"PO-Revision-Date: 2007-02-19 02:49+0100\n"
"Last-Translator: Lars Kruse <lars@systemausfall.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr "Verschlüsseltes Web-Interface"
#: Title
msgid "Create encryption certificate"
msgstr "Erzeuge Verschlüsselungszertifikat"
#: Button.CreateCertificate
msgid "Create certificate"
msgstr "Erzeuge Zertifikat"
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr "Die Verbindung ist unverschlüsselt - Passworte sind leicht abhörbar. "
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr "Nutze verschlüsselte Verbindung"
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr "Fehlendes Modul"
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr "Das Python-Modul 'M2Crypto' fehlt. Es ist für eine automatisierte Verschlüsselung der Verbindung zum CryptoBox-Web-Interface erforderlich. Du solltest den Administrator des CryptoBox-Servers um die Installation dieses Moduls bitten."
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr "Fehlendes Programm"
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr "Das Programm 'stunnel4' fehlt. Du solltest den Administrator des CryptoBox-Servers darum bitten, die Konfiguration zu prüfen."

View file

@ -0,0 +1,37 @@
#: Name
msgid "Encrypted webinterface"
msgstr "Encrypted webinterface"
#: Title
msgid "Create encryption certificate"
msgstr "Create encryption certificate"
#: Button.CreateCertificate
msgid "Create certificate"
msgstr "Create certificate"
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr "The connection is not encrypted - passwords can be easily intercepted."
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr "Use encrypted connection"
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr "Missing module"
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr "Missing program"
#: EnvironmentWarning.MissingProgramStunnel.Text
#, fuzzy
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,49 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\n"
"PO-Revision-Date: 2007-02-16 14:21+0100\n"
"Last-Translator: tenzin <clavdiaa@yahoo.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr "Šifriran spletni vmesnik"
#: Title
msgid "Create encryption certificate"
msgstr "Ustvari šifriran certifikat (potrdilo)"
#: Button.CreateCertificate
msgid "Create certificate"
msgstr "Ustvari certifikat"
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr "Povezava ni šifrirana - gesla je možno prestreči!"
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr "Uporabi šifrirano povezavo"
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr "Manjka modul"
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr "Python modul \"M2Crypto\" manjka. Potreben je vkolikor želite imeti šifrirano povezavo s spletnim vmesnikom Cryptobox. Prosite administratorja Cryptobox strežnika naj namesti modul "
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr "Manjka program"
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr "Program \"stunnel\" ni nameščen. Prosite administratorja Cryptobox strežnika naj program pravilno namesti"

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,50 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-10 01:24+0100\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
#: Name
msgid "Encrypted webinterface"
msgstr ""
#: Title
msgid "Create encryption certificate"
msgstr ""
#: Button.CreateCertificate
msgid "Create certificate"
msgstr ""
#: EnvironmentWarning.NoSSL.Text
msgid "The connection is not encrypted - passwords can be easily intercepted."
msgstr ""
#: EnvironmentWarning.NoSSL.Link.Text
msgid "Use encrypted connection"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Title
msgid "Missing module"
msgstr ""
#: EnvironmentWarning.MissingModuleM2Crypto.Text
msgid "The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module."
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Title
msgid "Missing program"
msgstr ""
#: EnvironmentWarning.MissingProgramStunnel.Text
msgid "The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly."
msgstr ""

View file

@ -0,0 +1,26 @@
Name = Encrypted webinterface
Link = Encrypted webinterface
Title = Create encryption certificate
Button.CreateCertificate = Create certificate
EnvironmentWarning {
NoSSL {
Text = The connection is not encrypted - passwords can be easily intercepted.
Link.Text = Use encrypted connection
Link.Prot = https
}
MissingModuleM2Crypto {
Title = Missing module
Text = The python module 'M2Crypto' is missing. It is required for an encrypted connection to the CryptoBox webinterface. Please ask the administrator of the CryptoBox server to install the module.
}
MissingProgramStunnel {
Title = Missing program
Text = The program 'stunnel4' is not installed. Please ask the administrator of the CryptoBox server to configure it properly.
}
}

View file

@ -0,0 +1,92 @@
#!/usr/bin/env python
#
# Copyright 2007 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
__revision__ = "$Id"
## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script
PLUGIN_TYPE = "cryptobox"
STUNNEL_BIN = "/usr/bin/stunnel4"
import sys
import os
def _get_username():
if ("SUPERCMD" in os.environ) and ("ORIG_USER" in os.environ):
return os.environ["ORIG_USER"]
elif "USER" in os.environ:
return os.environ["USER"]
else:
return "cryptobox"
def run_stunnel(cert_file, src_port, dst_port, pid_file):
import subprocess
if not src_port.isdigit():
sys.stderr.write("Source port is not a number: %s" % src_port)
return False
if not dst_port.isdigit():
sys.stderr.write("Destination port is not a number: %s" % dst_port)
return False
if not os.path.isfile(cert_file):
sys.stderr.write("The certificate file (%s) does not exist!" % cert_file)
return False
username = _get_username()
if not username:
sys.stderr.write("Could not retrieve the username with uid=%d." % os.getuid())
return False
## the environment (especially PATH) should be clean, as 'stunnel' cares about
## this in a setuid situation
proc = subprocess.Popen(
shell = False,
env = {},
stdin = subprocess.PIPE,
args = [ STUNNEL_BIN,
"-fd",
"0"])
proc.stdin.write("setuid = %s\n" % username)
proc.stdin.write("pid = %s\n" % pid_file)
proc.stdin.write("[cryptobox-server]\n")
proc.stdin.write("connect = %s\n" % src_port)
proc.stdin.write("accept = %s\n" % dst_port)
proc.stdin.write("cert = %s\n" % cert_file)
(output, error) = proc.communicate()
return proc.returncode == 0
if __name__ == "__main__":
args = sys.argv[1:]
self_bin = sys.argv[0]
if len(args) != 4:
sys.stderr.write("%s: invalid number of arguments (%d instead of %d))\n" % \
(self_bin, len(args), 4))
sys.exit(1)
if not run_stunnel(args[0], args[1], args[2], args[3]):
sys.stderr.write("%s: failed to run 'stunnel'!" % self_bin)
sys.exit(100)
sys.exit(0)

View file

@ -0,0 +1,34 @@
#
# Copyright 2007 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
__revision__ = "$Id"
from cryptobox.tests.base import WebInterfaceTestClass
class unittests(WebInterfaceTestClass):
def test_get_cert_form(self):
"""retrieve the default form of the certificate manager"""
url = self.url + "encrypted_webinterface"
self.register_auth(url)
self.cmd.go(url)
## TODO: enable it, as soon as the plugin is enabled by default
#self.cmd.find("Data.Status.Plugins.encrypted_webinterface")