diff --git a/doc/xca.1 b/doc/xca.1 index 20da38fe..ae8f0134 100644 --- a/doc/xca.1 +++ b/doc/xca.1 @@ -2,7 +2,7 @@ .SH NAME xca \- X Certificate and key management .br -A GUI for handling X509 certificates, RSA/DSA/EC keys, PKCS#10 Requests and CRLs in Software and on Smart cards. +A GUI for handling X509 certificates, RSA/DSA/EC keys, PKCS#10 Requests and CRLs in Software and on Smartcards. .SH SYNOPSIS .B xca .RI [ -v ] @@ -17,7 +17,7 @@ is supported. Both can use templates for simplicity. The PKI structures can be imported and exported in several formats like PKCS#12, PEM, DER, PKCS#8, PKCS#7. .br -XCA enables users to manage smart cards via the PKCS#11 interface +XCA enables users to manage smartcards via the PKCS#11 interface .SH OPTIONS A summary of options are included below. diff --git a/doc/xca.sgml b/doc/xca.sgml index 34b0d37a..049b932a 100644 --- a/doc/xca.sgml +++ b/doc/xca.sgml @@ -11,7 +11,7 @@ -This application is intended for creating and managing X.509 certificates, certificate requests, RSA, DSA and EC private keys, Smart cards and CRLs. +This application is intended for creating and managing X.509 certificates, certificate requests, RSA, DSA and EC private keys, Smartcards and CRLs. Everything that is needed for a CA is implemented. All CAs can sign sub-CAs recursively. These certificate chains are shown clearly. For an easy company-wide use there are customiseable templates that can be used for certificate or request generation. @@ -494,13 +494,13 @@ noticeNumbers=1,2,3,4 -Smart cards (Security tokens) +Smartcards (Security tokens)

-Since XCA 0.8.0 the use of Smart cards (Security tokens) is supported. +Since XCA 0.8.0 the use of Smartcards (Security tokens) is supported. It is based on the PKCS#11 standard. The Options dialog contains an input field to select a PKCS#11 library. -This is not restricted to Smart cards but includes all type of security tokens like USB tokens. +This is not restricted to Smartcards but includes all type of security tokens like USB tokens. The default is /usr/lib/opensc-pkcs11.so and opensc-pkcs11.dll in the XCA installation path, depending on your OS.

@@ -527,7 +527,7 @@ It is of course possible to create your own keys on the token. When selecting a token-key for signing, XCA verifies that the corresponding token is available. -The following actions with smart cards are supported: +The following actions with smartcards are supported: Import keys and certificates from the token. @@ -576,7 +576,7 @@ a missing public-key object is the cause. A new menu item: Token is accessible if a PKCS#11 library was loaded and initialized. -Managing Smart cards +Managing Smartcards

diff --git a/lang/xca_de.ts b/lang/xca_de.ts index 458d57ed..3af93eee 100644 --- a/lang/xca_de.ts +++ b/lang/xca_de.ts @@ -177,7 +177,7 @@ &Subject - Be&sitzer + Inha&ber @@ -311,14 +311,14 @@ CertView - + There was no key found for the Certificate: Es wurde kein Schlüssel gefunden für das Zertifikat: Import Certificate signing request - Unterschriftsanfrage importieren + Zertifikatsantrag importieren @@ -668,17 +668,17 @@ PKCS#8 ist ein offizielles Austauschformat für Passwort gesicherte Schlüssel - + The type of the Item '%1' is not recognized Unbekannter Typ bei '%1' - - The new name of %1 '%2' + + Rename '%1' - + Details of the item '%1' cannot be shown Details von '%1' können nicht angezeigt werden @@ -687,11 +687,6 @@ PKCS#8 ist ein offizielles Austauschformat für Passwort gesicherte SchlüsselThe type of the item '%1' is not recognized Unbekannter Typ bei '%1' - - - Successfully imported the %1 '%2' - %1 erfolgreich importiert als '%2' - Import PKI Items @@ -700,15 +695,15 @@ PKCS#8 ist ein offizielles Austauschformat für Passwort gesicherte Schlüssel Delete from token - Von der Smart card löschen + Von der Chipkarte löschen Rename on token - Auf der Smart card umbenennen + Auf der Chipkarte umbenennen - + Name: %1 Model: %2 @@ -721,7 +716,7 @@ Seriennummer: %3 Manage security token - Smart card verwalten + Chipkarte verwalten @@ -791,7 +786,7 @@ Seriennummer: %3 Security token - Smartcard + Chipkarte @@ -812,7 +807,7 @@ Seriennummer: %3 Token - Smartcard + Chipkarte @@ -827,7 +822,7 @@ Seriennummer: %3 Security token ID:%1 - Smartcard ID:%1 + Chipkarte ID:%1 @@ -874,7 +869,7 @@ Seriennummer: %3 In die Zwischenablage - + &Close DataBase Datenbank s&chliessen @@ -884,17 +879,17 @@ Seriennummer: %3 &Inhalt - + &About Ü&ber - + &File D&atei - + &Help &Hilfe @@ -951,12 +946,12 @@ Seriennummer: %3 Certificate signing requests - Unterschriftsanfragen + Zertifikatsanträge &New Request - &Neue Unterschriftsanfrage + &Neuer Zertifikatsantrag @@ -1042,7 +1037,7 @@ Seriennummer: %3 Requests - Anfragen + Zertifikatsanträge @@ -1070,7 +1065,7 @@ Seriennummer: %3 PEM Datei - + Donations Spenden @@ -1100,7 +1095,7 @@ Seriennummer: %3 Abbrechen - + I&mport I&mport @@ -1110,7 +1105,7 @@ Seriennummer: %3 PEM datei (copy+paste) - + Database dump ( *.dump );;All files ( * ) Database dump ( *.dump );;All files ( * ) @@ -1122,7 +1117,7 @@ Seriennummer: %3 The new label of the token '%1' - Die neue Bezeichnung der Smartcard '%1' + Die neue Bezeichnung der Chipkarte '%1' @@ -1135,19 +1130,19 @@ Seriennummer: %3 - + &New DataBase &Neue Datenbank - + &Open DataBase Datenbank &Öffnen - + &Init Security token - Smartcard &initialisieren + Chipkarte &initialisieren @@ -1160,7 +1155,7 @@ Seriennummer: %3 Beenden - + You need to restart XCA to load the new library XCA muss neu gestartet werden um die neue PKCS#11 DLL zu laden @@ -1188,62 +1183,62 @@ Seriennummer: %3 Please enter the original SO PIN (PUK) of the token '%1' - + Die alte SO PIN (PUK) für die Chipkarte '%1' eingeben Please enter the new SO PIN (PUK) of the token '%1' - + Die neue SO PIN (PUK) für die Chipkarte '%1' eingeben The token '%1' did not contain any keys or certificates - + Die Chipkarte '%1' enthält keine Schlüssel oder Zertifikate Repeat %1 - + %1 wiederholen DH parameter bits - + DH parameter bits Error opening file: '%1': %2 - Öffnen der Datei %1 fehlgeschlagen: %2 + Öffnen der Datei '%1' fehlgeschlagen: %2 - + Generate DH parameter - + DH Parameter erstellen &Token - + &Chipkarte &Manage Security token - + Chipkarte &verwalten &Change PIN - + &PIN ändern Change &SO PIN - + &SO PIN ändern Init PIN - + PIN initialisieren @@ -1385,14 +1380,14 @@ Seriennummer: %3 Signing request - Unterschriftsanfrage + Zertifikatsantrag A certificate signing request can be signed, even if the private key of the request is not available. This is the intention of a CSR: Getting signed by a CA certificate, whoes certificate of course must be in the database Of course you need the private key of the CSR if you want to create a self-signed cert from it. - Ein CSR (Signaturanfrage) kann unterschrieben werden, auch wenn der private Schlüssel des Requests nicht verfügbar ist. Dies ist die Aufgabe eines CSR. + Ein CSR (Zertifikatsantrag) kann unterschrieben werden, auch wenn der private Schlüssel des Antrags nicht verfügbar ist. Dies ist die Aufgabe eines CSR. @@ -1437,12 +1432,12 @@ Of course you need the private key of the CSR if you want to create a self-signe Sign this Certificate signing &request - Diese Unterschriftsanf&rage unterschreiben + Diesen Zertifikatsant&rag unterschreiben Copy extensions from the request - Erweiterungen vom PKCS#10-request kopieren + Erweiterungen aus dem Zertifikatsantrag kopieren @@ -1510,7 +1505,7 @@ Wenn diese Liste ausgeschaltet ist, kann nur ein selbst unterschriebenes Zertifi Subject - Besitzer + Inhaber @@ -1784,7 +1779,7 @@ email:my@other.address, RID:1.2.3.4, DNS: ns.server.tld Create Certificate signing request - Erstelle eine Zertifikatsanfrage + Erstelle einen Zertifikatsantrag @@ -1837,7 +1832,7 @@ Bitte mindestens den internen Namen setzen. Modify subject of the request - Das "subject" der Zertifikatsanfrage ändern + Inhaberinformation "subject" des Zertifikatsantrags ändern @@ -1966,7 +1961,7 @@ though you have declared them as mandatory in the options menu. From PKCS#10 request - Aus der PKCS#10 Zertifikatsanfrage + Aus dem PKCS#10 Zertifikatsantrag @@ -1987,7 +1982,7 @@ though you have declared them as mandatory in the options menu. Configfile error on line %1 - + Fehler in der Konfigurationsdatei in Zeile %1 @@ -2071,20 +2066,19 @@ though you have declared them as mandatory in the options menu. Successfully loaded PKCS#11 library: %1 - + Die PKCS#11 Bibliothek %1 wurde erfolgreich geladen + PassRead - - Password Passwort - + &Cancel &Abbrechen @@ -2096,7 +2090,7 @@ though you have declared them as mandatory in the options menu. The password is parsed as 2-digit hex code. It must have an equal number of digits (0-9 and a-f) - Das Passwort wird als 2selliger hex-code interpretiert. Er muss eine gradstellige Anzahl der Ziffern 0-9 und a-f enthalten + Das Passwort wird als 2stelliger hex-code interpretiert. Er muss eine gradstellige Anzahl der Ziffern 0-9 und a-f enthalten @@ -2108,18 +2102,15 @@ though you have declared them as mandatory in the options menu. PassWrite - - Password Passwort - Repeat password - Passwort wiederholen + Passwort wiederholen - + &Cancel &Abbrechen @@ -2149,7 +2140,7 @@ though you have declared them as mandatory in the options menu. Import Request - Import von Anfragen + Import von Zertifikatsanträgen @@ -2311,59 +2302,59 @@ Bitte die Zeiten manuell einstellen. Please enter the SO PIN (PUK) of the token %1 - Bitte die SO PIN (PUK) der Smartcard %1 eingeben + Bitte die SO PIN (PUK) der Chipkarte %1 eingeben Please enter the PIN of the token %1 - Bitte die PIN der Smartcard %1 eingeben + Bitte die PIN der Chipkarte %1 eingeben No Security token found - Keine Smartcard gefunden + Keine Chipkarte gefunden Out of Memory at %1:%2 - + Kein Speicher verfügbar %1: %2 Out of data - + zuwenig Daten Error finding endmarker of string - + Fehlerhafter String Please enter the new SO PIN (PUK) for the token: '%1' - + Bitte die neue SO PIN (PUK) für die Chipkarte '%1' eingeben Please enter the new PIN for the token: '%1' - + Bitte die neue PIN der Chipkarte %1 eingeben Failed to close PKCS11 library: %1 - + Die PKCS#11 Bibliothek %1 konnte nicht geschlossen werden PKCS11 library filename empty - + PKCs#11 Bibliotheksdateiname ist leer Failed to open PKCS11 library: %1 - + Die PKCS#11 Bibliothek %1 konnte nicht geöffnet werden @@ -2376,7 +2367,7 @@ Bitte die Zeiten manuell einstellen. Details of the certificate signing request - Details der Unterschriftsanfrage + Details des Zertifikatsantrags @@ -2386,7 +2377,7 @@ Bitte die Zeiten manuell einstellen. Internal name of the PKCS#10 signing request - Der interne Name der PKCS#10 Unterschriftsanfrage iin der datenbank + Der interne Name des PKCS#10 Zertifikatsantrags in der Datenbank @@ -2411,7 +2402,7 @@ Bitte die Zeiten manuell einstellen. &Subject - Be&sitzer + Inha&ber @@ -2434,17 +2425,17 @@ Bitte die Zeiten manuell einstellen. Select Token - Smartcard auswählen + Chipkarte auswählen Security token - Smartcard + Chipkarte Please select the security token - Bitte wählen Sie die Smartcard + Bitte wählen Sie die Chipkarte @@ -2492,15 +2483,7 @@ Bitte die Zeiten manuell einstellen. Set trustment of the Certificate - - - - - db_base - - - Successfully created %1 '%2' - + Vertrauenseinstellung des Zertifikats @@ -2531,7 +2514,7 @@ Bitte die Zeiten manuell einstellen. Nächstes Update - + CRL ( *.pem *.der *.crl ) CRL ( *.pem *.der *.crl ) @@ -2561,17 +2544,7 @@ Bitte die Zeiten manuell einstellen. Löschen - - Delete the revokation list '%1' ? - Die Sperrliste (CRL) '%1' löschen ? - - - - Delete the %1 revokation lists: %2 ? - Die %1 Sperrlisten: %2 löschen ? - - - + The revokation list already exists in the database as: '%1' and so it was not imported @@ -2583,7 +2556,7 @@ daher wurde ssie nicht importiert db_key - + Key size too small ! Schlüsselgrösse zu klein ! @@ -2625,17 +2598,42 @@ daher wurde ssie nicht importiert Reset password - Password zurücksetzen + Passwort zurücksetzen Shall the original key '%1' be replaced by the key on the token? This will delete the key '%1' and make it unexportable - Soll der Originalschlüssel '%1' durch den Smartcard Schlüssel ersetzt werden? + Soll der Originalschlüssel '%1' durch den Chipkartenschlüssel ersetzt werden? Dies löscht den Schlüssel '%1' und macht ihn nicht-exportierbar - + + Name + Name + + + + Type + Typ + + + + Size + Länge + + + + Use + Benutzt + + + + Password + Passwort + + + Change PIN PIN ändern @@ -2652,11 +2650,11 @@ Dies löscht den Schlüssel '%1' und macht ihn nicht-exportierbar Store on Security token - Auf Smartcard speichern + Auf der Chipkarte speichern - Tried to change password of a smart card + Tried to change password of a token @@ -2675,17 +2673,7 @@ Dies löscht den Schlüssel '%1' und macht ihn nicht-exportierbar - - Delete the key '%1' ? - Den Schlüssel '%1' löschen ? - - - - Delete the %1 keys: %2 ? - Die %1 Schlüssel: %2 löschen ? - - - + The key is already in the database as: '%1' and is not going to be imported @@ -2711,7 +2699,17 @@ und wird duch den importierten, privaten Teil vervollständigt db_temp - + + Name + Name + + + + Type + Typ + + + Nothing Nichts @@ -2773,7 +2771,7 @@ und wird duch den importierten, privaten Teil vervollständigt Create request - Unterschriftsanfrage erstellen + Zertifikatsantrag erstellen @@ -2781,17 +2779,7 @@ und wird duch den importierten, privaten Teil vervollständigt XCA Vorlagen ( *.xca);; All files ( * ) - - Delete the template '%1' ? - Die Vorlage '%1' löschen ? - - - - Delete the %1 templates: %2 ? - Die %1 Vorlagen: %2 löschen ? - - - + Bad template: %1 Ungültige Vorlage %1 @@ -2799,7 +2787,7 @@ und wird duch den importierten, privaten Teil vervollständigt db_x509 - + Internal name Interner Name @@ -2815,8 +2803,8 @@ und wird duch den importierten, privaten Teil vervollständigt - not After - nicht nach dem + Expiry date + Ablaufdatum @@ -2829,7 +2817,7 @@ und wird duch den importierten, privaten Teil vervollständigt Rücknahme - + Plain View Einfache Ansicht @@ -2901,7 +2889,7 @@ und wird duch den importierten, privaten Teil vervollständigt Request - Unterschriftsanfrage + Zertifikatsantrag @@ -2959,14 +2947,19 @@ und wird duch den importierten, privaten Teil vervollständigt Rücknahme - + + Not possible for a token key: '%1' + Nicht möglich für einen Chipkartenschlüssel '%1' + + + days Tage Security token - Smartcard + Chipkarte @@ -2976,20 +2969,10 @@ und wird duch den importierten, privaten Teil vervollständigt Delete from Security token - Von der Smartcard löschen + Von der Chipkarte löschen - - Delete the certificate '%1' ? - Das Zertifikat '%1' löschen ? - - - - Delete the %1 certificates: %2 ? - Die %1 Zertifikate: %2 löschen ? - - - + The certificate already exists in the database as: '%1' and so it was not imported @@ -3004,42 +2987,41 @@ und wurde daher nicht importiert Es wurde kein Schlüssel für das Zertifikat: '%1' gefunden - Not possible for smart card key: '%1' - Nicht möglich für den Smartcard Schlüssel '%1' + Nicht möglich für den Chipkartenschlüssel '%1' - + Not possible for the token-key Certificate '%1' - Nicht möglich für das Smartcard Zertifikat '%1' + Nicht möglich für das Chipkartenzertifikat '%1' Store the certificate to the key on the token '%1 (#%2)' ? - + Soll das Zertifikat zum privaten Schlüssel auf der Chipkarte '%1' mit der Seriennummer %2 abgelegt werden ? Other token - + Andere Chipkarte db_x509req - + Certificate request ( *.pem *.der *.crl ) - Unterschriftsanfrage ( *.pem *.der *.crl ) + Zertifikatsantrag ( *.pem *.der *.crl ) Certificate request export - Unterschriftsanfrage exportieren + Zertifikatsantrag exportieren New Request - Neue Unterschriftsanfrage + Neuer Zertifikatsantrag @@ -3072,14 +3054,14 @@ und wurde daher nicht importiert Löschen - + Name Name Subject - Besitzer + Inhaber @@ -3087,7 +3069,7 @@ und wurde daher nicht importiert Signiert - + File Datei @@ -3097,12 +3079,7 @@ und wurde daher nicht importiert Vorlage - - Delete the %1 requests: %2 ? - Die %1 Requests: %2 löschen ? - - - + The certificate signing request already exists in the database as '%1' and thus was not stored @@ -3110,11 +3087,6 @@ and thus was not stored '%1' und wurde daher nicht importiert - - - Delete the request '%1' ? - Den request '%1' löschen ? - db_x509super @@ -3129,23 +3101,23 @@ und wurde daher nicht importiert Type - Typ + Typ Content - + Inhalt pass_info - + Password Passwort - + PIN PIN @@ -3160,18 +3132,33 @@ und wurde daher nicht importiert Error: - + Fehler: + + + + Internal error: Unexpected message: %1 %2 + Interner Fehler: Unerwartete Nachricht: %1 %2 pki_crl - - the certificate revokation list - + + Delete the revokation list '%1'? + Die Sperrliste '%1' löschen? - + + Successfully created the revokation list '%1' + Die Sperrliste '%1' wurde erfolgreich erstellt + + + + Delete the %1 revokation lists: %2? + Die %1 Sperrlisten: %2 löschen? + + + No issuer given Keine Austeller angegeben @@ -3186,10 +3173,15 @@ und wurde daher nicht importiert Konnte die Sperrliste %1 nicht laden. Ist weder eine PEM noch eine DER formatierte CRL. - + + Successfully imported the revokation list '%1' + Die Sperrliste '%1' wurde erfolgreich importiert + + + Wrong Size %1 - + Ungültige Größe %1 @@ -3233,7 +3225,7 @@ und wurde daher nicht importiert Unable to load the private key in file %1. Tried PEM and DER private, public and PKCS#8 key types. - + Der Schlüssel aus der Datei %1 konnte nicht geladen werden. Private und öffentliche, sowie PKCS#8 Schlüssel im PEM und DER format wurden versucht. @@ -3259,17 +3251,37 @@ und wurde daher nicht importiert pki_key - - the %1 public key - + + Successfully imported the %1 public key '%2' + Der öffentliche %1 Schlüssel '%2' wurde erfolgreich importiert - - the %1 private key - + + Delete the %1 public key '%2'? + Den öffentlichen %1 Schlüssel '%2' löschen? - + + Successfully imported the %1 private key '%2' + Der private %1 Schlüssel '%2' wurde erfolgreich importiert + + + + Delete the %1 private key '%2'? + Den privaten %1 Schlüssel '%2' löschen? + + + + Successfully created the %1 private key '%2' + Der private %1 Schlüssel '%2' wurde erfolgreich erstellt + + + + Delete the %1 keys: %2? + Die %1 Schlüssel: %2 löschen? + + + Common Standard @@ -3319,17 +3331,17 @@ und wurde daher nicht importiert No key or no Cert and no pkcs12 - Kein Schlüssel or kein Zertifikat und kein PKCS#12 + Kein Schlüssel oder kein Zertifikat und kein PKCS#12 Unable to load the PKCS#12 (pfx) file %1. - + Die PKCS#12 (pfx) Datei %1 konnte nicht geladen werden. The supplied password was wrong (%1) - + Das eingegebene Passwort war falsch (%1) @@ -3343,19 +3355,19 @@ und wurde daher nicht importiert pki_scard - + This Key is already on the token Der Schlüssel ist bereits auf der SmartCard Unable to find copied key on the token - Kann den eben kopierten Schlüssel auf der Smartcard nicht finden + Kann den eben kopierten Schlüssel auf der Chipkarte nicht finden Public Key missmatch. Please re-import card - Öffentlicher Schlüssel passt nicht. Bitte Smartcard neu importieren + Öffentlicher Schlüssel passt nicht. Bitte Chipkarte neu importieren @@ -3363,55 +3375,75 @@ und wurde daher nicht importiert Kann den erstellten Schlüssel auf der Karte nicht finden - - Token - Smartcard - - - + Failed to find the key on the token - Konnte den Schlüssel auf der Smartcard nicht finden + Konnte den Schlüssel auf der Chipkarte nicht finden Invalid Pin for the token - Ungültige Pin für die Smartcard + Ungültige Pin für die Chipkarte Delete the private key '%1' from the token '%2 (#%3)' ? - + Soll der private Schlüssel '%1' von der Chipkarte '%2' mit der Seriennummer %3 gelöscht werden ? - + + Successfully imported the token key '%1' + Der Chipkartenschlüssel '%1' wurde erfolgreich importiert + + + + Delete the token key '%1'? + Den Chipkartenschlüssel '%1' löschen? + + + + Successfully created the token key '%1' + Der Chipkartenschlüssel '%1' wurde erfolgreich erstellt + + + + Delete the %1 keys: %2? + Die %1 Schlüssel: %2 löschen? + + + only RSA keys can be stored on tokens - + Auf der Chipkarte können nur RSA Schlüssel gespeichert werden PIN input aborted - + PIN Eingabe abgebrochen Please insert card: %1 %2 [%3] with Serial: %4 - Bitte die Smartcard: %1 %2 [%3] mit Seriennummer: %4 einlegen + Bitte die Chipkarte: %1 %2 [%3] mit Seriennummer: %4 einlegen Wrong Size %1 - + Falsche Größe %1 + + + + Token %1 + %1 Chipkarte pki_temp - - the XCA template - + + Delete the XCA template '%1'? + Die XCA Vorlage '%1' löschen? - + Template file content error (too small): %1 Template zu klein: %1 @@ -3424,18 +3456,33 @@ und wurde daher nicht importiert Wrong Size %1 - + Ungültige Größe %1 - + + Successfully imported the XCA template '%1' + Die XCA Vorlage '%1' wurde erfolgreich importiert + + + + Successfully created the XCA template '%1' + Die XCA Vorlage '%1' wurde erfolgreich erstellt + + + + Delete the %1 XCA templates: %2? + Die %1 XCA Vorlagen: %2 löschen? + + + Template file content error (bad size): %1 - + Templatefile ungültig (Größe): %1 pki_x509 - + Not trusted Nicht vertrauenswürdig @@ -3455,35 +3502,54 @@ und wurde daher nicht importiert Kein Schlüssel zum Unterschreiben! - - the certificate - + + Delete the certificate '%1'? + Das Zertifikat '%1' löschen? - + + Successfully created the certificate '%1' + Das Zertifikat '%1' wurde erfolgreich erstellt + + + + Delete the %1 certificates: %2? + Die %1 Zertifikate: %2 löschen? + + + Unable to load the certificate in file %1. Tried PEM and DER certificate. Das Zertifikat aus der Datei %1 konnte nicht geladen werden. Ist weder PEM noch DER. This certificate is already on the security token - Dieses Zertifikat ist bereits auf der Smartcard + Dieses Zertifikat ist bereits auf der Chipkarte - + + Delete the certificate '%1' from the token '%2 (#%3)'? + Das Zertifikat '%1' von der Chipkarte '%2 (#%3)' löschen? + + + CRL expires: %1 CRL ungültig ab: %1 - Delete the certificate '%1' from the token '%2 (#%3)' ? - Das Zertifikat '%1' von der Smartcard '%2 (#%3)' löschen ? + Das Zertifikat '%1' von der Chipkarte '%2 (#%3)' löschen ? - + + Successfully imported the certificate '%1' + Das Zertifikat '%1' wurde erfolgreich importiert + + + Wrong Size %1 - + Ungültige Größe %1 @@ -3494,19 +3560,29 @@ und wurde daher nicht importiert Signaturschlüssel ungültig (public key) - - the SPKAC request - + + Delete the %1 certificate request '%2'? + Den %1 Zertifikatsantrag '%2' löschen? - - the PKCS#10 request - + + Successfully imported the %1 certificate request '%2' + Der %1 Zertifikatsantrag '%2' wurde erfolgreich importiert - + + Successfully created the %1 certificate request '%2' + Der %1 Zertifikatsantrag '%2' wurde erfolgreich erstellt + + + + Delete the %1 certificate requests: %2? + Die %1 Zertifikatsanträge: %2 löschen? + + + Unable to load the certificate request in file %1. Tried PEM, DER and SPKAC format. - Konnte die Zertifikatsanfrage aus der Datei %1 nicht laden. Versuchte Formate PEM, DER und SPKAC. + Konnte den Zertifikatsantrag aus der Datei %1 nicht laden. Versuchte Formate PEM, DER und SPKAC. @@ -3521,7 +3597,7 @@ und wurde daher nicht importiert Wrong Size %1 - + Ungültige Größe %1 @@ -3560,7 +3636,7 @@ und wurde daher nicht importiert An email address or 'copy' - + Eine E-Mail adresse oder 'copy' @@ -3595,14 +3671,16 @@ und wurde daher nicht importiert Syntax: <OID>;TYPE:text like '1.2.3.4:UTF8:name' - + Format:<OID>;TYPE Beispiel: '1.2.3.4:UTF8:name' Validation failed: '%1' %2 - + Überprüfung fehlgeschlagen: +'%1' +%2 @@ -3615,7 +3693,7 @@ und wurde daher nicht importiert Import Certificate signing request - Unterschriftsanfrage importieren + Zertifikatsantrag importieren diff --git a/lang/xca_es.ts b/lang/xca_es.ts index adb7fcd6..88b2fdd5 100644 --- a/lang/xca_es.ts +++ b/lang/xca_es.ts @@ -311,7 +311,7 @@ CertView - + There was no key found for the Certificate: @@ -668,17 +668,17 @@ PKCS#8 es un formato estandar de intercambio de claves - + The type of the Item '%1' is not recognized - - The new name of %1 '%2' + + Rename '%1' - + Details of the item '%1' cannot be shown @@ -687,11 +687,6 @@ PKCS#8 es un formato estandar de intercambio de claves The type of the item '%1' is not recognized - - - Successfully imported the %1 '%2' - - Import PKI Items @@ -708,7 +703,7 @@ PKCS#8 es un formato estandar de intercambio de claves - + Name: %1 Model: %2 @@ -845,7 +840,7 @@ Serial: %3 Contraeña incorrecta, inténtelo de nuevo - + &Close DataBase @@ -855,17 +850,17 @@ Serial: %3 - + &About - + &File - + &Help @@ -1067,7 +1062,7 @@ Serial: %3 - + Donations @@ -1097,7 +1092,7 @@ Serial: %3 Cancelar - + I&mport @@ -1107,7 +1102,7 @@ Serial: %3 - + Database dump ( *.dump );;All files ( * ) @@ -1132,17 +1127,17 @@ Serial: %3 - + &New DataBase - + &Open DataBase - + &Init Security token @@ -1157,7 +1152,7 @@ Serial: %3 - + You need to restart XCA to load the new library @@ -1213,7 +1208,7 @@ Serial: %3 - + Generate DH parameter @@ -2072,13 +2067,11 @@ though you have declared them as mandatory in the options menu. PassRead - - Password Contraseña - + &Cancel @@ -2102,18 +2095,11 @@ though you have declared them as mandatory in the options menu. PassWrite - - Password Contraseña - - Repeat password - - - - + &Cancel @@ -2488,14 +2474,6 @@ You must set it manually. - - db_base - - - Successfully created %1 '%2' - - - db_crl @@ -2524,7 +2502,7 @@ You must set it manually. - + CRL ( *.pem *.der *.crl ) @@ -2554,17 +2532,7 @@ You must set it manually. - - Delete the revokation list '%1' ? - - - - - Delete the %1 revokation lists: %2 ? - - - - + The revokation list already exists in the database as: '%1' and so it was not imported @@ -2574,7 +2542,7 @@ and so it was not imported db_key - + Key size too small ! @@ -2625,7 +2593,32 @@ This will delete the key '%1' and make it unexportable - + + Name + Nombre + + + + Type + + + + + Size + + + + + Use + + + + + Password + Contraseña + + + Change PIN @@ -2646,7 +2639,7 @@ This will delete the key '%1' and make it unexportable - Tried to change password of a smart card + Tried to change password of a token @@ -2665,17 +2658,7 @@ This will delete the key '%1' and make it unexportable - - Delete the key '%1' ? - - - - - Delete the %1 keys: %2 ? - - - - + The key is already in the database as: '%1' and is not going to be imported @@ -2697,7 +2680,17 @@ and will be completed by the new, private part of the key db_temp - + + Name + Nombre + + + + Type + + + + Nothing @@ -2767,17 +2760,7 @@ and will be completed by the new, private part of the key - - Delete the template '%1' ? - - - - - Delete the %1 templates: %2 ? - - - - + Bad template: %1 @@ -2785,7 +2768,7 @@ and will be completed by the new, private part of the key db_x509 - + Internal name @@ -2801,11 +2784,6 @@ and will be completed by the new, private part of the key - not After - - - - Trust state @@ -2815,7 +2793,12 @@ and will be completed by the new, private part of the key - + + Expiry date + + + + Plain View @@ -2945,7 +2928,12 @@ and will be completed by the new, private part of the key - + + Not possible for a token key: '%1' + + + + days @@ -2965,17 +2953,7 @@ and will be completed by the new, private part of the key - - Delete the certificate '%1' ? - - - - - Delete the %1 certificates: %2 ? - - - - + The certificate already exists in the database as: '%1' and so it was not imported @@ -2988,12 +2966,7 @@ and so it was not imported - - Not possible for smart card key: '%1' - - - - + Not possible for the token-key Certificate '%1' @@ -3011,7 +2984,7 @@ and so it was not imported db_x509req - + Certificate request ( *.pem *.der *.crl ) @@ -3056,7 +3029,7 @@ and so it was not imported - + Name Nombre @@ -3071,7 +3044,7 @@ and so it was not imported - + File @@ -3081,22 +3054,12 @@ and so it was not imported - - Delete the %1 requests: %2 ? - - - - + The certificate signing request already exists in the database as '%1' and thus was not stored - - - Delete the request '%1' ? - - db_x509super @@ -3122,12 +3085,12 @@ and thus was not stored pass_info - + Password Contraseña - + PIN @@ -3144,16 +3107,16 @@ and thus was not stored Error: + + + Internal error: Unexpected message: %1 %2 + + pki_crl - - the certificate revokation list - - - - + No issuer given @@ -3168,7 +3131,27 @@ and thus was not stored - + + Successfully imported the revokation list '%1' + + + + + Delete the revokation list '%1'? + + + + + Successfully created the revokation list '%1' + + + + + Delete the %1 revokation lists: %2? + + + + Wrong Size %1 @@ -3241,17 +3224,37 @@ and thus was not stored pki_key - - the %1 public key + + Successfully imported the %1 public key '%2' - - the %1 private key + + Delete the %1 public key '%2'? - + + Successfully imported the %1 private key '%2' + + + + + Delete the %1 private key '%2'? + + + + + Successfully created the %1 private key '%2' + + + + + Delete the %1 keys: %2? + + + + Common @@ -3325,7 +3328,7 @@ and thus was not stored pki_scard - + This Key is already on the token @@ -3345,12 +3348,7 @@ and thus was not stored - - Token - - - - + Failed to find the key on the token @@ -3365,7 +3363,27 @@ and thus was not stored - + + Successfully imported the token key '%1' + + + + + Delete the token key '%1'? + + + + + Successfully created the token key '%1' + + + + + Delete the %1 keys: %2? + + + + only RSA keys can be stored on tokens @@ -3384,16 +3402,16 @@ and thus was not stored Wrong Size %1 + + + Token %1 + + pki_temp - - the XCA template - - - - + Template file content error (too small): %1 @@ -3409,7 +3427,27 @@ and thus was not stored - + + Successfully imported the XCA template '%1' + + + + + Delete the XCA template '%1'? + + + + + Successfully created the XCA template '%1' + + + + + Delete the %1 XCA templates: %2? + + + + Template file content error (bad size): %1 @@ -3417,7 +3455,32 @@ and thus was not stored pki_x509 - + + Successfully imported the certificate '%1' + + + + + Delete the certificate '%1'? + + + + + Successfully created the certificate '%1' + + + + + Delete the %1 certificates: %2? + + + + + Delete the certificate '%1' from the token '%2 (#%3)'? + + + + Not trusted @@ -3437,12 +3500,7 @@ and thus was not stored - - the certificate - - - - + Unable to load the certificate in file %1. Tried PEM and DER certificate. @@ -3457,12 +3515,7 @@ and thus was not stored - - Delete the certificate '%1' from the token '%2 (#%3)' ? - - - - + Wrong Size %1 @@ -3476,17 +3529,27 @@ and thus was not stored - - the SPKAC request + + Successfully imported the %1 certificate request '%2' - - the PKCS#10 request + + Delete the %1 certificate request '%2'? - + + Successfully created the %1 certificate request '%2' + + + + + Delete the %1 certificate requests: %2? + + + + Unable to load the certificate request in file %1. Tried PEM, DER and SPKAC format. diff --git a/lang/xca_ru.ts b/lang/xca_ru.ts index 530895f4..78bbdafb 100644 --- a/lang/xca_ru.ts +++ b/lang/xca_ru.ts @@ -312,7 +312,7 @@ CertView - + There was no key found for the Certificate: Не найден ключ для сетификата: @@ -670,17 +670,17 @@ PKCS#8 - это официальный с возможностью шифров - + The type of the Item '%1' is not recognized - - The new name of %1 '%2' + + Rename '%1' - + Details of the item '%1' cannot be shown @@ -689,11 +689,6 @@ PKCS#8 - это официальный с возможностью шифров The type of the item '%1' is not recognized - - - Successfully imported the %1 '%2' - - Import PKI Items @@ -710,7 +705,7 @@ PKCS#8 - это официальный с возможностью шифров - + Name: %1 Model: %2 @@ -847,7 +842,7 @@ Serial: %3 Неверный пароль, попробуйте еще раз - + &Close DataBase &Закрыть базу данных @@ -857,17 +852,17 @@ Serial: %3 &Содержание - + &About &О программе - + &File &Файл - + &Help &Помощь @@ -1069,7 +1064,7 @@ Serial: %3 PEM файл - + Donations Пожертвование @@ -1099,7 +1094,7 @@ Serial: %3 Отмена - + I&mport И&мпорт @@ -1109,7 +1104,7 @@ Serial: %3 вставить PEM файл - + Database dump ( *.dump );;All files ( * ) Дамп базы данных ( *.dump );;All files ( * ) @@ -1134,17 +1129,17 @@ Serial: %3 Hex пароль должен содержать символы '0 '- '9' и 'a' - 'f' и должен состоять из четного числа символов - + &New DataBase &Новая база данных - + &Open DataBase &Открыть базу данных - + &Init Security token &Инициализировать Токен @@ -1159,7 +1154,7 @@ Serial: %3 Выход - + You need to restart XCA to load the new library Необходимо перезапустить XCA, чтобы загрузить новую библиотеку @@ -1215,7 +1210,7 @@ Serial: %3 Ошибка открытия файла: '%1': %2 - + Generate DH parameter Генерировать DH параметр @@ -2076,13 +2071,11 @@ though you have declared them as mandatory in the options menu. PassRead - - Password Пароль - + &Cancel &Отмена @@ -2106,18 +2099,15 @@ though you have declared them as mandatory in the options menu. PassWrite - - Password Пароль - Repeat password - Повторите пароль + Повторите пароль - + &Cancel О&тмена @@ -2495,9 +2485,8 @@ You must set it manually. db_base - Successfully created %1 '%2' - Успешно создан %1 '%2' + Успешно создан %1 '%2' @@ -2528,7 +2517,7 @@ You must set it manually. - + CRL ( *.pem *.der *.crl ) CRL ( *.pem *.der *.crl ) @@ -2558,17 +2547,7 @@ You must set it manually. Удалить - - Delete the revokation list '%1' ? - - - - - Delete the %1 revokation lists: %2 ? - - - - + The revokation list already exists in the database as: '%1' and so it was not imported @@ -2578,7 +2557,7 @@ and so it was not imported db_key - + Key size too small ! @@ -2629,7 +2608,32 @@ This will delete the key '%1' and make it unexportable - + + Name + Имя + + + + Type + Тип + + + + Size + + + + + Use + + + + + Password + Пароль + + + Change PIN Сменить PIN @@ -2650,7 +2654,7 @@ This will delete the key '%1' and make it unexportable - Tried to change password of a smart card + Tried to change password of a token @@ -2669,17 +2673,11 @@ This will delete the key '%1' and make it unexportable - Delete the key '%1' ? - Удалить ключ '%1' ? + Удалить ключ '%1' ? - - Delete the %1 keys: %2 ? - - - - + The key is already in the database as: '%1' and is not going to be imported @@ -2701,7 +2699,17 @@ and will be completed by the new, private part of the key db_temp - + + Name + Имя + + + + Type + Тип + + + Nothing Ничего @@ -2771,17 +2779,11 @@ and will be completed by the new, private part of the key XCA шаблоны ( *.xca);; Всеl файлы ( * ) - Delete the template '%1' ? - Удалить шаблон '%1' ? + Удалить шаблон '%1' ? - - Delete the %1 templates: %2 ? - - - - + Bad template: %1 Неправильный шаблон: %1 @@ -2789,7 +2791,7 @@ and will be completed by the new, private part of the key db_x509 - + Internal name Внутреннее имя @@ -2804,12 +2806,11 @@ and will be completed by the new, private part of the key Серийный номер - not After - Не позже, чем + Не позже, чем - + Trust state @@ -2819,7 +2820,12 @@ and will be completed by the new, private part of the key Аннулирован - + + Expiry date + + + + Plain View Список @@ -2949,7 +2955,12 @@ and will be completed by the new, private part of the key Отозвать - + + Not possible for a token key: '%1' + + + + days @@ -2969,17 +2980,11 @@ and will be completed by the new, private part of the key - Delete the certificate '%1' ? - Удалить сертификат '%1' ? + Удалить сертификат '%1' ? - - Delete the %1 certificates: %2 ? - - - - + The certificate already exists in the database as: '%1' and so it was not imported @@ -2992,12 +2997,7 @@ and so it was not imported - - Not possible for smart card key: '%1' - - - - + Not possible for the token-key Certificate '%1' @@ -3015,7 +3015,7 @@ and so it was not imported db_x509req - + Certificate request ( *.pem *.der *.crl ) Запросы на сертификат ( *.pem *.der *.crl ) @@ -3060,7 +3060,7 @@ and so it was not imported Удалить - + Name Имя @@ -3075,7 +3075,7 @@ and so it was not imported Подписанный - + File Файл @@ -3085,21 +3085,15 @@ and so it was not imported Шаблон - - Delete the %1 requests: %2 ? - - - - + The certificate signing request already exists in the database as '%1' and thus was not stored - Delete the request '%1' ? - Удалить запрос '%1' ? + Удалить запрос '%1' ? @@ -3126,12 +3120,12 @@ and thus was not stored pass_info - + Password Пароль - + PIN ПИН @@ -3148,16 +3142,20 @@ and thus was not stored Error: Ошибка: + + + Internal error: Unexpected message: %1 %2 + + pki_crl - the certificate revokation list - список отзыва сертификатов + список отзыва сертификатов - + No issuer given Данного издателя несуществует @@ -3172,7 +3170,27 @@ and thus was not stored Не удается загрузить список отзыва сертификатов из файла %1. Формат файла, содержащий CRL должен быть PEM или DER. - + + Successfully imported the revokation list '%1' + + + + + Delete the revokation list '%1'? + + + + + Successfully created the revokation list '%1' + + + + + Delete the %1 revokation lists: %2? + + + + Wrong Size %1 Неверный размер %1 @@ -3245,17 +3263,45 @@ and thus was not stored pki_key - the %1 public key - %1 открытый ключ + %1 открытый ключ - the %1 private key - %1 закрытый ключ + %1 закрытый ключ - + + Successfully imported the %1 public key '%2' + + + + + Delete the %1 public key '%2'? + + + + + Successfully imported the %1 private key '%2' + + + + + Delete the %1 private key '%2'? + + + + + Successfully created the %1 private key '%2' + + + + + Delete the %1 keys: %2? + + + + Common Общий @@ -3329,7 +3375,7 @@ and thus was not stored pki_scard - + This Key is already on the token Этот ключ уже есть на Токене безопасности @@ -3349,12 +3395,11 @@ and thus was not stored - Token - Токен безопасности + Токен безопасности - + Failed to find the key on the token @@ -3369,7 +3414,27 @@ and thus was not stored - + + Successfully imported the token key '%1' + + + + + Delete the token key '%1'? + + + + + Successfully created the token key '%1' + + + + + Delete the %1 keys: %2? + + + + only RSA keys can be stored on tokens @@ -3388,16 +3453,20 @@ and thus was not stored Wrong Size %1 Неправильный размер %1 + + + Token %1 + + pki_temp - the XCA template - XCA шаблон + XCA шаблон - + Template file content error (too small): %1 Содержимое файл-шаблона ошибочно (слишком мал) :%1 @@ -3413,7 +3482,27 @@ and thus was not stored Неправильный размер %1 - + + Successfully imported the XCA template '%1' + + + + + Delete the XCA template '%1'? + + + + + Successfully created the XCA template '%1' + + + + + Delete the %1 XCA templates: %2? + + + + Template file content error (bad size): %1 Содержимое файл-шаблона ошибочно (неверный размер) :%1 @@ -3421,7 +3510,32 @@ and thus was not stored pki_x509 - + + Successfully imported the certificate '%1' + + + + + Delete the certificate '%1'? + + + + + Successfully created the certificate '%1' + + + + + Delete the %1 certificates: %2? + + + + + Delete the certificate '%1' from the token '%2 (#%3)'? + + + + Not trusted Не доверенный @@ -3441,12 +3555,11 @@ and thus was not stored Не существует ключа для подписания ! - the certificate - сертификат + сертификат - + Unable to load the certificate in file %1. Tried PEM and DER certificate. Не удается загрузить сертификат из файла %1. Формат файла должен быть PEM или DER. @@ -3461,12 +3574,11 @@ and thus was not stored CRL истекает: %1 - Delete the certificate '%1' from the token '%2 (#%3)' ? - Удалить сертификат '%1' из Токена '%2 (#%3)' ? + Удалить сертификат '%1' из Токена '%2 (#%3)' ? - + Wrong Size %1 Неправильный размер %1 @@ -3480,17 +3592,35 @@ and thus was not stored Ключ для подписи не действителен (открытый ключ) - the SPKAC request - SPKAC запрос + SPKAC запрос - the PKCS#10 request - PKCS#10 запрос + PKCS#10 запрос - + + Successfully imported the %1 certificate request '%2' + + + + + Delete the %1 certificate request '%2'? + + + + + Successfully created the %1 certificate request '%2' + + + + + Delete the %1 certificate requests: %2? + + + + Unable to load the certificate request in file %1. Tried PEM, DER and SPKAC format. Не удается загрузить запрос на создание сертификата из файла %1. Формат файла должен быть PEM или DER. diff --git a/lib/Makefile b/lib/Makefile index 7a2d9b09..e56f2632 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -3,11 +3,12 @@ ifeq ($(TOPDIR),) TOPDIR=.. endif -MOCNAMES=db_crl db_key db_temp db_x509 db_x509req db_x509super db_base pki_base -NAMES=$(MOCNAMES) asn1int oid pki_pkcs7 x509rev asn1time \ - pki_temp x509v3ext pki_x509 func pki_crl pki_x509req \ - load_obj pki_key pki_x509super main pki_pkcs12 x509name db import \ - pki_multi pki_evp pki_scard pk11_attribute pkcs11 +MOCNAMES=db_crl db_key db_temp db_x509 db_x509req db_x509super db_base pki_base \ + pki_temp pki_x509 pki_crl pki_x509req pki_key pki_x509super pki_pkcs12 \ + pki_multi pki_evp pki_scard pass_info pki_pkcs7 +NAMES=$(MOCNAMES) asn1int oid x509rev asn1time \ + x509v3ext func load_obj main x509name db import \ + pk11_attribute pkcs11 OBJS=$(patsubst %, %.o, $(NAMES)) $(patsubst %, moc_%.o, $(MOCNAMES)) diff --git a/lib/db_base.cpp b/lib/db_base.cpp index 94e5d6be..04e9a7ac 100644 --- a/lib/db_base.cpp +++ b/lib/db_base.cpp @@ -45,11 +45,8 @@ void db_base::createSuccess(pki_base *pki) return; QMessageBox::information(mainwin, XCA_TITLE, - /* %1 resolves to "the certificate" or - "the Smart card RSA private key" */ - tr("Successfully created %1 '%2'"). - arg(pki->getFriendlyClassName()). - arg(pki->getIntName())); + pki->getMsg(pki_base::msg_create). + arg(pki->getIntName())); } void db_base::remFromCont(QModelIndex &idx) @@ -137,7 +134,8 @@ void db_base::delete_ask() pki_base *pki = static_cast(currentIdx.internalPointer()); if (QMessageBox::question(mainwin, XCA_TITLE, - delete_txt.arg(pki->getIntName()), + pki->getMsg(pki_base::msg_delete) + .arg(pki->getIntName()), QMessageBox::Ok | QMessageBox::Cancel) != QMessageBox::Ok) return; @@ -180,8 +178,9 @@ void db_base::deleteSelectedItems(XcaTreeView* view) { QModelIndexList indexes = view->getSelectedIndexes(); QModelIndex index; - QString items, single, msg; + QString items, msg; int count = 0; + pki_base *pki; if (indexes.count() == 0) return; @@ -189,15 +188,15 @@ void db_base::deleteSelectedItems(XcaTreeView* view) foreach(index, indexes) { if (index.column() != 0) continue; - pki_base *pki = static_cast(index.internalPointer()); + pki = static_cast(index.internalPointer()); items += "'" + pki->getIntName() + "' "; - single = pki->getIntName(); count++; } if (count == 1) - msg = delete_txt.arg(single); + msg = pki->getMsg(pki_base::msg_delete).arg(pki->getIntName()); else - msg = delete_multi_txt.arg(count).arg(items); + msg = pki->getMsg(pki_base::msg_delete_multi).arg(count). + arg(items); if (QMessageBox::question(mainwin, XCA_TITLE, msg, QMessageBox::Ok | QMessageBox::Cancel) != diff --git a/lib/db_base.h b/lib/db_base.h index 6285fd55..c4835dd4 100644 --- a/lib/db_base.h +++ b/lib/db_base.h @@ -32,9 +32,9 @@ class db_base: public QAbstractItemModel Q_OBJECT protected: - QString dbName, delete_txt, delete_multi_txt; + QString dbName; QModelIndex currentIdx; - void _writePKI(pki_base *pki, bool overwrite ); + void _writePKI(pki_base *pki, bool overwrite); void _removePKI(pki_base *pki ); void removeItem(QString k); enum pki_type pkitype[4]; diff --git a/lib/db_crl.cpp b/lib/db_crl.cpp index d35fff59..7a7d714e 100644 --- a/lib/db_crl.cpp +++ b/lib/db_crl.cpp @@ -19,8 +19,6 @@ db_crl::db_crl(QString db, MainWindow *mw) { headertext << tr("Name") << tr("Signer") << tr("Common name") << tr("No. revoked") << tr("Next update"); - delete_txt = tr("Delete the revokation list '%1' ?"); - delete_multi_txt = tr("Delete the %1 revokation lists: %2 ?"); view = mw->crlView; class_name = "crls"; pkitype[0] = revokation; diff --git a/lib/db_key.cpp b/lib/db_key.cpp index 176b99bf..bf693892 100644 --- a/lib/db_key.cpp +++ b/lib/db_key.cpp @@ -32,9 +32,8 @@ db_key::db_key(QString db, MainWindow *mw) :db_base(db, mw) { rootItem->setIntName("[key root]"); - headertext << "Name" << "Type" << "Size" << "Use" << "Password"; - delete_txt = tr("Delete the key '%1' ?"); - delete_multi_txt = tr("Delete the %1 keys: %2 ?"); + headertext << tr("Name") << tr("Type") << tr("Size") + << tr("Use") << tr("Password"); view = mw->keyView; class_name = "keys"; pkitype[0] = asym_key; @@ -341,7 +340,7 @@ void db_key::__setOwnPass(enum pki_key::passType x) return; targetKey = static_cast(currentIdx.internalPointer()); if (targetKey->isToken()) { - throw errorEx(tr("Tried to change password of a smart card")); + throw errorEx(tr("Tried to change password of a token")); } targetKey->setOwnPass(x); updatePKI(targetKey); diff --git a/lib/db_temp.cpp b/lib/db_temp.cpp index ba03c32e..d007791b 100644 --- a/lib/db_temp.cpp +++ b/lib/db_temp.cpp @@ -20,9 +20,7 @@ db_temp::db_temp(QString DBfile, MainWindow *mw) :db_base(DBfile, mw) { - headertext << "Name" << "Type"; - delete_txt = tr("Delete the template '%1' ?"); - delete_multi_txt = tr("Delete the %1 templates: %2 ?"); + headertext << tr("Name") << tr("Type"); view = mw->tempView; class_name = "templates"; pkitype[0] = tmpl; diff --git a/lib/db_x509.cpp b/lib/db_x509.cpp index 91f4cb24..21e06e27 100644 --- a/lib/db_x509.cpp +++ b/lib/db_x509.cpp @@ -28,11 +28,9 @@ db_x509::db_x509(QString DBfile, MainWindow *mw) :db_x509super(DBfile, mw) { rootItem->setIntName("[x509 root]"); - headertext << tr("Internal name") << tr("Common name") << tr("Serial") << - tr("not After") << tr("Trust state") << tr("Revocation"); + headertext << tr("Internal name") << tr("Common name") << tr("Serial") + << tr("Expiry date") << tr("Trust state") << tr("Revocation"); - delete_txt = tr("Delete the certificate '%1' ?"); - delete_multi_txt =tr("Delete the %1 certificates: %2 ?"); view = mw->certView; class_name = "certificates"; pkitype[0] = x509; @@ -754,7 +752,7 @@ void db_x509::store() } if (privkey->isToken()) { QMessageBox::warning(mainwin, XCA_TITLE, - tr("Not possible for smart card key: '%1'"). + tr("Not possible for a token key: '%1'"). arg(crt->getIntName())); return; } diff --git a/lib/db_x509req.cpp b/lib/db_x509req.cpp index f53f5ba8..9d3d82fa 100644 --- a/lib/db_x509req.cpp +++ b/lib/db_x509req.cpp @@ -19,8 +19,6 @@ db_x509req::db_x509req(QString DBfile, MainWindow *mw) :db_x509super(DBfile, mw) { headertext << tr("Name") << tr("Subject") << tr("Signed"); - delete_txt = tr("Delete the request '%1' ?"); - delete_multi_txt = tr("Delete the %1 requests: %2 ?"); view = mw->reqView; class_name = "requests"; pkitype[0] = x509_req; diff --git a/lib/pass_info.cpp b/lib/pass_info.cpp new file mode 100644 index 00000000..16fec82b --- /dev/null +++ b/lib/pass_info.cpp @@ -0,0 +1,20 @@ + +#include "pass_info.h" + +pass_info::pass_info(QString t, QString d, QWidget *w) +{ + title = t; + description = d; + widget = w; + if (!widget) + widget = qApp->activeWindow(); + type = tr("Password"); + pixmap = MainWindow::keyImg; +} + +void pass_info::setPin() +{ + type = tr("PIN"); + pixmap = MainWindow::scardImg; +} + diff --git a/lib/pass_info.h b/lib/pass_info.h index 246d9619..48f4a28b 100644 --- a/lib/pass_info.h +++ b/lib/pass_info.h @@ -16,6 +16,7 @@ class pass_info: public QObject { + Q_OBJECT private: QString title; QString description; @@ -24,16 +25,7 @@ class pass_info: public QObject QPixmap *pixmap; public: - pass_info(QString t, QString d, QWidget *w = NULL) - { - title = t; - description = d; - widget = w; - if (!widget) - widget = qApp->activeWindow(); - type = tr("Password"); - pixmap = MainWindow::keyImg; - } + pass_info(QString t, QString d, QWidget *w = NULL); QString getTitle() { return title; @@ -66,11 +58,7 @@ class pass_info: public QObject { widget = w; } - void setPin() - { - type = tr("PIN"); - pixmap = MainWindow::scardImg; - } + void setPin(); }; #endif diff --git a/lib/pki_base.h b/lib/pki_base.h index e12eb677..a9cb445b 100644 --- a/lib/pki_base.h +++ b/lib/pki_base.h @@ -32,6 +32,12 @@ class pki_base : public QObject void fopen_error(const QString fname); public: + enum msg_type { + msg_import, + msg_delete, + msg_delete_multi, + msg_create, + }; QList childItems; pki_base(const QString d = "", pki_base *p = NULL); virtual void fload(const QString) {}; @@ -53,9 +59,10 @@ class pki_base : public QObject void setIntName(const QString &d); QString getClassName(); static QString rmslashdot(const QString &fname); - virtual QString getFriendlyClassName() + virtual QString getMsg(msg_type msg) { - return QString("---"); + return tr("Internal error: Unexpected message: %1 %2"). + arg(class_name).arg(msg); }; int getVersion(); enum pki_type getType(); diff --git a/lib/pki_crl.cpp b/lib/pki_crl.cpp index a0b1e1c6..8859c343 100644 --- a/lib/pki_crl.cpp +++ b/lib/pki_crl.cpp @@ -35,10 +35,22 @@ void pki_crl::fromPEM_BIO(BIO *bio, QString name) setIntName(rmslashdot(name)); } -QString pki_crl::getFriendlyClassName() +QString pki_crl::getMsg(msg_type msg) { - /* used in sentences like: "Successfully created %1 '%2'" */ - return tr("the certificate revokation list"); + /* + * We do not construct english sentences from fragments + * to allow proper translations. + * + * %1 will be replaced by the internal name of the CRL + */ + switch (msg) { + case msg_import: return tr("Successfully imported the revokation list '%1'"); + case msg_delete: return tr("Delete the revokation list '%1'?"); + case msg_create: return tr("Successfully created the revokation list '%1'"); + /* %1: Number of CRLs; %2: list of CRL names */ + case msg_delete_multi: return tr("Delete the %1 revokation lists: %2?"); + } + return pki_base::getMsg(msg); } void pki_crl::fload(const QString fname) diff --git a/lib/pki_crl.h b/lib/pki_crl.h index 38d05063..30620dac 100644 --- a/lib/pki_crl.h +++ b/lib/pki_crl.h @@ -18,6 +18,7 @@ class pki_crl: public pki_base { + Q_OBJECT friend class pki_x509; protected: pki_x509 *issuer; @@ -57,7 +58,7 @@ class pki_crl: public pki_base a1int getVersion(); QVariant column_data(int col); QVariant getIcon(int column); - virtual QString getFriendlyClassName(); + virtual QString getMsg(msg_type msg); void d2i(QByteArray &ba); QByteArray i2d(); }; diff --git a/lib/pki_evp.h b/lib/pki_evp.h index 97571c68..7b9a6f27 100644 --- a/lib/pki_evp.h +++ b/lib/pki_evp.h @@ -21,6 +21,7 @@ class pki_evp: public pki_key { + Q_OBJECT protected: QByteArray encKey; void init(int type = EVP_PKEY_RSA); diff --git a/lib/pki_key.cpp b/lib/pki_key.cpp index 50b73e92..490303de 100644 --- a/lib/pki_key.cpp +++ b/lib/pki_key.cpp @@ -99,11 +99,36 @@ QString pki_key::getTypeString() return type; } -QString pki_key::getFriendlyClassName() +QString pki_key::getMsg(msg_type msg) { - /* used in sentences like: "Successfully created %1 '%2'" */ - QString txt = isPubKey() ? tr("the %1 public key") : tr("the %1 private key"); - return txt.arg(getTypeString()); + /* + * We do not construct english sentences (just a little bit) + * from fragments to allow proper translations. + * The drawback are all the slightly different duplicated messages + * + * %1 will be replaced by "RSA", "DSA", "EC" + * %2 is the internal name of the key + */ + QString ktype = getTypeString(); + if (isPubKey()) { + switch (msg) { + case msg_import: return tr("Successfully imported the %1 public key '%2'").arg(ktype); + case msg_delete: return tr("Delete the %1 public key '%2'?").arg(ktype); + default: break; + } + } else { + switch (msg) { + case msg_import: return tr("Successfully imported the %1 private key '%2'").arg(ktype); + case msg_delete: return tr("Delete the %1 private key '%2'?").arg(ktype); + case msg_create: return tr("Successfully created the %1 private key '%2'").arg(ktype); + default: break; + } + } + if (msg == msg_delete_multi) { + /* %1: Number of keys; %2: list of keynames */ + return tr("Delete the %1 keys: %2?"); + } + return pki_base::getMsg(msg); } QString pki_key::getIntNameWithType() diff --git a/lib/pki_key.h b/lib/pki_key.h index 35f1ecd6..49595082 100644 --- a/lib/pki_key.h +++ b/lib/pki_key.h @@ -20,6 +20,7 @@ class pki_key: public pki_base { + Q_OBJECT protected: int ownPass; EVP_PKEY *key; @@ -57,7 +58,7 @@ class pki_key: public pki_base { return QList(); } - virtual QString getFriendlyClassName(); + virtual QString getMsg(msg_type msg); virtual QString length(); void writePublic(const QString fname, bool pem); diff --git a/lib/pki_multi.h b/lib/pki_multi.h index dc833d5d..2a7725f3 100644 --- a/lib/pki_multi.h +++ b/lib/pki_multi.h @@ -17,6 +17,7 @@ class pki_multi: public pki_base { + Q_OBJECT protected: QList multi; public: diff --git a/lib/pki_pkcs12.h b/lib/pki_pkcs12.h index 799fb76c..d674fe11 100644 --- a/lib/pki_pkcs12.h +++ b/lib/pki_pkcs12.h @@ -19,6 +19,7 @@ class pki_pkcs12: public pki_base { + Q_OBJECT friend class pki_x509; friend class pki_evp; diff --git a/lib/pki_pkcs7.h b/lib/pki_pkcs7.h index 31c9b801..aa09a05e 100644 --- a/lib/pki_pkcs7.h +++ b/lib/pki_pkcs7.h @@ -12,6 +12,7 @@ class pki_pkcs7: public pki_base { + Q_OBJECT friend class pki_x509; protected: PKCS7 *p7; diff --git a/lib/pki_scard.cpp b/lib/pki_scard.cpp index e51ca972..edf31e13 100644 --- a/lib/pki_scard.cpp +++ b/lib/pki_scard.cpp @@ -137,6 +137,24 @@ pki_scard::pki_scard(const QString name) init(); } +QString pki_scard::getMsg(msg_type msg) +{ + /* + * We do not construct english sentences from fragments + * to allow proper translations. + * + * %1 will be replaced by the name of the smartcard + */ + switch (msg) { + case msg_import: return tr("Successfully imported the token key '%1'"); + case msg_delete: return tr("Delete the token key '%1'?"); + case msg_create: return tr("Successfully created the token key '%1'"); + /* %1: Number of ktemplates; %2: list of templatenames */ + case msg_delete_multi: return tr("Delete the %1 keys: %2?"); + } + return pki_base::getMsg(msg); +} + EVP_PKEY *pki_scard::load_pubkey(pkcs11 &p11, CK_OBJECT_HANDLE object) const { const unsigned char *p; @@ -650,7 +668,7 @@ bool pki_scard::isPubKey() const QString pki_scard::getTypeString(void) { - return tr("Token") + " " + pki_key::getTypeString(); + return tr("Token %1").arg(pki_key::getTypeString()); } EVP_PKEY *pki_scard::decryptKey() const diff --git a/lib/pki_scard.h b/lib/pki_scard.h index 993b3316..bd33b2c0 100644 --- a/lib/pki_scard.h +++ b/lib/pki_scard.h @@ -17,6 +17,7 @@ class pki_scard: public pki_key { + Q_OBJECT protected: QString card_serial; QString card_manufacturer; @@ -86,7 +87,7 @@ class pki_scard: public pki_key void deleteFromToken(unsigned long slot); void store_token(unsigned int slot, EVP_PKEY *pkey); virtual int renameOnToken(unsigned long slot, QString name); - + virtual QString getMsg(msg_type msg); }; #endif diff --git a/lib/pki_temp.cpp b/lib/pki_temp.cpp index c1cb55cc..514ee038 100644 --- a/lib/pki_temp.cpp +++ b/lib/pki_temp.cpp @@ -90,10 +90,22 @@ pki_temp::pki_temp(const QString d) noWellDefined=false; } -QString pki_temp::getFriendlyClassName() +QString pki_temp::getMsg(msg_type msg) { - /* used in sentences like: "Successfully created %1 '%2'" */ - return tr("the XCA template"); + /* + * We do not construct english sentences from fragments + * to allow proper translations. + * + * %1 will be replaced by the internal name of the template + */ + switch (msg) { + case msg_import: return tr("Successfully imported the XCA template '%1'"); + case msg_delete: return tr("Delete the XCA template '%1'?"); + case msg_create: return tr("Successfully created the XCA template '%1'"); + /* %1: Number of ktemplates; %2: list of templatenames */ + case msg_delete_multi: return tr("Delete the %1 XCA templates: %2?"); + } + return pki_base::getMsg(msg); } static QStringList extVlistToString(extList &el, int nid, bool *crit) diff --git a/lib/pki_temp.h b/lib/pki_temp.h index 1b25bfb9..7c52d6cb 100644 --- a/lib/pki_temp.h +++ b/lib/pki_temp.h @@ -15,6 +15,7 @@ class pki_temp: public pki_base { + Q_OBJECT protected: int dataSize(); public: @@ -46,7 +47,7 @@ class pki_temp: public pki_base void writeTemp(QString fname); QVariant column_data(int col); QVariant getIcon(int column); - virtual QString getFriendlyClassName(); + virtual QString getMsg(msg_type msg); }; diff --git a/lib/pki_x509.cpp b/lib/pki_x509.cpp index d8008d72..7f94007a 100644 --- a/lib/pki_x509.cpp +++ b/lib/pki_x509.cpp @@ -56,10 +56,23 @@ pki_x509::pki_x509(const QString name) openssl_error(); } -QString pki_x509::getFriendlyClassName() +QString pki_x509::getMsg(msg_type msg) { - /* used in sentences like: "Successfully created %1 '%2'" */ - return tr("the certificate"); + /* + * We do not construct english sentences from fragments + * to allow proper translations. + * The drawback are all the slightly different duplicated messages + * + * %1 will be replaced by the internal name of the certificate + */ + switch (msg) { + case msg_import: return tr("Successfully imported the certificate '%1'"); + case msg_delete: return tr("Delete the certificate '%1'?"); + case msg_create: return tr("Successfully created the certificate '%1'"); + /* %1: Number of certs; %2: list of cert ames */ + case msg_delete_multi: return tr("Delete the %1 certificates: %2?"); + } + return pki_base::getMsg(msg); } void pki_x509::fromPEM_BIO(BIO *bio, QString name) @@ -326,7 +339,7 @@ void pki_x509::deleteFromToken(unsigned long slot) tkInfo ti = p11.tokenInfo(); if (QMessageBox::question(NULL, XCA_TITLE, - tr("Delete the certificate '%1' from the token '%2 (#%3)' ?"). + tr("Delete the certificate '%1' from the token '%2 (#%3)'?"). arg(getIntName()).arg(ti.label()).arg(ti.serial()), QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) { diff --git a/lib/pki_x509.h b/lib/pki_x509.h index c87d1b23..0157dd0c 100644 --- a/lib/pki_x509.h +++ b/lib/pki_x509.h @@ -23,6 +23,7 @@ class pki_x509 : public pki_x509super { + Q_OBJECT private: pki_x509 *psigner; a1time revoked, crlExpiry; @@ -140,7 +141,7 @@ class pki_x509 : public pki_x509super void d2i(QByteArray &ba); void deleteFromToken(); void deleteFromToken(unsigned long slot); - virtual QString getFriendlyClassName(); + virtual QString getMsg(msg_type msg); virtual int renameOnToken(unsigned long slot, QString name); }; diff --git a/lib/pki_x509req.cpp b/lib/pki_x509req.cpp index ecdc06e5..d04c45db 100644 --- a/lib/pki_x509req.cpp +++ b/lib/pki_x509req.cpp @@ -75,10 +75,27 @@ void pki_x509req::createReq(pki_key *key, const x509name &dn, const EVP_MD *md, EVP_PKEY_free(privkey); } -QString pki_x509req::getFriendlyClassName() +QString pki_x509req::getMsg(msg_type msg) { - /* used in sentences like: "Successfully created %1 '%2'" */ - return isSpki() ? tr("the SPKAC request") : tr("the PKCS#10 request"); + /* + * We do not construct english sentences from fragments + * to allow proper translations. + * The drawback are all the slightly different duplicated messages + * + * %1 will be replaced by either "SPKAC" or "PKCS#10" + * %2 will be replaced by the internal name of the request + */ + + QString type = isSpki() ? "SPKAC" : "PKCS#10"; + + switch (msg) { + case msg_import: return tr("Successfully imported the %1 certificate request '%2'").arg(type); + case msg_delete: return tr("Delete the %1 certificate request '%2'?").arg(type); + case msg_create: return tr("Successfully created the %1 certificate request '%2'").arg(type); + /* %1: Number of requests; %2: list of request names */ + case msg_delete_multi: return tr("Delete the %1 certificate requests: %2?"); + } + return pki_base::getMsg(msg); } void pki_x509req::fromPEM_BIO(BIO *bio, QString name) diff --git a/lib/pki_x509req.h b/lib/pki_x509req.h index c524deae..6376f900 100644 --- a/lib/pki_x509req.h +++ b/lib/pki_x509req.h @@ -20,6 +20,7 @@ class pki_x509; class pki_x509req : public pki_x509super { + Q_OBJECT private: //loading spkac file and convert it to a request int load_spkac(const QString filename); @@ -70,7 +71,7 @@ class pki_x509req : public pki_x509super { return done; } - virtual QString getFriendlyClassName(); + virtual QString getMsg(msg_type msg); void d2i(QByteArray &ba); void d2i_spki(QByteArray &ba); QByteArray i2d(); diff --git a/lib/pki_x509super.h b/lib/pki_x509super.h index 639f06b0..3b4bf29b 100644 --- a/lib/pki_x509super.h +++ b/lib/pki_x509super.h @@ -16,6 +16,7 @@ class pki_x509super : public pki_base { + Q_OBJECT protected: pki_key *privkey; public: diff --git a/ui/PassRead.ui b/ui/PassRead.ui index 71977c33..943116ef 100644 --- a/ui/PassRead.ui +++ b/ui/PassRead.ui @@ -35,9 +35,6 @@ false - - Password - @@ -94,11 +91,7 @@ - - - Password - - + diff --git a/ui/PassWrite.ui b/ui/PassWrite.ui index fd58b354..de79e562 100644 --- a/ui/PassWrite.ui +++ b/ui/PassWrite.ui @@ -35,9 +35,6 @@ false - - Password - @@ -94,11 +91,7 @@ - - - Password - - + @@ -108,11 +101,7 @@ - - - Repeat password - - + diff --git a/widgets/ImportMulti.cpp b/widgets/ImportMulti.cpp index 8f065376..5c7e3664 100644 --- a/widgets/ImportMulti.cpp +++ b/widgets/ImportMulti.cpp @@ -177,8 +177,7 @@ void ImportMulti::on_renameToken_clicked() QString label = QInputDialog::getText(this, XCA_TITLE, /* %1 resolves to "the certificate" or "the Smart card RSA private key" */ - tr("The new name of %1 '%2'"). - arg(pki->getFriendlyClassName()). + tr("Rename '%1'"). arg(pki->getIntName()), QLineEdit::Normal, pki->getIntName(), &ok); if (!ok) @@ -192,10 +191,28 @@ void ImportMulti::on_renameToken_clicked() } } +static db_base *select_db(QString cn) +{ + if (cn == "pki_x509") + return MainWindow::certs; + if (cn == "pki_evp") + return MainWindow::keys; + if (cn == "pki_scard") + return MainWindow::keys; + if (cn == "pki_x509req") + return MainWindow::reqs; + if (cn == "pki_crl") + return MainWindow::crls; + if (cn == "pki_temp") + return MainWindow::temps; + return NULL; +} + pki_base *ImportMulti::import(QModelIndex &idx) { pki_base *pki = static_cast(idx.internalPointer()); + db_base *db; if (!pki) return NULL; @@ -210,27 +227,18 @@ pki_base *ImportMulti::import(QModelIndex &idx) return NULL; } - if (cn == "pki_x509") { - pki = MainWindow::certs->insert(pki); - } else if (cn == "pki_evp") { + if (cn == "pki_evp") ((pki_evp*)pki)->setOwnPass(pki_evp::ptCommon); - pki = MainWindow::keys->insert(pki); - } else if (cn == "pki_scard") { - pki = MainWindow::keys->insert(pki); - } else if (cn == "pki_x509req") { - pki = MainWindow::reqs->insert(pki); - } else if (cn == "pki_crl") { - pki = MainWindow::crls->insert(pki); - } else if (cn == "pki_temp") { - pki = MainWindow::temps->insert(pki); - } else { + + db = select_db(cn); + if (!db) { QMessageBox::warning(this, XCA_TITLE, tr("The type of the Item '%1' is not recognized"). arg(cn)); delete pki; return NULL; } - return pki; + return db->insert(pki); } void ImportMulti::on_butDetails_clicked() @@ -316,12 +324,11 @@ void ImportMulti::execute(int force) pki_base *pki = import(idx); if (pki) QMessageBox::information(this, XCA_TITLE, - tr("Successfully imported the %1 '%2'"). - arg(pki->getFriendlyClassName()). + pki->getMsg(pki_base::msg_import). arg(pki->getIntName())); accept(); return; } - /* the behavoiour for more than one item */ + /* the behaviour for more than one item */ exec(); } diff --git a/xca.pro b/xca.pro index 9ec6d6b6..fc514823 100644 --- a/xca.pro +++ b/xca.pro @@ -111,6 +111,7 @@ SOURCES += lib/asn1int.cpp \ lib/load_obj.cpp \ lib/main.cpp \ lib/oid.cpp \ + lib/pass_info.cpp \ lib/pki_base.cpp \ lib/pki_crl.cpp \ lib/pki_key.cpp \