Wizard enhanced, CAserial is stored with the cert as well as a default template

Passwordboxes set focus right (Andrey Brindeew <abr@abr.pp.ru>)
Serial and template can be selected
This commit is contained in:
chris 2002-09-20 00:43:22 +00:00
parent 8624732dd9
commit 5dfd8fe03a
18 changed files with 805 additions and 456 deletions

11
AUTHORS Normal file
View File

@ -0,0 +1,11 @@
Christian Hohnstädt <christian@hohnstaedt.de>
Programming, translation, testing
Kerstin Steinhauff <tine@kerstine.de>
Arts, graphics, testing, SuSE rpm building
David Guerrero <david@boe.es>
Spanish translation, testing, Redhat rpm building

View File

@ -1,16 +0,0 @@
Version: 0.1.0
Date: 02/02/12
===============
RSA Keys are generated and stored to or loaded from a file
in either DER or PEM format.
They get stored in alocal Bercley DB.
Changing their description and viewing their contents, as well
as deleting them from local DB is possible.
No certificates, nor CA or PKCS#10 functionality yet.
CVS - Changelog, generated with rcs2log
=======================================

View File

@ -11,7 +11,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>458</width>
<width>454</width>
<height>349</height>
</rect>
</property>
@ -443,7 +443,7 @@
<property stdset="1">
<name>font</name>
<font>
<pointsize>14</pointsize>
<pointsize>10</pointsize>
<bold>1</bold>
</font>
</property>

View File

@ -173,6 +173,7 @@ int MainWindow::passRead(char *buf, int size, int rwflag, void *userdata)
dlg->title->setText(tr(p->title->c_str()));
dlg->description->setText(tr(p->description->c_str()));
}
dlg->pass->setFocus();
if (dlg->exec()) {
QString x = dlg->pass->text();
strncpy(buf, x.latin1(), size);
@ -190,6 +191,7 @@ int MainWindow::passWrite(char *buf, int size, int rwflag, void *userdata)
dlg->title->setText(tr(p->title->c_str()));
dlg->description->setText(tr(p->description->c_str()));
}
dlg->passA->setFocus();
if (dlg->exec()) {
QString A = dlg->passA->text();
QString B = dlg->passB->text();

View File

@ -139,6 +139,7 @@ class MainWindow: public MainWindow_UI
bool opensslError(pki_base *pki);
QPixmap *loadImg(const char *name);
void renamePKI(db_base *db);
bool alterTemp(pki_temp *temp);
public slots:
void loadKey();
void loadReq();
@ -183,7 +184,7 @@ class MainWindow: public MainWindow_UI
void renameReq(QListViewItem *item, int col, const QString &text);
void renameCert(QListViewItem *item, int col, const QString &text);
void renameTemp(QListViewItem *item, int col, const QString &text);
bool alterTemp(pki_temp *temp);
void alterTemp();
signals:
void keyDone(QString name);
};

View File

@ -12,7 +12,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<width>792</width>
<height>604</height>
</rect>
</property>
@ -680,7 +680,7 @@
</property>
<property stdset="1">
<name>text</name>
<string>Show Details</string>
<string>Change Template</string>
</property>
</widget>
<widget>
@ -719,7 +719,7 @@
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>bigCert_2</cstring>
<cstring>bigTemp</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
@ -951,6 +951,12 @@
<receiver>MainWindow_UI</receiver>
<slot>deleteTemp()</slot>
</connection>
<connection>
<sender>PushButton25_2_2</sender>
<signal>clicked()</signal>
<receiver>MainWindow_UI</receiver>
<slot>alterTemp()</slot>
</connection>
<connection>
<sender>tempList</sender>
<signal>rightButtonPressed(QListViewItem*,const QPoint&amp;,int)</signal>
@ -961,8 +967,9 @@
<sender>tempList</sender>
<signal>doubleClicked(QListViewItem*)</signal>
<receiver>MainWindow_UI</receiver>
<slot>showDetailsTemp(QListViewItem *)</slot>
<slot>alterTemp()</slot>
</connection>
<slot access="public">alterTemp()</slot>
<slot access="public">deleteCert()</slot>
<slot access="public">deleteKey()</slot>
<slot access="public">deleteReq()</slot>
@ -975,7 +982,6 @@
<slot access="public">newKey()</slot>
<slot access="public">newReq()</slot>
<slot access="public">newTemp()</slot>
<slot access="public">showDetailsTemp(QListViewItem *)</slot>
<slot access="public">showDetailsCert()</slot>
<slot access="public">showDetailsCert(QListViewItem *)</slot>
<slot access="public">showDetailsKey()</slot>

View File

@ -62,15 +62,23 @@ void MainWindow::newTemp()
bool MainWindow::alterTemp(pki_temp *temp)
{
NewX509 *dlg = new NewX509(this, NULL, NULL, NULL, NULL, NULL );
NewX509 *dlg = new NewX509(this, NULL, NULL, NULL, NULL, NULL, tempImg );
CERR << ":-) a" << endl;
dlg->fromTemplate(temp);
CERR << ":-) b" << endl;
if (!dlg->exec()) return false;
CERR << ":-) c" << endl;
dlg->toTemplate(temp);
return true;
}
void MainWindow::alterTemp()
{
pki_temp *temp = (pki_temp *)temps->getSelectedPKI();
alterTemp(temp);
}
void MainWindow::deleteTemp()
{
pki_temp *delTemp = (pki_temp *)temps->getSelectedPKI();

View File

@ -60,9 +60,9 @@ void MainWindow::newCert(pki_temp *templ =NULL)
pki_key *signkey = NULL, *clientkey = NULL;
int serial = 42; // :-)
int i;
NewX509 *dlg = new NewX509(this, NULL, keys, reqs, certs, temps );
NewX509 *dlg = new NewX509(this, NULL, keys, reqs, certs, temps, certImg );
if (templ) {
dlg->fromTemplate(templ);
dlg->defineTemplate(templ);
}
if (!dlg->exec()) return;
@ -108,13 +108,6 @@ void MainWindow::newCert(pki_temp *templ =NULL)
// Step 3 - Choose the Date and all the V3 extensions
if (dlg->foreignSignRB->isChecked()) {
// increase serial here
string serhash = signcert->fingerprint(EVP_md5()) + "serial";
serial = settings->getInt(serhash) + 1;
CERR << "serial is: " << serial <<endl;
settings->putInt(serhash, serial);
}
// Date handling
int x = dlg->validNumber->text().toInt();
int days = dlg->validRange->currentItem();
@ -213,10 +206,16 @@ void MainWindow::newCert(pki_temp *templ =NULL)
CERR << "IssAltName:" << issAltName<< endl;
cert->addV3ext(NID_issuer_alt_name, issAltName);
}
if (opensslError(cert)) return;
// increase serial here
if (dlg->foreignSignRB->isChecked()) {
serial = signcert->getCaSerial();
certs->updatePKI(signcert); // not so pretty ....
CERR << "serial is: " << serial <<endl;
}
// and finally sign the request
cert->sign(signkey);
if (opensslError(cert)) return;
@ -510,8 +509,8 @@ void MainWindow::writePKCS12()
void MainWindow::showPopupCert(QListViewItem *item, const QPoint &pt, int x) {
CERR << "hallo popup" << endl;
QPopupMenu *menu = new QPopupMenu(this);
int itemExtend, itemRevoke, itemTrust;
bool canSign;
int itemExtend, itemRevoke, itemTrust, itemSerial;
bool canSign, parentCanSign;
if (!item) {
menu->insertItem(tr("New Certificate"), this, SLOT(newCert()));
menu->insertItem(tr("Import"), this, SLOT(loadCert()));
@ -524,6 +523,8 @@ void MainWindow::showPopupCert(QListViewItem *item, const QPoint &pt, int x) {
menu->insertItem(tr("Delete"), this, SLOT(deleteCert()));
itemTrust = menu->insertItem(tr("Trust"), this, SLOT(setTrust()));
menu->insertSeparator();
itemSerial = menu->insertItem(tr("CA serial"));
menu->insertSeparator();
itemExtend = menu->insertItem(tr("Extend"));
if (cert) {
if (cert->isRevoked()) {
@ -532,10 +533,13 @@ void MainWindow::showPopupCert(QListViewItem *item, const QPoint &pt, int x) {
}
else
itemRevoke = menu->insertItem(tr("Revoke"), this, SLOT(revoke()));
canSign = (cert->getSigner() && (cert->getSigner()->getKey() != NULL)) && (cert->getSigner() != cert);
parentCanSign = (cert->getSigner() && cert->getSigner()->canSign() && (cert->getSigner() != cert));
canSign = cert->canSign();
}
menu->setItemEnabled(itemExtend, canSign);
menu->setItemEnabled(itemRevoke, canSign);
menu->setItemEnabled(itemExtend, parentCanSign);
menu->setItemEnabled(itemRevoke, parentCanSign);
menu->setItemEnabled(itemSerial, canSign);
}
menu->exec(pt);
return;

View File

@ -54,9 +54,9 @@
void MainWindow::newReq(pki_temp *temp=NULL)
{
NewX509 *dlg = new NewX509(this, 0, keys, NULL, NULL, temps);
NewX509 *dlg = new NewX509(this, 0, keys, NULL, NULL, temps, csrImg);
if (temp) {
dlg->fromTemplate(temp);
dlg->defineTemplate(temp);
}
dlg->setRequest();
//dlg->image->setPixmap(*csrImg);

View File

@ -67,20 +67,20 @@ distclean: clean
dist:
rm -rf ../$(TARGET)
cvs export -r $(TAG) -d ../$(TARGET) xca
rcs2log >> ../$(TARGET)/CHANGELOG
(cd ../$(TARGET); autoconf; lrelease xca.pro; cat rpm/xca.spec |sed s/VERSION/$(VERSION)/g >rpm/$(TARGET)-1.spec; rm rpm/xca.spec )
(cd ../$(TARGET); autoconf; \
./mkxcapro.sh; lrelease xca.pro; \
cat rpm/xca.spec debian/changelog |sed s/VERSION/$(VERSION)/g >rpm/$(TARGET)-1.spec; \
rm rpm/xca.spec )
(cd ..; tar zcf $(TARGET).tar.gz $(TARGET) )
rm -rf ../$(TARGET)
#rm -rf ../$(TARGET)
install: xca
strip xca
install -m 755 -o root -g root xca $(DESTDIR)@prefix@/bin
install -m 755 -o root -g root -d $(DESTDIR)@prefix@/share/xca
install -m 644 -o root -g root img/*.png $(DESTDIR)@prefix@/share/xca
install -m 644 -o root -g root xca_??.qm $(DESTDIR)@prefix@/share/xca
.SECONDARY:
%_MOC.cpp: %.h %.cpp
$(MOC) $< -o $@

View File

@ -51,7 +51,7 @@
#include "NewX509.h"
NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *req, db_x509 *cert, db_temp *temp)
NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *req, db_x509 *cert, db_temp *temp, QPixmap *image)
:NewX509_UI(parent, name, true, 0)
{
connect( this, SIGNAL(genKey()), parent, SLOT(newKey()) );
@ -60,8 +60,13 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
reqs = req;
temps = temp;
certs = cert;
pki_x509 *possibleSigner;
if (image) {
bigImg1->setPixmap(*image);
bigImg2->setPixmap(*image);
bigImg3->setPixmap(*image);
}
QStringList strings;
// are there any useable private keys ?
if (keys) {
strings = keys->getPrivateDesc();
@ -75,7 +80,7 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
else {
keyList->setEnabled(false);
genKeyBUT->setEnabled(false);
removePage(page3);
setAppropriate(page3, false);
}
// any PKCS#10 requests to be used ?
@ -102,6 +107,13 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
}
else {
certList->insertStringList(strings);
// suggested from: Andrey Brindeew <abr@abr.pp.ru>
possibleSigner=(pki_x509 *)certs->getSelectedPKI();
if (possibleSigner && possibleSigner->canSign()) {
//const QString name = possibleSigner->getDescription().c_str();
//certList->setCurrentText(name);
foreignSignRB->setChecked(true);
}
}
}
else {
@ -113,30 +125,36 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
if (temps) {
strings = temps->getDesc();
if (strings.isEmpty()) {
removePage(page1);
setAppropriate(page1,false);
}
else {
tempList->insertStringList(strings);
}
}
else {
removePage(page1);
setAppropriate(page1,false);
}
fromDataRB->setChecked(true);
setFinishEnabled(page5,true);
setFinishEnabled(page6,true);
setNextEnabled(page2,false);
}
void NewX509::setRequest()
{
removePage(page3);
removePage(page4);
removePage(page5);
setAppropriate(page3, false);
setAppropriate(page4, false);
setAppropriate(page5, false);
finishButton()->setEnabled(true);
}
void NewX509::defineTemplate(pki_temp *temp)
{
setAppropriate(page1,false);
fromTemplate(temp);
}
void NewX509::fromTemplate(pki_temp *temp)
{
removePage(page1);
countryName->setText(temp->C.c_str());
stateOrProvinceName->setText(temp->P.c_str());
localityName->setText(temp->L.c_str());
@ -168,11 +186,9 @@ void NewX509::dataChangeP2()
{
if (description->text() != "" || fromReqRB->isChecked()) {
setNextEnabled(page2,true);
finishButton()->setEnabled(true);
}
else {
setNextEnabled(page2,false);
finishButton()->setEnabled(false);
}
}
@ -181,6 +197,7 @@ void NewX509::showPage(QWidget *page)
if ( page == page2 ) {
dataChangeP2();
}
else if ( page == page3 ) {
if (!selfSignRB->isChecked() && !foreignSignRB->isChecked()) {
@ -198,6 +215,25 @@ void NewX509::showPage(QWidget *page)
QWizard::showPage(page);
}
void NewX509::templateChanged()
{
pki_temp *temp = (pki_temp *)temps->getSelectedPKI(tempList->currentText().latin1());
fromTemplate(temp);
}
void NewX509::switchExtended()
{
CERR << "SWITCH Extended" <<endl;
if (changeDefault->isChecked()) {
setAppropriate(page4, true);
setAppropriate(page5, true);
}
else {
setAppropriate(page4, false);
setAppropriate(page5, false);
}
}
void NewX509::setDisabled(int state)
{

View File

@ -59,6 +59,9 @@
#include <qframe.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qgroupbox.h>
#include <qcheckbox.h>
#include <qlabel.h>
#ifndef NEWX509_H
#define NEWX509_H
@ -73,17 +76,20 @@ class NewX509: public NewX509_UI
db_key *keys;
db_temp *temps;
public:
NewX509(QWidget *parent, const char *name, db_key *key, db_x509req *req, db_x509 *cert, db_temp *temp);
NewX509(QWidget *parent, const char *name, db_key *key, db_x509req *req, db_x509 *cert, db_temp *temp, QPixmap *image);
void setRequest(); // reduce to requestform
void showPage(QWidget *page);
void toTemplate(pki_temp *temp);
void fromTemplate(pki_temp *temp);
void defineTemplate(pki_temp *temp);
public slots:
void setDisabled(int state);
void newKey();
void dataChangeP2();
void newKeyDone(QString name);
void switchExtended();
void templateChanged();
signals:
void genKey();

View File

@ -12,7 +12,7 @@
<x>0</x>
<y>0</y>
<width>571</width>
<height>400</height>
<height>444</height>
</rect>
</property>
<property stdset="1">
@ -24,6 +24,170 @@
<name>caption</name>
<string>Certificate creation</string>
</property>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>page0</cstring>
</property>
<attribute>
<name>title</name>
<string>Page0</string>
</attribute>
<vbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout15</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<spacer>
<property>
<name>name</name>
<cstring>Spacer33</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>bigImg1</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>200</width>
<height>94</height>
</size>
</property>
<property stdset="1">
<name>scaledContents</name>
<bool>true</bool>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer34</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</hbox>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer35</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Vertical</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Welcome to the certificate wizard helping you creating certificates from scratch or from certificate signing request.
This can be done using one of the templates below.
(More to come, for Reqs and templates too :-)</string>
</property>
<property stdset="1">
<name>alignment</name>
<set>WordBreak|AlignTop|AlignLeft</set>
</property>
<property>
<name>vAlign</name>
</property>
<property>
<name>wordwrap</name>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer36</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Vertical</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</vbox>
</widget>
<widget>
<class>QWidget</class>
<property stdset="1">
@ -44,22 +208,81 @@
<number>6</number>
</property>
<widget>
<class>QLabel</class>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel2_3</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Please choose from the templates the one to use for the new certificate or request</string>
</property>
<property stdset="1">
<name>alignment</name>
<set>WordBreak|AlignVCenter|AlignLeft</set>
</property>
<property>
<name>wordwrap</name>
<cstring>Layout16</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<spacer>
<property>
<name>name</name>
<cstring>Spacer37</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>bigImg2</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>200</width>
<height>94</height>
</size>
</property>
<property stdset="1">
<name>scaledContents</name>
<bool>true</bool>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer38</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</hbox>
</widget>
<spacer>
<property>
@ -83,15 +306,19 @@
</property>
</spacer>
<widget>
<class>QLayoutWidget</class>
<class>QGroupBox</class>
<property stdset="1">
<name>name</name>
<cstring>Layout7</cstring>
<cstring>templateFrame</cstring>
</property>
<hbox>
<property stdset="1">
<name>title</name>
<string>Template</string>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
@ -101,11 +328,18 @@
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1</cstring>
<cstring>TextLabel2_3</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Template</string>
<string>Please choose from the templates the one to use for the new certificate or request</string>
</property>
<property stdset="1">
<name>alignment</name>
<set>WordBreak|AlignVCenter|AlignLeft</set>
</property>
<property>
<name>wordwrap</name>
</property>
</widget>
<widget>
@ -122,7 +356,18 @@
</sizepolicy>
</property>
</widget>
</hbox>
<widget>
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>changeDefault</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Change default settings of the template</string>
</property>
</widget>
</vbox>
</widget>
<spacer>
<property>
@ -666,7 +911,7 @@ For a SSL servercertificate choose the DNS name of the server as "Common name"</
<name>title</name>
<string>New Certificate Step 4</string>
</attribute>
<grid>
<vbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
@ -675,83 +920,28 @@ For a SSL servercertificate choose the DNS name of the server as "Common name"</
<name>spacing</name>
<number>6</number>
</property>
<widget row="6" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<spacer>
<property>
<name>name</name>
<cstring>crlDist</cstring>
</property>
</widget>
<widget row="6" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2_3_2</cstring>
<cstring>Spacer39</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>CRL distribution point</string>
</property>
</widget>
<widget row="5" column="1" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>issAltCp</cstring>
<name>orientation</name>
<enum>Vertical</enum>
</property>
<property stdset="1">
<name>text</name>
<string>Copy issuer name</string>
<name>sizeType</name>
<enum>Expanding</enum>
</property>
</widget>
<widget row="4" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2_2_2</cstring>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property stdset="1">
<name>text</name>
<string>issuer alternative name</string>
</property>
</widget>
<widget row="4" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>issAltName</cstring>
</property>
</widget>
<widget row="3" column="1" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>subAltCp</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Copy e-mail address from subject line</string>
</property>
</widget>
<widget row="2" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>subAltName</cstring>
</property>
</widget>
<widget row="2" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>subject alternative name</string>
</property>
</widget>
<widget row="0" column="0" rowspan="1" colspan="2" >
</spacer>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
@ -971,7 +1161,7 @@ For a SSL servercertificate choose the DNS name of the server as "Common name"</
</widget>
</hbox>
</widget>
<spacer row="1" column="1" >
<spacer>
<property>
<name>name</name>
<cstring>Spacer8</cstring>
@ -992,7 +1182,100 @@ For a SSL servercertificate choose the DNS name of the server as "Common name"</
</size>
</property>
</spacer>
</grid>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout17</cstring>
</property>
<grid>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget row="3" column="1" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>issAltCp</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Copy issuer name</string>
</property>
</widget>
<widget row="2" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2_2_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>issuer alternative name</string>
</property>
</widget>
<widget row="0" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>subject alternative name</string>
</property>
</widget>
<widget row="4" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2_3_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>CRL distribution point</string>
</property>
</widget>
<widget row="1" column="1" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>subAltCp</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Copy e-mail address from subject line</string>
</property>
</widget>
<widget row="2" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>issAltName</cstring>
</property>
</widget>
<widget row="0" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>subAltName</cstring>
</property>
</widget>
<widget row="4" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>crlDist</cstring>
</property>
</widget>
</grid>
</widget>
</vbox>
</widget>
<widget>
<class>QWidget</class>
@ -1229,6 +1512,157 @@ For a SSL servercertificate choose the DNS name of the server as "Common name"</
</widget>
</grid>
</widget>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>page6</cstring>
</property>
<attribute>
<name>title</name>
<string>Page</string>
</attribute>
<vbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout16_2</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<spacer>
<property>
<name>name</name>
<cstring>Spacer37_2</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>bigImg3</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>200</width>
<height>94</height>
</size>
</property>
<property stdset="1">
<name>scaledContents</name>
<bool>true</bool>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer38_2</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</hbox>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer43</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Vertical</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>So, jetzt ist alles Fertig .... :-)</string>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer44</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Vertical</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>Expanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</vbox>
</widget>
</widget>
<connections>
<connection>
@ -1249,8 +1683,22 @@ For a SSL servercertificate choose the DNS name of the server as "Common name"</
<receiver>NewX509_UI</receiver>
<slot>dataChangeP2()</slot>
</connection>
<connection>
<sender>tempList</sender>
<signal>textChanged(const QString&amp;)</signal>
<receiver>NewX509_UI</receiver>
<slot>tempChanged()</slot>
</connection>
<connection>
<sender>changeDefault</sender>
<signal>stateChanged(int)</signal>
<receiver>NewX509_UI</receiver>
<slot>switchExtended()</slot>
</connection>
<slot access="public">dataChangeP2()</slot>
<slot access="public">newKey()</slot>
<slot access="public">switchExtended()</slot>
<slot access="public">setDisabled(int)</slot>
<slot access="public">tempChanged()</slot>
</connections>
</UI>

View File

@ -67,7 +67,7 @@ int main( int argc, char *argv[] )
a.installTranslator( &qtTr );
//translation file for application strings
QTranslator xcaTr( 0 );
xcaTr.load( QString( "xca_" ) + QTextCodec::locale(), "." );
xcaTr.load( QString( "xca_" ) + QTextCodec::locale(), PREFIX );
a.installTranslator( &xcaTr );
mw.show();

View File

@ -9,4 +9,4 @@ fi
echo "HEADERS = "`ls *.h` >$P
echo "SOURCES = "`ls *.cpp` >>$P
echo "FORMS = "`ls *.ui` >>$P
echo "TRANSLATIONS = xca_de.ts xca_es.ts" >>$P
echo "TRANSLATIONS = "`ls xca_??.ts` >>$P

View File

@ -1,4 +1,4 @@
HEADERS = ExportKey.h MainWindow.h NewX509.h NewX509Req.h
SOURCES = ExportKey.cpp MainWindow.cpp MainWindowKeys.cpp MainWindowTemps.cpp MainWindowX509.cpp MainWindowX509Req.cpp NewX509.cpp NewX509Req.cpp main.cpp
FORMS = CertDetail.ui ExportKey.ui KeyDetail.ui MainWindow.ui NewKey.ui NewX509.ui NewX509Req.ui PassRead.ui PassWrite.ui Rename.ui ReqDetail.ui TrustState.ui
TRANSLATIONS = xca_de.ts xca_es.ts
HEADERS = ExportKey.h MainWindow.h NewX509.h
SOURCES = ExportKey.cpp MainWindow.cpp MainWindowKeys.cpp MainWindowTemps.cpp MainWindowX509.cpp MainWindowX509Req.cpp NewX509.cpp main.cpp
FORMS = CertDetail.ui ExportKey.ui KeyDetail.ui MainWindow.ui NewKey.ui NewX509.ui PassRead.ui PassWrite.ui Rename.ui ReqDetail.ui TrustState.ui
TRANSLATIONS = xca_de.ts xca_en.ts xca_es.ts

View File

@ -578,88 +578,12 @@ it should be encrypted.</source>
<translation type="unfinished">Abbrechen</translation>
</message>
</context>
<context>
<name>NewX509Req_UI</name>
<message>
<source>Certificate signing request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New certificate signing request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>For a new certificate you have to enter your personal data into the form and select a key to use.
For a SSL servercertificate choose the DNS name of the server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisational unit:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisation:</source>
<translation type="unfinished">Firma:</translation>
</message>
<message>
<source>Common name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E-Mail address:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State or Province</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country:</source>
<translation type="unfinished">Land:</translation>
</message>
<message>
<source>Key:</source>
<translation type="unfinished">Schlüssel:</translation>
</message>
<message>
<source>Locality:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Request name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Germany</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generate a new key</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Abbrechen</translation>
</message>
<message>
<source>Generate request</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NewX509_UI</name>
<message>
<source>Source of the subject and the key</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Germany</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E-Mail address:</source>
<translation type="unfinished"></translation>
@ -684,10 +608,6 @@ For a SSL servercertificate choose the DNS name of the server</source>
<source>Common name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Key:</source>
<translation type="unfinished">Schlüssel:</translation>

353
xca_es.ts
View File

@ -3,311 +3,314 @@
<name>CertDetail_UI</name>
<message>
<source>Details of the Certificate</source>
<translation type="unfinished"></translation>
<translation>Detalles del Certificado</translation>
</message>
<message>
<source>Standards</source>
<translation type="unfinished"></translation>
<translation>Standards</translation>
</message>
<message>
<source>Name</source>
<translation type="unfinished"></translation>
<translation>Nombre</translation>
</message>
<message>
<source>Signed by:</source>
<translation type="unfinished"></translation>
<translation>Firmado por:</translation>
</message>
<message>
<source>Key:</source>
<translation type="unfinished"></translation>
<translation>Clave:</translation>
</message>
<message>
<source>not available</source>
<translation type="unfinished"></translation>
<translation>no disponible</translation>
</message>
<message>
<source>Serial:</source>
<translation type="unfinished"></translation>
<translation>Num Serie:</translation>
</message>
<message>
<source>SELF SIGNED </source>
<translation type="unfinished"></translation>
<translation>AUTO FIRMADO</translation>
</message>
<message>
<source>Subject</source>
<translation type="unfinished"></translation>
<translation>Sujeto</translation>
</message>
<message>
<source>name / DNS:</source>
<translation type="unfinished"></translation>
<translation>nombre / DNS:</translation>
</message>
<message>
<source>Province:</source>
<translation type="unfinished"></translation>
<translation>Provincia:</translation>
</message>
<message>
<source>E-Mail:</source>
<translation type="unfinished"></translation>
<translation>E-Mail:</translation>
</message>
<message>
<source>Organisation</source>
<translation type="unfinished"></translation>
<translation>Organización</translation>
</message>
<message>
<source>Country:</source>
<translation type="unfinished"></translation>
<translation>País:</translation>
</message>
<message>
<source>Org. unit</source>
<translation type="unfinished"></translation>
<translation>Departamento</translation>
</message>
<message>
<source>Issuer</source>
<translation type="unfinished"></translation>
<translation>Emisor</translation>
</message>
<message>
<source>Org. unit:</source>
<translation type="unfinished"></translation>
<translation>Departamento:</translation>
</message>
<message>
<source>Organisation:</source>
<translation type="unfinished"></translation>
<translation>Organización:</translation>
</message>
<message>
<source>Validity</source>
<translation type="unfinished"></translation>
<translation>Validez</translation>
</message>
<message>
<source>valid</source>
<translation type="unfinished"></translation>
<translation>válido</translation>
</message>
<message>
<source>Fingerprint</source>
<translation type="unfinished"></translation>
<translation>Huella</translation>
</message>
<message>
<source>MD5</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>SHA1</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
</context>
<context>
<name>ExportKey_UI</name>
<message>
<source>Key export</source>
<translation type="unfinished"></translation>
<translation>Exportar clave</translation>
</message>
<message>
<source>Please enter the filename for the key.</source>
<translation type="unfinished"></translation>
<translation>Introduzca nombre de fichero que contendrá la clave.</translation>
</message>
<message>
<source>Filename:</source>
<translation type="unfinished"></translation>
<translation>Fichero:</translation>
</message>
<message>
<source>...</source>
<translation type="unfinished"></translation>
<translation>...</translation>
</message>
<message>
<source>DER is a binary format of the key without encryption
PEM is a base64 encoded key with optional encryption
PKCS#8 is an encrypted official Key-exchange format</source>
<translation type="unfinished"></translation>
<translation>DER es un formato binario sin cifrado
PEM es un formato texto bas64 con cifrado opcional
PKCS#8 es un formato estandar de intercambio de claves</translation>
</message>
<message>
<source>Export Format:</source>
<translation type="unfinished"></translation>
<translation>Formato de exportación:</translation>
</message>
<message>
<source>When exporting the private key
it should be encrypted.</source>
<translation type="unfinished"></translation>
<translation>Cuando se exporte la clave privada
es aconsejable utilizar cifrado.</translation>
</message>
<message>
<source>Export the private part of the Key too</source>
<translation type="unfinished"></translation>
<translation>Exportar la clave privada simultaneamente</translation>
</message>
<message>
<source>Encrypt the Key with a password</source>
<translation type="unfinished"></translation>
<translation>Cifrar la clave con una contraseña</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
</context>
<context>
<name>KeyDetail_UI</name>
<message>
<source>Details of the key</source>
<translation type="unfinished"></translation>
<translation>Detalles de la clave</translation>
</message>
<message>
<source>Name</source>
<translation type="unfinished"></translation>
<translation>Nombre</translation>
</message>
<message>
<source>Private Exponent</source>
<translation type="unfinished"></translation>
<translation>Exponente secreto</translation>
</message>
<message>
<source>Available</source>
<translation type="unfinished"></translation>
<translation>Disponible</translation>
</message>
<message>
<source>Public Exponent</source>
<translation type="unfinished"></translation>
<translation>Exponente público</translation>
</message>
<message>
<source>Keysize</source>
<translation type="unfinished"></translation>
<translation>Tamaño de clave</translation>
</message>
<message>
<source>Modulus</source>
<translation type="unfinished"></translation>
<translation>Módulo</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Password</source>
<translation type="unfinished"></translation>
<translation>Contraseña</translation>
</message>
<message>
<source>Password verify error, please try again</source>
<translation type="unfinished"></translation>
<translation>Contraeña incorrecta, inténtelo de nuevo</translation>
</message>
<message>
<source>Internal Error</source>
<translation type="unfinished"></translation>
<translation>Error interno</translation>
</message>
<message>
<source>The system detected a NULL pointer, maybe the system is out of memory</source>
<translation type="unfinished"></translation>
<translation>El sistema detectó un puntero NULL, podría deberse a falta de memoria</translation>
</message>
<message>
<source>OpenSSL Error</source>
<translation type="unfinished"></translation>
<translation>Error de OpenSSL</translation>
</message>
<message>
<source>The openSSL library raised the following error</source>
<translation type="unfinished"></translation>
<translation>OpenSSL devolvió el siguiente error</translation>
</message>
<message>
<source>Key error</source>
<translation type="unfinished"></translation>
<translation>Error en la clave</translation>
</message>
<message>
<source>The Key: </source>
<translation type="unfinished"></translation>
<translation>Clave:</translation>
</message>
<message>
<source> is not consistent:</source>
<translation type="unfinished"></translation>
<translation>no es consistente:</translation>
</message>
<message>
<source>Please wait, Key generation is in progress</source>
<translation type="unfinished"></translation>
<translation>Espere, generando claves...</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
<message>
<source>The key</source>
<translation type="unfinished"></translation>
<translation>Clave</translation>
</message>
<message>
<source>is going to be deleted</source>
<translation type="unfinished"></translation>
<translation>va a ser eliminado</translation>
</message>
<message>
<source>not available</source>
<translation type="unfinished"></translation>
<translation>no disponible</translation>
</message>
<message>
<source>Import</source>
<translation type="unfinished"></translation>
<translation>Importar</translation>
</message>
<message>
<source>Discard</source>
<translation type="unfinished"></translation>
<translation>Abandonar</translation>
</message>
<message>
<source>could not be loaded</source>
<translation type="unfinished"></translation>
<translation>no ha podido ser cargado</translation>
</message>
<message>
<source>Key storing</source>
<translation type="unfinished"></translation>
<translation>Almacenamiento de claves</translation>
</message>
<message>
<source>The key is already in the database as</source>
<translation type="unfinished"></translation>
<translation>La clave ya aparece en la base de datos como</translation>
</message>
<message>
<source>and is not going to be imported</source>
<translation type="unfinished"></translation>
<translation>y no va a ser importada</translation>
</message>
<message>
<source>The database already contains the public part of the imported key as</source>
<translation type="unfinished"></translation>
<translation>La base de datos ya contiene la parte pública de la clave importada como</translation>
</message>
<message>
<source>and will be completed by the new, private part of the key</source>
<translation type="unfinished"></translation>
<translation>y será completada por la nueva parte secreta de la clave</translation>
</message>
<message>
<source>The key could not be stored into the database</source>
<translation type="unfinished"></translation>
<translation>La clave no pudo ser almacenada en la base de datos</translation>
</message>
<message>
<source>File error</source>
<translation type="unfinished"></translation>
<translation>Error en el fichero</translation>
</message>
<message>
<source>Der Schl&#xfc;ssel</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>could not be written</source>
<translation type="unfinished"></translation>
<translation>no ha podido ser escrito</translation>
</message>
<message>
<source>Key export</source>
<translation type="unfinished"></translation>
<translation>Exportar clave</translation>
</message>
<message>
<source>The key was successfull exported into the file</source>
<translation type="unfinished"></translation>
<translation>La clave ha sido exportada con éxito en el fichero</translation>
</message>
<message>
<source>New Key</source>
<translation type="unfinished"></translation>
<translation>Nueva clave</translation>
</message>
<message>
<source>Rename</source>
@ -441,6 +444,10 @@ it should be encrypted.</source>
<source>New Request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The template</source>
<translation type="unfinished"></translation>
@ -449,10 +456,6 @@ it should be encrypted.</source>
<source>The template could not be stored into the database</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create certificate</source>
<translation type="unfinished"></translation>
@ -474,7 +477,7 @@ it should be encrypted.</source>
</message>
<message>
<source>Name</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Nombre</translation>
</message>
<message>
<source>Item</source>
@ -482,7 +485,7 @@ it should be encrypted.</source>
</message>
<message>
<source>New Key</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Nueva clave</translation>
</message>
<message>
<source>Export</source>
@ -490,7 +493,7 @@ it should be encrypted.</source>
</message>
<message>
<source>Import</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Importar</translation>
</message>
<message>
<source>Show Details</source>
@ -524,14 +527,6 @@ it should be encrypted.</source>
<source>Import PKCS#12</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Templates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Template</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(c) 2002 by christian@hohnstaedt.de</source>
<translation type="unfinished"></translation>
@ -540,6 +535,14 @@ it should be encrypted.</source>
<source>Exit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Templates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Template</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NewKey_UI</name>
@ -561,11 +564,11 @@ it should be encrypted.</source>
</message>
<message>
<source>Keysize</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Tamaño de clave</translation>
</message>
<message>
<source>New Key</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Nueva clave</translation>
</message>
<message>
<source>OK</source>
@ -577,42 +580,33 @@ it should be encrypted.</source>
</message>
</context>
<context>
<name>NewX509Req_UI</name>
<name>NewX509_UI</name>
<message>
<source>Certificate signing request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New certificate signing request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>For a new certificate you have to enter your personal data into the form and select a key to use.
For a SSL servercertificate choose the DNS name of the server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisational unit:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Common name:</source>
<source>Source of the subject and the key</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E-Mail address:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State or Province</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country:</source>
<source>Organisational unit:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generate a new key</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Common name:</source>
<translation type="unfinished"></translation>
</message>
<message>
@ -624,32 +618,17 @@ For a SSL servercertificate choose the DNS name of the server</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Request name:</source>
<source>Country:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Germany</source>
<source>Certificate name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generate a new key</source>
<source>Use this Certificate signing request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generate request</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NewX509_UI</name>
<message>
<source>Certificate creation</source>
<translation type="unfinished"></translation>
@ -676,66 +655,10 @@ For signing a request, please select the appropriate Certificates igning request
For a SSL servercertificate choose the DNS name of the server as &quot;Common name&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source of the subject and the key</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the data entered here</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Germany</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E-Mail address:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisation:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State or Province</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Organisational unit:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generate a new key</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Common name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Key:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Locality:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Certificate name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use this Certificate signing request</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New Certificate Step 3</source>
<translation type="unfinished"></translation>
@ -933,42 +856,42 @@ For a SSL servercertificate choose the DNS name of the server as &quot;Common na
<name>PassRead_UI</name>
<message>
<source>Passwort</source>
<translation type="unfinished"></translation>
<translation>Contraseña</translation>
</message>
<message>
<source>Password</source>
<translation type="unfinished"></translation>
<translation>Contraseña</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
</context>
<context>
<name>PassWrite_UI</name>
<message>
<source>Passwort</source>
<translation type="unfinished"></translation>
<translation>Contraseña</translation>
</message>
<message>
<source>Password</source>
<translation type="unfinished"></translation>
<translation>Contraseña</translation>
</message>
<message>
<source>Repeat pasword</source>
<translation type="unfinished"></translation>
<translation>Repetir contraseña</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
</context>
<context>
@ -994,67 +917,67 @@ For a SSL servercertificate choose the DNS name of the server as &quot;Common na
<name>ReqDetail_UI</name>
<message>
<source>Details of the request</source>
<translation type="unfinished"></translation>
<translation>Detalles de la solicitud</translation>
</message>
<message>
<source>Details of the certificate signing request</source>
<translation type="unfinished"></translation>
<translation>Detalles de la solicitud</translation>
</message>
<message>
<source>Standards</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Certificate name</source>
<translation type="unfinished"></translation>
<translation>Id del certificado</translation>
</message>
<message>
<source>Signature</source>
<translation type="unfinished"></translation>
<translation>Firma</translation>
</message>
<message>
<source>Key</source>
<translation type="unfinished"></translation>
<translation>Clave</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>not available</source>
<translation type="unfinished"></translation>
<translation>no disponible</translation>
</message>
<message>
<source>Subject</source>
<translation type="unfinished"></translation>
<translation>Sujeto</translation>
</message>
<message>
<source>name / DNS</source>
<translation type="unfinished"></translation>
<translation>nombre / DNS</translation>
</message>
<message>
<source>Province</source>
<translation type="unfinished"></translation>
<translation>Provincia</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
<translation>País</translation>
</message>
<message>
<source>Org. Unit</source>
<translation type="unfinished"></translation>
<translation>Departamento</translation>
</message>
<message>
<source>E-Mail</source>
<translation type="unfinished"></translation>
<translation>E-Mail</translation>
</message>
<message>
<source>Organisation</source>
<translation type="unfinished"></translation>
<translation>Organización</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation>Cancelar</translation>
</message>
</context>
<context>
@ -1069,7 +992,7 @@ For a SSL servercertificate choose the DNS name of the server as &quot;Common na
</message>
<message>
<source>Certificate name</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Id del certificado</translation>
</message>
<message>
<source>Select the Truststate</source>