From 5aea971c57d3a89389cc9e979f92f4452891fcde Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 23 Jul 2021 21:19:11 +0000 Subject: [PATCH 01/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index cada69d..c494993 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.3.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -128,6 +128,9 @@ rm -rf "${RPM_BUILD_ROOT}%{_docdir}/xca" #------------------------------------------------------------------------------- %changelog +* Fri Jul 23 2021 Fedora Release Engineering - 2.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Wed Jan 27 2021 Fedora Release Engineering - 2.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 32d492e871007612c54e8006222ab2b40bd10f7d Mon Sep 17 00:00:00 2001 From: Sahana Prasad Date: Tue, 14 Sep 2021 19:17:56 +0200 Subject: [PATCH 02/23] Rebuilt with OpenSSL 3.0.0 --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index c494993..e8c397f 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.3.0 -Release: 4%{?dist} +Release: 5%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -128,6 +128,9 @@ rm -rf "${RPM_BUILD_ROOT}%{_docdir}/xca" #------------------------------------------------------------------------------- %changelog +* Tue Sep 14 2021 Sahana Prasad - 2.3.0-5 +- Rebuilt with OpenSSL 3.0.0 + * Fri Jul 23 2021 Fedora Release Engineering - 2.3.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From 73b83a83d8df939018a0a6101d419b9177e42867 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Sat, 13 Nov 2021 18:52:54 +0100 Subject: [PATCH 03/23] New upstream release. Fixes FTBFS BZ #2021882 --- .gitignore | 1 + sources | 2 +- xca-2.4.0-lang-fr.patch | 4046 +++++++++++++++++++++++++++++++++++++ xca-2.4.0-lang-it.patch | 312 +++ xca-2.4.0-mimeicons.patch | 17 + xca-2.4.0-noclean.patch | 14 + xca-2.4.0-openssl3.patch | 233 +++ xca.spec | 87 +- 8 files changed, 4664 insertions(+), 48 deletions(-) create mode 100644 xca-2.4.0-lang-fr.patch create mode 100644 xca-2.4.0-lang-it.patch create mode 100644 xca-2.4.0-mimeicons.patch create mode 100644 xca-2.4.0-noclean.patch create mode 100644 xca-2.4.0-openssl3.patch diff --git a/.gitignore b/.gitignore index ae10a44..56a5ba2 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ xca-0.8.1.tar.gz /xca-2.1.2.tar.gz /xca-2.2.1.tar.gz /xca-2.3.0.tar.gz +/xca-2.4.0.tar.gz diff --git a/sources b/sources index 38337b4..f9652b1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xca-2.3.0.tar.gz) = 35522aa308e1022a739f3255f13fcf63f481000f9b7411027a009a185e33ddceeb5cf9b55406a4899d2393c7e5ace10354ff24b3b2b0c3045d110f679756b0b8 +SHA512 (xca-2.4.0.tar.gz) = e93e2cf9dc48ed43ee9b51e977f825d81ff08835eb4d77fcbe8f9dc8ce31c77c1da879b48c25ab535717542d1fe84faa6e46c410c116edbee02072040c59667c diff --git a/xca-2.4.0-lang-fr.patch b/xca-2.4.0-lang-fr.patch new file mode 100644 index 0000000..65bb353 --- /dev/null +++ b/xca-2.4.0-lang-fr.patch @@ -0,0 +1,4046 @@ +From 9b1fce659d24890c896a16f59eb14c38edceff76 Mon Sep 17 00:00:00 2001 +From: Patrick Monnerat +Date: Sat, 15 May 2021 11:50:24 +0200 +Subject: [PATCH] Update french translation + +--- + lang/fr.po | 1490 ++++++++++++++++++++++++++++------------------------ + 1 file changed, 791 insertions(+), 699 deletions(-) + +diff --git a/lang/fr.po b/lang/fr.po +index 2191b870..096abfc4 100644 +--- a/lang/fr.po ++++ b/lang/fr.po +@@ -1,20 +1,20 @@ + # + # demonipuch , 2012, 2014, 2015. +-# Patrick Monnerat <.>, 2011-2020. ++# Patrick Monnerat <.>, 2011-2021. + # + msgid "" + msgstr "" + "Project-Id-Version: xca 1.3.3\n" + "Report-Msgid-Bugs-To: \n" + "POT-Creation-Date: 2018-03-16 18:14+0200\n" +-"PO-Revision-Date: 2020-04-08 17:42+0200\n" ++"PO-Revision-Date: 2021-05-15 11:49+0200\n" + "Last-Translator: Patrick Monnerat <.>\n" + "Language-Team: French <>\n" + "Language: fr\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: Gtranslator 3.34.0\n" ++"X-Generator: Gtranslator 3.38.0\n" + "Plural-Forms: nplurals=2; plural=(n > 1);\n" + "X-Qt-Contexts: true\n" + +@@ -34,7 +34,7 @@ msgctxt "CaProperties|" + msgid "Default template" + msgstr "Modèle par défaut" + +-#: ../ui/CertDetail.ui:30 ../widgets/CertDetail.cpp:99 ++#: ../ui/CertDetail.ui:30 ../widgets/CertDetail.cpp:112 + msgctxt "CertDetail|" + msgid "Details of the Certificate" + msgstr "Détails du Certificat" +@@ -149,58 +149,58 @@ msgctxt "CertDetail|" + msgid "Attributes" + msgstr "Attributs" + +-#: ../ui/CertDetail.ui:377 ../widgets/CertDetail.cpp:36 ++#: ../ui/CertDetail.ui:377 ../widgets/CertDetail.cpp:40 + msgctxt "CertDetail|" + msgid "Show config" + msgstr "Afficher la configuration" + +-#: ../widgets/CertDetail.cpp:40 ++#: ../widgets/CertDetail.cpp:44 + msgctxt "CertDetail|" + msgid "Show extensions" + msgstr "Afficher les extensions" + +-#: ../widgets/CertDetail.cpp:62 ++#: ../widgets/CertDetail.cpp:66 + msgctxt "CertDetail|" + msgid "Show public key" + msgstr "Afficher la clé publique" + +-#: ../widgets/CertDetail.cpp:67 ++#: ../widgets/CertDetail.cpp:69 + msgctxt "CertDetail|" + msgid "This key is not in the database." + msgstr "Cette clé ne figure pas dans la base de données" + +-#: ../widgets/CertDetail.cpp:69 ++#: ../widgets/CertDetail.cpp:73 + msgctxt "CertDetail|" + msgid "Not available" + msgstr "Non disponible" + +-#: ../widgets/CertDetail.cpp:108 ++#: ../widgets/CertDetail.cpp:120 + msgctxt "CertDetail|" + msgid "Signer unknown" + msgstr "Signataire inconnu" + +-#: ../widgets/CertDetail.cpp:112 ++#: ../widgets/CertDetail.cpp:124 + msgctxt "CertDetail|" + msgid "Self signed" + msgstr "Auto-signé" + +-#: ../widgets/CertDetail.cpp:139 ++#: ../widgets/CertDetail.cpp:154 + #, qt-format + msgctxt "CertDetail|" + msgid "Revoked at %1" + msgstr "Révoqué le %1" + +-#: ../widgets/CertDetail.cpp:144 ++#: ../widgets/CertDetail.cpp:159 + msgctxt "CertDetail|" + msgid "Not valid" + msgstr "Invalide" + +-#: ../widgets/CertDetail.cpp:148 ++#: ../widgets/CertDetail.cpp:163 + msgctxt "CertDetail|" + msgid "Valid" + msgstr "Valide" + +-#: ../widgets/CertDetail.cpp:167 ++#: ../widgets/CertDetail.cpp:184 + msgctxt "CertDetail|" + msgid "Details of the certificate signing request" + msgstr "Détails de la requête de signature" +@@ -322,76 +322,86 @@ msgstr "" + "Le certificat serait valide plus longtemps que son signataire. Ce n'est " + "probablement pas ce qui est désiré." + +-#: ../widgets/CertTreeView.cpp:25 ++#: ../widgets/CertTreeView.cpp:30 + msgctxt "CertTreeView|" + msgid "Import PKCS#12" + msgstr "Importer en PKCS#12" + +-#: ../widgets/CertTreeView.cpp:26 ++#: ../widgets/CertTreeView.cpp:31 + msgctxt "CertTreeView|" + msgid "Import from PKCS#7" + msgstr "Importer en PKCS#7" + +-#: ../widgets/CertTreeView.cpp:54 ++#: ../widgets/CertTreeView.cpp:60 + msgctxt "CertTreeView|" + msgid "Request" + msgstr "Requête" + +-#: ../widgets/CertTreeView.cpp:56 ++#: ../widgets/CertTreeView.cpp:62 + msgctxt "CertTreeView|" + msgid "Security token" + msgstr "Jeton de sécurité" + +-#: ../widgets/CertTreeView.cpp:58 ++#: ../widgets/CertTreeView.cpp:64 + msgctxt "CertTreeView|" + msgid "Other token" + msgstr "Autre jeton" + +-#: ../widgets/CertTreeView.cpp:62 ++#: ../widgets/CertTreeView.cpp:68 + msgctxt "CertTreeView|" + msgid "Similar Certificate" + msgstr "Certificat similaire" + +-#: ../widgets/CertTreeView.cpp:65 ++#: ../widgets/CertTreeView.cpp:71 + msgctxt "CertTreeView|" + msgid "Delete from Security token" + msgstr "Détruire sur le jeton de sécurité" + +-#: ../widgets/CertTreeView.cpp:68 ++#: ../widgets/CertTreeView.cpp:74 + msgctxt "CertTreeView|" + msgid "CA" + msgstr "CA" + +-#: ../widgets/CertTreeView.cpp:69 ++#: ../widgets/CertTreeView.cpp:75 + msgctxt "CertTreeView|" + msgid "Properties" + msgstr "Propriétés" + +-#: ../widgets/CertTreeView.cpp:70 ++#: ../widgets/CertTreeView.cpp:76 + msgctxt "CertTreeView|" + msgid "Generate CRL" + msgstr "Générer la liste de révocation" + +-#: ../widgets/CertTreeView.cpp:71 ++#: ../widgets/CertTreeView.cpp:77 + msgctxt "CertTreeView|" + msgid "Manage revocations" + msgstr "Gérer les révocations" + +-#: ../widgets/CertTreeView.cpp:76 ../widgets/CertTreeView.cpp:79 ++#: ../widgets/CertTreeView.cpp:82 ../widgets/CertTreeView.cpp:85 + msgctxt "CertTreeView|" + msgid "Renewal" + msgstr "Renouvellement" + +-#: ../widgets/CertTreeView.cpp:81 ++#: ../widgets/CertTreeView.cpp:87 + msgctxt "CertTreeView|" + msgid "Revoke" + msgstr "Révoquer" + +-#: ../widgets/CertTreeView.cpp:83 ++#: ../widgets/CertTreeView.cpp:89 + msgctxt "CertTreeView|" + msgid "Unrevoke" + msgstr "Dé-révoquer" + ++#: ../widgets/CertTreeView.cpp:157 ++msgctxt "CertTreeView|" ++msgid "Plain View" ++msgstr "Vue à plat" ++ ++#: ../widgets/CertTreeView.cpp:157 ++msgctxt "CertTreeView|" ++msgid "Tree View" ++msgstr "Vue arborescente" ++ + #: ../widgets/clicklabel.cpp:37 + msgctxt "ClickLabel|" + msgid "Double click for details" +@@ -407,81 +417,91 @@ msgctxt "CrlDetail|" + msgid "&Status" + msgstr "&Etat" + +-#: ../ui/CrlDetail.ui:126 ++#: ../ui/CrlDetail.ui:144 + msgctxt "CrlDetail|" + msgid "Version" + msgstr "Version" + +-#: ../ui/CrlDetail.ui:145 ++#: ../ui/CrlDetail.ui:163 + msgctxt "CrlDetail|" + msgid "Signature" + msgstr "Signature" + +-#: ../ui/CrlDetail.ui:152 ++#: ../ui/CrlDetail.ui:170 + msgctxt "CrlDetail|" + msgid "Signed by" + msgstr "Signée par" + +-#: ../ui/CrlDetail.ui:159 ++#: ../ui/CrlDetail.ui:177 + msgctxt "CrlDetail|" + msgid "Name" + msgstr "Nom" + +-#: ../ui/CrlDetail.ui:166 ++#: ../ui/CrlDetail.ui:184 + msgctxt "CrlDetail|" + msgid "The internal name of the CRL in the database" + msgstr "Le nom interne de la liste de révocation dans la base de données" + +-#: ../ui/CrlDetail.ui:179 ++#: ../ui/CrlDetail.ui:197 + msgctxt "CrlDetail|" + msgid "issuing dates" + msgstr "dates d'émission" + +-#: ../ui/CrlDetail.ui:188 ++#: ../ui/CrlDetail.ui:215 + msgctxt "CrlDetail|" + msgid "Next update" + msgstr "Prochaine mise-à-jour" + +-#: ../ui/CrlDetail.ui:195 ++#: ../ui/CrlDetail.ui:222 + msgctxt "CrlDetail|" + msgid "Last update" + msgstr "Dernière mise-à-jour" + +-#: ../ui/CrlDetail.ui:228 ++#: ../ui/CrlDetail.ui:255 + msgctxt "CrlDetail|" + msgid "&Issuer" + msgstr "&Emetteur" + +-#: ../ui/CrlDetail.ui:241 ++#: ../ui/CrlDetail.ui:277 + msgctxt "CrlDetail|" + msgid "&Extensions" + msgstr "&Extensions" + +-#: ../ui/CrlDetail.ui:261 ++#: ../ui/CrlDetail.ui:306 + msgctxt "CrlDetail|" + msgid "&Revocation list" + msgstr "Liste de &révocation" + +-#: ../ui/CrlDetail.ui:286 ++#: ../ui/CrlDetail.ui:340 + msgctxt "CrlDetail|" + msgid "Comment" + msgstr "Commentaire" + +-#: ../widgets/CrlDetail.cpp:47 ++#: ../widgets/CrlDetail.cpp:52 + msgctxt "CrlDetail|" + msgid "Failed" + msgstr "Echoué" + +-#: ../widgets/CrlDetail.cpp:52 ++#: ../widgets/CrlDetail.cpp:57 + msgctxt "CrlDetail|" + msgid "Unknown signer" + msgstr "Signataire inconnu" + +-#: ../widgets/CrlDetail.cpp:55 ++#: ../widgets/CrlDetail.cpp:60 + msgctxt "CrlDetail|" + msgid "Verification not possible" + msgstr "Vérification impossible" + ++#: ../widgets/CrlTreeView.cpp:37 ++msgctxt "CrlTreeView|" ++msgid "There are no CA certificates for CRL generation" ++msgstr "Il n'y a pas de certificat CA pour la génération de la CRL" ++ ++#: ../widgets/CrlTreeView.cpp:45 ++msgctxt "CrlTreeView|" ++msgid "Select CA certificate" ++msgstr "Sélectionner un certificat d'autorité" ++ + #: ../ui/ExportDialog.ui:79 + msgctxt "ExportDialog|" + msgid "Name" +@@ -512,80 +532,80 @@ msgctxt "ExportDialog|" + msgid "Export Format" + msgstr "Format d'exportation" + +-#: ../widgets/ExportDialog.cpp:36 ++#: ../widgets/ExportDialog.cpp:41 + msgctxt "ExportDialog|" + msgid "All files ( * )" + msgstr "Tous les fichiers ( * )" + +-#: ../widgets/ExportDialog.cpp:51 ++#: ../widgets/ExportDialog.cpp:56 + msgctxt "ExportDialog|" + msgid "PEM Text format with headers" + msgstr "Format textuel PEM avec des en-têtes" + +-#: ../widgets/ExportDialog.cpp:53 ++#: ../widgets/ExportDialog.cpp:58 + msgctxt "ExportDialog|" + msgid "Concatenated list of all selected items in one PEM text file" + msgstr "" + "Concaténation de tous les éléments sélectionnés dans un seul fichier texte " + "en format PEM" + +-#: ../widgets/ExportDialog.cpp:54 ++#: ../widgets/ExportDialog.cpp:59 + msgctxt "ExportDialog|" + msgid "" + "Concatenated text format of the complete certificate chain in one PEM file" + msgstr "" + "Fichier PEM contenant la concaténation de tous les certificats de la chaîne" + +-#: ../widgets/ExportDialog.cpp:58 ++#: ../widgets/ExportDialog.cpp:63 + msgctxt "ExportDialog|" + msgid "Concatenated text format of all certificates in one PEM file" + msgstr "Fichier PEM contenant la concaténation de tous les certificats" + +-#: ../widgets/ExportDialog.cpp:59 ++#: ../widgets/ExportDialog.cpp:64 + msgctxt "ExportDialog|" + msgid "Binary DER encoded file" + msgstr "Fichier binaire en format DER" + +-#: ../widgets/ExportDialog.cpp:60 ++#: ../widgets/ExportDialog.cpp:65 + msgctxt "ExportDialog|" + msgid "PKCS#7 encoded single certificate" + msgstr "Un seul certificat en format PKCS#7" + +-#: ../widgets/ExportDialog.cpp:62 ++#: ../widgets/ExportDialog.cpp:67 + msgctxt "ExportDialog|" + msgid "PKCS#7 encoded complete certificate chain" + msgstr "" + "La chaîne complète de certificats en format PKCS#7 dans un seul fichier" + +-#: ../widgets/ExportDialog.cpp:56 ++#: ../widgets/ExportDialog.cpp:61 + msgctxt "ExportDialog|" + msgid "Concatenated text format of all unrevoked certificates in one PEM file" + msgstr "" + "Fichier PEM contenant la concaténation de tous les certificats non-révoqués" + +-#: ../widgets/ExportDialog.cpp:64 ++#: ../widgets/ExportDialog.cpp:69 + msgctxt "ExportDialog|" + msgid "All unrevoked certificates encoded in one PKCS#7 file" + msgstr "" + "Tous les certificats non-révoqués dans un seul fichier en format PKCS#7" + +-#: ../widgets/ExportDialog.cpp:66 ++#: ../widgets/ExportDialog.cpp:71 + msgctxt "ExportDialog|" + msgid "All selected certificates encoded in one PKCS#7 file" + msgstr "" + "Tous les certificats sélectionnés dans un seul fichier en format PKCS#7" + +-#: ../widgets/ExportDialog.cpp:68 ++#: ../widgets/ExportDialog.cpp:73 + msgctxt "ExportDialog|" + msgid "All certificates encoded in one PKCS#7 file" + msgstr "Tous les certificats dans un seul fichier en format PKCS#7" + +-#: ../widgets/ExportDialog.cpp:70 ++#: ../widgets/ExportDialog.cpp:75 + msgctxt "ExportDialog|" + msgid "The certificate and the private key as encrypted PKCS#12 file" + msgstr "Le certificat et sa clé privée dans un fichier en format PKCS#12" + +-#: ../widgets/ExportDialog.cpp:71 ++#: ../widgets/ExportDialog.cpp:76 + msgctxt "ExportDialog|" + msgid "" + "The complete certificate chain and the private key as encrypted PKCS#12 file" +@@ -593,7 +613,7 @@ msgstr "" + "La chaîne complète des certificats et la clé privée en un seul fichier " + "chiffré en format PKCS#12" + +-#: ../widgets/ExportDialog.cpp:72 ++#: ../widgets/ExportDialog.cpp:77 + msgctxt "ExportDialog|" + msgid "" + "Concatenation of the certificate and the unencrypted private key in one PEM " +@@ -602,7 +622,7 @@ msgstr "" + "La concaténation du certificat et de sa clé privée non-chiffrée dans un seul " + "fichier PEM" + +-#: ../widgets/ExportDialog.cpp:73 ++#: ../widgets/ExportDialog.cpp:78 + msgctxt "ExportDialog|" + msgid "" + "Concatenation of the certificate and the encrypted private key in PKCS#8 " +@@ -611,47 +631,47 @@ msgstr "" + "La concaténation du certificat et de sa clé privée chiffrée en format PKCS#8 " + "dans un seul fichier" + +-#: ../widgets/ExportDialog.cpp:74 ++#: ../widgets/ExportDialog.cpp:79 + msgctxt "ExportDialog|" + msgid "Text format of the public key in one PEM file" + msgstr "Formattage textuel de la clé publique dans un fichier PEM" + +-#: ../widgets/ExportDialog.cpp:75 ++#: ../widgets/ExportDialog.cpp:80 + msgctxt "ExportDialog|" + msgid "Binary DER format of the public key" + msgstr "Format binaire DER de la clé publique" + +-#: ../widgets/ExportDialog.cpp:77 ++#: ../widgets/ExportDialog.cpp:82 + msgctxt "ExportDialog|" + msgid "Unencrypted private key in text format" + msgstr "Clé privée non-chiffrée en format texte" + +-#: ../widgets/ExportDialog.cpp:79 ++#: ../widgets/ExportDialog.cpp:84 + msgctxt "ExportDialog|" + msgid "OpenSSL specific encrypted private key in text format" + msgstr "Clé privée chiffrée spécifiquement par OpenSSL en format texte" + +-#: ../widgets/ExportDialog.cpp:81 ++#: ../widgets/ExportDialog.cpp:86 + msgctxt "ExportDialog|" + msgid "Unencrypted private key in binary DER format" + msgstr "Clé privée non-chiffrée en format binaire DER" + +-#: ../widgets/ExportDialog.cpp:83 ++#: ../widgets/ExportDialog.cpp:88 + msgctxt "ExportDialog|" + msgid "Unencrypted private key in PKCS#8 text format" + msgstr "Clé privée non-chiffrée en format texte PKCS#8" + +-#: ../widgets/ExportDialog.cpp:85 ++#: ../widgets/ExportDialog.cpp:90 + msgctxt "ExportDialog|" + msgid "Encrypted private key in PKCS#8 text format" + msgstr "Clé privée chiffrée en format texte PKCS#8" + +-#: ../widgets/ExportDialog.cpp:86 ++#: ../widgets/ExportDialog.cpp:91 + msgctxt "ExportDialog|" + msgid "The public key encoded in SSH2 format" + msgstr "La clé publique en format SSH2" + +-#: ../widgets/ExportDialog.cpp:87 ++#: ../widgets/ExportDialog.cpp:92 + msgctxt "ExportDialog|" + msgid "" + "OpenSSL specific Certificate Index file as created by the 'ca' command and " +@@ -660,12 +680,12 @@ msgstr "" + "Fichier d'index des certificats spécifique à OpenSSL, tel que créé par la " + "commande 'ca' et nécessaire à l'outil OCSP" + +-#: ../widgets/ExportDialog.cpp:88 ++#: ../widgets/ExportDialog.cpp:93 + msgctxt "ExportDialog|" + msgid "vCalendar expiry reminder for the selected items" + msgstr "message vCalendar de rappel d'expiration des éléments sélectionnés" + +-#: ../widgets/ExportDialog.cpp:89 ++#: ../widgets/ExportDialog.cpp:94 + msgctxt "ExportDialog|" + msgid "" + "vCalendar expiry reminder containing all issued, valid certificates, the CA " +@@ -674,28 +694,28 @@ msgstr "" + "message vCalendar de rappel d'expiration contenant tous les certificats " + "valides émis, le CA lui-même et la liste de révocation la plus récente" + +-#: ../widgets/ExportDialog.cpp:90 ++#: ../widgets/ExportDialog.cpp:95 + msgctxt "ExportDialog|" + msgid "Private key in Microsoft PVK format not encrypted" + msgstr "La clé privée en format Microsoft PVK n'est pas chiffrée" + +-#: ../widgets/ExportDialog.cpp:91 ++#: ../widgets/ExportDialog.cpp:96 + msgctxt "ExportDialog|" + msgid "Encrypted private key in Microsoft PVK format" + msgstr "Clé privée chiffrée en format Microsoft PVK" + +-#: ../widgets/ExportDialog.cpp:128 ++#: ../widgets/ExportDialog.cpp:133 + #, qt-format + msgctxt "ExportDialog|" + msgid "The file: '%1' already exists!" + msgstr "Le fichier '%1' existe déjà!" + +-#: ../widgets/ExportDialog.cpp:130 ++#: ../widgets/ExportDialog.cpp:134 + msgctxt "ExportDialog|" + msgid "Overwrite" + msgstr "Ecraser" + +-#: ../widgets/ExportDialog.cpp:132 ++#: ../widgets/ExportDialog.cpp:135 + msgctxt "ExportDialog|" + msgid "Do not overwrite" + msgstr "Ne pas écraser" +@@ -755,7 +775,7 @@ msgctxt "ImportMulti|" + msgid "Rename on token" + msgstr "Renommer dans le jeton" + +-#: ../widgets/ImportMulti.cpp:62 ++#: ../widgets/ImportMulti.cpp:64 + #, qt-format + msgctxt "ImportMulti|" + msgid "" +@@ -769,31 +789,30 @@ msgstr "" + "Modèle: %2\n" + "Numéro de série: %3" + +-#: ../widgets/ImportMulti.cpp:67 ++#: ../widgets/ImportMulti.cpp:69 + msgctxt "ImportMulti|" + msgid "Manage security token" + msgstr "Gérer les jetons de sécurité" + +-#: ../widgets/ImportMulti.cpp:345 ++#: ../widgets/ImportMulti.cpp:281 + #, qt-format + msgctxt "ImportMulti|" + msgid "Details of the item '%1' cannot be shown" + msgstr "Les détails de l'objet '%1' ne peuvent pas être affichés" + +-#: ../widgets/ImportMulti.cpp:125 ../widgets/ImportMulti.cpp:287 +-#: ../widgets/ImportMulti.cpp:348 ++#: ../widgets/ImportMulti.cpp:103 ../widgets/ImportMulti.cpp:285 + #, qt-format + msgctxt "ImportMulti|" + msgid "The type of the item '%1' is not recognized" + msgstr "Le type de l'objet '%1' n'est pas reconnu" + +-#: ../widgets/ImportMulti.cpp:376 ++#: ../widgets/ImportMulti.cpp:313 + #, qt-format + msgctxt "ImportMulti|" + msgid "The file '%1' did not contain PKI data" + msgstr "Le fichier '%1' ne contient pas de données PKI" + +-#: ../widgets/ImportMulti.cpp:379 ++#: ../widgets/ImportMulti.cpp:316 + #, qt-format + msgctxt "ImportMulti|" + msgid "The %1 files: '%2' did not contain PKI data" +@@ -809,7 +828,7 @@ msgctxt "ItemProperties|" + msgid "Source" + msgstr "Source" + +-#: ../ui/ItemProperties.ui:39 ++#: ../ui/ItemProperties.ui:42 + msgctxt "ItemProperties|" + msgid "Insertion date" + msgstr "Date d'insertion" +@@ -829,7 +848,7 @@ msgctxt "KeyDetail|" + msgid "The internal name of the key used by xca" + msgstr "Le nom interne de la clé utilisé par xca" + +-#: ../widgets/KeyDetail.cpp:96 ++#: ../widgets/KeyDetail.cpp:106 + msgctxt "KeyDetail|" + msgid "Security token" + msgstr "Jeton de sécurité" +@@ -899,84 +918,86 @@ msgctxt "KeyDetail|" + msgid "Comment" + msgstr "Commentaire" + +-#: ../widgets/KeyDetail.cpp:79 ++#: ../widgets/KeyDetail.cpp:89 + #, qt-format + msgctxt "KeyDetail|" + msgid "Details of the %1 key" + msgstr "Détails de la clé %1" + +-#: ../widgets/KeyDetail.cpp:85 ++#: ../widgets/KeyDetail.cpp:95 + msgctxt "KeyDetail|" + msgid "Not available" + msgstr "Non disponible" + +-#: ../widgets/KeyDetail.cpp:98 ++#: ../widgets/KeyDetail.cpp:108 + msgctxt "KeyDetail|" + msgid "Available" + msgstr "Disponible" + +-#: ../widgets/KeyDetail.cpp:107 ++#: ../widgets/KeyDetail.cpp:117 + msgctxt "KeyDetail|" + msgid "Sub prime" + msgstr "Sous-premier" + +-#: ../widgets/KeyDetail.cpp:108 ../widgets/KeyDetail.cpp:117 ++#: ../widgets/KeyDetail.cpp:118 ../widgets/KeyDetail.cpp:127 ++#: ../widgets/KeyDetail.cpp:139 + msgctxt "KeyDetail|" + msgid "Public key" + msgstr "Clé publique" + +-#: ../widgets/KeyDetail.cpp:109 ../widgets/KeyDetail.cpp:118 ++#: ../widgets/KeyDetail.cpp:119 ../widgets/KeyDetail.cpp:128 ++#: ../widgets/KeyDetail.cpp:140 + msgctxt "KeyDetail|" + msgid "Private key" + msgstr "Clé privée" + +-#: ../widgets/KeyDetail.cpp:119 ++#: ../widgets/KeyDetail.cpp:129 ../widgets/KeyDetail.cpp:141 + msgctxt "KeyDetail|" + msgid "Curve name" + msgstr "Nom de la courbe" + +-#: ../widgets/KeyDetail.cpp:129 ++#: ../widgets/KeyDetail.cpp:148 + msgctxt "KeyDetail|" + msgid "Unknown key" + msgstr "Clé inconnue" + +-#: ../widgets/KeyTreeView.cpp:28 ++#: ../widgets/KeyTreeView.cpp:30 + msgctxt "KeyTreeView|" + msgid "Change password" + msgstr "Changer le mot de passe" + +-#: ../widgets/KeyTreeView.cpp:32 ++#: ../widgets/KeyTreeView.cpp:34 + msgctxt "KeyTreeView|" + msgid "Reset password" + msgstr "Effacer le mot de passe" + +-#: ../widgets/KeyTreeView.cpp:44 ++#: ../widgets/KeyTreeView.cpp:46 + msgctxt "KeyTreeView|" + msgid "Change PIN" + msgstr "Changer le NIP" + +-#: ../widgets/KeyTreeView.cpp:46 ++#: ../widgets/KeyTreeView.cpp:48 + msgctxt "KeyTreeView|" + msgid "Init PIN with SO PIN (PUK)" + msgstr "Initialiser le NIP avec le PUK" + +-#: ../widgets/KeyTreeView.cpp:48 ++#: ../widgets/KeyTreeView.cpp:50 + msgctxt "KeyTreeView|" + msgid "Change SO PIN (PUK)" + msgstr "Changer le PUK" + +-#: ../widgets/KeyTreeView.cpp:51 ++#: ../widgets/KeyTreeView.cpp:53 + msgctxt "KeyTreeView|" + msgid "Security token" + msgstr "Jeton de sécurité" + +-#: ../widgets/KeyTreeView.cpp:84 ../widgets/KeyTreeView.cpp:102 +-#: ../widgets/KeyTreeView.cpp:120 ++#: ../widgets/KeyTreeView.cpp:90 ../widgets/KeyTreeView.cpp:108 ++#: ../widgets/KeyTreeView.cpp:126 + msgctxt "KeyTreeView|" + msgid "This is not a token" + msgstr "Ce n'est pas un jeton" + +-#: ../widgets/KeyTreeView.cpp:149 ++#: ../widgets/KeyTreeView.cpp:155 + #, qt-format + msgctxt "KeyTreeView|" + msgid "" +@@ -1036,7 +1057,7 @@ msgctxt "MainWindow|" + msgid "&New Request" + msgstr "&Nouvelle requête" + +-#: ../ui/MainWindow.ui:222 ../widgets/MW_menu.cpp:126 ++#: ../ui/MainWindow.ui:222 ../widgets/MW_menu.cpp:132 + msgctxt "MainWindow|" + msgid "Certificates" + msgstr "Certificats" +@@ -1086,7 +1107,7 @@ msgctxt "MainWindow|" + msgid "Revocation lists" + msgstr "Listes de révocation" + +-#: ../widgets/MW_database.cpp:333 ++#: ../widgets/MainWindow.cpp:584 + msgctxt "MainWindow|" + msgid "" + "Using or exporting private keys will not be possible without providing the " +@@ -1095,12 +1116,12 @@ msgstr "" + "Il sera impossible d'utiliser ou d'exporter des clés privées sans fournir le " + "mot de passe correct." + +-#: ../widgets/MW_database.cpp:341 ../widgets/MainWindow.cpp:868 ++#: ../widgets/MainWindow.cpp:579 ../widgets/MainWindow.cpp:729 + msgctxt "MainWindow|" + msgid "Database" + msgstr "Base de données" + +-#: ../widgets/MW_database.cpp:338 ++#: ../widgets/MainWindow.cpp:590 + #, qt-format + msgctxt "MainWindow|" + msgid "" +@@ -1110,34 +1131,12 @@ msgstr "" + "L'algorithme de hachage '%1' sélectionné n'est pas sûr. SVP choisissez au " + "moins 'SHA 224' pour raisons de sécurité." + +-#: ../widgets/MW_database.cpp:257 +-#, qt-format +-msgctxt "MainWindow|" +-msgid "" +-"Legacy database format detected. Creating a backup copy called: '%1' and " +-"converting the database to the new format" +-msgstr "" +-"Format historique de base de données détecté. Une copie de sauvegarde " +-"appelée '%1' est créée et la base de données est convertie au nouveau format" +- +-#: ../widgets/MW_database.cpp:263 +-msgctxt "MainWindow|" +-msgid "Failed to rename the database file, because the target already exists" +-msgstr "" +-"Le changement de nom du fichier de base de données a échoué parce qu'un " +-"autre fichier du même nom existe déjà" +- +-#: ../widgets/MW_database.cpp:439 +-msgctxt "MainWindow|" +-msgid "No deleted items found" +-msgstr "Aucun objet détruit n'a été trouvé" +- +-#: ../widgets/MW_menu.cpp:79 ++#: ../widgets/MW_menu.cpp:83 + msgctxt "MainWindow|" + msgid "Recent DataBases" + msgstr "Bases de données utilisées recemment" + +-#: ../widgets/MW_help.cpp:25 ../widgets/MW_menu.cpp:35 ++#: ../widgets/MW_help.cpp:25 ../widgets/MW_menu.cpp:39 + msgctxt "MainWindow|" + msgid "System" + msgstr "Système" +@@ -1212,242 +1211,236 @@ msgctxt "MainWindow|" + msgid "Turkish" + msgstr "Turc" + +-#: ../widgets/MW_menu.cpp:83 ++#: ../widgets/MW_menu.cpp:89 + msgctxt "MainWindow|" + msgid "Language" + msgstr "Langue" + +-#: ../widgets/MW_menu.cpp:92 ++#: ../widgets/MW_menu.cpp:98 + msgctxt "MainWindow|" + msgid "&File" + msgstr "&Fichier" + +-#: ../widgets/MW_menu.cpp:99 ++#: ../widgets/MW_menu.cpp:105 + msgctxt "MainWindow|" + msgid "Open Remote DataBase" + msgstr "Ouvrir une base de données externe" + +-#: ../widgets/MW_menu.cpp:103 ++#: ../widgets/MW_menu.cpp:109 + msgctxt "MainWindow|" + msgid "Set as default DataBase" + msgstr "Définir comme base de données par défaut" + +-#: ../widgets/MW_menu.cpp:93 ++#: ../widgets/MW_menu.cpp:99 + msgctxt "MainWindow|" + msgid "New DataBase" + msgstr "Nouvelle base de données" + +-#: ../widgets/MW_menu.cpp:96 ++#: ../widgets/MW_menu.cpp:102 + msgctxt "MainWindow|" + msgid "Open DataBase" + msgstr "Ouvrir une base de données" + +-#: ../widgets/MW_menu.cpp:105 ++#: ../widgets/MW_menu.cpp:111 + msgctxt "MainWindow|" + msgid "Close DataBase" + msgstr "Fermer la base de données" + +-#: ../widgets/MW_menu.cpp:108 ++#: ../widgets/MW_menu.cpp:114 + msgctxt "MainWindow|" + msgid "Options" + msgstr "Options" + +-#: ../widgets/MW_menu.cpp:116 ++#: ../widgets/MW_menu.cpp:122 + msgctxt "MainWindow|" + msgid "Exit" + msgstr "Quitter" + +-#: ../widgets/MW_menu.cpp:123 ++#: ../widgets/MW_menu.cpp:129 + msgctxt "MainWindow|" + msgid "I&mport" + msgstr "I&mporter" + +-#: ../widgets/MW_menu.cpp:124 ++#: ../widgets/MW_menu.cpp:130 + msgctxt "MainWindow|" + msgid "Keys" + msgstr "Clés" + +-#: ../widgets/MW_menu.cpp:125 ++#: ../widgets/MW_menu.cpp:131 + msgctxt "MainWindow|" + msgid "Requests" + msgstr "Requêtes" + +-#: ../widgets/MW_menu.cpp:127 ++#: ../widgets/MW_menu.cpp:133 + msgctxt "MainWindow|" + msgid "PKCS#12" + msgstr "PKCS#12" + +-#: ../widgets/MW_menu.cpp:128 ++#: ../widgets/MW_menu.cpp:134 + msgctxt "MainWindow|" + msgid "PKCS#7" + msgstr "PKCS#7" + +-#: ../widgets/MW_menu.cpp:129 ++#: ../widgets/MW_menu.cpp:135 + msgctxt "MainWindow|" + msgid "Template" + msgstr "Modèle" + +-#: ../widgets/MW_menu.cpp:130 ++#: ../widgets/MW_menu.cpp:136 + msgctxt "MainWindow|" + msgid "Revocation list" + msgstr "Liste de révocation" + +-#: ../widgets/MW_menu.cpp:131 ++#: ../widgets/MW_menu.cpp:137 + msgctxt "MainWindow|" + msgid "PEM file" + msgstr "Fichier PEM" + +-#: ../widgets/MW_menu.cpp:132 ++#: ../widgets/MW_menu.cpp:138 + msgctxt "MainWindow|" + msgid "Paste PEM file" + msgstr "Coller un fichier PEM" + +-#: ../widgets/MW_menu.cpp:135 ++#: ../widgets/MW_menu.cpp:141 + msgctxt "MainWindow|" + msgid "Token" + msgstr "Jeton" + +-#: ../widgets/MW_menu.cpp:152 ++#: ../widgets/MW_menu.cpp:158 + msgctxt "MainWindow|" + msgid "Export Certificate &Index hierarchy" + msgstr "Exporter la hiérarchie de l'index des certificats" + +-#: ../widgets/MW_menu.cpp:165 ++#: ../widgets/MW_menu.cpp:171 + msgctxt "MainWindow|" + msgid "Content" + msgstr "Contenu" + +-#: ../widgets/MW_menu.cpp:136 ++#: ../widgets/MW_menu.cpp:142 + msgctxt "MainWindow|" + msgid "&Manage Security token" + msgstr "&Gérer le jeton de sécurité" + +-#: ../widgets/MW_menu.cpp:138 ++#: ../widgets/MW_menu.cpp:144 + msgctxt "MainWindow|" + msgid "&Init Security token" + msgstr "&Initialiser le jeton de sécurité" + +-#: ../widgets/MW_menu.cpp:140 ++#: ../widgets/MW_menu.cpp:146 + msgctxt "MainWindow|" + msgid "&Change PIN" + msgstr "&Changer le NIP" + +-#: ../widgets/MW_menu.cpp:142 ++#: ../widgets/MW_menu.cpp:148 + msgctxt "MainWindow|" + msgid "Change &SO PIN" + msgstr "Changer le P&UK" + +-#: ../widgets/MW_menu.cpp:144 ++#: ../widgets/MW_menu.cpp:150 + msgctxt "MainWindow|" + msgid "Init PIN" + msgstr "Initialiser le NIP" + +-#: ../widgets/MW_menu.cpp:147 ++#: ../widgets/MW_menu.cpp:153 + msgctxt "MainWindow|" + msgid "Extra" + msgstr "Extra" + +-#: ../widgets/MW_menu.cpp:148 ++#: ../widgets/MW_menu.cpp:154 + msgctxt "MainWindow|" + msgid "&Dump DataBase" + msgstr "C&licher la base de données" + +-#: ../widgets/MW_menu.cpp:150 ++#: ../widgets/MW_menu.cpp:156 + msgctxt "MainWindow|" + msgid "&Export Certificate Index" + msgstr "Exporter l'index des certificats" + +-#: ../widgets/MW_menu.cpp:154 ++#: ../widgets/MW_menu.cpp:160 + msgctxt "MainWindow|" + msgid "C&hange DataBase password" + msgstr "C&hanger le mot de passe de la base de données" + +-#: ../widgets/MW_menu.cpp:157 ++#: ../widgets/MW_menu.cpp:163 + msgctxt "MainWindow|" + msgid "&Undelete items" + msgstr "&Récupérer des objets détruits" + +-#: ../widgets/MW_menu.cpp:160 ++#: ../widgets/MW_menu.cpp:166 + msgctxt "MainWindow|" + msgid "Generate DH parameter" + msgstr "Générer le paramètre DH" + +-#: ../widgets/MW_menu.cpp:162 ++#: ../widgets/MW_menu.cpp:168 + msgctxt "MainWindow|" + msgid "OID Resolver" + msgstr "Convertisseur d'OID" + +-#: ../widgets/MW_menu.cpp:164 ++#: ../widgets/MW_menu.cpp:170 + msgctxt "MainWindow|" + msgid "&Help" + msgstr "&Aide" + +-#: ../widgets/MW_menu.cpp:167 ++#: ../widgets/MW_menu.cpp:173 + msgctxt "MainWindow|" + msgid "About" + msgstr "A propos" + +-#: ../widgets/MainWindow.cpp:276 +-#, qt-format +-msgctxt "MainWindow|" +-msgid "no such option: %1" +-msgstr "'%1' n'est pas une option" +- +-#: ../widgets/MainWindow.cpp:366 ++#: ../widgets/MainWindow.cpp:254 + msgctxt "MainWindow|" + msgid "Import PEM data" + msgstr "Importer les données PEM" + +-#: ../widgets/MainWindow.cpp:395 ++#: ../widgets/MainWindow.cpp:283 + #, qt-format + msgctxt "MainWindow|" + msgid "Please enter the original SO PIN (PUK) of the token '%1'" + msgstr "SVP saisir le PUK original du jeton '%1'" + +-#: ../widgets/MainWindow.cpp:134 ../widgets/MainWindow.cpp:869 ++#: ../widgets/MainWindow.cpp:118 ../widgets/MainWindow.cpp:731 + msgctxt "MainWindow|" + msgid "Search" + msgstr "Rechercher" + +-#: ../widgets/MainWindow.cpp:401 ++#: ../widgets/MainWindow.cpp:289 + #, qt-format + msgctxt "MainWindow|" + msgid "Please enter the new SO PIN (PUK) for the token '%1'" + msgstr "SVP saisir le nouveau NIP SO (PUK) pour le jeton: '%1'" + +-#: ../widgets/MainWindow.cpp:408 ++#: ../widgets/MainWindow.cpp:296 + #, qt-format + msgctxt "MainWindow|" + msgid "The new label of the token '%1'" + msgstr "La nouvelle étiquette du jeton '%1'" + +-#: ../widgets/MainWindow.cpp:516 ++#: ../widgets/MainWindow.cpp:404 + #, qt-format + msgctxt "MainWindow|" + msgid "The token '%1' did not contain any keys or certificates" + msgstr "Le jeton '%1' ne contient aucune clé ni aucun certificat" + +-#: ../widgets/MainWindow.cpp:574 ++#: ../widgets/MainWindow.cpp:450 + msgctxt "MainWindow|" + msgid "Current Password" + msgstr "Mot de passe actuel" + +-#: ../widgets/MainWindow.cpp:575 ++#: ../widgets/MainWindow.cpp:451 + msgctxt "MainWindow|" + msgid "Please enter the current database password" + msgstr "SVP saisir le mot de passe de la base de données" + +-#: ../widgets/MainWindow.cpp:585 ++#: ../widgets/MainWindow.cpp:461 + msgctxt "MainWindow|" + msgid "The entered password is wrong" + msgstr "Le mot de passe renseigné est inexact" + +-#: ../widgets/MainWindow.cpp:590 ../widgets/MainWindow.cpp:668 ++#: ../widgets/MainWindow.cpp:466 + msgctxt "MainWindow|" + msgid "New Password" + msgstr "Nouveau mot de passe" + +-#: ../widgets/MainWindow.cpp:590 ++#: ../widgets/MainWindow.cpp:466 + msgctxt "MainWindow|" + msgid "" + "Please enter the new password to encrypt your private keys in the database-" +@@ -1456,70 +1449,28 @@ msgstr "" + "SVP saisir le nouveau mot de passe pour chiffrer les clés privées dans le " + "fichier de base de données" + +-#: ../widgets/MainWindow.cpp:614 ++#: ../widgets/MainWindow.cpp:490 + msgctxt "MainWindow|" + msgid "Transaction start failed" + msgstr "Le démarrage de la transaction a échoué" + +-#: ../widgets/MainWindow.cpp:668 +-#, qt-format +-msgctxt "MainWindow|" +-msgid "" +-"Please enter a password, that will be used to encrypt your private keys in " +-"the database:\n" +-"%1" +-msgstr "" +-"Veuillez saisir un mot de passe, qui sera utilisé pour chiffrer vos clés " +-"privées dans la base de données:\n" +-"%1" +- +-#: ../widgets/MainWindow.cpp:689 +-msgctxt "MainWindow|" +-msgid "Password verify error, please try again" +-msgstr "La vérification du mot de passe a échoué. SVP essayez encore" +- +-#: ../widgets/MainWindow.cpp:690 +-msgctxt "MainWindow|" +-msgid "Password" +-msgstr "Mot de passe" +- +-#: ../widgets/MainWindow.cpp:691 +-#, qt-format +-msgctxt "MainWindow|" +-msgid "" +-"Please enter the password for unlocking the database:\n" +-"%1" +-msgstr "" +-"Veuillez entrer le mot passe pour déverrouiller la base de données:\n" +-"%1" +- +-#: ../widgets/MainWindow.cpp:710 +-msgctxt "MainWindow|" +-msgid "The following error occurred:" +-msgstr "L'erreur suivante s'est produite:" +- +-#: ../widgets/MainWindow.cpp:712 +-msgctxt "MainWindow|" +-msgid "Copy to Clipboard" +-msgstr "Copier dans le presse-papier" +- +-#: ../widgets/MainWindow.cpp:781 ++#: ../widgets/MainWindow.cpp:648 + msgctxt "MainWindow|" + msgid "Certificate Index ( index.txt )" + msgstr "Index des certificats ( index.txt )" + +-#: ../widgets/MainWindow.cpp:782 ../widgets/MainWindow.cpp:842 ++#: ../widgets/MainWindow.cpp:649 ../widgets/MainWindow.cpp:704 + msgctxt "MainWindow|" + msgid "All files ( * )" + msgstr "Tous les fichiers ( * )" + +-#: ../widgets/MainWindow.cpp:811 ++#: ../widgets/MainWindow.cpp:673 + #, qt-format + msgctxt "MainWindow|" + msgid "Diffie-Hellman parameters saved as: %1" + msgstr "Les paramètres Diffie-Hellman on été sauvegardés dans: %1" + +-#: ../widgets/MainWindow.cpp:827 ++#: ../widgets/MainWindow.cpp:689 + msgctxt "MainWindow|" + msgid "" + "Diffie-Hellman parameters are needed for different applications, but not " +@@ -1600,6 +1551,11 @@ msgctxt "NewCrl|" + msgid "Hash algorithm" + msgstr "Algorithme de hachage" + ++#: ../widgets/NewCrl.cpp:77 ++msgctxt "NewCrl|" ++msgid "Create CRL" ++msgstr "Créer une liste de révocation" ++ + #: ../ui/NewKey.ui:86 + msgctxt "NewKey|" + msgid "Please give a name to the new key and select the desired keysize" +@@ -1651,7 +1607,7 @@ msgctxt "NewKey|" + msgid "Remember as default" + msgstr "Enregistrer comme valeur par défaut" + +-#: ../widgets/NewKey.cpp:181 ++#: ../widgets/NewKey.cpp:137 + msgctxt "NewKey|" + msgid "Create" + msgstr "Créer" +@@ -1738,7 +1694,7 @@ msgctxt "NewX509|" + msgid "Apply all" + msgstr "Appliquer tout" + +-#: ../ui/NewX509.ui:336 ../widgets/NewX509.cpp:586 ++#: ../ui/NewX509.ui:336 ../widgets/NewX509.cpp:592 + msgctxt "NewX509|" + msgid "Subject" + msgstr "Sujet" +@@ -1910,7 +1866,7 @@ msgid "DNS: IP: URI: email: RID:" + msgstr "DNS: IP: URI: email: RID:" + + #: ../ui/NewX509.ui:745 ../ui/NewX509.ui:762 ../ui/NewX509.ui:795 +-#: ../ui/NewX509.ui:831 ../widgets/NewX509.cpp:961 ++#: ../ui/NewX509.ui:831 ../widgets/NewX509.cpp:992 + msgctxt "NewX509|" + msgid "Edit" + msgstr "Modifier" +@@ -1935,7 +1891,7 @@ msgctxt "NewX509|" + msgid "Advanced" + msgstr "Avancé" + +-#: ../ui/NewX509.ui:1163 ../widgets/NewX509.cpp:971 ++#: ../ui/NewX509.ui:1163 ../widgets/NewX509.cpp:1002 + msgctxt "NewX509|" + msgid "Validate" + msgstr "Valider" +@@ -1954,123 +1910,123 @@ msgstr "" + "Ce nom est seulement utilisé par xca et n'apparaît pas dans le certificat " + "exporté" + +-#: ../widgets/NewX509.cpp:254 ++#: ../widgets/NewX509.cpp:270 + msgctxt "NewX509|" + msgid "Critical" + msgstr "Critique" + +-#: ../widgets/NewX509.cpp:294 ++#: ../widgets/NewX509.cpp:310 + msgctxt "NewX509|" + msgid "Create Certificate signing request" + msgstr "Créer une requête de signature de certificat" + +-#: ../widgets/NewX509.cpp:321 ++#: ../widgets/NewX509.cpp:336 + #, qt-format + msgctxt "NewX509|" + msgid "minimum size: %1" + msgstr "taille minimale: %1" + +-#: ../widgets/NewX509.cpp:323 ++#: ../widgets/NewX509.cpp:338 + #, qt-format + msgctxt "NewX509|" + msgid "maximum size: %1" + msgstr "taille maximale: %1" + +-#: ../widgets/NewX509.cpp:325 ++#: ../widgets/NewX509.cpp:340 + msgctxt "NewX509|" + msgid "only a-z A-Z 0-9 '()+,-./:=?" + msgstr "seulement a-z A-Z 0-9 '()+,-./:=?" + +-#: ../widgets/NewX509.cpp:329 ++#: ../widgets/NewX509.cpp:344 + msgctxt "NewX509|" + msgid "only 7-bit clean characters" + msgstr "seulement des caractères 7-bit ASCII imprimables" + +-#: ../widgets/NewX509.cpp:354 ++#: ../widgets/NewX509.cpp:369 + msgctxt "NewX509|" + msgid "Edit XCA template" + msgstr "Editer un modèle XCA" + +-#: ../widgets/NewX509.cpp:367 ++#: ../widgets/NewX509.cpp:382 + msgctxt "NewX509|" + msgid "Create x509 Certificate" + msgstr "Créer un certificat x509" + +-#: ../widgets/NewX509.cpp:718 ++#: ../widgets/NewX509.cpp:750 + #, qt-format + msgctxt "NewX509|" + msgid "Template '%1' applied" + msgstr "Le modèle '%1' a été appliqué" + +-#: ../widgets/NewX509.cpp:725 ++#: ../widgets/NewX509.cpp:757 + #, qt-format + msgctxt "NewX509|" + msgid "Subject applied from template '%1'" + msgstr "Sujet extrait du modèle '%1'" + +-#: ../widgets/NewX509.cpp:733 ++#: ../widgets/NewX509.cpp:765 + #, qt-format + msgctxt "NewX509|" + msgid "Extensions applied from template '%1'" + msgstr "Les extensions du modéle '%1' ont été appliquées" + +-#: ../widgets/NewX509.cpp:748 ++#: ../widgets/NewX509.cpp:780 + #, qt-format + msgctxt "NewX509|" + msgid "New key '%1' created" + msgstr "La nouvelle clé '%1' a été créée" + +-#: ../widgets/NewX509.cpp:994 ++#: ../widgets/NewX509.cpp:1025 + msgctxt "NewX509|" + msgid "Other Tabs" + msgstr "Autres Onglets" + +-#: ../widgets/NewX509.cpp:1008 ++#: ../widgets/NewX509.cpp:1039 + msgctxt "NewX509|" + msgid "Advanced Tab" + msgstr "Onglet Avancé" + +-#: ../widgets/NewX509.cpp:1015 ++#: ../widgets/NewX509.cpp:1046 + msgctxt "NewX509|" + msgid "Errors" + msgstr "Erreurs" + +-#: ../widgets/NewX509.cpp:1033 ++#: ../widgets/NewX509.cpp:1064 + msgctxt "NewX509|" + msgid "From PKCS#10 request" + msgstr "A partir d'une requête en PKCS#10" + +-#: ../widgets/NewX509.cpp:1136 ../widgets/NewX509.cpp:1149 +-#: ../widgets/NewX509.cpp:1168 ../widgets/NewX509.cpp:1180 +-#: ../widgets/NewX509.cpp:1196 ../widgets/NewX509.cpp:1210 +-#: ../widgets/NewX509.cpp:1244 ../widgets/NewX509.cpp:1255 +-#: ../widgets/NewX509.cpp:1278 ../widgets/NewX509.cpp:1301 +-#: ../widgets/NewX509.cpp:1327 ../widgets/NewX509.cpp:1347 ++#: ../widgets/NewX509.cpp:1172 ../widgets/NewX509.cpp:1185 ++#: ../widgets/NewX509.cpp:1204 ../widgets/NewX509.cpp:1216 ++#: ../widgets/NewX509.cpp:1232 ../widgets/NewX509.cpp:1246 ++#: ../widgets/NewX509.cpp:1280 ../widgets/NewX509.cpp:1299 ++#: ../widgets/NewX509.cpp:1322 ../widgets/NewX509.cpp:1345 ++#: ../widgets/NewX509.cpp:1371 ../widgets/NewX509.cpp:1391 + msgctxt "NewX509|" + msgid "Abort rollout" + msgstr "Interrompre le déploiement" + +-#: ../widgets/NewX509.cpp:1145 ++#: ../widgets/NewX509.cpp:1181 + msgctxt "NewX509|" + msgid "The following length restrictions of RFC3280 are violated:" + msgstr "" + "Pour être en conformité avec la RFC3280, les règles de restriction de " + "longueur suivantes ne sont pas respectées:" + +-#: ../widgets/NewX509.cpp:1148 ../widgets/NewX509.cpp:1209 ++#: ../widgets/NewX509.cpp:1184 ../widgets/NewX509.cpp:1245 + msgctxt "NewX509|" + msgid "Edit subject" + msgstr "Modifier le sujet" + +-#: ../widgets/NewX509.cpp:1150 ../widgets/NewX509.cpp:1211 +-#: ../widgets/NewX509.cpp:1256 ../widgets/NewX509.cpp:1279 +-#: ../widgets/NewX509.cpp:1302 ../widgets/NewX509.cpp:1328 +-#: ../widgets/NewX509.cpp:1348 ++#: ../widgets/NewX509.cpp:1186 ../widgets/NewX509.cpp:1247 ++#: ../widgets/NewX509.cpp:1300 ../widgets/NewX509.cpp:1323 ++#: ../widgets/NewX509.cpp:1346 ../widgets/NewX509.cpp:1372 ++#: ../widgets/NewX509.cpp:1392 + msgctxt "NewX509|" + msgid "Continue rollout" + msgstr "Continuer le déploiement" + +-#: ../widgets/NewX509.cpp:1166 ++#: ../widgets/NewX509.cpp:1202 + msgctxt "NewX509|" + msgid "" + "The verification of the Certificate request failed.\n" +@@ -2079,12 +2035,12 @@ msgstr "" + "La vérification de la requête de signature à échoué.\n" + "Le déploiement devrait être interrompu." + +-#: ../widgets/NewX509.cpp:1167 ++#: ../widgets/NewX509.cpp:1203 + msgctxt "NewX509|" + msgid "Continue anyway" + msgstr "Continuer quand-même" + +-#: ../widgets/NewX509.cpp:1178 ++#: ../widgets/NewX509.cpp:1214 + msgctxt "NewX509|" + msgid "" + "The internal name and the common name are empty.\n" +@@ -2093,22 +2049,22 @@ msgstr "" + "Le nom interne et le nom commun sont vides.\n" + "SVP saisir au moins le nom interne." + +-#: ../widgets/NewX509.cpp:1179 ++#: ../widgets/NewX509.cpp:1215 + msgctxt "NewX509|" + msgid "Edit name" + msgstr "Modifier le nom" + +-#: ../widgets/NewX509.cpp:1194 ++#: ../widgets/NewX509.cpp:1230 + msgctxt "NewX509|" + msgid "There is no Key selected for signing." + msgstr "Aucune clé n'est sélectionnée pour la signature." + +-#: ../widgets/NewX509.cpp:1195 ++#: ../widgets/NewX509.cpp:1231 + msgctxt "NewX509|" + msgid "Select key" + msgstr "Sélectionner la clé" + +-#: ../widgets/NewX509.cpp:1207 ++#: ../widgets/NewX509.cpp:1243 + #, qt-format + msgctxt "NewX509|" + msgid "" +@@ -2120,22 +2076,42 @@ msgstr "" + "%1\n" + "bien que vous les avez déclarées comme obligatoires dans le menu des options." + +-#: ../widgets/NewX509.cpp:1241 ++#: ../widgets/NewX509.cpp:1277 + msgctxt "NewX509|" + msgid "The key you selected for signing is not a private one." + msgstr "La clé sélectionnée pour la signature n'est pas une clé privée." + +-#: ../widgets/NewX509.cpp:1242 ++#: ../widgets/NewX509.cpp:1278 + msgctxt "NewX509|" + msgid "Select other signer" + msgstr "Sélectionner un autre signataire" + +-#: ../widgets/NewX509.cpp:1242 ++#: ../widgets/NewX509.cpp:1278 + msgctxt "NewX509|" + msgid "Select other key" + msgstr "Sélectionner une autre clé" + +-#: ../widgets/NewX509.cpp:1252 ++#: ../widgets/NewX509.cpp:1288 ++#, qt-format ++msgctxt "NewX509|" ++msgid "" ++"The currently selected hash algorithm '%1' is insecure and should not be " ++"used." ++msgstr "" ++"L'algorithme de hachage sélectionné '%1' est peu sûr et ne devrait pas être " ++"utilisé." ++ ++#: ../widgets/NewX509.cpp:1289 ++msgctxt "NewX509|" ++msgid "Select other algorithm" ++msgstr "Sélectionner un autre algorithme" ++ ++#: ../widgets/NewX509.cpp:1290 ++msgctxt "NewX509|" ++msgid "Use algorithm anyway" ++msgstr "Utiliser quand même cet algorithme" ++ ++#: ../widgets/NewX509.cpp:1296 + msgctxt "NewX509|" + msgid "" + "The certificate will be earlier valid than the signer. This is probably not " +@@ -2144,18 +2120,18 @@ msgstr "" + "Le certificat serait valide avant son signataire. Ce n'est probablement pas " + "ce qui est désiré." + +-#: ../widgets/NewX509.cpp:1254 ../widgets/NewX509.cpp:1277 +-#: ../widgets/NewX509.cpp:1300 ++#: ../widgets/NewX509.cpp:1298 ../widgets/NewX509.cpp:1321 ++#: ../widgets/NewX509.cpp:1344 + msgctxt "NewX509|" + msgid "Edit dates" + msgstr "Modifier les limites de validité" + +-#: ../widgets/NewX509.cpp:1257 ../widgets/NewX509.cpp:1280 ++#: ../widgets/NewX509.cpp:1301 ../widgets/NewX509.cpp:1324 + msgctxt "NewX509|" + msgid "Adjust date and continue" + msgstr "Ajuster la date et continuer" + +-#: ../widgets/NewX509.cpp:1275 ++#: ../widgets/NewX509.cpp:1319 + msgctxt "NewX509|" + msgid "" + "The certificate will be longer valid than the signer. This is probably not " +@@ -2164,7 +2140,7 @@ msgstr "" + "Le certificat serait valide plus longtemps que son signataire. Ce n'est " + "probablement pas ce qui est désiré." + +-#: ../widgets/NewX509.cpp:1298 ++#: ../widgets/NewX509.cpp:1342 + msgctxt "NewX509|" + msgid "" + "The certificate will be out of date before it becomes valid. You most " +@@ -2173,7 +2149,7 @@ msgstr "" + "Le certificat serait échu avant de devenir actif. Vous avez probablement " + "interverti les deux dates." + +-#: ../widgets/NewX509.cpp:1319 ++#: ../widgets/NewX509.cpp:1363 + msgctxt "NewX509|" + msgid "" + "The certificate contains invalid or duplicate extensions. Check the " +@@ -2182,7 +2158,7 @@ msgstr "" + "Le certificat contient des extensions dupliquées ou invalides. Vérifier la " + "validité sur l'onglet \"Avancé\"." + +-#: ../widgets/NewX509.cpp:1322 ++#: ../widgets/NewX509.cpp:1366 + msgctxt "NewX509|" + msgid "" + "The certificate contains no extensions. You may apply the extensions of one " +@@ -2191,12 +2167,12 @@ msgstr "" + "Le certificat ne contient aucune extension. Vous pouvez appliquer des " + "extensions à partir de l'un des modèles pour définir l'usage du certificat" + +-#: ../widgets/NewX509.cpp:1326 ../widgets/NewX509.cpp:1346 ++#: ../widgets/NewX509.cpp:1370 ../widgets/NewX509.cpp:1390 + msgctxt "NewX509|" + msgid "Edit extensions" + msgstr "Modifier les extensions" + +-#: ../widgets/NewX509.cpp:1345 ++#: ../widgets/NewX509.cpp:1389 + msgctxt "NewX509|" + msgid "" + "The subject alternative name shall contain a copy of the common name. " +@@ -2205,7 +2181,7 @@ msgstr "" + "Le nom alternatif du sujet devrait contenir une copie du nom commun. " + "Cependant ce dernier est vide." + +-#: ../widgets/NewX509_ext.cpp:195 ++#: ../widgets/NewX509_ext.cpp:189 + #, qt-format + msgctxt "NewX509|" + msgid "Configfile error on line %1\n" +@@ -2276,7 +2252,7 @@ msgctxt "OpenDb|" + msgid "Password" + msgstr "Mot de passe" + +-#: ../ui/OpenDb.ui:142 ../widgets/OpenDb.cpp:58 ++#: ../ui/OpenDb.ui:142 ../widgets/OpenDb.cpp:50 + msgctxt "OpenDb|" + msgid "Database name" + msgstr "Nom de la base de données" +@@ -2286,7 +2262,7 @@ msgctxt "OpenDb|" + msgid "Table prefix" + msgstr "Préfixe du nom des tables" + +-#: ../widgets/OpenDb.cpp:151 ++#: ../widgets/OpenDb.cpp:121 + msgctxt "OpenDb|" + msgid "" + "No SqLite3 driver available. Please install the qt-sqlite package of your " +@@ -2295,25 +2271,6 @@ msgstr "" + "Le pilote SqLite3 n'est pas disponible. SVP installez le paquetage qt-sqlite " + "de votre distribution" + +-#: ../widgets/OpenDb.cpp:195 +-#, qt-format +-msgctxt "OpenDb|" +-msgid "" +-"Please enter the password to access the database server %2 as user '%1'." +-msgstr "" +-"SVP saisir le mot de passe de l'utilisateur '%1' sur le serveur de base de " +-"données %2." +- +-#: ../widgets/OpenDb.cpp:234 +-msgctxt "OpenDb|" +-msgid "" +-"The database driver does not support transactions. This may happen if the " +-"client and server have different versions. Continue with care." +-msgstr "" +-"Le pilote de base de données ne supporte pas les transactions. Ceci peut se " +-"produire si le client et le serveur n'ont pas les mêmes versions. Continuez " +-"avec prudence" +- + #: ../ui/Options.ui:28 + msgctxt "Options|" + msgid "XCA Options" +@@ -2446,37 +2403,37 @@ msgctxt "Options|" + msgid "Search" + msgstr "Rechercher" + +-#: ../widgets/Options.cpp:31 ++#: ../widgets/Options.cpp:34 + msgctxt "Options|" + msgid "Printable string or UTF8 (default)" + msgstr "Chaîne imprimable ou UTF8 (défaut)" + +-#: ../widgets/Options.cpp:32 ++#: ../widgets/Options.cpp:35 + msgctxt "Options|" + msgid "PKIX recommendation in RFC2459" + msgstr "La recommandation PKIX est dans la RFC2459" + +-#: ../widgets/Options.cpp:33 ++#: ../widgets/Options.cpp:36 + msgctxt "Options|" + msgid "No BMP strings, only printable and T61" + msgstr "Pas de chaîne BMP, seulement imprimable et T61" + +-#: ../widgets/Options.cpp:34 ++#: ../widgets/Options.cpp:37 + msgctxt "Options|" + msgid "UTF8 strings only (RFC2459)" + msgstr "Chaînes UTF8 uniquement (RFC2459)" + +-#: ../widgets/Options.cpp:35 ++#: ../widgets/Options.cpp:38 + msgctxt "Options|" + msgid "All strings" + msgstr "Toutes les chaînes" + +-#: ../widgets/Options.cpp:57 ++#: ../widgets/Options.cpp:60 + msgctxt "Options|" + msgid "Days" + msgstr "Jours" + +-#: ../widgets/Options.cpp:57 ++#: ../widgets/Options.cpp:60 + msgctxt "Options|" + msgid "Weeks" + msgstr "Semaines" +@@ -2495,19 +2452,24 @@ msgctxt "PwDialog|" + msgid "Take as HEX string" + msgstr "Exprimé en hexadécimal" + +-#: ../widgets/PwDialog.cpp:85 ++#: ../widgets/PwDialog.cpp:44 ++msgctxt "PwDialog|" ++msgid "Password" ++msgstr "Mot de passe" ++ ++#: ../widgets/PwDialog.cpp:96 + #, qt-format + msgctxt "PwDialog|" + msgid "Repeat %1" + msgstr "Répéter %1" + +-#: ../widgets/PwDialog.cpp:98 ++#: ../widgets/PwDialog.cpp:109 + #, qt-format + msgctxt "PwDialog|" + msgid "%1 mismatch" + msgstr "%1 ne correspond pas" + +-#: ../widgets/PwDialog.cpp:105 ++#: ../widgets/PwDialog.cpp:116 + msgctxt "PwDialog|" + msgid "" + "Hex password must only contain the characters '0' - '9' and 'a' - 'f' and it " +@@ -2516,62 +2478,92 @@ msgstr "" + "Un mot de passe hexadécimal peut seulement contenir les caractères '0' à '9' " + "et 'a' à 'f' et il doit consister en un nombre pair de caractères" + +-#: ../widgets/PwDialog.cpp:131 ++#: ../widgets/PwDialog.cpp:145 + msgctxt "PwDialog|" +-msgid "E&xit" +-msgstr "&Quitter" ++msgid "Exit" ++msgstr "Quitter" ++ ++#: ../widgets/XcaWarning.cpp:28 ++msgctxt "QMessageBox|" ++msgid "Ok" ++msgstr "OK" ++ ++#: ../widgets/XcaWarning.cpp:29 ++msgctxt "QMessageBox|" ++msgid "Close" ++msgstr "Fermer" ++ ++#: ../widgets/XcaWarning.cpp:30 ++msgctxt "QMessageBox|" ++msgid "Cancel" ++msgstr "Annuler" ++ ++#: ../widgets/XcaWarning.cpp:31 ++msgctxt "QMessageBox|" ++msgid "Apply" ++msgstr "Appliquer" ++ ++#: ../widgets/XcaWarning.cpp:32 ++msgctxt "QMessageBox|" ++msgid "Yes" ++msgstr "Oui" + +-#: ../lib/asn1time.cpp:155 ++#: ../widgets/XcaWarning.cpp:33 ++msgctxt "QMessageBox|" ++msgid "No" ++msgstr "Non" ++ ++#: ../lib/asn1time.cpp:157 + msgctxt "QObject|" + msgid "Undefined" + msgstr "Indéfini" + +-#: ../lib/asn1time.cpp:157 ++#: ../lib/asn1time.cpp:159 + msgctxt "QObject|" + msgid "Broken / Invalid" + msgstr "Invalide" + +-#: ../lib/asn1time.cpp:203 ++#: ../lib/asn1time.cpp:205 + #, qt-format + msgctxt "QObject|" + msgid "in %1 seconds" + msgstr "dans %1 secondes" + +-#: ../lib/asn1time.cpp:204 ++#: ../lib/asn1time.cpp:206 + #, qt-format + msgctxt "QObject|" + msgid "%1 seconds ago" + msgstr "il y a %1 secondes" + +-#: ../lib/asn1time.cpp:207 ++#: ../lib/asn1time.cpp:209 + #, qt-format + msgctxt "QObject|" + msgid "in %1 minutes" + msgstr "dans %1 minutes" + +-#: ../lib/asn1time.cpp:208 ++#: ../lib/asn1time.cpp:210 + #, qt-format + msgctxt "QObject|" + msgid "%1 minutes ago" + msgstr "il y a %1 minutes" + +-#: ../lib/asn1time.cpp:210 ++#: ../lib/asn1time.cpp:212 + msgctxt "QObject|" + msgid "Yesterday" + msgstr "Hier" + +-#: ../lib/asn1time.cpp:212 ++#: ../lib/asn1time.cpp:214 + msgctxt "QObject|" + msgid "Tomorrow" + msgstr "Demain" + +-#: ../lib/asn1time.cpp:215 ++#: ../lib/asn1time.cpp:217 + #, qt-format + msgctxt "QObject|" + msgid "in %1 hours" + msgstr "dans %1 heures" + +-#: ../lib/asn1time.cpp:216 ++#: ../lib/asn1time.cpp:218 + #, qt-format + msgctxt "QObject|" + msgid "%1 hours ago" +@@ -2587,7 +2579,7 @@ msgctxt "QObject|" + msgid "Error finding endmarker of string" + msgstr "Erreur: une marque de fin de chaîne n'a pas été trouvée" + +-#: ../lib/exception.h:61 ++#: ../lib/exception.h:60 + #, qt-format + msgctxt "QObject|" + msgid "Out of Memory at %1:%2" +@@ -2598,7 +2590,7 @@ msgctxt "QObject|" + msgid "All files ( * )" + msgstr "Tous les fichiers ( * )" + +-#: ../lib/load_obj.cpp:55 ++#: ../lib/load_obj.cpp:56 + msgctxt "QObject|" + msgid "" + "PKI Keys ( *.pem *.der *.key );; PKCS#8 Keys ( *.p8 *.pk8 );; Microsoft PVK " +@@ -2607,151 +2599,151 @@ msgstr "" + "Clés PKI ( *.pem *.der *.key );; Clés PKCS#8 ( *.p8 *.pk8 );; Clés Microsoft " + "PVK ( *.pvk );; Clés publiques SSH ( *.pub );;" + +-#: ../lib/load_obj.cpp:59 ++#: ../lib/load_obj.cpp:60 + msgctxt "QObject|" + msgid "Import RSA key" + msgstr "Importer une clé RSA" + +-#: ../lib/load_obj.cpp:71 ++#: ../lib/load_obj.cpp:72 + msgctxt "QObject|" + msgid "PKCS#10 CSR ( *.pem *.der *.csr );; " + msgstr "PKCS#10 CSR ( *.pem *.der *.csr );;" + +-#: ../lib/load_obj.cpp:72 ++#: ../lib/load_obj.cpp:73 + msgctxt "QObject|" + msgid "Import Request" + msgstr "Importer une requête" + +-#: ../lib/load_obj.cpp:84 ++#: ../lib/load_obj.cpp:85 + msgctxt "QObject|" + msgid "Certificates ( *.pem *.der *.crt *.cer );;" + msgstr "Certificats ( *.pem *.der *.crt *.cer );;" + +-#: ../lib/load_obj.cpp:85 ++#: ../lib/load_obj.cpp:86 + msgctxt "QObject|" + msgid "Import X.509 Certificate" + msgstr "Importer un certificat X.509" + +-#: ../lib/load_obj.cpp:97 ++#: ../lib/load_obj.cpp:98 + msgctxt "QObject|" + msgid "PKCS#7 data ( *.p7s *.p7m *.p7b );;" + msgstr "Données PKCS#7 ( *.p7s *.p7m *.p7b );;" + +-#: ../lib/load_obj.cpp:98 ++#: ../lib/load_obj.cpp:99 + msgctxt "QObject|" + msgid "Import PKCS#7 Certificates" + msgstr "Importer un certificat PKCS#7" + +-#: ../lib/load_obj.cpp:110 ++#: ../lib/load_obj.cpp:111 + msgctxt "QObject|" + msgid "PKCS#12 Certificates ( *.p12 *.pfx );;" + msgstr "Certificats PKCS#12 ( *.p12 *.pfx );;" + +-#: ../lib/load_obj.cpp:111 ++#: ../lib/load_obj.cpp:112 + msgctxt "QObject|" + msgid "Import PKCS#12 Private Certificate" + msgstr "Importer un certificat privé PKCS#12" + +-#: ../lib/load_obj.cpp:124 ++#: ../lib/load_obj.cpp:125 + msgctxt "QObject|" + msgid "XCA templates ( *.xca );;" + msgstr "Modèles XCA ( *.xca );;" + +-#: ../lib/load_obj.cpp:125 ++#: ../lib/load_obj.cpp:126 + msgctxt "QObject|" + msgid "Import XCA Templates" + msgstr "Importer des modèles XCA" + +-#: ../lib/load_obj.cpp:137 ++#: ../lib/load_obj.cpp:138 + msgctxt "QObject|" + msgid "Revocation lists ( *.pem *.der *.crl );;" + msgstr "Listes de révocation ( *.pem *.der *.crl );;" + +-#: ../lib/load_obj.cpp:138 ++#: ../lib/load_obj.cpp:139 + msgctxt "QObject|" + msgid "Import Certificate Revocation List" + msgstr "Importer une liste de révocation de certificats" + +-#: ../lib/load_obj.cpp:150 ++#: ../lib/load_obj.cpp:151 + msgctxt "QObject|" + msgid "XCA Databases ( *.xdb );;" + msgstr "Bases de données XCA ( *.xdb );;" + +-#: ../lib/load_obj.cpp:151 ++#: ../lib/load_obj.cpp:152 + msgctxt "QObject|" + msgid "Open XCA Database" + msgstr "Ouvrir une Base de Données XCA" + +-#: ../lib/load_obj.cpp:159 ++#: ../lib/load_obj.cpp:160 + msgctxt "QObject|" + msgid "PKCS#11 library ( *.dll );;" + msgstr "Bibliothèque PKCS#11 ( *.dll );;" + +-#: ../lib/load_obj.cpp:161 ++#: ../lib/load_obj.cpp:162 + msgctxt "QObject|" + msgid "PKCS#11 library ( *.dylib *.so );;" + msgstr "Bibliothèque PKCS#11 ( *.dylib *.so );;" + +-#: ../lib/load_obj.cpp:163 ++#: ../lib/load_obj.cpp:164 + msgctxt "QObject|" + msgid "PKCS#11 library ( *.so );;" + msgstr "Bibliothèque PKCS#11 ( *.so );;" + +-#: ../lib/load_obj.cpp:165 ++#: ../lib/load_obj.cpp:166 + msgctxt "QObject|" + msgid "Open PKCS#11 shared library" + msgstr "Ouvrir une bibliothèque partagée PKCS#11" + +-#: ../lib/load_obj.cpp:172 ++#: ../lib/load_obj.cpp:173 + msgctxt "QObject|" + msgid "PEM files ( *.pem );;" + msgstr "Fichiers PEM ( *.pem );;" + +-#: ../lib/load_obj.cpp:173 ++#: ../lib/load_obj.cpp:174 + msgctxt "QObject|" + msgid "Load PEM encoded file" + msgstr "Charger un fichier en format PEM" + +-#: ../lib/pkcs11.cpp:200 ++#: ../lib/pkcs11.cpp:214 + msgctxt "QObject|" + msgid "Please enter the PIN on the PinPad" + msgstr "Saisir le NIP sur le pavé prévu à cet effet SVP" + +-#: ../lib/pkcs11.cpp:211 ++#: ../lib/pkcs11.cpp:225 + #, qt-format + msgctxt "QObject|" + msgid "Please enter the SO PIN (PUK) of the token %1" + msgstr "SVP saisir le PUK du jeton '%1'" + +-#: ../lib/pkcs11.cpp:212 ++#: ../lib/pkcs11.cpp:226 + #, qt-format + msgctxt "QObject|" + msgid "Please enter the PIN of the token %1" + msgstr "SVP saisir le NIP du jeton '%1'" + +-#: ../lib/pkcs11.cpp:265 ++#: ../lib/pkcs11.cpp:280 + msgctxt "QObject|" + msgid "No Security token found" + msgstr "Aucun jeton de sécurité trouvé" + +-#: ../lib/pkcs11.cpp:276 ++#: ../lib/pkcs11.cpp:291 + msgctxt "QObject|" + msgid "Select" + msgstr "Sélectionner" + +-#: ../lib/pkcs11.cpp:299 ++#: ../lib/pkcs11.cpp:314 + #, qt-format + msgctxt "QObject|" + msgid "Please enter the new SO PIN (PUK) for the token: '%1'" + msgstr "SVP saisir le nouveau PUK pour le jeton: '%1'" + +-#: ../lib/pkcs11.cpp:301 ++#: ../lib/pkcs11.cpp:316 + #, qt-format + msgctxt "QObject|" + msgid "Please enter the new PIN for the token: '%1'" + msgstr "SVP saisir le nouveau NIP pour le jeton: '%1'" + +-#: ../lib/pkcs11.h:92 ++#: ../lib/pkcs11.h:101 + #, qt-format + msgctxt "QObject|" + msgid "Required PIN size: %1 - %2" +@@ -2788,13 +2780,13 @@ msgctxt "QObject|" + msgid "Library loading failed" + msgstr "Le chargement de la bibliothèque a échoué" + +-#: ../lib/pkcs11_lib.cpp:515 ++#: ../lib/pkcs11_lib.cpp:518 + #, qt-format + msgctxt "QObject|" + msgid "PKCS#11 function '%1' failed: %2" + msgstr "La fonction PKCS#11 '%1' a échoué: %2" + +-#: ../lib/pkcs11_lib.cpp:523 ++#: ../lib/pkcs11_lib.cpp:526 + #, qt-format + msgctxt "QObject|" + msgid "" +@@ -2806,24 +2798,24 @@ msgstr "" + "Dans la bibliothèque %3\n" + "%4" + +-#: ../lib/x509name.cpp:116 ++#: ../lib/x509name.cpp:111 + msgctxt "QObject|" + msgid "Invalid" + msgstr "Invalide" + +-#: ../lib/x509name.cpp:240 ++#: ../lib/x509name.cpp:235 + #, qt-format + msgctxt "QObject|" + msgid "%1 is shorter than %2 bytes: '%3'" + msgstr "%1 est plus court que %2 octets: '%3'" + +-#: ../lib/x509name.cpp:245 ++#: ../lib/x509name.cpp:240 + #, qt-format + msgctxt "QObject|" + msgid "%1 is longer than %2 bytes: '%3'" + msgstr "%1 est plus long que %2 octets: '%3'" + +-#: ../lib/x509v3ext.cpp:85 ++#: ../lib/x509v3ext.cpp:86 + #, qt-format + msgctxt "QObject|" + msgid "String '%1' for '%2' contains invalid characters" +@@ -2867,196 +2859,219 @@ msgctxt "QObject|" + msgid "Failed to start a database transaction" + msgstr "Impossible de démarrer la transaction BDD" + +-#: ../lib/func.cpp:598 ++#: ../lib/func.cpp:634 + msgctxt "QObject|" + msgid "Country code" + msgstr "Code de pays" + +-#: ../lib/func.cpp:599 ++#: ../lib/func.cpp:635 + msgctxt "QObject|" + msgid "State or Province" + msgstr "Etat ou province" + +-#: ../lib/func.cpp:600 ++#: ../lib/func.cpp:636 + msgctxt "QObject|" + msgid "Locality" + msgstr "Localité" + +-#: ../lib/func.cpp:601 ++#: ../lib/func.cpp:637 + msgctxt "QObject|" + msgid "Organisation" + msgstr "Organisation" + +-#: ../lib/func.cpp:602 ++#: ../lib/func.cpp:638 + msgctxt "QObject|" + msgid "Organisational unit" + msgstr "Unité d'organisation" + +-#: ../lib/func.cpp:603 ++#: ../lib/func.cpp:639 + msgctxt "QObject|" + msgid "Common name" + msgstr "Nom commun" + +-#: ../lib/func.cpp:604 ++#: ../lib/func.cpp:640 + msgctxt "QObject|" + msgid "E-Mail address" + msgstr "Adresse de courriel" + +-#: ../lib/func.cpp:605 ++#: ../lib/func.cpp:641 + msgctxt "QObject|" + msgid "Serial number" + msgstr "Numéro de série" + +-#: ../lib/func.cpp:606 ++#: ../lib/func.cpp:642 + msgctxt "QObject|" + msgid "Given name" + msgstr "Prénom" + +-#: ../lib/func.cpp:607 ++#: ../lib/func.cpp:643 + msgctxt "QObject|" + msgid "Surname" + msgstr "Nom de famille" + +-#: ../lib/func.cpp:608 ++#: ../lib/func.cpp:644 + msgctxt "QObject|" + msgid "Title" + msgstr "Titre" + +-#: ../lib/func.cpp:609 ++#: ../lib/func.cpp:645 + msgctxt "QObject|" + msgid "Initials" + msgstr "Initiales" + +-#: ../lib/func.cpp:610 ++#: ../lib/func.cpp:646 + msgctxt "QObject|" + msgid "Description" + msgstr "Description" + +-#: ../lib/func.cpp:611 ++#: ../lib/func.cpp:647 + msgctxt "QObject|" + msgid "Role" + msgstr "Rôle" + +-#: ../lib/func.cpp:612 ++#: ../lib/func.cpp:648 + msgctxt "QObject|" + msgid "Pseudonym" + msgstr "Pseudonyme" + +-#: ../lib/func.cpp:613 ++#: ../lib/func.cpp:649 + msgctxt "QObject|" + msgid "Generation Qualifier" + msgstr "Qualifiant de génération" + +-#: ../lib/func.cpp:614 ++#: ../lib/func.cpp:650 + msgctxt "QObject|" + msgid "x500 Unique Identifier" + msgstr "Identifiant Unique X500" + +-#: ../lib/func.cpp:615 ++#: ../lib/func.cpp:651 + msgctxt "QObject|" + msgid "Name" + msgstr "Nom" + +-#: ../lib/func.cpp:616 ++#: ../lib/func.cpp:652 + msgctxt "QObject|" + msgid "DN Qualifier" + msgstr "Qualifiant de DN" + +-#: ../lib/func.cpp:617 ++#: ../lib/func.cpp:653 + msgctxt "QObject|" + msgid "Unstructured name" + msgstr "Nom non-structuré" + +-#: ../lib/func.cpp:618 ++#: ../lib/func.cpp:654 + msgctxt "QObject|" + msgid "Challenge password" + msgstr "Mot de passe challenge" + +-#: ../lib/func.cpp:620 ++#: ../lib/func.cpp:656 + msgctxt "QObject|" + msgid "Basic Constraints" + msgstr "Contraintes de base" + +-#: ../lib/func.cpp:621 ++#: ../lib/func.cpp:657 + msgctxt "QObject|" + msgid "Subject alternative name" + msgstr "Nom alternatif du sujet" + +-#: ../lib/func.cpp:622 ++#: ../lib/func.cpp:658 + msgctxt "QObject|" + msgid "issuer alternative name" + msgstr "Nom alternatif de l'émetteur" + +-#: ../lib/func.cpp:623 ++#: ../lib/func.cpp:659 + msgctxt "QObject|" + msgid "Subject key identifier" + msgstr "Clé d'identification du sujet" + +-#: ../lib/func.cpp:624 ++#: ../lib/func.cpp:660 + msgctxt "QObject|" + msgid "Authority key identifier" + msgstr "Clé d'identification de l'autorité" + +-#: ../lib/func.cpp:625 ++#: ../lib/func.cpp:661 + msgctxt "QObject|" + msgid "Key usage" + msgstr "Usage de la clé" + +-#: ../lib/func.cpp:626 ++#: ../lib/func.cpp:662 + msgctxt "QObject|" + msgid "Extended key usage" + msgstr "Usage étendu de la clé" + +-#: ../lib/func.cpp:627 ++#: ../lib/func.cpp:663 + msgctxt "QObject|" + msgid "CRL distribution points" + msgstr "Points de distribution de la CRL" + +-#: ../lib/func.cpp:628 ++#: ../lib/func.cpp:664 + msgctxt "QObject|" + msgid "Authority information access" + msgstr "Accès à l'information de l'autorité" + +-#: ../lib/func.cpp:629 ++#: ../lib/func.cpp:665 + msgctxt "QObject|" + msgid "Certificate type" + msgstr "Type de certificat" + +-#: ../lib/func.cpp:630 ++#: ../lib/func.cpp:666 + msgctxt "QObject|" + msgid "Base URL" + msgstr "URL de base" + +-#: ../lib/func.cpp:631 ++#: ../lib/func.cpp:667 + msgctxt "QObject|" + msgid "Revocation URL" + msgstr "URL de révocation" + +-#: ../lib/func.cpp:632 ++#: ../lib/func.cpp:668 + msgctxt "QObject|" + msgid "CA Revocation URL" + msgstr "URL de révocation du CA" + +-#: ../lib/func.cpp:633 ++#: ../lib/func.cpp:669 + msgctxt "QObject|" + msgid "Certificate renewal URL" + msgstr "URL de renouvellement du certificat" + +-#: ../lib/func.cpp:634 ++#: ../lib/func.cpp:670 + msgctxt "QObject|" + msgid "CA policy URL" + msgstr "URL de la politique du CA" + +-#: ../lib/func.cpp:635 ++#: ../lib/func.cpp:671 + msgctxt "QObject|" + msgid "SSL server name" + msgstr "Nom du serveur SSL" + +-#: ../lib/func.cpp:636 ++#: ../lib/func.cpp:672 + msgctxt "QObject|" + msgid "Comment" + msgstr "Commentaire" + ++#: ../lib/main.cpp:210 ++#, qt-format ++msgctxt "QObject|" ++msgid "Index file written to '%1'" ++msgstr "Fichier d'index écrit dans '%1'" ++ ++#: ../lib/main.cpp:217 ++#, qt-format ++msgctxt "QObject|" ++msgid "Index hierarchy written to '%1'" ++msgstr "Hiérarchie d'index écrite dans '%1'" ++ ++#: ../lib/main.cpp:230 ++#, qt-format ++msgctxt "QObject|" ++msgid "Unknown key type %1" ++msgstr "Type de clé inconnu %1" ++ ++#: ../widgets/XcaWarning.h:23 ++msgctxt "QObject|" ++msgid "Password verify error, please try again" ++msgstr "La vérification du mot de passe a échoué. SVP essayez encore" ++ + #: ../widgets/ReqTreeView.cpp:25 + msgctxt "ReqTreeView|" + msgid "Sign" +@@ -3097,32 +3112,32 @@ msgctxt "RevocationList|" + msgid "Edit" + msgstr "Modifier" + +-#: ../widgets/RevocationList.cpp:73 ++#: ../widgets/RevocationList.cpp:75 + msgctxt "RevocationList|" + msgid "No." + msgstr "No." + +-#: ../widgets/RevocationList.cpp:73 ++#: ../widgets/RevocationList.cpp:75 + msgctxt "RevocationList|" + msgid "Serial" + msgstr "Numéro de série" + +-#: ../widgets/RevocationList.cpp:73 ++#: ../widgets/RevocationList.cpp:75 + msgctxt "RevocationList|" + msgid "Revocation" + msgstr "Révocation" + +-#: ../widgets/RevocationList.cpp:73 ++#: ../widgets/RevocationList.cpp:75 + msgctxt "RevocationList|" + msgid "Reason" + msgstr "Raison" + +-#: ../widgets/RevocationList.cpp:74 ++#: ../widgets/RevocationList.cpp:76 + msgctxt "RevocationList|" + msgid "Invalidation" + msgstr "Invalidation" + +-#: ../widgets/RevocationList.cpp:101 ++#: ../widgets/RevocationList.cpp:104 + msgctxt "RevocationList|" + msgid "Generate CRL" + msgstr "Générer la liste de révocation" +@@ -3193,186 +3208,276 @@ msgctxt "SelectToken|" + msgid "Please select the security token" + msgstr "SVP sélectionner le jeton de sécurité" + +-#: ../widgets/TempTreeView.cpp:22 ++#: ../widgets/TempTreeView.cpp:23 + msgctxt "TempTreeView|" + msgid "Duplicate" + msgstr "Dupliquer" + +-#: ../widgets/TempTreeView.cpp:23 ++#: ../widgets/TempTreeView.cpp:24 + msgctxt "TempTreeView|" + msgid "Create certificate" + msgstr "Créer un certificat" + +-#: ../widgets/TempTreeView.cpp:24 ++#: ../widgets/TempTreeView.cpp:25 + msgctxt "TempTreeView|" + msgid "Create request" + msgstr "Créer une requête" + +-#: ../widgets/TempTreeView.cpp:35 ++#: ../widgets/TempTreeView.cpp:34 + msgctxt "TempTreeView|" + msgid "copy" + msgstr "copier" + ++#: ../widgets/TempTreeView.cpp:82 ++msgctxt "TempTreeView|" ++msgid "Preset Template values" ++msgstr "Initialiser les valeurs du modèle" ++ + #: ../widgets/validity.cpp:94 + msgctxt "Validity|" + msgid "yyyy-MM-dd hh:mm" + msgstr "yyyy-MM-dd hh:mm" + +-#: ../widgets/X509SuperTreeView.cpp:25 ++#: ../widgets/X509SuperTreeView.cpp:28 + msgctxt "X509SuperTreeView|" + msgid "OpenSSL config" + msgstr "Configuration OpenSSL" + +-#: ../widgets/X509SuperTreeView.cpp:26 ++#: ../widgets/X509SuperTreeView.cpp:29 + msgctxt "X509SuperTreeView|" + msgid "Transform" + msgstr "Transformer" + +-#: ../widgets/X509SuperTreeView.cpp:27 ++#: ../widgets/X509SuperTreeView.cpp:30 + msgctxt "X509SuperTreeView|" + msgid "Template" + msgstr "Modèle" + +-#: ../widgets/X509SuperTreeView.cpp:28 ++#: ../widgets/X509SuperTreeView.cpp:31 + msgctxt "X509SuperTreeView|" + msgid "Public key" + msgstr "Clé publique" + +-#: ../widgets/XcaTreeView.cpp:326 ++#: ../widgets/XcaTreeView.cpp:343 + msgctxt "XcaTreeView|" + msgid "Subject entries" + msgstr "Inscriptions du sujet" + +-#: ../widgets/XcaTreeView.cpp:327 ++#: ../widgets/XcaTreeView.cpp:344 + msgctxt "XcaTreeView|" + msgid "X509v3 Extensions" + msgstr "Extensions X509v3" + +-#: ../widgets/XcaTreeView.cpp:328 ++#: ../widgets/XcaTreeView.cpp:345 + msgctxt "XcaTreeView|" + msgid "Netscape extensions" + msgstr "Extensions Netscape" + +-#: ../widgets/XcaTreeView.cpp:329 ++#: ../widgets/XcaTreeView.cpp:346 + msgctxt "XcaTreeView|" + msgid "Key properties" + msgstr "Propriétés de la clé" + +-#: ../widgets/XcaTreeView.cpp:330 ++#: ../widgets/XcaTreeView.cpp:347 + msgctxt "XcaTreeView|" + msgid "Reset" + msgstr "Réinitialisation" + +-#: ../widgets/XcaTreeView.cpp:333 ++#: ../widgets/XcaTreeView.cpp:350 + msgctxt "XcaTreeView|" + msgid "Hide Column" + msgstr "Cacher la colonne" + +-#: ../widgets/XcaTreeView.cpp:335 ++#: ../widgets/XcaTreeView.cpp:352 + msgctxt "XcaTreeView|" + msgid "Details" + msgstr "Détails" + +-#: ../widgets/XcaTreeView.cpp:378 ++#: ../widgets/XcaTreeView.cpp:395 + msgctxt "XcaTreeView|" + msgid "Columns" + msgstr "Colonnes" + +-#: ../widgets/XcaTreeView.cpp:406 ++#: ../widgets/XcaTreeView.cpp:431 + msgctxt "XcaTreeView|" + msgid "New" + msgstr "Créer" + +-#: ../widgets/XcaTreeView.cpp:407 ++#: ../widgets/XcaTreeView.cpp:432 + msgctxt "XcaTreeView|" + msgid "Import" + msgstr "Importer" + +-#: ../widgets/XcaTreeView.cpp:408 ++#: ../widgets/XcaTreeView.cpp:433 + msgctxt "XcaTreeView|" + msgid "Paste PEM data" + msgstr "Coller les données en format PEM" + +-#: ../widgets/XcaTreeView.cpp:412 ++#: ../widgets/XcaTreeView.cpp:437 + msgctxt "XcaTreeView|" + msgid "Rename" + msgstr "Renommer" + +-#: ../widgets/XcaTreeView.cpp:413 ++#: ../widgets/XcaTreeView.cpp:438 + msgctxt "XcaTreeView|" + msgid "Properties" + msgstr "Propriétés" + +-#: ../widgets/XcaTreeView.cpp:416 ++#: ../widgets/XcaTreeView.cpp:441 + msgctxt "XcaTreeView|" + msgid "Delete" + msgstr "Enlever" + +-#: ../widgets/XcaTreeView.cpp:418 ++#: ../widgets/XcaTreeView.cpp:443 + msgctxt "XcaTreeView|" + msgid "Export" + msgstr "Exporter" + +-#: ../widgets/XcaTreeView.cpp:419 ++#: ../widgets/XcaTreeView.cpp:444 + msgctxt "XcaTreeView|" + msgid "Clipboard" + msgstr "Presse-papier" + +-#: ../widgets/XcaTreeView.cpp:421 ++#: ../widgets/XcaTreeView.cpp:446 + msgctxt "XcaTreeView|" + msgid "File" + msgstr "Fichier" + +-#: ../lib/db_base.cpp:178 ++#: ../lib/database_model.cpp:125 ++#, qt-format ++msgctxt "database_model|" ++msgid "" ++"Legacy database format detected. Creating a backup copy called: '%1' and " ++"converting the database to the new format" ++msgstr "" ++"Format historique de base de données détecté. Une copie de sauvegarde " ++"appelée '%1' est créée et la base de données est convertie au nouveau format" ++ ++#: ../lib/database_model.cpp:134 ++msgctxt "database_model|" ++msgid "Failed to rename the database file, because the target already exists" ++msgstr "" ++"Le changement de nom du fichier de base de données a échoué parce qu'un " ++"autre fichier du même nom existe déjà" ++ ++#: ../lib/database_model.cpp:269 ++#, qt-format ++msgctxt "database_model|" ++msgid "" ++"Please enter the password to access the database server %2 as user '%1'." ++msgstr "" ++"SVP saisir le mot de passe de l'utilisateur '%1' sur le serveur de base de " ++"données %2." ++ ++#: ../lib/database_model.cpp:386 ++#, qt-format ++msgctxt "database_model|" ++msgid "Unable to create '%1': %2" ++msgstr "Impossible de créer '%1': %2" ++ ++#: ../lib/database_model.cpp:557 ++#, qt-format ++msgctxt "database_model|" ++msgid "The file '%1' is not an XCA database" ++msgstr "Le fichier '%1' n'est pas une base de données XCA" ++ ++#: ../lib/database_model.cpp:585 ++msgctxt "database_model|" ++msgid "" ++"No SqLite3 driver available. Please install the qt-sqlite package of your " ++"distribution" ++msgstr "" ++"Le pilote SqLite3 n'est pas disponible. SVP installez le paquetage qt-sqlite " ++"de votre distribution" ++ ++#: ../lib/database_model.cpp:626 ++msgctxt "database_model|" ++msgid "New Password" ++msgstr "Nouveau mot de passe" ++ ++#: ../lib/database_model.cpp:626 ++#, qt-format ++msgctxt "database_model|" ++msgid "" ++"Please enter a password, that will be used to encrypt your private keys in " ++"the database:\n" ++"%1" ++msgstr "" ++"Veuillez saisir un mot de passe, qui sera utilisé pour chiffrer vos clés " ++"privées dans la base de données:\n" ++"%1" ++ ++#: ../lib/database_model.cpp:646 ++msgctxt "database_model|" ++msgid "Password" ++msgstr "Mot de passe" ++ ++#: ../lib/database_model.cpp:647 ++#, qt-format ++msgctxt "database_model|" ++msgid "" ++"Please enter the password for unlocking the database:\n" ++"%1" ++msgstr "" ++"Veuillez entrer le mot passe pour déverrouiller la base de données:\n" ++"%1" ++ ++#: ../lib/db_base.cpp:170 + msgctxt "db_base|" + msgid "Internal name" + msgstr "Nom interne" + +-#: ../lib/db_base.cpp:179 ++#: ../lib/db_base.cpp:171 + msgctxt "db_base|" + msgid "No." + msgstr "No." + +-#: ../lib/db_base.cpp:180 ++#: ../lib/db_base.cpp:172 + msgctxt "db_base|" + msgid "Primary key" + msgstr "Clé primaire" + +-#: ../lib/db_base.cpp:181 ++#: ../lib/db_base.cpp:173 + msgctxt "db_base|" + msgid "Database unique number" + msgstr "Numéro unique de la base de données" + +-#: ../lib/db_base.cpp:182 ++#: ../lib/db_base.cpp:174 + msgctxt "db_base|" + msgid "Date" + msgstr "Date" + +-#: ../lib/db_base.cpp:183 ++#: ../lib/db_base.cpp:175 + msgctxt "db_base|" + msgid "Date of creation or insertion" + msgstr "Date de création ou d'importation" + +-#: ../lib/db_base.cpp:184 ++#: ../lib/db_base.cpp:176 + msgctxt "db_base|" + msgid "Source" + msgstr "Source" + +-#: ../lib/db_base.cpp:185 ++#: ../lib/db_base.cpp:177 + msgctxt "db_base|" + msgid "Generated, Imported, Transformed" + msgstr "Généré, Importé, Transformé" + +-#: ../lib/db_base.cpp:186 ++#: ../lib/db_base.cpp:178 + msgctxt "db_base|" + msgid "Comment" + msgstr "Commentaire" + +-#: ../lib/db_base.cpp:187 ++#: ../lib/db_base.cpp:179 + msgctxt "db_base|" + msgid "First line of the comment field" + msgstr "Première ligne du champ de commentaire" + ++#: ../lib/db_base.cpp:241 ++#, qt-format ++msgctxt "db_base|" ++msgid "Import from: %1" ++msgstr "Importer à partir de: %1" ++ + #: ../lib/db_base.cpp:392 + #, qt-format + msgctxt "db_base|" +@@ -3411,42 +3516,42 @@ msgctxt "db_base|" + msgid "PEM files ( *.pem );; All files ( * )" + msgstr "Fichiers PEM ( *.pem );; Tous les fichiers ( * )" + +-#: ../lib/db_crl.cpp:34 ++#: ../lib/db_crl.cpp:30 + msgctxt "db_crl|" + msgid "Signer" + msgstr "Signataire" + +-#: ../lib/db_crl.cpp:35 ++#: ../lib/db_crl.cpp:31 + msgctxt "db_crl|" + msgid "Internal name of the signer" + msgstr "Nom interne du signataire" + +-#: ../lib/db_crl.cpp:36 ++#: ../lib/db_crl.cpp:32 + msgctxt "db_crl|" + msgid "No. revoked" + msgstr "Numéro révoqué" + +-#: ../lib/db_crl.cpp:37 ++#: ../lib/db_crl.cpp:33 + msgctxt "db_crl|" + msgid "Number of revoked certificates" + msgstr "Nombre de certificats révoqués" + +-#: ../lib/db_crl.cpp:38 ++#: ../lib/db_crl.cpp:34 + msgctxt "db_crl|" + msgid "Last update" + msgstr "Dernière mise-à-jour" + +-#: ../lib/db_crl.cpp:39 ++#: ../lib/db_crl.cpp:35 + msgctxt "db_crl|" + msgid "Next update" + msgstr "Prochaine mise-à-jour" + +-#: ../lib/db_crl.cpp:40 ++#: ../lib/db_crl.cpp:36 + msgctxt "db_crl|" + msgid "CRL number" + msgstr "Numéro de la liste de révocation" + +-#: ../lib/db_crl.cpp:106 ++#: ../lib/db_crl.cpp:105 + #, qt-format + msgctxt "db_crl|" + msgid "" +@@ -3458,68 +3563,53 @@ msgstr "" + "'%1'\n" + "En conséquence, elle n'a pas été importée" + +-#: ../lib/db_crl.cpp:161 ++#: ../lib/db_crl.cpp:130 + msgctxt "db_crl|" + msgid "Revocation list export" + msgstr "Exportation d'une liste de révocation" + +-#: ../lib/db_crl.cpp:162 ++#: ../lib/db_crl.cpp:131 + msgctxt "db_crl|" + msgid "CRL ( *.pem *.der *.crl )" + msgstr "Listes de révocation ( *.pem *.der *.crl )" + +-#: ../lib/db_crl.cpp:228 +-msgctxt "db_crl|" +-msgid "There are no CA certificates for CRL generation" +-msgstr "Il n'y a pas de certificat CA pour la génération de la CRL" +- +-#: ../lib/db_crl.cpp:236 +-msgctxt "db_crl|" +-msgid "Select CA certificate" +-msgstr "Sélectionner un certificat d'autorité" +- +-#: ../lib/db_crl.cpp:257 +-msgctxt "db_crl|" +-msgid "Create CRL" +-msgstr "Créer une liste de révocation" +- +-#: ../lib/db_crl.cpp:301 ++#: ../lib/db_crl.cpp:194 + msgctxt "db_crl|" + msgid "Failed to initiate DB transaction" + msgstr "Impossible de démarrer la transaction BDD" + +-#: ../lib/db_crl.cpp:311 ../lib/db_crl.cpp:319 ../lib/db_crl.cpp:323 ++#: ../lib/db_crl.cpp:204 ../lib/db_crl.cpp:212 ../lib/db_crl.cpp:216 + #, qt-format + msgctxt "db_crl|" + msgid "Database error: %1" + msgstr "Erreur de la base de données: %1" + +-#: ../lib/db_key.cpp:65 ++#: ../lib/db_key.cpp:58 + msgctxt "db_key|" + msgid "Type" + msgstr "Type" + +-#: ../lib/db_key.cpp:66 ++#: ../lib/db_key.cpp:59 + msgctxt "db_key|" + msgid "Size" + msgstr "Taille" + +-#: ../lib/db_key.cpp:68 ++#: ../lib/db_key.cpp:61 + msgctxt "db_key|" + msgid "EC Group" + msgstr "Groupe EC" + +-#: ../lib/db_key.cpp:70 ++#: ../lib/db_key.cpp:63 + msgctxt "db_key|" + msgid "Use" + msgstr "Usage" + +-#: ../lib/db_key.cpp:71 ++#: ../lib/db_key.cpp:64 + msgctxt "db_key|" + msgid "Password" + msgstr "Mot de passe" + +-#: ../lib/db_key.cpp:143 ++#: ../lib/db_key.cpp:138 + #, qt-format + msgctxt "db_key|" + msgid "" +@@ -3531,7 +3621,7 @@ msgstr "" + "'%1'\n" + "En conséquence, elle ne va pas être importée" + +-#: ../lib/db_key.cpp:148 ++#: ../lib/db_key.cpp:143 + #, qt-format + msgctxt "db_key|" + msgid "" +@@ -3545,207 +3635,197 @@ msgstr "" + "En conséquence, cette dernière sera complétée par la partie privée de la clé " + "importée" + +-#: ../lib/db_key.cpp:150 ++#: ../lib/db_key.cpp:145 + #, qt-format + msgctxt "db_key|" + msgid "Extending public key from %1 by imported key '%2'" + msgstr "Extension de la clé publique de %1 par la clé importée '%2'" + +-#: ../lib/db_key.cpp:185 ++#: ../lib/db_key.cpp:163 + msgctxt "db_key|" + msgid "Key size too small !" + msgstr "Taille de clé trop petite !" + +-#: ../lib/db_key.cpp:190 ++#: ../lib/db_key.cpp:167 + #, qt-format + msgctxt "db_key|" + msgid "You are sure to create a key of the size: %1 ?" + msgstr "Etes-vous sûr de vouloir créer une clé de taille %1 ?" + +-#: ../lib/db_key.cpp:272 ../lib/db_key.cpp:316 ++#: ../lib/db_key.cpp:217 ../lib/db_key.cpp:268 + msgctxt "db_key|" + msgid "PEM public" + msgstr "clé publique PEM" + +-#: ../lib/db_key.cpp:275 ../lib/db_key.cpp:321 ++#: ../lib/db_key.cpp:220 ../lib/db_key.cpp:273 + msgctxt "db_key|" + msgid "SSH2 public" + msgstr "Clé publique SSH2" + +-#: ../lib/db_key.cpp:278 ../lib/db_key.cpp:340 ++#: ../lib/db_key.cpp:223 ../lib/db_key.cpp:293 + msgctxt "db_key|" + msgid "PEM private" + msgstr "Clé privée PEM" + +-#: ../lib/db_key.cpp:283 ++#: ../lib/db_key.cpp:228 ../lib/db_key.cpp:298 ++msgctxt "db_key|" ++msgid "SSH2 private" ++msgstr "Clé privée SSH2" ++ ++#: ../lib/db_key.cpp:231 + msgctxt "db_key|" + msgid "Export keys to Clipboard" + msgstr "Exporter les clés vers le presse-papier" + +-#: ../lib/db_key.cpp:286 ++#: ../lib/db_key.cpp:234 + msgctxt "db_key|" + msgid "Clipboard" + msgstr "Presse-papier" + +-#: ../lib/db_key.cpp:299 ++#: ../lib/db_key.cpp:247 + #, qt-format + msgctxt "db_key|" + msgid "Export public key [%1]" + msgstr "Exporter la clé publique [%1]" + +-#: ../lib/db_key.cpp:317 ++#: ../lib/db_key.cpp:269 + msgctxt "db_key|" + msgid "DER public" + msgstr "Clé publique DER" + +-#: ../lib/db_key.cpp:326 ++#: ../lib/db_key.cpp:281 + msgctxt "db_key|" + msgid "DER private" + msgstr "Clé privée DER" + +-#: ../lib/db_key.cpp:328 ++#: ../lib/db_key.cpp:278 + msgctxt "db_key|" + msgid "PEM encryped" + msgstr "Chiffrée en PEM" + +-#: ../lib/db_key.cpp:334 ++#: ../lib/db_key.cpp:287 + msgctxt "db_key|" + msgid "PVK private" + msgstr "Clé privée PVK" + +-#: ../lib/db_key.cpp:336 ++#: ../lib/db_key.cpp:289 + msgctxt "db_key|" + msgid "PVK encrypted" + msgstr "Chiffrée en PVK" + +-#: ../lib/db_key.cpp:342 ++#: ../lib/db_key.cpp:295 + msgctxt "db_key|" + msgid "PKCS#8 encrypted" + msgstr "Chiffrée en PKCS#8" + +-#: ../lib/db_key.cpp:343 ++#: ../lib/db_key.cpp:299 + #, qt-format + msgctxt "db_key|" + msgid "Export private key [%1]" + msgstr "Exporter la clé privée [%1]" + +-#: ../lib/db_key.cpp:348 ++#: ../lib/db_key.cpp:304 + msgctxt "db_key|" + msgid "Private Keys ( *.pem *.der *.pk8 );; SSH Public Keys ( *.pub )" + msgstr "Clés privées ( *.pem *.der *.pk8 );; Clé publiques SSH ( *.pub )" + +-#: ../lib/db_key.cpp:405 ++#: ../lib/db_key.cpp:364 + msgctxt "db_key|" + msgid "Internal error" + msgstr "Erreur interne" + +-#: ../lib/db_key.cpp:424 ++#: ../lib/db_key.cpp:382 + msgctxt "db_key|" + msgid "Tried to change password of a token" + msgstr "Tentative de changement de mot de passe d'un jeton de sécurité" + +-#: ../lib/db_temp.cpp:54 ++#: ../lib/db_temp.cpp:50 + #, qt-format + msgctxt "db_temp|" + msgid "Bad template: %1" + msgstr "Mauvais modèle: %1" + +-#: ../lib/db_temp.cpp:38 ++#: ../lib/db_temp.cpp:34 + msgctxt "db_temp|" + msgid "Empty template" + msgstr "Modèle vide" + +-#: ../lib/db_temp.cpp:99 +-msgctxt "db_temp|" +-msgid "Preset Template values" +-msgstr "Initaliser les valeurs du modèle" +- +-#: ../lib/db_temp.cpp:137 ++#: ../lib/db_temp.cpp:112 + msgctxt "db_temp|" + msgid "Save template as" + msgstr "Enregistrer le modèle sous" + +-#: ../lib/db_temp.cpp:138 ++#: ../lib/db_temp.cpp:113 + msgctxt "db_temp|" + msgid "XCA templates ( *.xca );; All files ( * )" + msgstr "Modèles XCA ( *.xca);; Tous les fichiers ( * )" + +-#: ../lib/db_x509.cpp:67 ++#: ../lib/db_x509.cpp:71 + msgctxt "db_x509|" + msgid "CA" + msgstr "CA" + +-#: ../lib/db_x509.cpp:68 ++#: ../lib/db_x509.cpp:72 + msgctxt "db_x509|" + msgid "reflects the basic Constraints extension" + msgstr "reflète l'extension des contraintes basiques" + +-#: ../lib/db_x509.cpp:69 ++#: ../lib/db_x509.cpp:73 + msgctxt "db_x509|" + msgid "Serial" + msgstr "Numéro de série" + +-#: ../lib/db_x509.cpp:73 ++#: ../lib/db_x509.cpp:77 + msgctxt "db_x509|" + msgid "Start date" + msgstr "Date de début" + +-#: ../lib/db_x509.cpp:75 ++#: ../lib/db_x509.cpp:79 + msgctxt "db_x509|" + msgid "Expiry date" + msgstr "Date d'expiration" + +-#: ../lib/db_x509.cpp:70 ++#: ../lib/db_x509.cpp:74 + msgctxt "db_x509|" + msgid "MD5 fingerprint" + msgstr "Empreinte MD5" + +-#: ../lib/db_x509.cpp:71 ++#: ../lib/db_x509.cpp:75 + msgctxt "db_x509|" + msgid "SHA1 fingerprint" + msgstr "Empreinte SHA1" + +-#: ../lib/db_x509.cpp:72 ++#: ../lib/db_x509.cpp:76 + msgctxt "db_x509|" + msgid "SHA256 fingerprint" + msgstr "Empreinte SHA256" + +-#: ../lib/db_x509.cpp:74 ++#: ../lib/db_x509.cpp:78 + msgctxt "db_x509|" + msgid "Not before" + msgstr "Pas avant" + +-#: ../lib/db_x509.cpp:76 ++#: ../lib/db_x509.cpp:80 + msgctxt "db_x509|" + msgid "Not after" + msgstr "Pas après" + +-#: ../lib/db_x509.cpp:77 ++#: ../lib/db_x509.cpp:81 + msgctxt "db_x509|" + msgid "Revocation" + msgstr "Révocation" + +-#: ../lib/db_x509.cpp:78 ++#: ../lib/db_x509.cpp:82 + msgctxt "db_x509|" + msgid "CRL Expiration" + msgstr "Expiration de la CRL" + +-#: ../lib/db_x509.cpp:152 +-msgctxt "db_x509|" +-msgid "Plain View" +-msgstr "Vue à plat" +- +-#: ../lib/db_x509.cpp:154 +-msgctxt "db_x509|" +-msgid "Tree View" +-msgstr "Vue arborescente" +- +-#: ../lib/db_x509.cpp:334 ++#: ../lib/db_x509.cpp:301 + msgctxt "db_x509|" + msgid "Failed to retrieve unique random serial" + msgstr "L'extraction d'un numéro de série aléatoire a échoué" + +-#: ../lib/db_x509.cpp:357 ++#: ../lib/db_x509.cpp:324 + #, qt-format + msgctxt "db_x509|" + msgid "" +@@ -3757,177 +3837,183 @@ msgstr "" + "'%1'\n" + "En conséquence, il n'a pas été importé" + +-#: ../lib/db_x509.cpp:401 ++#: ../lib/db_x509.cpp:366 + #, qt-format + msgctxt "db_x509|" + msgid "Signed on %1 by '%2'" + msgstr "Signé le %1 par '%2'" + +-#: ../lib/db_x509.cpp:402 ++#: ../lib/db_x509.cpp:367 + msgctxt "db_x509|" + msgid "Unknown" + msgstr "Inconnu" + +-#: ../lib/db_x509.cpp:494 ++#: ../lib/db_x509.cpp:455 + msgctxt "db_x509|" + msgid "Invalid public key" + msgstr "Clé publique invalide" + +-#: ../lib/db_x509.cpp:652 ++#: ../lib/db_x509.cpp:611 + msgctxt "db_x509|" + msgid "PKCS#7 unrevoked" + msgstr "PKCS#7 non-révoqué" + +-#: ../lib/db_x509.cpp:656 ++#: ../lib/db_x509.cpp:615 + msgctxt "db_x509|" + msgid "PEM unrevoked" + msgstr "PEM non-révoqué" + +-#: ../lib/db_x509.cpp:663 ++#: ../lib/db_x509.cpp:622 + msgctxt "db_x509|" + msgid "vCalendar" + msgstr "message vCalendar" + +-#: ../lib/db_x509.cpp:667 ++#: ../lib/db_x509.cpp:626 + msgctxt "db_x509|" + msgid "CA vCalendar" + msgstr "message vCalendar pour le CA" + +-#: ../lib/db_x509.cpp:1092 ++#: ../lib/db_x509.cpp:630 ++msgctxt "db_x509|" ++msgid "X509 Certificates ( *.pem *.cer *.crt *.p12 *.pfx *.p7b )" ++msgstr "Certificats X509 ( *.pem *.cer *.crt *.p12 *.pfx *.p7b)" ++ ++#: ../lib/db_x509.cpp:1045 + msgctxt "db_x509|" + msgid "days" + msgstr " jours" + +-#: ../lib/db_x509.cpp:1101 ++#: ../lib/db_x509.cpp:1054 + msgctxt "db_x509|" + msgid "No template" + msgstr "Pas de modèle" + +-#: ../lib/db_x509.cpp:520 ++#: ../lib/db_x509.cpp:481 + msgctxt "db_x509|" + msgid "The key you selected for signing is not a private one." + msgstr "La clé sélectionnée pour la signature n'est pas une clé privée." + +-#: ../lib/db_x509.cpp:562 ++#: ../lib/db_x509.cpp:253 ++#, qt-format ++msgctxt "db_x509|" ++msgid "Failed to create directory '%1'" ++msgstr "Impossible de créer le répertoire %1" ++ ++#: ../lib/db_x509.cpp:523 + #, qt-format + msgctxt "db_x509|" + msgid "Store the certificate to the key on the token '%1 (#%2)' ?" + msgstr "Enregistrer le certificate avec la clé sur le jeton '%1 (#%2)' ?" + +-#: ../lib/db_x509.cpp:629 ++#: ../lib/db_x509.cpp:588 + msgctxt "db_x509|" + msgid "PEM chain" + msgstr "Chaîne en PEM" + +-#: ../lib/db_x509.cpp:631 ++#: ../lib/db_x509.cpp:590 + msgctxt "db_x509|" + msgid "PKCS#7 chain" + msgstr "Chaîne PKCS#7" + +-#: ../lib/db_x509.cpp:637 ++#: ../lib/db_x509.cpp:596 + msgctxt "db_x509|" + msgid "PKCS#12 chain" + msgstr "Chaîne PKCS#12" + +-#: ../lib/db_x509.cpp:654 ++#: ../lib/db_x509.cpp:613 + msgctxt "db_x509|" + msgid "PKCS#7 all" + msgstr "Tous les certificats en PKCS#7" + +-#: ../lib/db_x509.cpp:646 ++#: ../lib/db_x509.cpp:605 + msgctxt "db_x509|" + msgid "PEM + key" + msgstr "PEM + clé" + +-#: ../lib/db_x509.cpp:658 ++#: ../lib/db_x509.cpp:617 + msgctxt "db_x509|" + msgid "PEM all" + msgstr "Tous les certificats en PEM" + +-#: ../lib/db_x509.cpp:660 ++#: ../lib/db_x509.cpp:619 + msgctxt "db_x509|" + msgid "Certificate Index file" + msgstr "Ficher d'index des certificats" + +-#: ../lib/db_x509.cpp:670 ++#: ../lib/db_x509.cpp:629 + msgctxt "db_x509|" + msgid "Certificate export" + msgstr "Exportation de certificat" + +-#: ../lib/db_x509.cpp:671 +-msgctxt "db_x509|" +-msgid "X509 Certificates ( *.pem *.cer *.crt *.p12 *.p7b )" +-msgstr "Certificats X509 ( *.pem *.cer *.crt *.p12 *.p7b)" +- +-#: ../lib/db_x509.cpp:735 ../lib/db_x509.cpp:801 ++#: ../lib/db_x509.cpp:694 ../lib/db_x509.cpp:764 + #, qt-format + msgctxt "db_x509|" + msgid "There was no key found for the Certificate: '%1'" + msgstr "Aucune clé n'a été trouvée pour le Certificat. '%1'" + +-#: ../lib/db_x509.cpp:740 ++#: ../lib/db_x509.cpp:699 + #, qt-format + msgctxt "db_x509|" + msgid "Not possible for a token key: '%1'" + msgstr "Impossible pour une clé d'un jeton de sécurité: '%1'" + +-#: ../lib/db_x509.cpp:805 ++#: ../lib/db_x509.cpp:768 + #, qt-format + msgctxt "db_x509|" + msgid "Not possible for the token-key Certificate '%1'" + msgstr "Impossible pour le certificat d'une clé d'un jeton de sécurité: '%1'" + +-#: ../lib/db_x509super.cpp:25 ++#: ../lib/db_x509super.cpp:30 + msgctxt "db_x509name|" + msgid "Subject" + msgstr "Sujet" + +-#: ../lib/db_x509super.cpp:26 ++#: ../lib/db_x509super.cpp:31 + msgctxt "db_x509name|" + msgid "Complete distinguished name" + msgstr "Nom distinctif complet" + +-#: ../lib/db_x509super.cpp:27 ++#: ../lib/db_x509super.cpp:32 + msgctxt "db_x509name|" + msgid "Subject hash" + msgstr "Hachage du sujet" + +-#: ../lib/db_x509super.cpp:28 ++#: ../lib/db_x509super.cpp:33 + msgctxt "db_x509name|" + msgid "Hash to lookup certs in directories" + msgstr "Hachage de recherche dans un dossier" + +-#: ../lib/db_x509req.cpp:31 ++#: ../lib/db_x509req.cpp:28 + msgctxt "db_x509req|" + msgid "Signed" + msgstr "Signée" + +-#: ../lib/db_x509req.cpp:32 ++#: ../lib/db_x509req.cpp:29 + msgctxt "db_x509req|" + msgid "whether the request is already signed or not" + msgstr "si la requête a déjà été signée ou non" + +-#: ../lib/db_x509req.cpp:33 ++#: ../lib/db_x509req.cpp:30 + msgctxt "db_x509req|" + msgid "Unstructured name" + msgstr "Nom non-structuré" + +-#: ../lib/db_x509req.cpp:35 ++#: ../lib/db_x509req.cpp:32 + msgctxt "db_x509req|" + msgid "Challenge password" + msgstr "Mot de passe challenge" + +-#: ../lib/db_x509req.cpp:37 ++#: ../lib/db_x509req.cpp:34 + msgctxt "db_x509req|" + msgid "Certificate count" + msgstr "Nombre de certificats" + +-#: ../lib/db_x509req.cpp:38 ++#: ../lib/db_x509req.cpp:35 + msgctxt "db_x509req|" + msgid "Number of certificates in the database with the same public key" + msgstr "Nombre de certificats dans la base de données avec la même clé" + +-#: ../lib/db_x509req.cpp:55 ++#: ../lib/db_x509req.cpp:52 + #, qt-format + msgctxt "db_x509req|" + msgid "" +@@ -3939,78 +4025,78 @@ msgstr "" + "'%1'\n" + "En conséquence, elle n'a pas été chargée" + +-#: ../lib/db_x509req.cpp:132 ++#: ../lib/db_x509req.cpp:119 + msgctxt "db_x509req|" + msgid "Certificate request export" + msgstr "Exporter la requête de signature" + +-#: ../lib/db_x509req.cpp:133 ++#: ../lib/db_x509req.cpp:120 + msgctxt "db_x509req|" + msgid "Certificate request ( *.pem *.der *.csr )" + msgstr "Requête de signature de certificat ( *.pem *.der *.csr )" + +-#: ../lib/db_x509super.cpp:79 ++#: ../lib/db_x509super.cpp:81 + msgctxt "db_x509super|" + msgid "Key name" + msgstr "Nom de la clé" + +-#: ../lib/db_x509super.cpp:80 ++#: ../lib/db_x509super.cpp:82 + msgctxt "db_x509super|" + msgid "Internal name of the key" + msgstr "Nom interne de la clé" + +-#: ../lib/db_x509super.cpp:82 ++#: ../lib/db_x509super.cpp:84 + msgctxt "db_x509super|" + msgid "Signature algorithm" + msgstr "Algorithme de signature" + +-#: ../lib/db_x509super.cpp:83 ++#: ../lib/db_x509super.cpp:85 + msgctxt "db_x509super|" + msgid "Key type" + msgstr "Type de clé" + +-#: ../lib/db_x509super.cpp:84 ++#: ../lib/db_x509super.cpp:86 + msgctxt "db_x509super|" + msgid "Key size" + msgstr "Taille de la clé" + +-#: ../lib/db_x509super.cpp:86 ++#: ../lib/db_x509super.cpp:88 + msgctxt "db_x509super|" + msgid "EC Group" + msgstr "Groupe EC" + +-#: ../lib/db_x509super.cpp:140 ++#: ../lib/db_x509super.cpp:142 + #, qt-format + msgctxt "db_x509super|" + msgid "Extracted from %1 '%2'" + msgstr "Extrait de %1 '%2'" + +-#: ../lib/db_x509super.cpp:142 ../lib/db_x509super.cpp:193 ++#: ../lib/db_x509super.cpp:144 ../lib/db_x509super.cpp:196 + msgctxt "db_x509super|" + msgid "Certificate" + msgstr "Certificat" + +-#: ../lib/db_x509super.cpp:142 ../lib/db_x509super.cpp:193 ++#: ../lib/db_x509super.cpp:144 ../lib/db_x509super.cpp:196 + msgctxt "db_x509super|" + msgid "Certificate request" + msgstr "Requête de certificat" + +-#: ../lib/db_x509super.cpp:157 ++#: ../lib/db_x509super.cpp:159 + msgctxt "db_x509super|" + msgid "Save as OpenSSL config" + msgstr "Enregistrer en format de configuration OpenSSL" + +-#: ../lib/db_x509super.cpp:158 ++#: ../lib/db_x509super.cpp:160 + msgctxt "db_x509super|" + msgid "Config files ( *.conf *.cnf);; All files ( * )" + msgstr "Fichiers de configuration (*.conf *.cnf);; Tous les fichiers ( * )" + +-#: ../lib/db_x509super.cpp:180 ++#: ../lib/db_x509super.cpp:183 + msgctxt "db_x509super|" + msgid "The following extensions were not ported into the template" + msgstr "Les extensions suivantes n'ont pas été enregistrées dans le modèle" + +-#: ../lib/db_x509super.cpp:191 ++#: ../lib/db_x509super.cpp:194 + #, qt-format + msgctxt "db_x509super|" + msgid "Transformed from %1 '%2'" +@@ -4026,52 +4112,58 @@ msgctxt "kvView|" + msgid "Content" + msgstr "Contenu" + +-#: ../lib/pass_info.cpp:20 ++#: ../lib/pass_info.cpp:15 + msgctxt "pass_info|" + msgid "Password" + msgstr "Mot de passe" + +-#: ../lib/pass_info.cpp:26 ++#: ../lib/pass_info.cpp:22 + msgctxt "pass_info|" + msgid "PIN" + msgstr "NIP" + +-#: ../lib/pki_base.cpp:284 ++#: ../lib/pki_base.cpp:289 + msgctxt "pki_base|" + msgid "Unknown" + msgstr "Inconnu" + +-#: ../lib/pki_base.cpp:285 ++#: ../lib/pki_base.cpp:290 + msgctxt "pki_base|" + msgid "Imported" + msgstr "Importé" + +-#: ../lib/pki_base.cpp:286 ++#: ../lib/pki_base.cpp:291 + msgctxt "pki_base|" + msgid "Generated" + msgstr "Généré" + +-#: ../lib/pki_base.cpp:287 ++#: ../lib/pki_base.cpp:292 + msgctxt "pki_base|" + msgid "Transformed" + msgstr "Transformé" + +-#: ../lib/pki_base.cpp:288 ++#: ../lib/pki_base.cpp:293 + msgctxt "pki_base|" + msgid "Token" + msgstr "Jeton" + +-#: ../lib/pki_base.cpp:289 ++#: ../lib/pki_base.cpp:294 + msgctxt "pki_base|" + msgid "Legacy Database" + msgstr "Base de données antérieure" + +-#: ../lib/pki_base.cpp:290 ++#: ../lib/pki_base.cpp:295 + msgctxt "pki_base|" + msgid "Renewed" + msgstr "Renouvelé" + +-#: ../lib/pki_base.cpp:101 ++#: ../lib/pki_base.cpp:430 ++#, qt-format ++msgctxt "pki_base|" ++msgid "Property '%1' not listed in 'pki_base::print'" ++msgstr "Propriété '%1' non listée dans 'pki_base::print'" ++ ++#: ../lib/pki_base.cpp:125 + #, qt-format + msgctxt "pki_base|" + msgid "Internal error: Unexpected message: %1 %2" +@@ -4122,13 +4214,13 @@ msgctxt "pki_crl|" + msgid "Wrong Size %1" + msgstr "Taille fausse %1" + +-#: ../lib/pki_crl.cpp:438 ++#: ../lib/pki_crl.cpp:434 + #, qt-format + msgctxt "pki_crl|" + msgid "CRL Renewal of CA '%1' due" + msgstr "Le renouvellement de la liste de révocation du CA '%1' est nécessaire" + +-#: ../lib/pki_crl.cpp:439 ++#: ../lib/pki_crl.cpp:435 + #, qt-format + msgctxt "pki_crl|" + msgid "" +@@ -4138,13 +4230,13 @@ msgstr "" + "La dernière liste de révocation générée par le CA '%1' expirera le %2.\n" + "Elle est stockée dans la base de données XCA '%3'" + +-#: ../lib/pki_crl.cpp:447 ++#: ../lib/pki_crl.cpp:443 + #, qt-format + msgctxt "pki_crl|" + msgid "Renew CRL: %1" + msgstr "Renouvellement de CRL: %1" + +-#: ../lib/pki_crl.cpp:448 ++#: ../lib/pki_crl.cpp:444 + #, qt-format + msgctxt "pki_crl|" + msgid "" +@@ -4154,24 +4246,19 @@ msgstr "" + "La liste de révocation XCA '%1', émise le %3 expirera le %4.\n" + "Elle est stockée dans la base de données XCA '%5'" + +-#: ../lib/pki_evp.cpp:238 ++#: ../lib/pki_evp.cpp:260 + #, qt-format + msgctxt "pki_evp|" +-msgid "Failed to decrypt the key (bad password) %1" +-msgstr "Le déchiffrage de la clé a échoué (mauvais mot de passe) %1" +- +-#: ../lib/pki_evp.cpp:248 +-msgctxt "pki_evp|" +-msgid "Please enter the password to decrypt the private key." +-msgstr "SVP saisir le mot de passe pour déchiffrer la clé privée" ++msgid "Please enter the password to decrypt the private key %1." ++msgstr "SVP saisir le mot de passe pour déchiffrer la clé privée %1," + +-#: ../lib/pki_evp.cpp:305 ++#: ../lib/pki_evp.cpp:327 + #, qt-format + msgctxt "pki_evp|" + msgid "The key from file '%1' is incomplete or inconsistent." + msgstr "La clé dans le fichier '%1' est incomplète ou incorrecte." + +-#: ../lib/pki_evp.cpp:321 ++#: ../lib/pki_evp.cpp:416 + #, qt-format + msgctxt "pki_evp|" + msgid "" +@@ -4181,7 +4268,7 @@ msgstr "" + "SVP saisir le mot de passe pour déchiffrer la clé privée du fichier:\n" + "%1" + +-#: ../lib/pki_evp.cpp:383 ++#: ../lib/pki_evp.cpp:493 + #, qt-format + msgctxt "pki_evp|" + msgid "" +@@ -4192,148 +4279,148 @@ msgstr "" + "ainsi que les types de clés privé, public, PKCS#8 et le format SSH2 ont été " + "essayés." + +-#: ../lib/pki_evp.cpp:414 ++#: ../lib/pki_evp.cpp:524 + msgctxt "pki_evp|" + msgid "Ignoring unsupported private key" + msgstr "Clé privée non-supportée: ignorée" + +-#: ../lib/pki_evp.cpp:431 ++#: ../lib/pki_evp.cpp:541 + #, qt-format + msgctxt "pki_evp|" + msgid "Please enter the password to decrypt the private key: '%1'" + msgstr "SVP saisir le mot de passe pour déchiffrer la clé privée: '%1'" + +-#: ../lib/pki_evp.cpp:434 ../lib/pki_evp.cpp:448 ++#: ../lib/pki_evp.cpp:544 ../lib/pki_evp.cpp:558 + msgctxt "pki_evp|" + msgid "Password input aborted" + msgstr "Saisie du mot de passe abandonnée" + +-#: ../lib/pki_evp.cpp:444 ++#: ../lib/pki_evp.cpp:554 + #, qt-format + msgctxt "pki_evp|" + msgid "Please enter the database password for decrypting the key '%1'" + msgstr "" + "SVP saisir le mot de passe de la base de données pour déchiffrer la clé '%1'" + +-#: ../lib/pki_evp.cpp:561 ++#: ../lib/pki_evp.cpp:659 + #, qt-format + msgctxt "pki_evp|" + msgid "Please enter the password to protect the private key: '%1'" + msgstr "SVP saisir le mot de passe pour protéger la clé privée: '%1'" + +-#: ../lib/pki_evp.cpp:579 ++#: ../lib/pki_evp.cpp:677 + msgctxt "pki_evp|" + msgid "Please enter the database password for encrypting the key" + msgstr "SVP saisir le mot de passe de la base de données pour chiffrer la clé" + +-#: ../lib/pki_evp.cpp:694 ++#: ../lib/pki_evp.cpp:789 + #, qt-format + msgctxt "pki_evp|" + msgid "Please enter the password protecting the PKCS#8 key '%1'" + msgstr "SVP saisir le mot de passe protégeant la clé en PKCS#8 '%1'" + +-#: ../lib/pki_evp.cpp:713 ++#: ../lib/pki_evp.cpp:808 + #, qt-format + msgctxt "pki_evp|" + msgid "Please enter the password protecting the Microsoft PVK key '%1'" + msgstr "" + "SVP saisir le mot de passe protégeant la clé en format Microsoft PVK '%1'" + +-#: ../lib/pki_evp.cpp:776 ++#: ../lib/pki_evp.cpp:863 + #, qt-format + msgctxt "pki_evp|" + msgid "Please enter the export password for the private key '%1'" + msgstr "SVP saisir le mot de passe d'exportation pour la clé privée '%1'" + +-#: ../lib/pki_key.cpp:203 ++#: ../lib/pki_key.cpp:238 + #, qt-format + msgctxt "pki_key|" + msgid "Successfully imported the %1 public key '%2'" + msgstr "La clé publique %1 '%2' a été importée avec succès" + +-#: ../lib/pki_key.cpp:204 ++#: ../lib/pki_key.cpp:239 + #, qt-format + msgctxt "pki_key|" + msgid "Delete the %1 public key '%2'?" + msgstr "Détruire la clé publique %1 '%2' ?" + +-#: ../lib/pki_key.cpp:209 ++#: ../lib/pki_key.cpp:244 + #, qt-format + msgctxt "pki_key|" + msgid "Successfully imported the %1 private key '%2'" + msgstr "La clé privée %1 '%2' a été importée avec succès" + +-#: ../lib/pki_key.cpp:210 ++#: ../lib/pki_key.cpp:245 + #, qt-format + msgctxt "pki_key|" + msgid "Delete the %1 private key '%2'?" + msgstr "Détruire la clé privée %1 '%2' ?" + +-#: ../lib/pki_key.cpp:211 ++#: ../lib/pki_key.cpp:246 + #, qt-format + msgctxt "pki_key|" + msgid "Successfully created the %1 private key '%2'" + msgstr "La clé privée %1 '%2' a été créée avec succès" + +-#: ../lib/pki_key.cpp:217 ++#: ../lib/pki_key.cpp:252 + #, qt-format + msgctxt "pki_key|" + msgid "Delete the %1 keys: %2?" + msgstr "Détruire les %1 clés: %2?" + +-#: ../lib/pki_key.cpp:59 ../lib/pki_key.cpp:226 ++#: ../lib/pki_key.cpp:60 ../lib/pki_key.cpp:261 ../lib/pki_key.cpp:938 + msgctxt "pki_key|" + msgid "Public key" + msgstr "Clé publique" + +-#: ../lib/pki_key.cpp:427 ++#: ../lib/pki_key.cpp:499 + msgctxt "pki_key|" + msgid "Common" + msgstr "Global" + +-#: ../lib/pki_key.cpp:427 ++#: ../lib/pki_key.cpp:499 + msgctxt "pki_key|" + msgid "Private" + msgstr "Privé" + +-#: ../lib/pki_key.cpp:427 ++#: ../lib/pki_key.cpp:499 + msgctxt "pki_key|" + msgid "Bogus" + msgstr "Erroné" + +-#: ../lib/pki_key.cpp:427 ++#: ../lib/pki_key.cpp:499 + msgctxt "pki_key|" + msgid "PIN" + msgstr "NIP" + +-#: ../lib/pki_key.cpp:437 ++#: ../lib/pki_key.cpp:509 + msgctxt "pki_key|" + msgid "No password" + msgstr "Pas de mot de passe" + +-#: ../lib/pki_key.cpp:533 ../lib/pki_key.cpp:627 ++#: ../lib/pki_key.cpp:606 ../lib/pki_key.cpp:712 + #, qt-format + msgctxt "pki_key|" + msgid "Unexpected SSH2 content: '%1'" + msgstr "Contenu SSH2 inattendu: '%1'" + +-#: ../lib/pki_key.cpp:553 ../lib/pki_key.cpp:559 ++#: ../lib/pki_key.cpp:626 ../lib/pki_key.cpp:632 + msgctxt "pki_key|" + msgid "Invalid SSH2 public key" + msgstr "Clé publique SSH2 invalide" + +-#: ../lib/pki_key.cpp:735 ++#: ../lib/pki_key.cpp:830 + #, qt-format + msgctxt "pki_key|" + msgid "Failed writing to %1" + msgstr "Echec d'écriture sur %1" + +-#: ../lib/pki_multi.cpp:125 ++#: ../lib/pki_multi.cpp:131 + msgctxt "pki_multi|" + msgid "No known PEM encoded items found" + msgstr "Aucun objet PEM connu n'a été trouvé" + +-#: ../lib/pki_pkcs12.cpp:37 ++#: ../lib/pki_pkcs12.cpp:40 + #, qt-format + msgctxt "pki_pkcs12|" + msgid "" +@@ -4343,29 +4430,29 @@ msgstr "" + "SVP saisir le mot de passe pour déchiffrer le fichier en PKCS#12:\n" + "%1" + +-#: ../lib/pki_pkcs12.cpp:45 ++#: ../lib/pki_pkcs12.cpp:49 + #, qt-format + msgctxt "pki_pkcs12|" + msgid "Unable to load the PKCS#12 (pfx) file %1." + msgstr "Impossible de charger le fichier en PKCS#12 (pfx) %1." + +-#: ../lib/pki_pkcs12.cpp:60 ++#: ../lib/pki_pkcs12.cpp:73 + #, qt-format + msgctxt "pki_pkcs12|" + msgid "The supplied password was wrong (%1)" + msgstr "Le mot de passe renseigné était faux (%1)" + +-#: ../lib/pki_pkcs12.cpp:112 ++#: ../lib/pki_pkcs12.cpp:127 + msgctxt "pki_pkcs12|" + msgid "Please enter the password to encrypt the PKCS#12 file" + msgstr "SVP saisir le mot de passe pour chiffrer le fichier en PKCS#12" + +-#: ../lib/pki_pkcs12.cpp:116 ++#: ../lib/pki_pkcs12.cpp:130 + msgctxt "pki_pkcs12|" + msgid "No key or no Cert and no pkcs12" + msgstr "Pas de clé ou pas de certificat et pas en PKCS#12" + +-#: ../lib/pki_pkcs7.cpp:151 ++#: ../lib/pki_pkcs7.cpp:173 + #, qt-format + msgctxt "pki_pkcs7|" + msgid "Unable to load the PKCS#7 file %1. Tried PEM and DER format." +@@ -4373,170 +4460,165 @@ msgstr "" + "Impossible de charger le fichier en PKCS#7 %1. Les formats PEM et DER ont " + "été essayés." + +-#: ../lib/pki_scard.cpp:57 ++#: ../lib/pki_scard.cpp:52 + #, qt-format + msgctxt "pki_scard|" + msgid "Successfully imported the token key '%1'" + msgstr "La clé du jeton '%1' a été importée avec succès" + +-#: ../lib/pki_scard.cpp:58 ++#: ../lib/pki_scard.cpp:53 + #, qt-format + msgctxt "pki_scard|" + msgid "Delete the token key '%1'?" + msgstr "Détruire la clé du jeton '%1' ?" + +-#: ../lib/pki_scard.cpp:59 ++#: ../lib/pki_scard.cpp:54 + #, qt-format + msgctxt "pki_scard|" + msgid "Successfully created the token key '%1'" + msgstr "La clé du jeton '%1' a été créée avec succès" + +-#: ../lib/pki_scard.cpp:61 ++#: ../lib/pki_scard.cpp:56 + #, qt-format + msgctxt "pki_scard|" + msgid "Delete the %1 keys: %2?" + msgstr "Détruire les %1 clés: %2?" + +-#: ../lib/pki_scard.cpp:363 ++#: ../lib/pki_scard.cpp:358 + #, qt-format + msgctxt "pki_scard|" + msgid "Delete the private key '%1' from the token '%2 (#%3)' ?" + msgstr "Détruire la clé privée '%1' sur le jeton '%2 (#%3)' ?" + +-#: ../lib/pki_scard.cpp:436 ++#: ../lib/pki_scard.cpp:431 + msgctxt "pki_scard|" + msgid "This Key is already on the token" + msgstr "Cette clé est déjà sur le jeton" + +-#: ../lib/pki_scard.cpp:522 ++#: ../lib/pki_scard.cpp:517 + msgctxt "pki_scard|" + msgid "PIN input aborted" + msgstr "Saisie du NIP abandonnée" + +-#: ../lib/pki_scard.cpp:534 ++#: ../lib/pki_scard.cpp:529 + msgctxt "pki_scard|" + msgid "Unable to find copied key on the token" + msgstr "Impossible de trouver la clé copiée sur le jeton" + +-#: ../lib/pki_scard.cpp:621 ++#: ../lib/pki_scard.cpp:616 + #, qt-format + msgctxt "pki_scard|" + msgid "Please insert card: %1 %2 [%3] with Serial: %4" + msgstr "SVP insérer la carte %1 %2 [%3] avec le numéro de série: %4" + +-#: ../lib/pki_scard.cpp:689 +-msgctxt "pki_scard|" +-msgid "Illegal Key generation method" +-msgstr "Méthode de génération de clé illégale" +- +-#: ../lib/pki_scard.cpp:705 ++#: ../lib/pki_scard.cpp:682 + msgctxt "pki_scard|" + msgid "Unable to find generated key on card" + msgstr "Impossible de trouver la clé générée sur la carte" + +-#: ../lib/pki_scard.cpp:743 ++#: ../lib/pki_scard.cpp:720 + msgctxt "pki_scard|" + msgid "Ignoring unsupported token key" + msgstr "La clé non-supportée sur le jeton est ignorée" + +-#: ../lib/pki_scard.cpp:746 ++#: ../lib/pki_scard.cpp:723 + #, qt-format + msgctxt "pki_scard|" + msgid "Wrong Size %1" + msgstr "Taille fausse %1" + +-#: ../lib/pki_scard.cpp:752 ++#: ../lib/pki_scard.cpp:729 + #, qt-format + msgctxt "pki_scard|" + msgid "Token %1" + msgstr "Jeton %1" + +-#: ../lib/pki_scard.cpp:761 ../lib/pki_scard.cpp:774 ++#: ../lib/pki_scard.cpp:738 ../lib/pki_scard.cpp:751 + msgctxt "pki_scard|" + msgid "Failed to find the key on the token" + msgstr "Impossible de trouver la clé sur le jeton" + +-#: ../lib/pki_scard.cpp:768 ++#: ../lib/pki_scard.cpp:745 + msgctxt "pki_scard|" + msgid "Invalid Pin for the token" + msgstr "NIP invalide pour le jeton" + +-#: ../lib/pki_scard.cpp:780 ++#: ../lib/pki_scard.cpp:757 + msgctxt "pki_scard|" + msgid "Failed to initialize the key on the token" + msgstr "Impossible d'initialiser la clé sur le jeton" + +-#: ../lib/pki_temp.cpp:124 ++#: ../lib/pki_temp.cpp:123 + #, qt-format + msgctxt "pki_temp|" + msgid "Successfully imported the XCA template '%1'" + msgstr "Le modèle XCA '%1' a été importé avec succès" + +-#: ../lib/pki_temp.cpp:125 ++#: ../lib/pki_temp.cpp:124 + #, qt-format + msgctxt "pki_temp|" + msgid "Delete the XCA template '%1'?" + msgstr "Détruire le modèle XCA '%1' ?" + +-#: ../lib/pki_temp.cpp:126 ++#: ../lib/pki_temp.cpp:125 + #, qt-format + msgctxt "pki_temp|" + msgid "Successfully created the XCA template '%1'" + msgstr "Le modèle XCA '%1' a été créé avec succès" + +-#: ../lib/pki_temp.cpp:128 ++#: ../lib/pki_temp.cpp:127 + #, qt-format + msgctxt "pki_temp|" + msgid "Delete the %1 XCA templates: %2?" + msgstr "Détruire les %1 modèles XCA: %2 ?" + +-#: ../lib/pki_temp.cpp:336 ++#: ../lib/pki_temp.cpp:335 + #, qt-format + msgctxt "pki_temp|" + msgid "Wrong Size %1" + msgstr "Taille fausse %1" + +-#: ../lib/pki_temp.cpp:426 ++#: ../lib/pki_temp.cpp:420 + msgctxt "pki_temp|" + msgid "Template file content error (too small)" + msgstr "Erreur de contenu du fichier de modèle (trop petit)" + +-#: ../lib/pki_temp.cpp:481 ++#: ../lib/pki_temp.cpp:469 + msgctxt "pki_temp|" + msgid "Not a PEM encoded XCA Template" + msgstr "Ce n'est pas un modèle XCA en format PEM" + +-#: ../lib/pki_temp.cpp:489 ++#: ../lib/pki_temp.cpp:477 + #, qt-format + msgctxt "pki_temp|" + msgid "Not an XCA Template, but '%1'" + msgstr "Ce n'est pas un modèle XCA, mais '%1'" + +-#: ../lib/pki_x509.cpp:66 ++#: ../lib/pki_x509.cpp:64 + #, qt-format + msgctxt "pki_x509|" + msgid "Successfully imported the certificate '%1'" + msgstr "Le certificat '%1' a été importé avec succès" + +-#: ../lib/pki_x509.cpp:67 ++#: ../lib/pki_x509.cpp:65 + #, qt-format + msgctxt "pki_x509|" + msgid "Delete the certificate '%1'?" + msgstr "Détruire le certificat '%1' ?" + +-#: ../lib/pki_x509.cpp:68 ++#: ../lib/pki_x509.cpp:66 + #, qt-format + msgctxt "pki_x509|" + msgid "Successfully created the certificate '%1'" + msgstr "Le certificat '%1' a été créé avec succès" + +-#: ../lib/pki_x509.cpp:70 ++#: ../lib/pki_x509.cpp:68 + #, qt-format + msgctxt "pki_x509|" + msgid "Delete the %1 certificates: %2?" + msgstr "Détruire les %1 certificats: '%2' ?" + +-#: ../lib/pki_x509.cpp:218 ++#: ../lib/pki_x509.cpp:229 + #, qt-format + msgctxt "pki_x509|" + msgid "" +@@ -4545,45 +4627,45 @@ msgstr "" + "Impossible de charger le certificat du fichier %1. Les formats PEM et DER " + "ont été essayés." + +-#: ../lib/pki_x509.cpp:363 ++#: ../lib/pki_x509.cpp:374 + msgctxt "pki_x509|" + msgid "This certificate is already on the security token" + msgstr "Ce certificat est déjà dans le jeton de sécurité" + +-#: ../lib/pki_x509.cpp:426 ++#: ../lib/pki_x509.cpp:437 + #, qt-format + msgctxt "pki_x509|" + msgid "Delete the certificate '%1' from the token '%2 (#%3)'?" + msgstr "Détruire le certificat '%1' sur le jeton '%2 (#%3)' ?" + +-#: ../lib/pki_x509.cpp:559 ++#: ../lib/pki_x509.cpp:570 + msgctxt "pki_x509|" + msgid "There is no key for signing !" + msgstr "Il n'y a pas de clé pour signer !" + +-#: ../lib/pki_x509.cpp:620 ++#: ../lib/pki_x509.cpp:631 + #, qt-format + msgctxt "pki_x509|" + msgid "Wrong Size %1" + msgstr "Taille fausse %1" + +-#: ../lib/pki_x509.cpp:911 ++#: ../lib/pki_x509.cpp:919 + msgctxt "pki_x509|" + msgid "No" + msgstr "Non" + +-#: ../lib/pki_x509.cpp:913 ++#: ../lib/pki_x509.cpp:921 + msgctxt "pki_x509|" + msgid "Yes" + msgstr "Oui" + +-#: ../lib/pki_x509.cpp:943 ++#: ../lib/pki_x509.cpp:951 + #, qt-format + msgctxt "pki_x509|" + msgid "Renew certificate: %1" + msgstr "Renouvellement du certificat: %1" + +-#: ../lib/pki_x509.cpp:944 ++#: ../lib/pki_x509.cpp:952 + #, qt-format + msgctxt "pki_x509|" + msgid "" +@@ -4593,36 +4675,36 @@ msgstr "" + "Le certificat XCA '%1' émis le %2 expirera le %3.\n" + "Il est stocké dans la base de données XCA '%4'" + +-#: ../lib/pki_x509req.cpp:102 ++#: ../lib/pki_x509req.cpp:110 + msgctxt "pki_x509req|" + msgid "Signing key not valid (public key)" + msgstr "La clé de signature n'est pas valide (c'est une clé publique)" + +-#: ../lib/pki_x509req.cpp:144 ++#: ../lib/pki_x509req.cpp:152 + #, qt-format + msgctxt "pki_x509req|" + msgid "Successfully imported the %1 certificate request '%2'" + msgstr "La requête %1 de signature '%2' a été importée avec succès" + +-#: ../lib/pki_x509req.cpp:145 ++#: ../lib/pki_x509req.cpp:153 + #, qt-format + msgctxt "pki_x509req|" + msgid "Delete the %1 certificate request '%2'?" + msgstr "Détruire la requête %1 de signature '%2' ?" + +-#: ../lib/pki_x509req.cpp:146 ++#: ../lib/pki_x509req.cpp:154 + #, qt-format + msgctxt "pki_x509req|" + msgid "Successfully created the %1 certificate request '%2'" + msgstr "La requête %1 de signature '%2' a été créée avec succès" + +-#: ../lib/pki_x509req.cpp:148 ++#: ../lib/pki_x509req.cpp:156 + #, qt-format + msgctxt "pki_x509req|" + msgid "Delete the %1 certificate requests: %2?" + msgstr "Détruire la requête %1 de signature '%2' ?" + +-#: ../lib/pki_x509req.cpp:176 ++#: ../lib/pki_x509req.cpp:184 + #, qt-format + msgctxt "pki_x509req|" + msgid "" +@@ -4632,18 +4714,18 @@ msgstr "" + "Impossible de charger la requête de signature du fichier %1. Les formats " + "PEM, DER et SPKAC ont été essayés." + +-#: ../lib/pki_x509req.cpp:208 ++#: ../lib/pki_x509req.cpp:216 + #, qt-format + msgctxt "pki_x509req|" + msgid "Wrong Size %1" + msgstr "Taille fausse %1" + +-#: ../lib/pki_x509req.cpp:356 ++#: ../lib/pki_x509req.cpp:383 + msgctxt "pki_x509req|" + msgid "Signed" + msgstr "Signée" + +-#: ../lib/pki_x509req.cpp:356 ++#: ../lib/pki_x509req.cpp:383 + msgctxt "pki_x509req|" + msgid "Unhandled" + msgstr "Non-géré" +@@ -4678,52 +4760,52 @@ msgctxt "v3ext|" + msgid "Cancel" + msgstr "Annuler" + +-#: ../widgets/v3ext.cpp:72 ++#: ../widgets/v3ext.cpp:75 + msgctxt "v3ext|" + msgid "An email address or 'copy'" + msgstr "Une adresse de courriel ou 'copy'" + +-#: ../widgets/v3ext.cpp:74 ++#: ../widgets/v3ext.cpp:77 + msgctxt "v3ext|" + msgid "An email address" + msgstr "Une adresse de courriel" + +-#: ../widgets/v3ext.cpp:76 ++#: ../widgets/v3ext.cpp:79 + msgctxt "v3ext|" + msgid "A registered ID: OBJECT IDENTIFIER" + msgstr "un IDentifiant enregistré: IDENTIFICATEUR.OBJET" + +-#: ../widgets/v3ext.cpp:80 ++#: ../widgets/v3ext.cpp:83 + msgctxt "v3ext|" + msgid "A uniform resource indicator" + msgstr "un indicateur uniforme de ressource" + +-#: ../widgets/v3ext.cpp:85 ++#: ../widgets/v3ext.cpp:88 + msgctxt "v3ext|" + msgid "A DNS domain name or 'copycn'" + msgstr "un nom de domaine DNS ou 'copycn'" + +-#: ../widgets/v3ext.cpp:87 ++#: ../widgets/v3ext.cpp:90 + msgctxt "v3ext|" + msgid "A DNS domain name" + msgstr "un nom de domaine DNS" + +-#: ../widgets/v3ext.cpp:89 ++#: ../widgets/v3ext.cpp:92 + msgctxt "v3ext|" + msgid "An IP address" + msgstr "Une adresse IP" + +-#: ../widgets/v3ext.cpp:92 ++#: ../widgets/v3ext.cpp:95 + msgctxt "v3ext|" + msgid "Syntax: ;TYPE:text like '1.2.3.4:UTF8:name'" + msgstr "Syntaxe: ;TYPE:texte sous la forme '1.2.3.4:UTF8:nom'" + +-#: ../widgets/v3ext.cpp:96 ++#: ../widgets/v3ext.cpp:99 + msgctxt "v3ext|" + msgid "No editing. Only 'copy' allowed here" + msgstr "Pas de modification possible. Seul 'copy' est permis ici" + +-#: ../widgets/v3ext.cpp:165 ++#: ../widgets/v3ext.cpp:168 + #, qt-format + msgctxt "v3ext|" + msgid "" +@@ -4735,7 +4817,7 @@ msgstr "" + "'%1'\n" + "%2" + +-#: ../widgets/v3ext.cpp:170 ++#: ../widgets/v3ext.cpp:173 + #, qt-format + msgctxt "v3ext|" + msgid "" +@@ -4744,3 +4826,13 @@ msgid "" + msgstr "" + "La validation a été effectuée avec succès:\n" + "'%1'" ++ ++#: ../widgets/XcaWarning.cpp:121 ++msgctxt "xcaWarning|" ++msgid "The following error occurred:" ++msgstr "L'erreur suivante s'est produite:" ++ ++#: ../widgets/XcaWarning.cpp:124 ++msgctxt "xcaWarning|" ++msgid "Copy to Clipboard" ++msgstr "Copier dans le presse-papier" diff --git a/xca-2.4.0-lang-it.patch b/xca-2.4.0-lang-it.patch new file mode 100644 index 0000000..cae2369 --- /dev/null +++ b/xca-2.4.0-lang-it.patch @@ -0,0 +1,312 @@ +From 36abc2b4980980d92a1acb697340c36b8cce6e64 Mon Sep 17 00:00:00 2001 +From: albanobattistella <34811668+albanobattistella@users.noreply.github.com> +Date: Mon, 24 May 2021 17:52:22 +0200 +Subject: [PATCH] Update xca_it.ts + +--- + lang/xca_it.ts | 80 +++++++++++++++++++++++++------------------------- + 1 file changed, 40 insertions(+), 40 deletions(-) + +diff --git a/lang/xca_it.ts b/lang/xca_it.ts +index 0bf93bc9..ba06ec62 100644 +--- a/lang/xca_it.ts ++++ b/lang/xca_it.ts +@@ -180,7 +180,7 @@ + + + Revoked: +- Revocato: ++ Revocato: + + + +@@ -1133,7 +1133,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile + + No deleted items found +- Non trovati elementi cancellati ++ Non trovati elementi cancellati + + + +@@ -1228,11 +1228,11 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile + + &New DataBase +- &Nuovo database ++ &Nuovo database + + + &Open DataBase +- &Apri database ++ &Apri database + + + +@@ -1246,7 +1246,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile + + &Close DataBase +- &Chiudi database ++ &Chiudi database + + + +@@ -1408,7 +1408,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile + + &Content +- &Contenuti ++ &Contenuti + + + +@@ -1417,7 +1417,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile + + no such option: %1 +- opzione inesistente: %1 ++ opzione inesistente: %1 + + + +@@ -1483,30 +1483,30 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile + Please enter a password, that will be used to encrypt your private keys in the database: + %1 +- Prego inserire una password che verrà utilizzata per crittare le chiavi private nel database: ++ Prego inserire una password che verrà utilizzata per crittare le chiavi private nel database: + %1 + + + Password verify error, please try again +- Errore di verifica password, prego riprovare ++ Errore di verifica password, prego riprovare + + + Password +- Password ++ Password + + + Please enter the password for unlocking the database: + %1 +- Prego inserire la password per sbloccare il database: ++ Prego inserire la password per sbloccare il database: + %1 + + + The following error occurred: +- Incontrato l'errore seguente: ++ Incontrato l'errore seguente: + + + Copy to Clipboard +- Copia negli appunti ++ Copia negli appunti + + + +@@ -1533,7 +1533,7 @@ Prego inserire i bit dei parametri DH + + + Error opening file: '%1': %2 +- Errore in apertura file: '%1': %2 ++ Errore in apertura file: '%1': %2 + + + +@@ -1769,7 +1769,7 @@ Prego inserire i bit dei parametri DH + + + Distinguished name +- Distinguished name ++ Nome distinto + + + +@@ -2279,12 +2279,12 @@ nonostante siano stati dichiarati come obbligatori nel menu opzioni. + + Hostname +- ++ Nome host + + + + Username +- ++ Nome utente + + + +@@ -2309,11 +2309,11 @@ nonostante siano stati dichiarati come obbligatori nel menu opzioni. + + Please enter the password to access the database server %2 as user '%1'. +- Prego inserire la password di accesso al database server %2 come utente: '%1'. ++ Prego inserire la password di accesso al database server %2 come utente: '%1'. + + + The database driver does not support transactions. This may happen if the client and server have different versions. Continue with care. +- Il driver database non supporta le transazioni. Questo può succedere se il client e il server hanno versioni differenti. Continuare con attenzione. ++ Il driver database non supporta le transazioni. Questo può succedere se il client e il server hanno versioni differenti. Continuare con attenzione. + + + +@@ -2524,7 +2524,7 @@ Nello specifico EC e DSA sono definiti solo con SHA1 nelle specifiche PKCS#11. + + E&xit +- E&sci ++ E&sci + + + +@@ -2614,15 +2614,15 @@ Nello specifico EC e DSA sono definiti solo con SHA1 nelle specifiche PKCS#11. + + DB: Rename: '%1' already in use +- DB: Rinomina: '%1' già in uso ++ DB: Rinomina: '%1' già in uso + + + DB: Entry to rename not found: %1 +- DB: Elemento da rinominare non trovato: %1 ++ DB: Elemento da rinominare non trovato: %1 + + + DB: Write error %1 - %2 +- DB: Errore di scrittura %1 - %2 ++ DB: Errore di scrittura %1 - %2 + + + +@@ -2991,7 +2991,7 @@ Nello specifico EC e DSA sono definiti solo con SHA1 nelle specifiche PKCS#11. + + Failed to open PKCS11 library: %1 +- Impossibile aprire libreria PKCS#11: %1 ++ Impossibile aprire libreria PKCS#11: %1 + + + +@@ -3456,7 +3456,7 @@ nella libreria %3 + db_base + + Error opening file: '%1': %2 +- Errore in apertura file: '%1': %2 ++ Errore in apertura file: '%1': %2 + + + +@@ -3607,15 +3607,15 @@ quindi non è stata importata + + + There are no CA certificates for CRL generation +- Non esistono certificati CA per generare la CRL ++ Non esistono certificati CA per generare la CRL + + + Select CA certificate +- Seleziona un certificato CA ++ Seleziona un certificato CA + + + Create CRL +- Crea CRL ++ Crea CRL + + + +@@ -3873,11 +3873,11 @@ e sarà completata con la nuova parte privata della chiave + + + Plain View +- Visualizzazione semplice ++ Visualizzazione semplice + + + Tree View +- Visualizzazione ad albero ++ Visualizzazione ad albero + + + +@@ -4000,7 +4000,7 @@ pertanto non è stato importato + + + X509 Certificates ( *.pem *.cer *.crt *.p12 *.p7b ) +- Certificati x509 ( *.pem *.cer *.crt *.p12 *.p7b ) ++ Certificati x509 ( *.pem *.cer *.crt *.p12 *.p7b ) + + + +@@ -4015,7 +4015,7 @@ pertanto non è stato importato + + + Error opening file: '%1': %2 +- Errore in apertura file: '%1': %2 ++ Errore in apertura file: '%1': %2 + + + +@@ -4024,7 +4024,7 @@ pertanto non è stato importato + + + days +- giorni ++ giorni + + + +@@ -4202,11 +4202,11 @@ pertanto non è stata salvata + pki_base + + Error opening file: '%1': %2 +- Errore in apertura file: '%1': %2 ++ Errore in apertura file: '%1': %2 + + + Error writing to file: '%1': %2 +- Errore scrittura file: '%1': %2 ++ Errore scrittura file: '%1': %2 + + + +@@ -4312,7 +4312,7 @@ Si trova nel database XCA '%5' + + + unknown +- Sconosciuto ++ Sconosciuto + + + +@@ -4322,22 +4322,22 @@ Si trova nel database XCA '%5' + + The XCA CRL '%1', issued by the CA '%2' on %3 will expire on %4. + It is stored in the XCA database '%5' +- La CRL XCA '%1', rilasciata dalla CA '%2' il %3, scadrà il %4. E' mantenuta nel database XCA '%5' ++ La CRL XCA '%1', rilasciata dalla CA '%2' il %3, scadrà il %4. E' mantenuta nel database XCA '%5' + + + + pki_evp + + Failed to decrypt the key (bad password) +- Impossibile decrittare la chiave (password errata) ++ Impossibile decrittare la chiave (password errata) + + + Failed to decrypt the key (bad password) %1 +- Impossibile decrittare la chiave (password errata) %1 ++ Impossibile decrittare la chiave (password errata) %1 + + + Please enter the password to decrypt the private key. +- Prego inserire la password per decrittare la chiave privata. ++ Prego inserire la password per decrittare la chiave privata. + + + diff --git a/xca-2.4.0-mimeicons.patch b/xca-2.4.0-mimeicons.patch new file mode 100644 index 0000000..f8398e3 --- /dev/null +++ b/xca-2.4.0-mimeicons.patch @@ -0,0 +1,17 @@ +diff -Naurp xca-2.4.0.orig/misc/xca.xml xca-2.4.0.new/misc/xca.xml +--- xca-2.4.0.orig/misc/xca.xml 2021-05-07 22:40:29.000000000 +0200 ++++ xca-2.4.0.new/misc/xca.xml 2021-11-13 17:09:16.478893271 +0100 +@@ -3,11 +3,11 @@ + + XCA database + +- ++ + + + XCA template + +- ++ + + diff --git a/xca-2.4.0-noclean.patch b/xca-2.4.0-noclean.patch new file mode 100644 index 0000000..e754f9f --- /dev/null +++ b/xca-2.4.0-noclean.patch @@ -0,0 +1,14 @@ +diff -Naurp xca-2.4.0.orig/Makefile xca-2.4.0.new/Makefile +--- xca-2.4.0.orig/Makefile 2021-05-07 22:40:29.000000000 +0200 ++++ xca-2.4.0.new/Makefile 2021-11-13 16:59:53.656274074 +0100 +@@ -69,7 +69,9 @@ PRINT=: + endif + export PRINT + +-ifneq ($(TOPDIR), $(BUILD)) ++REALBUILD=$(shell realpath $(BUILD)) ++REALTOPDIR=$(shell realpath $(TOPDIR)) ++ifneq ($(REALTOPDIR), $(REALBUILD)) + do.ui: clean_topdir + clean_topdir: + $(MAKE) -C $(TOPDIR) clean diff --git a/xca-2.4.0-openssl3.patch b/xca-2.4.0-openssl3.patch new file mode 100644 index 0000000..7667d02 --- /dev/null +++ b/xca-2.4.0-openssl3.patch @@ -0,0 +1,233 @@ +diff -Naurp xca-2.4.0.orig/lib/pkcs11.cpp xca-2.4.0.new/lib/pkcs11.cpp +--- xca-2.4.0.orig/lib/pkcs11.cpp 2021-05-07 22:40:29.000000000 +0200 ++++ xca-2.4.0.new/lib/pkcs11.cpp 2021-11-13 02:58:27.866824246 +0100 +@@ -840,8 +840,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY + + switch (EVP_PKEY_type(keytype)) { + case EVP_PKEY_RSA: +- rsa = EVP_PKEY_get0_RSA(pub); +- rsa = RSAPublicKey_dup(rsa); ++ rsa = RSAPublicKey_dup(EVP_PKEY_get0_RSA(pub)); + openssl_error(); + if (!rsa_meth) { + #if OPENSSL_VERSION_NUMBER >= 0x1010000L +@@ -865,8 +864,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY + EVP_PKEY_assign_RSA(evp, rsa); + break; + case EVP_PKEY_DSA: +- dsa = EVP_PKEY_get0_DSA(pub); +- dsa = DSAparams_dup(dsa); ++ dsa = DSAparams_dup(EVP_PKEY_get0_DSA(pub)); + openssl_error(); + if (!dsa_meth) { + #if OPENSSL_VERSION_NUMBER >= 0x10100000L +@@ -889,8 +887,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY + break; + #if !defined(OPENSSL_NO_EC) && OPENSSL_VERSION_NUMBER >= 0x10100000L + case EVP_PKEY_EC: +- ec = EVP_PKEY_get0_EC_KEY(pub); +- ec = EC_KEY_dup(ec); ++ ec = EC_KEY_dup(EVP_PKEY_get0_EC_KEY(pub)); + openssl_error(); + if (!ec_key_meth) { + ec_key_meth = setup_ec_key_meth(); +diff -Naurp xca-2.4.0.orig/lib/pki_evp.cpp xca-2.4.0.new/lib/pki_evp.cpp +--- xca-2.4.0.orig/lib/pki_evp.cpp 2021-05-07 22:40:29.000000000 +0200 ++++ xca-2.4.0.new/lib/pki_evp.cpp 2021-11-13 03:00:39.279152488 +0100 +@@ -282,8 +282,8 @@ void pki_evp::fromPEMbyteArray(const QBy + static void search_ec_oid(EVP_PKEY *pkey) + { + #ifndef OPENSSL_NO_EC +- EC_KEY *ec; + EC_GROUP *builtin; ++ const EC_KEY *ec; + const EC_GROUP *ec_group; + + int keytype = EVP_PKEY_id(pkey); +@@ -498,7 +498,7 @@ void pki_evp::fload(const QString &fname + void pki_evp::fromData(const unsigned char *p, db_header_t *head) + { + int version, type, size; +- void *ptr = NULL; ++ const void *ptr = NULL; + + if (key) + EVP_PKEY_free(key); +@@ -518,8 +518,23 @@ void pki_evp::fromData(const unsigned ch + } + pki_openssl_error(); + +- if (key) +- ptr = EVP_PKEY_get0(key); ++ if (key) { ++ switch (EVP_PKEY_type(EVP_PKEY_id(key))) { ++ case EVP_PKEY_RSA: ++ ptr = EVP_PKEY_get0_RSA(key); ++ break; ++ case EVP_PKEY_DSA: ++ ptr = EVP_PKEY_get0_DSA(key); ++ break; ++#ifndef OPENSSL_NO_EX ++ case EVP_PKEY_EC: ++ ptr = EVP_PKEY_get0_EC_KEY(key); ++ break; ++#endif ++ default: ++ ptr = EVP_PKEY_get0(key); ++ } ++ } + if (!ptr) + throw errorEx(tr("Ignoring unsupported private key")); + +@@ -621,8 +636,8 @@ EVP_PKEY *pki_evp::legacyDecryptKey(QByt + + pki_openssl_error(); + if (EVP_PKEY_type(getKeyType()) == EVP_PKEY_RSA) { +- RSA *rsa = EVP_PKEY_get0_RSA(tmpkey); +- RSA_blinding_on(rsa, NULL); ++ const RSA *rsa = EVP_PKEY_get0_RSA(tmpkey); ++ RSA_blinding_on((RSA *) rsa, NULL); + } + myencKey.fill(0); + return tmpkey; +@@ -930,7 +945,7 @@ bool pki_evp::verify_priv(EVP_PKEY *pkey + EVP_MD_CTX_free(ctx); + #endif + if (EVP_PKEY_id(pkey) == EVP_PKEY_RSA && EVP_PKEY_isPrivKey(pkey)) { +- RSA *rsa = EVP_PKEY_get0_RSA(pkey); ++ const RSA *rsa = EVP_PKEY_get0_RSA(pkey); + if (RSA_check_key(rsa) != 1) + verify = false; + } +diff -Naurp xca-2.4.0.orig/lib/pki_key.cpp xca-2.4.0.new/lib/pki_key.cpp +--- xca-2.4.0.orig/lib/pki_key.cpp 2021-05-07 22:40:29.000000000 +0200 ++++ xca-2.4.0.new/lib/pki_key.cpp 2021-11-13 02:58:27.866824246 +0100 +@@ -197,7 +197,7 @@ QString pki_key::length() const + + if (EVP_PKEY_id(key) == EVP_PKEY_DSA) { + const BIGNUM *p = NULL; +- DSA *dsa = EVP_PKEY_get0_DSA(key); ++ const DSA *dsa = EVP_PKEY_get0_DSA(key); + if (dsa) + DSA_get0_pqg(dsa, &p, NULL, NULL); + dsa_unset = p == NULL; +@@ -299,7 +299,7 @@ QString pki_key::modulus() const + if (getKeyType() == EVP_PKEY_RSA) { + const BIGNUM *n = NULL; + +- RSA *rsa = EVP_PKEY_get0_RSA(key); ++ const RSA *rsa = EVP_PKEY_get0_RSA(key); + RSA_get0_key(rsa, &n, NULL, NULL); + return BN2QString(n); + } +@@ -310,7 +310,7 @@ QString pki_key::pubEx() const + { + if (getKeyType() == EVP_PKEY_RSA) { + const BIGNUM *e = NULL; +- RSA *rsa = EVP_PKEY_get0_RSA(key); ++ const RSA *rsa = EVP_PKEY_get0_RSA(key); + RSA_get0_key(rsa, NULL, &e, NULL); + return BN2QString(e); + } +@@ -321,7 +321,7 @@ QString pki_key::subprime() const + { + if (getKeyType() == EVP_PKEY_DSA) { + const BIGNUM *q = NULL; +- DSA *dsa = EVP_PKEY_get0_DSA(key); ++ const DSA *dsa = EVP_PKEY_get0_DSA(key); + if (dsa) + DSA_get0_pqg(dsa, NULL, &q, NULL); + return BN2QString(q); +@@ -333,7 +333,7 @@ QString pki_key::pubkey() const + { + if (getKeyType() == EVP_PKEY_DSA) { + const BIGNUM *pubkey = NULL; +- DSA *dsa = EVP_PKEY_get0_DSA(key); ++ const DSA *dsa = EVP_PKEY_get0_DSA(key); + if (dsa) + DSA_get0_key(dsa, &pubkey, NULL); + return BN2QString(pubkey); +@@ -766,7 +766,7 @@ QByteArray pki_key::SSH2publicQByteArray + txt = "ssh-rsa"; + ssh_key_QBA2data(txt, &data); + { +- RSA *rsa = EVP_PKEY_get0_RSA(key); ++ const RSA *rsa = EVP_PKEY_get0_RSA(key); + const BIGNUM *n, *e; + RSA_get0_key(rsa, &n, &e, NULL); + ssh_key_bn2data(e, &data); +@@ -777,7 +777,7 @@ QByteArray pki_key::SSH2publicQByteArray + txt = "ssh-dss"; + ssh_key_QBA2data(txt, &data); + { +- DSA *dsa = EVP_PKEY_get0_DSA(key); ++ const DSA *dsa = EVP_PKEY_get0_DSA(key); + const BIGNUM *p, *q, *g, *pubkey; + DSA_get0_pqg(dsa, &p, &q, &g); + DSA_get0_key(dsa, &pubkey, NULL); +diff -Naurp xca-2.4.0.orig/lib/pki_scard.cpp xca-2.4.0.new/lib/pki_scard.cpp +--- xca-2.4.0.orig/lib/pki_scard.cpp 2021-05-07 22:40:29.000000000 +0200 ++++ xca-2.4.0.new/lib/pki_scard.cpp 2021-11-13 03:02:20.379174056 +0100 +@@ -293,10 +293,10 @@ void pki_scard::deleteFromToken() + pk11_attlist pki_scard::objectAttributesNoId(EVP_PKEY *pk, bool priv) const + { + QByteArray ba; +- RSA *rsa; +- DSA *dsa; ++ const RSA *rsa; ++ const DSA *dsa; + #ifndef OPENSSL_NO_EC +- EC_KEY *ec; ++ const EC_KEY *ec; + #endif + const BIGNUM *n = NULL; + const BIGNUM *e = NULL; +@@ -401,10 +401,10 @@ int pki_scard::renameOnToken(const sloti + void pki_scard::store_token(const slotid &slot, EVP_PKEY *pkey) + { + QByteArray ba; +- RSA *rsa; +- DSA *dsa; ++ const RSA *rsa; ++ const DSA *dsa; + #ifndef OPENSSL_NO_EC +- EC_KEY *ec; ++ const EC_KEY *ec; + #endif + pk11_attlist pub_atts; + pk11_attlist priv_atts; +@@ -691,7 +691,7 @@ pki_scard::~pki_scard() + void pki_scard::fromData(const unsigned char *p, db_header_t *head ) + { + int version, size; +- void *ptr = NULL; ++ const void *ptr = NULL; + + size = head->len - sizeof(db_header_t); + version = head->version; +@@ -713,8 +713,23 @@ void pki_scard::fromData(const unsigned + + d2i(ba); + +- if (key) +- ptr = EVP_PKEY_get0(key); ++ if (key) { ++ switch (EVP_PKEY_type(EVP_PKEY_id(key))) { ++ case EVP_PKEY_RSA: ++ ptr = EVP_PKEY_get0_RSA(key); ++ break; ++ case EVP_PKEY_DSA: ++ ptr = EVP_PKEY_get0_DSA(key); ++ break; ++#ifndef OPENSSL_NO_EX ++ case EVP_PKEY_EC: ++ ptr = EVP_PKEY_get0_EC_KEY(key); ++ break; ++#endif ++ default: ++ ptr = EVP_PKEY_get0(key); ++ } ++ } + + if (!ptr) + throw errorEx(tr("Ignoring unsupported token key")); diff --git a/xca.spec b/xca.spec index e8c397f..1598542 100644 --- a/xca.spec +++ b/xca.spec @@ -3,21 +3,26 @@ Summary: Graphical X.509 certificate management tool Name: xca -Version: 2.3.0 -Release: 5%{?dist} +Version: 2.4.0 +Release: 1%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz +Patch1: xca-2.4.0-openssl3.patch +Patch2: xca-2.4.0-noclean.patch +Patch3: xca-2.4.0-mimeicons.patch +Patch4: xca-2.4.0-lang-it.patch +Patch5: xca-2.4.0-lang-fr.patch -BuildRequires: make +BuildRequires: make BuildRequires: gcc-c++ BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qttools-devel BuildRequires: qt5-linguist BuildRequires: openssl-devel BuildRequires: xdg-utils -BuildRequires: ImageMagick -BuildRequires: linuxdoc-tools BuildRequires: libtool-ltdl-devel +BuildRequires: python3-sphinx Requires: hicolor-icon-theme @@ -51,83 +56,73 @@ format, portable across operating systems. %build #------------------------------------------------------------------------------- -%configure CXXFLAGS="${RPM_OPT_FLAGS}" \ +%configure CXXFLAGS='%{optflags}' \ STRIP=: \ - LIBS="-Wl,-as-needed" + LIBS='-Wl,-as-needed' make %{?_smp_mflags} -convert img/xca.ico xca.png -touch -r img/xca.ico xca.png -convert img/xdb.ico xdb.png -touch -r img/xdb.ico xdb.png - #------------------------------------------------------------------------------- %install #------------------------------------------------------------------------------- -make DESTDIR="${RPM_BUILD_ROOT}" install +make DESTDIR='%{buildroot}' \ + ICON_SIZES='16x16 32x32 48x48 64x64 128x128 256x256' install -# Do not include db statistics program and man. -find "${RPM_BUILD_ROOT}" -name 'xca_db_stat*' -delete +# Do not include db statistics program and man. +find '%{buildroot}' -name 'xca_db_stat*' -delete -install -d -m 755 "${RPM_BUILD_ROOT}%{_datadir}/mime/packages" -install -p -m 644 misc/xca.xml "${RPM_BUILD_ROOT}%{_datadir}/mime/packages/" +# Do not use pixmaps directory. +rm -rf '%{buildroot}%{_datadir}/pixmaps' -export XDG_DATA_DIRS="${RPM_BUILD_ROOT}%{_datadir}" -export XDG_UTILS_INSTALL_MODE=system +# Install mime file types. +install -d -m 755 '%{buildroot}%{_datadir}/mime/packages' +install -p -m 644 misc/xca.xml '%{buildroot}%{_datadir}/mime/packages/' -install -d -m 755 "${XDG_DATA_DIRS}/icons/hicolor" -xdg-icon-resource install --noupdate --context mimetypes \ - --size 32 xdb.png application-x-xca-database -xdg-icon-resource install --noupdate --size 32 xca.png fedora-xca - -# Replace the desktop icon. -rm -rf "${RPM_BUILD_ROOT}%{_datadir}/pixmaps/xca-32x32.xpm" -cp -a img/key.xpm "${RPM_BUILD_ROOT}%{_datadir}/pixmaps/xca.xpm" - -install -d -m 755 "${RPM_BUILD_ROOT}%{_datadir}/applications" +# Install desktop application file. desktop-file-install --mode 0644 \ - --dir "${RPM_BUILD_ROOT}%{_datadir}/applications" \ + --dir '%{buildroot}%{_datadir}/applications' \ --delete-original \ --add-mime-type application/x-xca-database \ --remove-category QT \ --set-icon=xca \ - "${RPM_BUILD_ROOT}%{_datadir}/applications/xca.desktop" - -# Will build the doc directory ourself. - -rm -rf "${RPM_BUILD_ROOT}%{_docdir}/xca" + '%{buildroot}%{_datadir}/applications/xca.desktop' # Tag translation files. - -( - cd "${RPM_BUILD_ROOT}" - find '.%{_datadir}/xca' -name 'xca_[a-z][a-z]*.qm' -) | - sed -e 's/^\.//' \ - -e 's#^.*/xca_\([a-z][a-z]\)[^/]*\.qm$#%lang(\1) &#' > langfiles +%find_lang '%{name}' --with-qt #------------------------------------------------------------------------------- -%files -f langfiles +%files -f %{name}.lang #------------------------------------------------------------------------------- %doc AUTHORS COPYRIGHT -%doc doc/*.html +%doc %{_docdir}/xca/* %{_bindir}/* %dir %{_datadir}/xca %{_datadir}/xca/*.txt %{_datadir}/xca/*.xca -%{_datadir}/pixmaps/*.xpm %{_datadir}/icons/*/*/*/*.png %{_datadir}/mime/packages/%{name}.* %{_datadir}/applications/* +%{_datadir}/bash-completion/ %attr(0644, root, root) %{_mandir}/*/* #------------------------------------------------------------------------------- %changelog +#------------------------------------------------------------------------------- + +* Sat Nov 13 2021 Patrick Monnerat 2.4.0-1 +- New upstream release. +- Patch "openssl3" for openssl version 3 compatibility. +- Patch "noclean" fixes building in symlinked directory. +- Patch "mimeicons" to declare mime types icons as generic. +- Patch "lang-it" to update italian translation. +- Patch "lang-fr" to update french translation. +- Uses sphinx instead of SGML for documentation. +- Use new icons. + * Tue Sep 14 2021 Sahana Prasad - 2.3.0-5 - Rebuilt with OpenSSL 3.0.0 @@ -137,8 +132,6 @@ rm -rf "${RPM_BUILD_ROOT}%{_docdir}/xca" * Wed Jan 27 2021 Fedora Release Engineering - 2.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild -#------------------------------------------------------------------------------- - * Tue Dec 1 2020 Patrick Monnerat 2.3.0-2 - BR translate-toolkit is not needed anymore. From f3ba159c8af3b24d24262bf8fa3d70c848325fe0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 04:50:48 +0000 Subject: [PATCH 04/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index 1598542..e821e12 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.4.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -111,6 +111,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 2.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + #------------------------------------------------------------------------------- * Sat Nov 13 2021 Patrick Monnerat 2.4.0-1 From 83a3105eb9e720a63b053eae81fc71904a35a19d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 12:49:56 +0000 Subject: [PATCH 05/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index e821e12..cd65a06 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.4.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -111,6 +111,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 2.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Sat Jan 22 2022 Fedora Release Engineering - 2.4.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 2f3b36a60576b15da237b4d166f3ef5a0d59cae1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 07:11:52 +0000 Subject: [PATCH 06/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index cd65a06..512ca2d 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.4.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -111,6 +111,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 2.4.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Sat Jul 23 2022 Fedora Release Engineering - 2.4.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From d5527eaef5cf3380ab6bad269c6bb8eaffd15439 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 18:34:04 +0000 Subject: [PATCH 07/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index 512ca2d..7d3652b 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.4.0 -Release: 4%{?dist} +Release: 5%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -111,6 +111,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 2.4.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Sat Jan 21 2023 Fedora Release Engineering - 2.4.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 40fc38a69e69e097bf4bccf1b19e6cdc549c052d Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Sat, 7 Oct 2023 00:31:15 +0200 Subject: [PATCH 08/23] New upstream release. Build using cmake. Doc file "README.IMPORTANT" for needed passord reset. --- .gitignore | 1 + sources | 2 +- xca-2.4.0-lang-fr.patch | 4046 ------------------------------------ xca-2.4.0-lang-it.patch | 312 --- xca-2.4.0-mimeicons.patch | 17 - xca-2.4.0-noclean.patch | 14 - xca-2.4.0-openssl3.patch | 233 --- xca-2.5.0-README.IMPORTANT | 27 + xca.spec | 38 +- 9 files changed, 51 insertions(+), 4639 deletions(-) delete mode 100644 xca-2.4.0-lang-fr.patch delete mode 100644 xca-2.4.0-lang-it.patch delete mode 100644 xca-2.4.0-mimeicons.patch delete mode 100644 xca-2.4.0-noclean.patch delete mode 100644 xca-2.4.0-openssl3.patch create mode 100644 xca-2.5.0-README.IMPORTANT diff --git a/.gitignore b/.gitignore index 56a5ba2..c51d13f 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ xca-0.8.1.tar.gz /xca-2.2.1.tar.gz /xca-2.3.0.tar.gz /xca-2.4.0.tar.gz +/xca-2.5.0.tar.gz diff --git a/sources b/sources index f9652b1..c48f1e0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xca-2.4.0.tar.gz) = e93e2cf9dc48ed43ee9b51e977f825d81ff08835eb4d77fcbe8f9dc8ce31c77c1da879b48c25ab535717542d1fe84faa6e46c410c116edbee02072040c59667c +SHA512 (xca-2.5.0.tar.gz) = 36b9b97ff0649934fbe78e38048e75883555aab5d86ee2cbd629f9789326d16463f182cf0bbcc76b1ac8f631b24fa187f1b64c466e04de010724ea5f9ebfa11e diff --git a/xca-2.4.0-lang-fr.patch b/xca-2.4.0-lang-fr.patch deleted file mode 100644 index 65bb353..0000000 --- a/xca-2.4.0-lang-fr.patch +++ /dev/null @@ -1,4046 +0,0 @@ -From 9b1fce659d24890c896a16f59eb14c38edceff76 Mon Sep 17 00:00:00 2001 -From: Patrick Monnerat -Date: Sat, 15 May 2021 11:50:24 +0200 -Subject: [PATCH] Update french translation - ---- - lang/fr.po | 1490 ++++++++++++++++++++++++++++------------------------ - 1 file changed, 791 insertions(+), 699 deletions(-) - -diff --git a/lang/fr.po b/lang/fr.po -index 2191b870..096abfc4 100644 ---- a/lang/fr.po -+++ b/lang/fr.po -@@ -1,20 +1,20 @@ - # - # demonipuch , 2012, 2014, 2015. --# Patrick Monnerat <.>, 2011-2020. -+# Patrick Monnerat <.>, 2011-2021. - # - msgid "" - msgstr "" - "Project-Id-Version: xca 1.3.3\n" - "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2018-03-16 18:14+0200\n" --"PO-Revision-Date: 2020-04-08 17:42+0200\n" -+"PO-Revision-Date: 2021-05-15 11:49+0200\n" - "Last-Translator: Patrick Monnerat <.>\n" - "Language-Team: French <>\n" - "Language: fr\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: Gtranslator 3.34.0\n" -+"X-Generator: Gtranslator 3.38.0\n" - "Plural-Forms: nplurals=2; plural=(n > 1);\n" - "X-Qt-Contexts: true\n" - -@@ -34,7 +34,7 @@ msgctxt "CaProperties|" - msgid "Default template" - msgstr "Modèle par défaut" - --#: ../ui/CertDetail.ui:30 ../widgets/CertDetail.cpp:99 -+#: ../ui/CertDetail.ui:30 ../widgets/CertDetail.cpp:112 - msgctxt "CertDetail|" - msgid "Details of the Certificate" - msgstr "Détails du Certificat" -@@ -149,58 +149,58 @@ msgctxt "CertDetail|" - msgid "Attributes" - msgstr "Attributs" - --#: ../ui/CertDetail.ui:377 ../widgets/CertDetail.cpp:36 -+#: ../ui/CertDetail.ui:377 ../widgets/CertDetail.cpp:40 - msgctxt "CertDetail|" - msgid "Show config" - msgstr "Afficher la configuration" - --#: ../widgets/CertDetail.cpp:40 -+#: ../widgets/CertDetail.cpp:44 - msgctxt "CertDetail|" - msgid "Show extensions" - msgstr "Afficher les extensions" - --#: ../widgets/CertDetail.cpp:62 -+#: ../widgets/CertDetail.cpp:66 - msgctxt "CertDetail|" - msgid "Show public key" - msgstr "Afficher la clé publique" - --#: ../widgets/CertDetail.cpp:67 -+#: ../widgets/CertDetail.cpp:69 - msgctxt "CertDetail|" - msgid "This key is not in the database." - msgstr "Cette clé ne figure pas dans la base de données" - --#: ../widgets/CertDetail.cpp:69 -+#: ../widgets/CertDetail.cpp:73 - msgctxt "CertDetail|" - msgid "Not available" - msgstr "Non disponible" - --#: ../widgets/CertDetail.cpp:108 -+#: ../widgets/CertDetail.cpp:120 - msgctxt "CertDetail|" - msgid "Signer unknown" - msgstr "Signataire inconnu" - --#: ../widgets/CertDetail.cpp:112 -+#: ../widgets/CertDetail.cpp:124 - msgctxt "CertDetail|" - msgid "Self signed" - msgstr "Auto-signé" - --#: ../widgets/CertDetail.cpp:139 -+#: ../widgets/CertDetail.cpp:154 - #, qt-format - msgctxt "CertDetail|" - msgid "Revoked at %1" - msgstr "Révoqué le %1" - --#: ../widgets/CertDetail.cpp:144 -+#: ../widgets/CertDetail.cpp:159 - msgctxt "CertDetail|" - msgid "Not valid" - msgstr "Invalide" - --#: ../widgets/CertDetail.cpp:148 -+#: ../widgets/CertDetail.cpp:163 - msgctxt "CertDetail|" - msgid "Valid" - msgstr "Valide" - --#: ../widgets/CertDetail.cpp:167 -+#: ../widgets/CertDetail.cpp:184 - msgctxt "CertDetail|" - msgid "Details of the certificate signing request" - msgstr "Détails de la requête de signature" -@@ -322,76 +322,86 @@ msgstr "" - "Le certificat serait valide plus longtemps que son signataire. Ce n'est " - "probablement pas ce qui est désiré." - --#: ../widgets/CertTreeView.cpp:25 -+#: ../widgets/CertTreeView.cpp:30 - msgctxt "CertTreeView|" - msgid "Import PKCS#12" - msgstr "Importer en PKCS#12" - --#: ../widgets/CertTreeView.cpp:26 -+#: ../widgets/CertTreeView.cpp:31 - msgctxt "CertTreeView|" - msgid "Import from PKCS#7" - msgstr "Importer en PKCS#7" - --#: ../widgets/CertTreeView.cpp:54 -+#: ../widgets/CertTreeView.cpp:60 - msgctxt "CertTreeView|" - msgid "Request" - msgstr "Requête" - --#: ../widgets/CertTreeView.cpp:56 -+#: ../widgets/CertTreeView.cpp:62 - msgctxt "CertTreeView|" - msgid "Security token" - msgstr "Jeton de sécurité" - --#: ../widgets/CertTreeView.cpp:58 -+#: ../widgets/CertTreeView.cpp:64 - msgctxt "CertTreeView|" - msgid "Other token" - msgstr "Autre jeton" - --#: ../widgets/CertTreeView.cpp:62 -+#: ../widgets/CertTreeView.cpp:68 - msgctxt "CertTreeView|" - msgid "Similar Certificate" - msgstr "Certificat similaire" - --#: ../widgets/CertTreeView.cpp:65 -+#: ../widgets/CertTreeView.cpp:71 - msgctxt "CertTreeView|" - msgid "Delete from Security token" - msgstr "Détruire sur le jeton de sécurité" - --#: ../widgets/CertTreeView.cpp:68 -+#: ../widgets/CertTreeView.cpp:74 - msgctxt "CertTreeView|" - msgid "CA" - msgstr "CA" - --#: ../widgets/CertTreeView.cpp:69 -+#: ../widgets/CertTreeView.cpp:75 - msgctxt "CertTreeView|" - msgid "Properties" - msgstr "Propriétés" - --#: ../widgets/CertTreeView.cpp:70 -+#: ../widgets/CertTreeView.cpp:76 - msgctxt "CertTreeView|" - msgid "Generate CRL" - msgstr "Générer la liste de révocation" - --#: ../widgets/CertTreeView.cpp:71 -+#: ../widgets/CertTreeView.cpp:77 - msgctxt "CertTreeView|" - msgid "Manage revocations" - msgstr "Gérer les révocations" - --#: ../widgets/CertTreeView.cpp:76 ../widgets/CertTreeView.cpp:79 -+#: ../widgets/CertTreeView.cpp:82 ../widgets/CertTreeView.cpp:85 - msgctxt "CertTreeView|" - msgid "Renewal" - msgstr "Renouvellement" - --#: ../widgets/CertTreeView.cpp:81 -+#: ../widgets/CertTreeView.cpp:87 - msgctxt "CertTreeView|" - msgid "Revoke" - msgstr "Révoquer" - --#: ../widgets/CertTreeView.cpp:83 -+#: ../widgets/CertTreeView.cpp:89 - msgctxt "CertTreeView|" - msgid "Unrevoke" - msgstr "Dé-révoquer" - -+#: ../widgets/CertTreeView.cpp:157 -+msgctxt "CertTreeView|" -+msgid "Plain View" -+msgstr "Vue à plat" -+ -+#: ../widgets/CertTreeView.cpp:157 -+msgctxt "CertTreeView|" -+msgid "Tree View" -+msgstr "Vue arborescente" -+ - #: ../widgets/clicklabel.cpp:37 - msgctxt "ClickLabel|" - msgid "Double click for details" -@@ -407,81 +417,91 @@ msgctxt "CrlDetail|" - msgid "&Status" - msgstr "&Etat" - --#: ../ui/CrlDetail.ui:126 -+#: ../ui/CrlDetail.ui:144 - msgctxt "CrlDetail|" - msgid "Version" - msgstr "Version" - --#: ../ui/CrlDetail.ui:145 -+#: ../ui/CrlDetail.ui:163 - msgctxt "CrlDetail|" - msgid "Signature" - msgstr "Signature" - --#: ../ui/CrlDetail.ui:152 -+#: ../ui/CrlDetail.ui:170 - msgctxt "CrlDetail|" - msgid "Signed by" - msgstr "Signée par" - --#: ../ui/CrlDetail.ui:159 -+#: ../ui/CrlDetail.ui:177 - msgctxt "CrlDetail|" - msgid "Name" - msgstr "Nom" - --#: ../ui/CrlDetail.ui:166 -+#: ../ui/CrlDetail.ui:184 - msgctxt "CrlDetail|" - msgid "The internal name of the CRL in the database" - msgstr "Le nom interne de la liste de révocation dans la base de données" - --#: ../ui/CrlDetail.ui:179 -+#: ../ui/CrlDetail.ui:197 - msgctxt "CrlDetail|" - msgid "issuing dates" - msgstr "dates d'émission" - --#: ../ui/CrlDetail.ui:188 -+#: ../ui/CrlDetail.ui:215 - msgctxt "CrlDetail|" - msgid "Next update" - msgstr "Prochaine mise-à-jour" - --#: ../ui/CrlDetail.ui:195 -+#: ../ui/CrlDetail.ui:222 - msgctxt "CrlDetail|" - msgid "Last update" - msgstr "Dernière mise-à-jour" - --#: ../ui/CrlDetail.ui:228 -+#: ../ui/CrlDetail.ui:255 - msgctxt "CrlDetail|" - msgid "&Issuer" - msgstr "&Emetteur" - --#: ../ui/CrlDetail.ui:241 -+#: ../ui/CrlDetail.ui:277 - msgctxt "CrlDetail|" - msgid "&Extensions" - msgstr "&Extensions" - --#: ../ui/CrlDetail.ui:261 -+#: ../ui/CrlDetail.ui:306 - msgctxt "CrlDetail|" - msgid "&Revocation list" - msgstr "Liste de &révocation" - --#: ../ui/CrlDetail.ui:286 -+#: ../ui/CrlDetail.ui:340 - msgctxt "CrlDetail|" - msgid "Comment" - msgstr "Commentaire" - --#: ../widgets/CrlDetail.cpp:47 -+#: ../widgets/CrlDetail.cpp:52 - msgctxt "CrlDetail|" - msgid "Failed" - msgstr "Echoué" - --#: ../widgets/CrlDetail.cpp:52 -+#: ../widgets/CrlDetail.cpp:57 - msgctxt "CrlDetail|" - msgid "Unknown signer" - msgstr "Signataire inconnu" - --#: ../widgets/CrlDetail.cpp:55 -+#: ../widgets/CrlDetail.cpp:60 - msgctxt "CrlDetail|" - msgid "Verification not possible" - msgstr "Vérification impossible" - -+#: ../widgets/CrlTreeView.cpp:37 -+msgctxt "CrlTreeView|" -+msgid "There are no CA certificates for CRL generation" -+msgstr "Il n'y a pas de certificat CA pour la génération de la CRL" -+ -+#: ../widgets/CrlTreeView.cpp:45 -+msgctxt "CrlTreeView|" -+msgid "Select CA certificate" -+msgstr "Sélectionner un certificat d'autorité" -+ - #: ../ui/ExportDialog.ui:79 - msgctxt "ExportDialog|" - msgid "Name" -@@ -512,80 +532,80 @@ msgctxt "ExportDialog|" - msgid "Export Format" - msgstr "Format d'exportation" - --#: ../widgets/ExportDialog.cpp:36 -+#: ../widgets/ExportDialog.cpp:41 - msgctxt "ExportDialog|" - msgid "All files ( * )" - msgstr "Tous les fichiers ( * )" - --#: ../widgets/ExportDialog.cpp:51 -+#: ../widgets/ExportDialog.cpp:56 - msgctxt "ExportDialog|" - msgid "PEM Text format with headers" - msgstr "Format textuel PEM avec des en-têtes" - --#: ../widgets/ExportDialog.cpp:53 -+#: ../widgets/ExportDialog.cpp:58 - msgctxt "ExportDialog|" - msgid "Concatenated list of all selected items in one PEM text file" - msgstr "" - "Concaténation de tous les éléments sélectionnés dans un seul fichier texte " - "en format PEM" - --#: ../widgets/ExportDialog.cpp:54 -+#: ../widgets/ExportDialog.cpp:59 - msgctxt "ExportDialog|" - msgid "" - "Concatenated text format of the complete certificate chain in one PEM file" - msgstr "" - "Fichier PEM contenant la concaténation de tous les certificats de la chaîne" - --#: ../widgets/ExportDialog.cpp:58 -+#: ../widgets/ExportDialog.cpp:63 - msgctxt "ExportDialog|" - msgid "Concatenated text format of all certificates in one PEM file" - msgstr "Fichier PEM contenant la concaténation de tous les certificats" - --#: ../widgets/ExportDialog.cpp:59 -+#: ../widgets/ExportDialog.cpp:64 - msgctxt "ExportDialog|" - msgid "Binary DER encoded file" - msgstr "Fichier binaire en format DER" - --#: ../widgets/ExportDialog.cpp:60 -+#: ../widgets/ExportDialog.cpp:65 - msgctxt "ExportDialog|" - msgid "PKCS#7 encoded single certificate" - msgstr "Un seul certificat en format PKCS#7" - --#: ../widgets/ExportDialog.cpp:62 -+#: ../widgets/ExportDialog.cpp:67 - msgctxt "ExportDialog|" - msgid "PKCS#7 encoded complete certificate chain" - msgstr "" - "La chaîne complète de certificats en format PKCS#7 dans un seul fichier" - --#: ../widgets/ExportDialog.cpp:56 -+#: ../widgets/ExportDialog.cpp:61 - msgctxt "ExportDialog|" - msgid "Concatenated text format of all unrevoked certificates in one PEM file" - msgstr "" - "Fichier PEM contenant la concaténation de tous les certificats non-révoqués" - --#: ../widgets/ExportDialog.cpp:64 -+#: ../widgets/ExportDialog.cpp:69 - msgctxt "ExportDialog|" - msgid "All unrevoked certificates encoded in one PKCS#7 file" - msgstr "" - "Tous les certificats non-révoqués dans un seul fichier en format PKCS#7" - --#: ../widgets/ExportDialog.cpp:66 -+#: ../widgets/ExportDialog.cpp:71 - msgctxt "ExportDialog|" - msgid "All selected certificates encoded in one PKCS#7 file" - msgstr "" - "Tous les certificats sélectionnés dans un seul fichier en format PKCS#7" - --#: ../widgets/ExportDialog.cpp:68 -+#: ../widgets/ExportDialog.cpp:73 - msgctxt "ExportDialog|" - msgid "All certificates encoded in one PKCS#7 file" - msgstr "Tous les certificats dans un seul fichier en format PKCS#7" - --#: ../widgets/ExportDialog.cpp:70 -+#: ../widgets/ExportDialog.cpp:75 - msgctxt "ExportDialog|" - msgid "The certificate and the private key as encrypted PKCS#12 file" - msgstr "Le certificat et sa clé privée dans un fichier en format PKCS#12" - --#: ../widgets/ExportDialog.cpp:71 -+#: ../widgets/ExportDialog.cpp:76 - msgctxt "ExportDialog|" - msgid "" - "The complete certificate chain and the private key as encrypted PKCS#12 file" -@@ -593,7 +613,7 @@ msgstr "" - "La chaîne complète des certificats et la clé privée en un seul fichier " - "chiffré en format PKCS#12" - --#: ../widgets/ExportDialog.cpp:72 -+#: ../widgets/ExportDialog.cpp:77 - msgctxt "ExportDialog|" - msgid "" - "Concatenation of the certificate and the unencrypted private key in one PEM " -@@ -602,7 +622,7 @@ msgstr "" - "La concaténation du certificat et de sa clé privée non-chiffrée dans un seul " - "fichier PEM" - --#: ../widgets/ExportDialog.cpp:73 -+#: ../widgets/ExportDialog.cpp:78 - msgctxt "ExportDialog|" - msgid "" - "Concatenation of the certificate and the encrypted private key in PKCS#8 " -@@ -611,47 +631,47 @@ msgstr "" - "La concaténation du certificat et de sa clé privée chiffrée en format PKCS#8 " - "dans un seul fichier" - --#: ../widgets/ExportDialog.cpp:74 -+#: ../widgets/ExportDialog.cpp:79 - msgctxt "ExportDialog|" - msgid "Text format of the public key in one PEM file" - msgstr "Formattage textuel de la clé publique dans un fichier PEM" - --#: ../widgets/ExportDialog.cpp:75 -+#: ../widgets/ExportDialog.cpp:80 - msgctxt "ExportDialog|" - msgid "Binary DER format of the public key" - msgstr "Format binaire DER de la clé publique" - --#: ../widgets/ExportDialog.cpp:77 -+#: ../widgets/ExportDialog.cpp:82 - msgctxt "ExportDialog|" - msgid "Unencrypted private key in text format" - msgstr "Clé privée non-chiffrée en format texte" - --#: ../widgets/ExportDialog.cpp:79 -+#: ../widgets/ExportDialog.cpp:84 - msgctxt "ExportDialog|" - msgid "OpenSSL specific encrypted private key in text format" - msgstr "Clé privée chiffrée spécifiquement par OpenSSL en format texte" - --#: ../widgets/ExportDialog.cpp:81 -+#: ../widgets/ExportDialog.cpp:86 - msgctxt "ExportDialog|" - msgid "Unencrypted private key in binary DER format" - msgstr "Clé privée non-chiffrée en format binaire DER" - --#: ../widgets/ExportDialog.cpp:83 -+#: ../widgets/ExportDialog.cpp:88 - msgctxt "ExportDialog|" - msgid "Unencrypted private key in PKCS#8 text format" - msgstr "Clé privée non-chiffrée en format texte PKCS#8" - --#: ../widgets/ExportDialog.cpp:85 -+#: ../widgets/ExportDialog.cpp:90 - msgctxt "ExportDialog|" - msgid "Encrypted private key in PKCS#8 text format" - msgstr "Clé privée chiffrée en format texte PKCS#8" - --#: ../widgets/ExportDialog.cpp:86 -+#: ../widgets/ExportDialog.cpp:91 - msgctxt "ExportDialog|" - msgid "The public key encoded in SSH2 format" - msgstr "La clé publique en format SSH2" - --#: ../widgets/ExportDialog.cpp:87 -+#: ../widgets/ExportDialog.cpp:92 - msgctxt "ExportDialog|" - msgid "" - "OpenSSL specific Certificate Index file as created by the 'ca' command and " -@@ -660,12 +680,12 @@ msgstr "" - "Fichier d'index des certificats spécifique à OpenSSL, tel que créé par la " - "commande 'ca' et nécessaire à l'outil OCSP" - --#: ../widgets/ExportDialog.cpp:88 -+#: ../widgets/ExportDialog.cpp:93 - msgctxt "ExportDialog|" - msgid "vCalendar expiry reminder for the selected items" - msgstr "message vCalendar de rappel d'expiration des éléments sélectionnés" - --#: ../widgets/ExportDialog.cpp:89 -+#: ../widgets/ExportDialog.cpp:94 - msgctxt "ExportDialog|" - msgid "" - "vCalendar expiry reminder containing all issued, valid certificates, the CA " -@@ -674,28 +694,28 @@ msgstr "" - "message vCalendar de rappel d'expiration contenant tous les certificats " - "valides émis, le CA lui-même et la liste de révocation la plus récente" - --#: ../widgets/ExportDialog.cpp:90 -+#: ../widgets/ExportDialog.cpp:95 - msgctxt "ExportDialog|" - msgid "Private key in Microsoft PVK format not encrypted" - msgstr "La clé privée en format Microsoft PVK n'est pas chiffrée" - --#: ../widgets/ExportDialog.cpp:91 -+#: ../widgets/ExportDialog.cpp:96 - msgctxt "ExportDialog|" - msgid "Encrypted private key in Microsoft PVK format" - msgstr "Clé privée chiffrée en format Microsoft PVK" - --#: ../widgets/ExportDialog.cpp:128 -+#: ../widgets/ExportDialog.cpp:133 - #, qt-format - msgctxt "ExportDialog|" - msgid "The file: '%1' already exists!" - msgstr "Le fichier '%1' existe déjà!" - --#: ../widgets/ExportDialog.cpp:130 -+#: ../widgets/ExportDialog.cpp:134 - msgctxt "ExportDialog|" - msgid "Overwrite" - msgstr "Ecraser" - --#: ../widgets/ExportDialog.cpp:132 -+#: ../widgets/ExportDialog.cpp:135 - msgctxt "ExportDialog|" - msgid "Do not overwrite" - msgstr "Ne pas écraser" -@@ -755,7 +775,7 @@ msgctxt "ImportMulti|" - msgid "Rename on token" - msgstr "Renommer dans le jeton" - --#: ../widgets/ImportMulti.cpp:62 -+#: ../widgets/ImportMulti.cpp:64 - #, qt-format - msgctxt "ImportMulti|" - msgid "" -@@ -769,31 +789,30 @@ msgstr "" - "Modèle: %2\n" - "Numéro de série: %3" - --#: ../widgets/ImportMulti.cpp:67 -+#: ../widgets/ImportMulti.cpp:69 - msgctxt "ImportMulti|" - msgid "Manage security token" - msgstr "Gérer les jetons de sécurité" - --#: ../widgets/ImportMulti.cpp:345 -+#: ../widgets/ImportMulti.cpp:281 - #, qt-format - msgctxt "ImportMulti|" - msgid "Details of the item '%1' cannot be shown" - msgstr "Les détails de l'objet '%1' ne peuvent pas être affichés" - --#: ../widgets/ImportMulti.cpp:125 ../widgets/ImportMulti.cpp:287 --#: ../widgets/ImportMulti.cpp:348 -+#: ../widgets/ImportMulti.cpp:103 ../widgets/ImportMulti.cpp:285 - #, qt-format - msgctxt "ImportMulti|" - msgid "The type of the item '%1' is not recognized" - msgstr "Le type de l'objet '%1' n'est pas reconnu" - --#: ../widgets/ImportMulti.cpp:376 -+#: ../widgets/ImportMulti.cpp:313 - #, qt-format - msgctxt "ImportMulti|" - msgid "The file '%1' did not contain PKI data" - msgstr "Le fichier '%1' ne contient pas de données PKI" - --#: ../widgets/ImportMulti.cpp:379 -+#: ../widgets/ImportMulti.cpp:316 - #, qt-format - msgctxt "ImportMulti|" - msgid "The %1 files: '%2' did not contain PKI data" -@@ -809,7 +828,7 @@ msgctxt "ItemProperties|" - msgid "Source" - msgstr "Source" - --#: ../ui/ItemProperties.ui:39 -+#: ../ui/ItemProperties.ui:42 - msgctxt "ItemProperties|" - msgid "Insertion date" - msgstr "Date d'insertion" -@@ -829,7 +848,7 @@ msgctxt "KeyDetail|" - msgid "The internal name of the key used by xca" - msgstr "Le nom interne de la clé utilisé par xca" - --#: ../widgets/KeyDetail.cpp:96 -+#: ../widgets/KeyDetail.cpp:106 - msgctxt "KeyDetail|" - msgid "Security token" - msgstr "Jeton de sécurité" -@@ -899,84 +918,86 @@ msgctxt "KeyDetail|" - msgid "Comment" - msgstr "Commentaire" - --#: ../widgets/KeyDetail.cpp:79 -+#: ../widgets/KeyDetail.cpp:89 - #, qt-format - msgctxt "KeyDetail|" - msgid "Details of the %1 key" - msgstr "Détails de la clé %1" - --#: ../widgets/KeyDetail.cpp:85 -+#: ../widgets/KeyDetail.cpp:95 - msgctxt "KeyDetail|" - msgid "Not available" - msgstr "Non disponible" - --#: ../widgets/KeyDetail.cpp:98 -+#: ../widgets/KeyDetail.cpp:108 - msgctxt "KeyDetail|" - msgid "Available" - msgstr "Disponible" - --#: ../widgets/KeyDetail.cpp:107 -+#: ../widgets/KeyDetail.cpp:117 - msgctxt "KeyDetail|" - msgid "Sub prime" - msgstr "Sous-premier" - --#: ../widgets/KeyDetail.cpp:108 ../widgets/KeyDetail.cpp:117 -+#: ../widgets/KeyDetail.cpp:118 ../widgets/KeyDetail.cpp:127 -+#: ../widgets/KeyDetail.cpp:139 - msgctxt "KeyDetail|" - msgid "Public key" - msgstr "Clé publique" - --#: ../widgets/KeyDetail.cpp:109 ../widgets/KeyDetail.cpp:118 -+#: ../widgets/KeyDetail.cpp:119 ../widgets/KeyDetail.cpp:128 -+#: ../widgets/KeyDetail.cpp:140 - msgctxt "KeyDetail|" - msgid "Private key" - msgstr "Clé privée" - --#: ../widgets/KeyDetail.cpp:119 -+#: ../widgets/KeyDetail.cpp:129 ../widgets/KeyDetail.cpp:141 - msgctxt "KeyDetail|" - msgid "Curve name" - msgstr "Nom de la courbe" - --#: ../widgets/KeyDetail.cpp:129 -+#: ../widgets/KeyDetail.cpp:148 - msgctxt "KeyDetail|" - msgid "Unknown key" - msgstr "Clé inconnue" - --#: ../widgets/KeyTreeView.cpp:28 -+#: ../widgets/KeyTreeView.cpp:30 - msgctxt "KeyTreeView|" - msgid "Change password" - msgstr "Changer le mot de passe" - --#: ../widgets/KeyTreeView.cpp:32 -+#: ../widgets/KeyTreeView.cpp:34 - msgctxt "KeyTreeView|" - msgid "Reset password" - msgstr "Effacer le mot de passe" - --#: ../widgets/KeyTreeView.cpp:44 -+#: ../widgets/KeyTreeView.cpp:46 - msgctxt "KeyTreeView|" - msgid "Change PIN" - msgstr "Changer le NIP" - --#: ../widgets/KeyTreeView.cpp:46 -+#: ../widgets/KeyTreeView.cpp:48 - msgctxt "KeyTreeView|" - msgid "Init PIN with SO PIN (PUK)" - msgstr "Initialiser le NIP avec le PUK" - --#: ../widgets/KeyTreeView.cpp:48 -+#: ../widgets/KeyTreeView.cpp:50 - msgctxt "KeyTreeView|" - msgid "Change SO PIN (PUK)" - msgstr "Changer le PUK" - --#: ../widgets/KeyTreeView.cpp:51 -+#: ../widgets/KeyTreeView.cpp:53 - msgctxt "KeyTreeView|" - msgid "Security token" - msgstr "Jeton de sécurité" - --#: ../widgets/KeyTreeView.cpp:84 ../widgets/KeyTreeView.cpp:102 --#: ../widgets/KeyTreeView.cpp:120 -+#: ../widgets/KeyTreeView.cpp:90 ../widgets/KeyTreeView.cpp:108 -+#: ../widgets/KeyTreeView.cpp:126 - msgctxt "KeyTreeView|" - msgid "This is not a token" - msgstr "Ce n'est pas un jeton" - --#: ../widgets/KeyTreeView.cpp:149 -+#: ../widgets/KeyTreeView.cpp:155 - #, qt-format - msgctxt "KeyTreeView|" - msgid "" -@@ -1036,7 +1057,7 @@ msgctxt "MainWindow|" - msgid "&New Request" - msgstr "&Nouvelle requête" - --#: ../ui/MainWindow.ui:222 ../widgets/MW_menu.cpp:126 -+#: ../ui/MainWindow.ui:222 ../widgets/MW_menu.cpp:132 - msgctxt "MainWindow|" - msgid "Certificates" - msgstr "Certificats" -@@ -1086,7 +1107,7 @@ msgctxt "MainWindow|" - msgid "Revocation lists" - msgstr "Listes de révocation" - --#: ../widgets/MW_database.cpp:333 -+#: ../widgets/MainWindow.cpp:584 - msgctxt "MainWindow|" - msgid "" - "Using or exporting private keys will not be possible without providing the " -@@ -1095,12 +1116,12 @@ msgstr "" - "Il sera impossible d'utiliser ou d'exporter des clés privées sans fournir le " - "mot de passe correct." - --#: ../widgets/MW_database.cpp:341 ../widgets/MainWindow.cpp:868 -+#: ../widgets/MainWindow.cpp:579 ../widgets/MainWindow.cpp:729 - msgctxt "MainWindow|" - msgid "Database" - msgstr "Base de données" - --#: ../widgets/MW_database.cpp:338 -+#: ../widgets/MainWindow.cpp:590 - #, qt-format - msgctxt "MainWindow|" - msgid "" -@@ -1110,34 +1131,12 @@ msgstr "" - "L'algorithme de hachage '%1' sélectionné n'est pas sûr. SVP choisissez au " - "moins 'SHA 224' pour raisons de sécurité." - --#: ../widgets/MW_database.cpp:257 --#, qt-format --msgctxt "MainWindow|" --msgid "" --"Legacy database format detected. Creating a backup copy called: '%1' and " --"converting the database to the new format" --msgstr "" --"Format historique de base de données détecté. Une copie de sauvegarde " --"appelée '%1' est créée et la base de données est convertie au nouveau format" -- --#: ../widgets/MW_database.cpp:263 --msgctxt "MainWindow|" --msgid "Failed to rename the database file, because the target already exists" --msgstr "" --"Le changement de nom du fichier de base de données a échoué parce qu'un " --"autre fichier du même nom existe déjà" -- --#: ../widgets/MW_database.cpp:439 --msgctxt "MainWindow|" --msgid "No deleted items found" --msgstr "Aucun objet détruit n'a été trouvé" -- --#: ../widgets/MW_menu.cpp:79 -+#: ../widgets/MW_menu.cpp:83 - msgctxt "MainWindow|" - msgid "Recent DataBases" - msgstr "Bases de données utilisées recemment" - --#: ../widgets/MW_help.cpp:25 ../widgets/MW_menu.cpp:35 -+#: ../widgets/MW_help.cpp:25 ../widgets/MW_menu.cpp:39 - msgctxt "MainWindow|" - msgid "System" - msgstr "Système" -@@ -1212,242 +1211,236 @@ msgctxt "MainWindow|" - msgid "Turkish" - msgstr "Turc" - --#: ../widgets/MW_menu.cpp:83 -+#: ../widgets/MW_menu.cpp:89 - msgctxt "MainWindow|" - msgid "Language" - msgstr "Langue" - --#: ../widgets/MW_menu.cpp:92 -+#: ../widgets/MW_menu.cpp:98 - msgctxt "MainWindow|" - msgid "&File" - msgstr "&Fichier" - --#: ../widgets/MW_menu.cpp:99 -+#: ../widgets/MW_menu.cpp:105 - msgctxt "MainWindow|" - msgid "Open Remote DataBase" - msgstr "Ouvrir une base de données externe" - --#: ../widgets/MW_menu.cpp:103 -+#: ../widgets/MW_menu.cpp:109 - msgctxt "MainWindow|" - msgid "Set as default DataBase" - msgstr "Définir comme base de données par défaut" - --#: ../widgets/MW_menu.cpp:93 -+#: ../widgets/MW_menu.cpp:99 - msgctxt "MainWindow|" - msgid "New DataBase" - msgstr "Nouvelle base de données" - --#: ../widgets/MW_menu.cpp:96 -+#: ../widgets/MW_menu.cpp:102 - msgctxt "MainWindow|" - msgid "Open DataBase" - msgstr "Ouvrir une base de données" - --#: ../widgets/MW_menu.cpp:105 -+#: ../widgets/MW_menu.cpp:111 - msgctxt "MainWindow|" - msgid "Close DataBase" - msgstr "Fermer la base de données" - --#: ../widgets/MW_menu.cpp:108 -+#: ../widgets/MW_menu.cpp:114 - msgctxt "MainWindow|" - msgid "Options" - msgstr "Options" - --#: ../widgets/MW_menu.cpp:116 -+#: ../widgets/MW_menu.cpp:122 - msgctxt "MainWindow|" - msgid "Exit" - msgstr "Quitter" - --#: ../widgets/MW_menu.cpp:123 -+#: ../widgets/MW_menu.cpp:129 - msgctxt "MainWindow|" - msgid "I&mport" - msgstr "I&mporter" - --#: ../widgets/MW_menu.cpp:124 -+#: ../widgets/MW_menu.cpp:130 - msgctxt "MainWindow|" - msgid "Keys" - msgstr "Clés" - --#: ../widgets/MW_menu.cpp:125 -+#: ../widgets/MW_menu.cpp:131 - msgctxt "MainWindow|" - msgid "Requests" - msgstr "Requêtes" - --#: ../widgets/MW_menu.cpp:127 -+#: ../widgets/MW_menu.cpp:133 - msgctxt "MainWindow|" - msgid "PKCS#12" - msgstr "PKCS#12" - --#: ../widgets/MW_menu.cpp:128 -+#: ../widgets/MW_menu.cpp:134 - msgctxt "MainWindow|" - msgid "PKCS#7" - msgstr "PKCS#7" - --#: ../widgets/MW_menu.cpp:129 -+#: ../widgets/MW_menu.cpp:135 - msgctxt "MainWindow|" - msgid "Template" - msgstr "Modèle" - --#: ../widgets/MW_menu.cpp:130 -+#: ../widgets/MW_menu.cpp:136 - msgctxt "MainWindow|" - msgid "Revocation list" - msgstr "Liste de révocation" - --#: ../widgets/MW_menu.cpp:131 -+#: ../widgets/MW_menu.cpp:137 - msgctxt "MainWindow|" - msgid "PEM file" - msgstr "Fichier PEM" - --#: ../widgets/MW_menu.cpp:132 -+#: ../widgets/MW_menu.cpp:138 - msgctxt "MainWindow|" - msgid "Paste PEM file" - msgstr "Coller un fichier PEM" - --#: ../widgets/MW_menu.cpp:135 -+#: ../widgets/MW_menu.cpp:141 - msgctxt "MainWindow|" - msgid "Token" - msgstr "Jeton" - --#: ../widgets/MW_menu.cpp:152 -+#: ../widgets/MW_menu.cpp:158 - msgctxt "MainWindow|" - msgid "Export Certificate &Index hierarchy" - msgstr "Exporter la hiérarchie de l'index des certificats" - --#: ../widgets/MW_menu.cpp:165 -+#: ../widgets/MW_menu.cpp:171 - msgctxt "MainWindow|" - msgid "Content" - msgstr "Contenu" - --#: ../widgets/MW_menu.cpp:136 -+#: ../widgets/MW_menu.cpp:142 - msgctxt "MainWindow|" - msgid "&Manage Security token" - msgstr "&Gérer le jeton de sécurité" - --#: ../widgets/MW_menu.cpp:138 -+#: ../widgets/MW_menu.cpp:144 - msgctxt "MainWindow|" - msgid "&Init Security token" - msgstr "&Initialiser le jeton de sécurité" - --#: ../widgets/MW_menu.cpp:140 -+#: ../widgets/MW_menu.cpp:146 - msgctxt "MainWindow|" - msgid "&Change PIN" - msgstr "&Changer le NIP" - --#: ../widgets/MW_menu.cpp:142 -+#: ../widgets/MW_menu.cpp:148 - msgctxt "MainWindow|" - msgid "Change &SO PIN" - msgstr "Changer le P&UK" - --#: ../widgets/MW_menu.cpp:144 -+#: ../widgets/MW_menu.cpp:150 - msgctxt "MainWindow|" - msgid "Init PIN" - msgstr "Initialiser le NIP" - --#: ../widgets/MW_menu.cpp:147 -+#: ../widgets/MW_menu.cpp:153 - msgctxt "MainWindow|" - msgid "Extra" - msgstr "Extra" - --#: ../widgets/MW_menu.cpp:148 -+#: ../widgets/MW_menu.cpp:154 - msgctxt "MainWindow|" - msgid "&Dump DataBase" - msgstr "C&licher la base de données" - --#: ../widgets/MW_menu.cpp:150 -+#: ../widgets/MW_menu.cpp:156 - msgctxt "MainWindow|" - msgid "&Export Certificate Index" - msgstr "Exporter l'index des certificats" - --#: ../widgets/MW_menu.cpp:154 -+#: ../widgets/MW_menu.cpp:160 - msgctxt "MainWindow|" - msgid "C&hange DataBase password" - msgstr "C&hanger le mot de passe de la base de données" - --#: ../widgets/MW_menu.cpp:157 -+#: ../widgets/MW_menu.cpp:163 - msgctxt "MainWindow|" - msgid "&Undelete items" - msgstr "&Récupérer des objets détruits" - --#: ../widgets/MW_menu.cpp:160 -+#: ../widgets/MW_menu.cpp:166 - msgctxt "MainWindow|" - msgid "Generate DH parameter" - msgstr "Générer le paramètre DH" - --#: ../widgets/MW_menu.cpp:162 -+#: ../widgets/MW_menu.cpp:168 - msgctxt "MainWindow|" - msgid "OID Resolver" - msgstr "Convertisseur d'OID" - --#: ../widgets/MW_menu.cpp:164 -+#: ../widgets/MW_menu.cpp:170 - msgctxt "MainWindow|" - msgid "&Help" - msgstr "&Aide" - --#: ../widgets/MW_menu.cpp:167 -+#: ../widgets/MW_menu.cpp:173 - msgctxt "MainWindow|" - msgid "About" - msgstr "A propos" - --#: ../widgets/MainWindow.cpp:276 --#, qt-format --msgctxt "MainWindow|" --msgid "no such option: %1" --msgstr "'%1' n'est pas une option" -- --#: ../widgets/MainWindow.cpp:366 -+#: ../widgets/MainWindow.cpp:254 - msgctxt "MainWindow|" - msgid "Import PEM data" - msgstr "Importer les données PEM" - --#: ../widgets/MainWindow.cpp:395 -+#: ../widgets/MainWindow.cpp:283 - #, qt-format - msgctxt "MainWindow|" - msgid "Please enter the original SO PIN (PUK) of the token '%1'" - msgstr "SVP saisir le PUK original du jeton '%1'" - --#: ../widgets/MainWindow.cpp:134 ../widgets/MainWindow.cpp:869 -+#: ../widgets/MainWindow.cpp:118 ../widgets/MainWindow.cpp:731 - msgctxt "MainWindow|" - msgid "Search" - msgstr "Rechercher" - --#: ../widgets/MainWindow.cpp:401 -+#: ../widgets/MainWindow.cpp:289 - #, qt-format - msgctxt "MainWindow|" - msgid "Please enter the new SO PIN (PUK) for the token '%1'" - msgstr "SVP saisir le nouveau NIP SO (PUK) pour le jeton: '%1'" - --#: ../widgets/MainWindow.cpp:408 -+#: ../widgets/MainWindow.cpp:296 - #, qt-format - msgctxt "MainWindow|" - msgid "The new label of the token '%1'" - msgstr "La nouvelle étiquette du jeton '%1'" - --#: ../widgets/MainWindow.cpp:516 -+#: ../widgets/MainWindow.cpp:404 - #, qt-format - msgctxt "MainWindow|" - msgid "The token '%1' did not contain any keys or certificates" - msgstr "Le jeton '%1' ne contient aucune clé ni aucun certificat" - --#: ../widgets/MainWindow.cpp:574 -+#: ../widgets/MainWindow.cpp:450 - msgctxt "MainWindow|" - msgid "Current Password" - msgstr "Mot de passe actuel" - --#: ../widgets/MainWindow.cpp:575 -+#: ../widgets/MainWindow.cpp:451 - msgctxt "MainWindow|" - msgid "Please enter the current database password" - msgstr "SVP saisir le mot de passe de la base de données" - --#: ../widgets/MainWindow.cpp:585 -+#: ../widgets/MainWindow.cpp:461 - msgctxt "MainWindow|" - msgid "The entered password is wrong" - msgstr "Le mot de passe renseigné est inexact" - --#: ../widgets/MainWindow.cpp:590 ../widgets/MainWindow.cpp:668 -+#: ../widgets/MainWindow.cpp:466 - msgctxt "MainWindow|" - msgid "New Password" - msgstr "Nouveau mot de passe" - --#: ../widgets/MainWindow.cpp:590 -+#: ../widgets/MainWindow.cpp:466 - msgctxt "MainWindow|" - msgid "" - "Please enter the new password to encrypt your private keys in the database-" -@@ -1456,70 +1449,28 @@ msgstr "" - "SVP saisir le nouveau mot de passe pour chiffrer les clés privées dans le " - "fichier de base de données" - --#: ../widgets/MainWindow.cpp:614 -+#: ../widgets/MainWindow.cpp:490 - msgctxt "MainWindow|" - msgid "Transaction start failed" - msgstr "Le démarrage de la transaction a échoué" - --#: ../widgets/MainWindow.cpp:668 --#, qt-format --msgctxt "MainWindow|" --msgid "" --"Please enter a password, that will be used to encrypt your private keys in " --"the database:\n" --"%1" --msgstr "" --"Veuillez saisir un mot de passe, qui sera utilisé pour chiffrer vos clés " --"privées dans la base de données:\n" --"%1" -- --#: ../widgets/MainWindow.cpp:689 --msgctxt "MainWindow|" --msgid "Password verify error, please try again" --msgstr "La vérification du mot de passe a échoué. SVP essayez encore" -- --#: ../widgets/MainWindow.cpp:690 --msgctxt "MainWindow|" --msgid "Password" --msgstr "Mot de passe" -- --#: ../widgets/MainWindow.cpp:691 --#, qt-format --msgctxt "MainWindow|" --msgid "" --"Please enter the password for unlocking the database:\n" --"%1" --msgstr "" --"Veuillez entrer le mot passe pour déverrouiller la base de données:\n" --"%1" -- --#: ../widgets/MainWindow.cpp:710 --msgctxt "MainWindow|" --msgid "The following error occurred:" --msgstr "L'erreur suivante s'est produite:" -- --#: ../widgets/MainWindow.cpp:712 --msgctxt "MainWindow|" --msgid "Copy to Clipboard" --msgstr "Copier dans le presse-papier" -- --#: ../widgets/MainWindow.cpp:781 -+#: ../widgets/MainWindow.cpp:648 - msgctxt "MainWindow|" - msgid "Certificate Index ( index.txt )" - msgstr "Index des certificats ( index.txt )" - --#: ../widgets/MainWindow.cpp:782 ../widgets/MainWindow.cpp:842 -+#: ../widgets/MainWindow.cpp:649 ../widgets/MainWindow.cpp:704 - msgctxt "MainWindow|" - msgid "All files ( * )" - msgstr "Tous les fichiers ( * )" - --#: ../widgets/MainWindow.cpp:811 -+#: ../widgets/MainWindow.cpp:673 - #, qt-format - msgctxt "MainWindow|" - msgid "Diffie-Hellman parameters saved as: %1" - msgstr "Les paramètres Diffie-Hellman on été sauvegardés dans: %1" - --#: ../widgets/MainWindow.cpp:827 -+#: ../widgets/MainWindow.cpp:689 - msgctxt "MainWindow|" - msgid "" - "Diffie-Hellman parameters are needed for different applications, but not " -@@ -1600,6 +1551,11 @@ msgctxt "NewCrl|" - msgid "Hash algorithm" - msgstr "Algorithme de hachage" - -+#: ../widgets/NewCrl.cpp:77 -+msgctxt "NewCrl|" -+msgid "Create CRL" -+msgstr "Créer une liste de révocation" -+ - #: ../ui/NewKey.ui:86 - msgctxt "NewKey|" - msgid "Please give a name to the new key and select the desired keysize" -@@ -1651,7 +1607,7 @@ msgctxt "NewKey|" - msgid "Remember as default" - msgstr "Enregistrer comme valeur par défaut" - --#: ../widgets/NewKey.cpp:181 -+#: ../widgets/NewKey.cpp:137 - msgctxt "NewKey|" - msgid "Create" - msgstr "Créer" -@@ -1738,7 +1694,7 @@ msgctxt "NewX509|" - msgid "Apply all" - msgstr "Appliquer tout" - --#: ../ui/NewX509.ui:336 ../widgets/NewX509.cpp:586 -+#: ../ui/NewX509.ui:336 ../widgets/NewX509.cpp:592 - msgctxt "NewX509|" - msgid "Subject" - msgstr "Sujet" -@@ -1910,7 +1866,7 @@ msgid "DNS: IP: URI: email: RID:" - msgstr "DNS: IP: URI: email: RID:" - - #: ../ui/NewX509.ui:745 ../ui/NewX509.ui:762 ../ui/NewX509.ui:795 --#: ../ui/NewX509.ui:831 ../widgets/NewX509.cpp:961 -+#: ../ui/NewX509.ui:831 ../widgets/NewX509.cpp:992 - msgctxt "NewX509|" - msgid "Edit" - msgstr "Modifier" -@@ -1935,7 +1891,7 @@ msgctxt "NewX509|" - msgid "Advanced" - msgstr "Avancé" - --#: ../ui/NewX509.ui:1163 ../widgets/NewX509.cpp:971 -+#: ../ui/NewX509.ui:1163 ../widgets/NewX509.cpp:1002 - msgctxt "NewX509|" - msgid "Validate" - msgstr "Valider" -@@ -1954,123 +1910,123 @@ msgstr "" - "Ce nom est seulement utilisé par xca et n'apparaît pas dans le certificat " - "exporté" - --#: ../widgets/NewX509.cpp:254 -+#: ../widgets/NewX509.cpp:270 - msgctxt "NewX509|" - msgid "Critical" - msgstr "Critique" - --#: ../widgets/NewX509.cpp:294 -+#: ../widgets/NewX509.cpp:310 - msgctxt "NewX509|" - msgid "Create Certificate signing request" - msgstr "Créer une requête de signature de certificat" - --#: ../widgets/NewX509.cpp:321 -+#: ../widgets/NewX509.cpp:336 - #, qt-format - msgctxt "NewX509|" - msgid "minimum size: %1" - msgstr "taille minimale: %1" - --#: ../widgets/NewX509.cpp:323 -+#: ../widgets/NewX509.cpp:338 - #, qt-format - msgctxt "NewX509|" - msgid "maximum size: %1" - msgstr "taille maximale: %1" - --#: ../widgets/NewX509.cpp:325 -+#: ../widgets/NewX509.cpp:340 - msgctxt "NewX509|" - msgid "only a-z A-Z 0-9 '()+,-./:=?" - msgstr "seulement a-z A-Z 0-9 '()+,-./:=?" - --#: ../widgets/NewX509.cpp:329 -+#: ../widgets/NewX509.cpp:344 - msgctxt "NewX509|" - msgid "only 7-bit clean characters" - msgstr "seulement des caractères 7-bit ASCII imprimables" - --#: ../widgets/NewX509.cpp:354 -+#: ../widgets/NewX509.cpp:369 - msgctxt "NewX509|" - msgid "Edit XCA template" - msgstr "Editer un modèle XCA" - --#: ../widgets/NewX509.cpp:367 -+#: ../widgets/NewX509.cpp:382 - msgctxt "NewX509|" - msgid "Create x509 Certificate" - msgstr "Créer un certificat x509" - --#: ../widgets/NewX509.cpp:718 -+#: ../widgets/NewX509.cpp:750 - #, qt-format - msgctxt "NewX509|" - msgid "Template '%1' applied" - msgstr "Le modèle '%1' a été appliqué" - --#: ../widgets/NewX509.cpp:725 -+#: ../widgets/NewX509.cpp:757 - #, qt-format - msgctxt "NewX509|" - msgid "Subject applied from template '%1'" - msgstr "Sujet extrait du modèle '%1'" - --#: ../widgets/NewX509.cpp:733 -+#: ../widgets/NewX509.cpp:765 - #, qt-format - msgctxt "NewX509|" - msgid "Extensions applied from template '%1'" - msgstr "Les extensions du modéle '%1' ont été appliquées" - --#: ../widgets/NewX509.cpp:748 -+#: ../widgets/NewX509.cpp:780 - #, qt-format - msgctxt "NewX509|" - msgid "New key '%1' created" - msgstr "La nouvelle clé '%1' a été créée" - --#: ../widgets/NewX509.cpp:994 -+#: ../widgets/NewX509.cpp:1025 - msgctxt "NewX509|" - msgid "Other Tabs" - msgstr "Autres Onglets" - --#: ../widgets/NewX509.cpp:1008 -+#: ../widgets/NewX509.cpp:1039 - msgctxt "NewX509|" - msgid "Advanced Tab" - msgstr "Onglet Avancé" - --#: ../widgets/NewX509.cpp:1015 -+#: ../widgets/NewX509.cpp:1046 - msgctxt "NewX509|" - msgid "Errors" - msgstr "Erreurs" - --#: ../widgets/NewX509.cpp:1033 -+#: ../widgets/NewX509.cpp:1064 - msgctxt "NewX509|" - msgid "From PKCS#10 request" - msgstr "A partir d'une requête en PKCS#10" - --#: ../widgets/NewX509.cpp:1136 ../widgets/NewX509.cpp:1149 --#: ../widgets/NewX509.cpp:1168 ../widgets/NewX509.cpp:1180 --#: ../widgets/NewX509.cpp:1196 ../widgets/NewX509.cpp:1210 --#: ../widgets/NewX509.cpp:1244 ../widgets/NewX509.cpp:1255 --#: ../widgets/NewX509.cpp:1278 ../widgets/NewX509.cpp:1301 --#: ../widgets/NewX509.cpp:1327 ../widgets/NewX509.cpp:1347 -+#: ../widgets/NewX509.cpp:1172 ../widgets/NewX509.cpp:1185 -+#: ../widgets/NewX509.cpp:1204 ../widgets/NewX509.cpp:1216 -+#: ../widgets/NewX509.cpp:1232 ../widgets/NewX509.cpp:1246 -+#: ../widgets/NewX509.cpp:1280 ../widgets/NewX509.cpp:1299 -+#: ../widgets/NewX509.cpp:1322 ../widgets/NewX509.cpp:1345 -+#: ../widgets/NewX509.cpp:1371 ../widgets/NewX509.cpp:1391 - msgctxt "NewX509|" - msgid "Abort rollout" - msgstr "Interrompre le déploiement" - --#: ../widgets/NewX509.cpp:1145 -+#: ../widgets/NewX509.cpp:1181 - msgctxt "NewX509|" - msgid "The following length restrictions of RFC3280 are violated:" - msgstr "" - "Pour être en conformité avec la RFC3280, les règles de restriction de " - "longueur suivantes ne sont pas respectées:" - --#: ../widgets/NewX509.cpp:1148 ../widgets/NewX509.cpp:1209 -+#: ../widgets/NewX509.cpp:1184 ../widgets/NewX509.cpp:1245 - msgctxt "NewX509|" - msgid "Edit subject" - msgstr "Modifier le sujet" - --#: ../widgets/NewX509.cpp:1150 ../widgets/NewX509.cpp:1211 --#: ../widgets/NewX509.cpp:1256 ../widgets/NewX509.cpp:1279 --#: ../widgets/NewX509.cpp:1302 ../widgets/NewX509.cpp:1328 --#: ../widgets/NewX509.cpp:1348 -+#: ../widgets/NewX509.cpp:1186 ../widgets/NewX509.cpp:1247 -+#: ../widgets/NewX509.cpp:1300 ../widgets/NewX509.cpp:1323 -+#: ../widgets/NewX509.cpp:1346 ../widgets/NewX509.cpp:1372 -+#: ../widgets/NewX509.cpp:1392 - msgctxt "NewX509|" - msgid "Continue rollout" - msgstr "Continuer le déploiement" - --#: ../widgets/NewX509.cpp:1166 -+#: ../widgets/NewX509.cpp:1202 - msgctxt "NewX509|" - msgid "" - "The verification of the Certificate request failed.\n" -@@ -2079,12 +2035,12 @@ msgstr "" - "La vérification de la requête de signature à échoué.\n" - "Le déploiement devrait être interrompu." - --#: ../widgets/NewX509.cpp:1167 -+#: ../widgets/NewX509.cpp:1203 - msgctxt "NewX509|" - msgid "Continue anyway" - msgstr "Continuer quand-même" - --#: ../widgets/NewX509.cpp:1178 -+#: ../widgets/NewX509.cpp:1214 - msgctxt "NewX509|" - msgid "" - "The internal name and the common name are empty.\n" -@@ -2093,22 +2049,22 @@ msgstr "" - "Le nom interne et le nom commun sont vides.\n" - "SVP saisir au moins le nom interne." - --#: ../widgets/NewX509.cpp:1179 -+#: ../widgets/NewX509.cpp:1215 - msgctxt "NewX509|" - msgid "Edit name" - msgstr "Modifier le nom" - --#: ../widgets/NewX509.cpp:1194 -+#: ../widgets/NewX509.cpp:1230 - msgctxt "NewX509|" - msgid "There is no Key selected for signing." - msgstr "Aucune clé n'est sélectionnée pour la signature." - --#: ../widgets/NewX509.cpp:1195 -+#: ../widgets/NewX509.cpp:1231 - msgctxt "NewX509|" - msgid "Select key" - msgstr "Sélectionner la clé" - --#: ../widgets/NewX509.cpp:1207 -+#: ../widgets/NewX509.cpp:1243 - #, qt-format - msgctxt "NewX509|" - msgid "" -@@ -2120,22 +2076,42 @@ msgstr "" - "%1\n" - "bien que vous les avez déclarées comme obligatoires dans le menu des options." - --#: ../widgets/NewX509.cpp:1241 -+#: ../widgets/NewX509.cpp:1277 - msgctxt "NewX509|" - msgid "The key you selected for signing is not a private one." - msgstr "La clé sélectionnée pour la signature n'est pas une clé privée." - --#: ../widgets/NewX509.cpp:1242 -+#: ../widgets/NewX509.cpp:1278 - msgctxt "NewX509|" - msgid "Select other signer" - msgstr "Sélectionner un autre signataire" - --#: ../widgets/NewX509.cpp:1242 -+#: ../widgets/NewX509.cpp:1278 - msgctxt "NewX509|" - msgid "Select other key" - msgstr "Sélectionner une autre clé" - --#: ../widgets/NewX509.cpp:1252 -+#: ../widgets/NewX509.cpp:1288 -+#, qt-format -+msgctxt "NewX509|" -+msgid "" -+"The currently selected hash algorithm '%1' is insecure and should not be " -+"used." -+msgstr "" -+"L'algorithme de hachage sélectionné '%1' est peu sûr et ne devrait pas être " -+"utilisé." -+ -+#: ../widgets/NewX509.cpp:1289 -+msgctxt "NewX509|" -+msgid "Select other algorithm" -+msgstr "Sélectionner un autre algorithme" -+ -+#: ../widgets/NewX509.cpp:1290 -+msgctxt "NewX509|" -+msgid "Use algorithm anyway" -+msgstr "Utiliser quand même cet algorithme" -+ -+#: ../widgets/NewX509.cpp:1296 - msgctxt "NewX509|" - msgid "" - "The certificate will be earlier valid than the signer. This is probably not " -@@ -2144,18 +2120,18 @@ msgstr "" - "Le certificat serait valide avant son signataire. Ce n'est probablement pas " - "ce qui est désiré." - --#: ../widgets/NewX509.cpp:1254 ../widgets/NewX509.cpp:1277 --#: ../widgets/NewX509.cpp:1300 -+#: ../widgets/NewX509.cpp:1298 ../widgets/NewX509.cpp:1321 -+#: ../widgets/NewX509.cpp:1344 - msgctxt "NewX509|" - msgid "Edit dates" - msgstr "Modifier les limites de validité" - --#: ../widgets/NewX509.cpp:1257 ../widgets/NewX509.cpp:1280 -+#: ../widgets/NewX509.cpp:1301 ../widgets/NewX509.cpp:1324 - msgctxt "NewX509|" - msgid "Adjust date and continue" - msgstr "Ajuster la date et continuer" - --#: ../widgets/NewX509.cpp:1275 -+#: ../widgets/NewX509.cpp:1319 - msgctxt "NewX509|" - msgid "" - "The certificate will be longer valid than the signer. This is probably not " -@@ -2164,7 +2140,7 @@ msgstr "" - "Le certificat serait valide plus longtemps que son signataire. Ce n'est " - "probablement pas ce qui est désiré." - --#: ../widgets/NewX509.cpp:1298 -+#: ../widgets/NewX509.cpp:1342 - msgctxt "NewX509|" - msgid "" - "The certificate will be out of date before it becomes valid. You most " -@@ -2173,7 +2149,7 @@ msgstr "" - "Le certificat serait échu avant de devenir actif. Vous avez probablement " - "interverti les deux dates." - --#: ../widgets/NewX509.cpp:1319 -+#: ../widgets/NewX509.cpp:1363 - msgctxt "NewX509|" - msgid "" - "The certificate contains invalid or duplicate extensions. Check the " -@@ -2182,7 +2158,7 @@ msgstr "" - "Le certificat contient des extensions dupliquées ou invalides. Vérifier la " - "validité sur l'onglet \"Avancé\"." - --#: ../widgets/NewX509.cpp:1322 -+#: ../widgets/NewX509.cpp:1366 - msgctxt "NewX509|" - msgid "" - "The certificate contains no extensions. You may apply the extensions of one " -@@ -2191,12 +2167,12 @@ msgstr "" - "Le certificat ne contient aucune extension. Vous pouvez appliquer des " - "extensions à partir de l'un des modèles pour définir l'usage du certificat" - --#: ../widgets/NewX509.cpp:1326 ../widgets/NewX509.cpp:1346 -+#: ../widgets/NewX509.cpp:1370 ../widgets/NewX509.cpp:1390 - msgctxt "NewX509|" - msgid "Edit extensions" - msgstr "Modifier les extensions" - --#: ../widgets/NewX509.cpp:1345 -+#: ../widgets/NewX509.cpp:1389 - msgctxt "NewX509|" - msgid "" - "The subject alternative name shall contain a copy of the common name. " -@@ -2205,7 +2181,7 @@ msgstr "" - "Le nom alternatif du sujet devrait contenir une copie du nom commun. " - "Cependant ce dernier est vide." - --#: ../widgets/NewX509_ext.cpp:195 -+#: ../widgets/NewX509_ext.cpp:189 - #, qt-format - msgctxt "NewX509|" - msgid "Configfile error on line %1\n" -@@ -2276,7 +2252,7 @@ msgctxt "OpenDb|" - msgid "Password" - msgstr "Mot de passe" - --#: ../ui/OpenDb.ui:142 ../widgets/OpenDb.cpp:58 -+#: ../ui/OpenDb.ui:142 ../widgets/OpenDb.cpp:50 - msgctxt "OpenDb|" - msgid "Database name" - msgstr "Nom de la base de données" -@@ -2286,7 +2262,7 @@ msgctxt "OpenDb|" - msgid "Table prefix" - msgstr "Préfixe du nom des tables" - --#: ../widgets/OpenDb.cpp:151 -+#: ../widgets/OpenDb.cpp:121 - msgctxt "OpenDb|" - msgid "" - "No SqLite3 driver available. Please install the qt-sqlite package of your " -@@ -2295,25 +2271,6 @@ msgstr "" - "Le pilote SqLite3 n'est pas disponible. SVP installez le paquetage qt-sqlite " - "de votre distribution" - --#: ../widgets/OpenDb.cpp:195 --#, qt-format --msgctxt "OpenDb|" --msgid "" --"Please enter the password to access the database server %2 as user '%1'." --msgstr "" --"SVP saisir le mot de passe de l'utilisateur '%1' sur le serveur de base de " --"données %2." -- --#: ../widgets/OpenDb.cpp:234 --msgctxt "OpenDb|" --msgid "" --"The database driver does not support transactions. This may happen if the " --"client and server have different versions. Continue with care." --msgstr "" --"Le pilote de base de données ne supporte pas les transactions. Ceci peut se " --"produire si le client et le serveur n'ont pas les mêmes versions. Continuez " --"avec prudence" -- - #: ../ui/Options.ui:28 - msgctxt "Options|" - msgid "XCA Options" -@@ -2446,37 +2403,37 @@ msgctxt "Options|" - msgid "Search" - msgstr "Rechercher" - --#: ../widgets/Options.cpp:31 -+#: ../widgets/Options.cpp:34 - msgctxt "Options|" - msgid "Printable string or UTF8 (default)" - msgstr "Chaîne imprimable ou UTF8 (défaut)" - --#: ../widgets/Options.cpp:32 -+#: ../widgets/Options.cpp:35 - msgctxt "Options|" - msgid "PKIX recommendation in RFC2459" - msgstr "La recommandation PKIX est dans la RFC2459" - --#: ../widgets/Options.cpp:33 -+#: ../widgets/Options.cpp:36 - msgctxt "Options|" - msgid "No BMP strings, only printable and T61" - msgstr "Pas de chaîne BMP, seulement imprimable et T61" - --#: ../widgets/Options.cpp:34 -+#: ../widgets/Options.cpp:37 - msgctxt "Options|" - msgid "UTF8 strings only (RFC2459)" - msgstr "Chaînes UTF8 uniquement (RFC2459)" - --#: ../widgets/Options.cpp:35 -+#: ../widgets/Options.cpp:38 - msgctxt "Options|" - msgid "All strings" - msgstr "Toutes les chaînes" - --#: ../widgets/Options.cpp:57 -+#: ../widgets/Options.cpp:60 - msgctxt "Options|" - msgid "Days" - msgstr "Jours" - --#: ../widgets/Options.cpp:57 -+#: ../widgets/Options.cpp:60 - msgctxt "Options|" - msgid "Weeks" - msgstr "Semaines" -@@ -2495,19 +2452,24 @@ msgctxt "PwDialog|" - msgid "Take as HEX string" - msgstr "Exprimé en hexadécimal" - --#: ../widgets/PwDialog.cpp:85 -+#: ../widgets/PwDialog.cpp:44 -+msgctxt "PwDialog|" -+msgid "Password" -+msgstr "Mot de passe" -+ -+#: ../widgets/PwDialog.cpp:96 - #, qt-format - msgctxt "PwDialog|" - msgid "Repeat %1" - msgstr "Répéter %1" - --#: ../widgets/PwDialog.cpp:98 -+#: ../widgets/PwDialog.cpp:109 - #, qt-format - msgctxt "PwDialog|" - msgid "%1 mismatch" - msgstr "%1 ne correspond pas" - --#: ../widgets/PwDialog.cpp:105 -+#: ../widgets/PwDialog.cpp:116 - msgctxt "PwDialog|" - msgid "" - "Hex password must only contain the characters '0' - '9' and 'a' - 'f' and it " -@@ -2516,62 +2478,92 @@ msgstr "" - "Un mot de passe hexadécimal peut seulement contenir les caractères '0' à '9' " - "et 'a' à 'f' et il doit consister en un nombre pair de caractères" - --#: ../widgets/PwDialog.cpp:131 -+#: ../widgets/PwDialog.cpp:145 - msgctxt "PwDialog|" --msgid "E&xit" --msgstr "&Quitter" -+msgid "Exit" -+msgstr "Quitter" -+ -+#: ../widgets/XcaWarning.cpp:28 -+msgctxt "QMessageBox|" -+msgid "Ok" -+msgstr "OK" -+ -+#: ../widgets/XcaWarning.cpp:29 -+msgctxt "QMessageBox|" -+msgid "Close" -+msgstr "Fermer" -+ -+#: ../widgets/XcaWarning.cpp:30 -+msgctxt "QMessageBox|" -+msgid "Cancel" -+msgstr "Annuler" -+ -+#: ../widgets/XcaWarning.cpp:31 -+msgctxt "QMessageBox|" -+msgid "Apply" -+msgstr "Appliquer" -+ -+#: ../widgets/XcaWarning.cpp:32 -+msgctxt "QMessageBox|" -+msgid "Yes" -+msgstr "Oui" - --#: ../lib/asn1time.cpp:155 -+#: ../widgets/XcaWarning.cpp:33 -+msgctxt "QMessageBox|" -+msgid "No" -+msgstr "Non" -+ -+#: ../lib/asn1time.cpp:157 - msgctxt "QObject|" - msgid "Undefined" - msgstr "Indéfini" - --#: ../lib/asn1time.cpp:157 -+#: ../lib/asn1time.cpp:159 - msgctxt "QObject|" - msgid "Broken / Invalid" - msgstr "Invalide" - --#: ../lib/asn1time.cpp:203 -+#: ../lib/asn1time.cpp:205 - #, qt-format - msgctxt "QObject|" - msgid "in %1 seconds" - msgstr "dans %1 secondes" - --#: ../lib/asn1time.cpp:204 -+#: ../lib/asn1time.cpp:206 - #, qt-format - msgctxt "QObject|" - msgid "%1 seconds ago" - msgstr "il y a %1 secondes" - --#: ../lib/asn1time.cpp:207 -+#: ../lib/asn1time.cpp:209 - #, qt-format - msgctxt "QObject|" - msgid "in %1 minutes" - msgstr "dans %1 minutes" - --#: ../lib/asn1time.cpp:208 -+#: ../lib/asn1time.cpp:210 - #, qt-format - msgctxt "QObject|" - msgid "%1 minutes ago" - msgstr "il y a %1 minutes" - --#: ../lib/asn1time.cpp:210 -+#: ../lib/asn1time.cpp:212 - msgctxt "QObject|" - msgid "Yesterday" - msgstr "Hier" - --#: ../lib/asn1time.cpp:212 -+#: ../lib/asn1time.cpp:214 - msgctxt "QObject|" - msgid "Tomorrow" - msgstr "Demain" - --#: ../lib/asn1time.cpp:215 -+#: ../lib/asn1time.cpp:217 - #, qt-format - msgctxt "QObject|" - msgid "in %1 hours" - msgstr "dans %1 heures" - --#: ../lib/asn1time.cpp:216 -+#: ../lib/asn1time.cpp:218 - #, qt-format - msgctxt "QObject|" - msgid "%1 hours ago" -@@ -2587,7 +2579,7 @@ msgctxt "QObject|" - msgid "Error finding endmarker of string" - msgstr "Erreur: une marque de fin de chaîne n'a pas été trouvée" - --#: ../lib/exception.h:61 -+#: ../lib/exception.h:60 - #, qt-format - msgctxt "QObject|" - msgid "Out of Memory at %1:%2" -@@ -2598,7 +2590,7 @@ msgctxt "QObject|" - msgid "All files ( * )" - msgstr "Tous les fichiers ( * )" - --#: ../lib/load_obj.cpp:55 -+#: ../lib/load_obj.cpp:56 - msgctxt "QObject|" - msgid "" - "PKI Keys ( *.pem *.der *.key );; PKCS#8 Keys ( *.p8 *.pk8 );; Microsoft PVK " -@@ -2607,151 +2599,151 @@ msgstr "" - "Clés PKI ( *.pem *.der *.key );; Clés PKCS#8 ( *.p8 *.pk8 );; Clés Microsoft " - "PVK ( *.pvk );; Clés publiques SSH ( *.pub );;" - --#: ../lib/load_obj.cpp:59 -+#: ../lib/load_obj.cpp:60 - msgctxt "QObject|" - msgid "Import RSA key" - msgstr "Importer une clé RSA" - --#: ../lib/load_obj.cpp:71 -+#: ../lib/load_obj.cpp:72 - msgctxt "QObject|" - msgid "PKCS#10 CSR ( *.pem *.der *.csr );; " - msgstr "PKCS#10 CSR ( *.pem *.der *.csr );;" - --#: ../lib/load_obj.cpp:72 -+#: ../lib/load_obj.cpp:73 - msgctxt "QObject|" - msgid "Import Request" - msgstr "Importer une requête" - --#: ../lib/load_obj.cpp:84 -+#: ../lib/load_obj.cpp:85 - msgctxt "QObject|" - msgid "Certificates ( *.pem *.der *.crt *.cer );;" - msgstr "Certificats ( *.pem *.der *.crt *.cer );;" - --#: ../lib/load_obj.cpp:85 -+#: ../lib/load_obj.cpp:86 - msgctxt "QObject|" - msgid "Import X.509 Certificate" - msgstr "Importer un certificat X.509" - --#: ../lib/load_obj.cpp:97 -+#: ../lib/load_obj.cpp:98 - msgctxt "QObject|" - msgid "PKCS#7 data ( *.p7s *.p7m *.p7b );;" - msgstr "Données PKCS#7 ( *.p7s *.p7m *.p7b );;" - --#: ../lib/load_obj.cpp:98 -+#: ../lib/load_obj.cpp:99 - msgctxt "QObject|" - msgid "Import PKCS#7 Certificates" - msgstr "Importer un certificat PKCS#7" - --#: ../lib/load_obj.cpp:110 -+#: ../lib/load_obj.cpp:111 - msgctxt "QObject|" - msgid "PKCS#12 Certificates ( *.p12 *.pfx );;" - msgstr "Certificats PKCS#12 ( *.p12 *.pfx );;" - --#: ../lib/load_obj.cpp:111 -+#: ../lib/load_obj.cpp:112 - msgctxt "QObject|" - msgid "Import PKCS#12 Private Certificate" - msgstr "Importer un certificat privé PKCS#12" - --#: ../lib/load_obj.cpp:124 -+#: ../lib/load_obj.cpp:125 - msgctxt "QObject|" - msgid "XCA templates ( *.xca );;" - msgstr "Modèles XCA ( *.xca );;" - --#: ../lib/load_obj.cpp:125 -+#: ../lib/load_obj.cpp:126 - msgctxt "QObject|" - msgid "Import XCA Templates" - msgstr "Importer des modèles XCA" - --#: ../lib/load_obj.cpp:137 -+#: ../lib/load_obj.cpp:138 - msgctxt "QObject|" - msgid "Revocation lists ( *.pem *.der *.crl );;" - msgstr "Listes de révocation ( *.pem *.der *.crl );;" - --#: ../lib/load_obj.cpp:138 -+#: ../lib/load_obj.cpp:139 - msgctxt "QObject|" - msgid "Import Certificate Revocation List" - msgstr "Importer une liste de révocation de certificats" - --#: ../lib/load_obj.cpp:150 -+#: ../lib/load_obj.cpp:151 - msgctxt "QObject|" - msgid "XCA Databases ( *.xdb );;" - msgstr "Bases de données XCA ( *.xdb );;" - --#: ../lib/load_obj.cpp:151 -+#: ../lib/load_obj.cpp:152 - msgctxt "QObject|" - msgid "Open XCA Database" - msgstr "Ouvrir une Base de Données XCA" - --#: ../lib/load_obj.cpp:159 -+#: ../lib/load_obj.cpp:160 - msgctxt "QObject|" - msgid "PKCS#11 library ( *.dll );;" - msgstr "Bibliothèque PKCS#11 ( *.dll );;" - --#: ../lib/load_obj.cpp:161 -+#: ../lib/load_obj.cpp:162 - msgctxt "QObject|" - msgid "PKCS#11 library ( *.dylib *.so );;" - msgstr "Bibliothèque PKCS#11 ( *.dylib *.so );;" - --#: ../lib/load_obj.cpp:163 -+#: ../lib/load_obj.cpp:164 - msgctxt "QObject|" - msgid "PKCS#11 library ( *.so );;" - msgstr "Bibliothèque PKCS#11 ( *.so );;" - --#: ../lib/load_obj.cpp:165 -+#: ../lib/load_obj.cpp:166 - msgctxt "QObject|" - msgid "Open PKCS#11 shared library" - msgstr "Ouvrir une bibliothèque partagée PKCS#11" - --#: ../lib/load_obj.cpp:172 -+#: ../lib/load_obj.cpp:173 - msgctxt "QObject|" - msgid "PEM files ( *.pem );;" - msgstr "Fichiers PEM ( *.pem );;" - --#: ../lib/load_obj.cpp:173 -+#: ../lib/load_obj.cpp:174 - msgctxt "QObject|" - msgid "Load PEM encoded file" - msgstr "Charger un fichier en format PEM" - --#: ../lib/pkcs11.cpp:200 -+#: ../lib/pkcs11.cpp:214 - msgctxt "QObject|" - msgid "Please enter the PIN on the PinPad" - msgstr "Saisir le NIP sur le pavé prévu à cet effet SVP" - --#: ../lib/pkcs11.cpp:211 -+#: ../lib/pkcs11.cpp:225 - #, qt-format - msgctxt "QObject|" - msgid "Please enter the SO PIN (PUK) of the token %1" - msgstr "SVP saisir le PUK du jeton '%1'" - --#: ../lib/pkcs11.cpp:212 -+#: ../lib/pkcs11.cpp:226 - #, qt-format - msgctxt "QObject|" - msgid "Please enter the PIN of the token %1" - msgstr "SVP saisir le NIP du jeton '%1'" - --#: ../lib/pkcs11.cpp:265 -+#: ../lib/pkcs11.cpp:280 - msgctxt "QObject|" - msgid "No Security token found" - msgstr "Aucun jeton de sécurité trouvé" - --#: ../lib/pkcs11.cpp:276 -+#: ../lib/pkcs11.cpp:291 - msgctxt "QObject|" - msgid "Select" - msgstr "Sélectionner" - --#: ../lib/pkcs11.cpp:299 -+#: ../lib/pkcs11.cpp:314 - #, qt-format - msgctxt "QObject|" - msgid "Please enter the new SO PIN (PUK) for the token: '%1'" - msgstr "SVP saisir le nouveau PUK pour le jeton: '%1'" - --#: ../lib/pkcs11.cpp:301 -+#: ../lib/pkcs11.cpp:316 - #, qt-format - msgctxt "QObject|" - msgid "Please enter the new PIN for the token: '%1'" - msgstr "SVP saisir le nouveau NIP pour le jeton: '%1'" - --#: ../lib/pkcs11.h:92 -+#: ../lib/pkcs11.h:101 - #, qt-format - msgctxt "QObject|" - msgid "Required PIN size: %1 - %2" -@@ -2788,13 +2780,13 @@ msgctxt "QObject|" - msgid "Library loading failed" - msgstr "Le chargement de la bibliothèque a échoué" - --#: ../lib/pkcs11_lib.cpp:515 -+#: ../lib/pkcs11_lib.cpp:518 - #, qt-format - msgctxt "QObject|" - msgid "PKCS#11 function '%1' failed: %2" - msgstr "La fonction PKCS#11 '%1' a échoué: %2" - --#: ../lib/pkcs11_lib.cpp:523 -+#: ../lib/pkcs11_lib.cpp:526 - #, qt-format - msgctxt "QObject|" - msgid "" -@@ -2806,24 +2798,24 @@ msgstr "" - "Dans la bibliothèque %3\n" - "%4" - --#: ../lib/x509name.cpp:116 -+#: ../lib/x509name.cpp:111 - msgctxt "QObject|" - msgid "Invalid" - msgstr "Invalide" - --#: ../lib/x509name.cpp:240 -+#: ../lib/x509name.cpp:235 - #, qt-format - msgctxt "QObject|" - msgid "%1 is shorter than %2 bytes: '%3'" - msgstr "%1 est plus court que %2 octets: '%3'" - --#: ../lib/x509name.cpp:245 -+#: ../lib/x509name.cpp:240 - #, qt-format - msgctxt "QObject|" - msgid "%1 is longer than %2 bytes: '%3'" - msgstr "%1 est plus long que %2 octets: '%3'" - --#: ../lib/x509v3ext.cpp:85 -+#: ../lib/x509v3ext.cpp:86 - #, qt-format - msgctxt "QObject|" - msgid "String '%1' for '%2' contains invalid characters" -@@ -2867,196 +2859,219 @@ msgctxt "QObject|" - msgid "Failed to start a database transaction" - msgstr "Impossible de démarrer la transaction BDD" - --#: ../lib/func.cpp:598 -+#: ../lib/func.cpp:634 - msgctxt "QObject|" - msgid "Country code" - msgstr "Code de pays" - --#: ../lib/func.cpp:599 -+#: ../lib/func.cpp:635 - msgctxt "QObject|" - msgid "State or Province" - msgstr "Etat ou province" - --#: ../lib/func.cpp:600 -+#: ../lib/func.cpp:636 - msgctxt "QObject|" - msgid "Locality" - msgstr "Localité" - --#: ../lib/func.cpp:601 -+#: ../lib/func.cpp:637 - msgctxt "QObject|" - msgid "Organisation" - msgstr "Organisation" - --#: ../lib/func.cpp:602 -+#: ../lib/func.cpp:638 - msgctxt "QObject|" - msgid "Organisational unit" - msgstr "Unité d'organisation" - --#: ../lib/func.cpp:603 -+#: ../lib/func.cpp:639 - msgctxt "QObject|" - msgid "Common name" - msgstr "Nom commun" - --#: ../lib/func.cpp:604 -+#: ../lib/func.cpp:640 - msgctxt "QObject|" - msgid "E-Mail address" - msgstr "Adresse de courriel" - --#: ../lib/func.cpp:605 -+#: ../lib/func.cpp:641 - msgctxt "QObject|" - msgid "Serial number" - msgstr "Numéro de série" - --#: ../lib/func.cpp:606 -+#: ../lib/func.cpp:642 - msgctxt "QObject|" - msgid "Given name" - msgstr "Prénom" - --#: ../lib/func.cpp:607 -+#: ../lib/func.cpp:643 - msgctxt "QObject|" - msgid "Surname" - msgstr "Nom de famille" - --#: ../lib/func.cpp:608 -+#: ../lib/func.cpp:644 - msgctxt "QObject|" - msgid "Title" - msgstr "Titre" - --#: ../lib/func.cpp:609 -+#: ../lib/func.cpp:645 - msgctxt "QObject|" - msgid "Initials" - msgstr "Initiales" - --#: ../lib/func.cpp:610 -+#: ../lib/func.cpp:646 - msgctxt "QObject|" - msgid "Description" - msgstr "Description" - --#: ../lib/func.cpp:611 -+#: ../lib/func.cpp:647 - msgctxt "QObject|" - msgid "Role" - msgstr "Rôle" - --#: ../lib/func.cpp:612 -+#: ../lib/func.cpp:648 - msgctxt "QObject|" - msgid "Pseudonym" - msgstr "Pseudonyme" - --#: ../lib/func.cpp:613 -+#: ../lib/func.cpp:649 - msgctxt "QObject|" - msgid "Generation Qualifier" - msgstr "Qualifiant de génération" - --#: ../lib/func.cpp:614 -+#: ../lib/func.cpp:650 - msgctxt "QObject|" - msgid "x500 Unique Identifier" - msgstr "Identifiant Unique X500" - --#: ../lib/func.cpp:615 -+#: ../lib/func.cpp:651 - msgctxt "QObject|" - msgid "Name" - msgstr "Nom" - --#: ../lib/func.cpp:616 -+#: ../lib/func.cpp:652 - msgctxt "QObject|" - msgid "DN Qualifier" - msgstr "Qualifiant de DN" - --#: ../lib/func.cpp:617 -+#: ../lib/func.cpp:653 - msgctxt "QObject|" - msgid "Unstructured name" - msgstr "Nom non-structuré" - --#: ../lib/func.cpp:618 -+#: ../lib/func.cpp:654 - msgctxt "QObject|" - msgid "Challenge password" - msgstr "Mot de passe challenge" - --#: ../lib/func.cpp:620 -+#: ../lib/func.cpp:656 - msgctxt "QObject|" - msgid "Basic Constraints" - msgstr "Contraintes de base" - --#: ../lib/func.cpp:621 -+#: ../lib/func.cpp:657 - msgctxt "QObject|" - msgid "Subject alternative name" - msgstr "Nom alternatif du sujet" - --#: ../lib/func.cpp:622 -+#: ../lib/func.cpp:658 - msgctxt "QObject|" - msgid "issuer alternative name" - msgstr "Nom alternatif de l'émetteur" - --#: ../lib/func.cpp:623 -+#: ../lib/func.cpp:659 - msgctxt "QObject|" - msgid "Subject key identifier" - msgstr "Clé d'identification du sujet" - --#: ../lib/func.cpp:624 -+#: ../lib/func.cpp:660 - msgctxt "QObject|" - msgid "Authority key identifier" - msgstr "Clé d'identification de l'autorité" - --#: ../lib/func.cpp:625 -+#: ../lib/func.cpp:661 - msgctxt "QObject|" - msgid "Key usage" - msgstr "Usage de la clé" - --#: ../lib/func.cpp:626 -+#: ../lib/func.cpp:662 - msgctxt "QObject|" - msgid "Extended key usage" - msgstr "Usage étendu de la clé" - --#: ../lib/func.cpp:627 -+#: ../lib/func.cpp:663 - msgctxt "QObject|" - msgid "CRL distribution points" - msgstr "Points de distribution de la CRL" - --#: ../lib/func.cpp:628 -+#: ../lib/func.cpp:664 - msgctxt "QObject|" - msgid "Authority information access" - msgstr "Accès à l'information de l'autorité" - --#: ../lib/func.cpp:629 -+#: ../lib/func.cpp:665 - msgctxt "QObject|" - msgid "Certificate type" - msgstr "Type de certificat" - --#: ../lib/func.cpp:630 -+#: ../lib/func.cpp:666 - msgctxt "QObject|" - msgid "Base URL" - msgstr "URL de base" - --#: ../lib/func.cpp:631 -+#: ../lib/func.cpp:667 - msgctxt "QObject|" - msgid "Revocation URL" - msgstr "URL de révocation" - --#: ../lib/func.cpp:632 -+#: ../lib/func.cpp:668 - msgctxt "QObject|" - msgid "CA Revocation URL" - msgstr "URL de révocation du CA" - --#: ../lib/func.cpp:633 -+#: ../lib/func.cpp:669 - msgctxt "QObject|" - msgid "Certificate renewal URL" - msgstr "URL de renouvellement du certificat" - --#: ../lib/func.cpp:634 -+#: ../lib/func.cpp:670 - msgctxt "QObject|" - msgid "CA policy URL" - msgstr "URL de la politique du CA" - --#: ../lib/func.cpp:635 -+#: ../lib/func.cpp:671 - msgctxt "QObject|" - msgid "SSL server name" - msgstr "Nom du serveur SSL" - --#: ../lib/func.cpp:636 -+#: ../lib/func.cpp:672 - msgctxt "QObject|" - msgid "Comment" - msgstr "Commentaire" - -+#: ../lib/main.cpp:210 -+#, qt-format -+msgctxt "QObject|" -+msgid "Index file written to '%1'" -+msgstr "Fichier d'index écrit dans '%1'" -+ -+#: ../lib/main.cpp:217 -+#, qt-format -+msgctxt "QObject|" -+msgid "Index hierarchy written to '%1'" -+msgstr "Hiérarchie d'index écrite dans '%1'" -+ -+#: ../lib/main.cpp:230 -+#, qt-format -+msgctxt "QObject|" -+msgid "Unknown key type %1" -+msgstr "Type de clé inconnu %1" -+ -+#: ../widgets/XcaWarning.h:23 -+msgctxt "QObject|" -+msgid "Password verify error, please try again" -+msgstr "La vérification du mot de passe a échoué. SVP essayez encore" -+ - #: ../widgets/ReqTreeView.cpp:25 - msgctxt "ReqTreeView|" - msgid "Sign" -@@ -3097,32 +3112,32 @@ msgctxt "RevocationList|" - msgid "Edit" - msgstr "Modifier" - --#: ../widgets/RevocationList.cpp:73 -+#: ../widgets/RevocationList.cpp:75 - msgctxt "RevocationList|" - msgid "No." - msgstr "No." - --#: ../widgets/RevocationList.cpp:73 -+#: ../widgets/RevocationList.cpp:75 - msgctxt "RevocationList|" - msgid "Serial" - msgstr "Numéro de série" - --#: ../widgets/RevocationList.cpp:73 -+#: ../widgets/RevocationList.cpp:75 - msgctxt "RevocationList|" - msgid "Revocation" - msgstr "Révocation" - --#: ../widgets/RevocationList.cpp:73 -+#: ../widgets/RevocationList.cpp:75 - msgctxt "RevocationList|" - msgid "Reason" - msgstr "Raison" - --#: ../widgets/RevocationList.cpp:74 -+#: ../widgets/RevocationList.cpp:76 - msgctxt "RevocationList|" - msgid "Invalidation" - msgstr "Invalidation" - --#: ../widgets/RevocationList.cpp:101 -+#: ../widgets/RevocationList.cpp:104 - msgctxt "RevocationList|" - msgid "Generate CRL" - msgstr "Générer la liste de révocation" -@@ -3193,186 +3208,276 @@ msgctxt "SelectToken|" - msgid "Please select the security token" - msgstr "SVP sélectionner le jeton de sécurité" - --#: ../widgets/TempTreeView.cpp:22 -+#: ../widgets/TempTreeView.cpp:23 - msgctxt "TempTreeView|" - msgid "Duplicate" - msgstr "Dupliquer" - --#: ../widgets/TempTreeView.cpp:23 -+#: ../widgets/TempTreeView.cpp:24 - msgctxt "TempTreeView|" - msgid "Create certificate" - msgstr "Créer un certificat" - --#: ../widgets/TempTreeView.cpp:24 -+#: ../widgets/TempTreeView.cpp:25 - msgctxt "TempTreeView|" - msgid "Create request" - msgstr "Créer une requête" - --#: ../widgets/TempTreeView.cpp:35 -+#: ../widgets/TempTreeView.cpp:34 - msgctxt "TempTreeView|" - msgid "copy" - msgstr "copier" - -+#: ../widgets/TempTreeView.cpp:82 -+msgctxt "TempTreeView|" -+msgid "Preset Template values" -+msgstr "Initialiser les valeurs du modèle" -+ - #: ../widgets/validity.cpp:94 - msgctxt "Validity|" - msgid "yyyy-MM-dd hh:mm" - msgstr "yyyy-MM-dd hh:mm" - --#: ../widgets/X509SuperTreeView.cpp:25 -+#: ../widgets/X509SuperTreeView.cpp:28 - msgctxt "X509SuperTreeView|" - msgid "OpenSSL config" - msgstr "Configuration OpenSSL" - --#: ../widgets/X509SuperTreeView.cpp:26 -+#: ../widgets/X509SuperTreeView.cpp:29 - msgctxt "X509SuperTreeView|" - msgid "Transform" - msgstr "Transformer" - --#: ../widgets/X509SuperTreeView.cpp:27 -+#: ../widgets/X509SuperTreeView.cpp:30 - msgctxt "X509SuperTreeView|" - msgid "Template" - msgstr "Modèle" - --#: ../widgets/X509SuperTreeView.cpp:28 -+#: ../widgets/X509SuperTreeView.cpp:31 - msgctxt "X509SuperTreeView|" - msgid "Public key" - msgstr "Clé publique" - --#: ../widgets/XcaTreeView.cpp:326 -+#: ../widgets/XcaTreeView.cpp:343 - msgctxt "XcaTreeView|" - msgid "Subject entries" - msgstr "Inscriptions du sujet" - --#: ../widgets/XcaTreeView.cpp:327 -+#: ../widgets/XcaTreeView.cpp:344 - msgctxt "XcaTreeView|" - msgid "X509v3 Extensions" - msgstr "Extensions X509v3" - --#: ../widgets/XcaTreeView.cpp:328 -+#: ../widgets/XcaTreeView.cpp:345 - msgctxt "XcaTreeView|" - msgid "Netscape extensions" - msgstr "Extensions Netscape" - --#: ../widgets/XcaTreeView.cpp:329 -+#: ../widgets/XcaTreeView.cpp:346 - msgctxt "XcaTreeView|" - msgid "Key properties" - msgstr "Propriétés de la clé" - --#: ../widgets/XcaTreeView.cpp:330 -+#: ../widgets/XcaTreeView.cpp:347 - msgctxt "XcaTreeView|" - msgid "Reset" - msgstr "Réinitialisation" - --#: ../widgets/XcaTreeView.cpp:333 -+#: ../widgets/XcaTreeView.cpp:350 - msgctxt "XcaTreeView|" - msgid "Hide Column" - msgstr "Cacher la colonne" - --#: ../widgets/XcaTreeView.cpp:335 -+#: ../widgets/XcaTreeView.cpp:352 - msgctxt "XcaTreeView|" - msgid "Details" - msgstr "Détails" - --#: ../widgets/XcaTreeView.cpp:378 -+#: ../widgets/XcaTreeView.cpp:395 - msgctxt "XcaTreeView|" - msgid "Columns" - msgstr "Colonnes" - --#: ../widgets/XcaTreeView.cpp:406 -+#: ../widgets/XcaTreeView.cpp:431 - msgctxt "XcaTreeView|" - msgid "New" - msgstr "Créer" - --#: ../widgets/XcaTreeView.cpp:407 -+#: ../widgets/XcaTreeView.cpp:432 - msgctxt "XcaTreeView|" - msgid "Import" - msgstr "Importer" - --#: ../widgets/XcaTreeView.cpp:408 -+#: ../widgets/XcaTreeView.cpp:433 - msgctxt "XcaTreeView|" - msgid "Paste PEM data" - msgstr "Coller les données en format PEM" - --#: ../widgets/XcaTreeView.cpp:412 -+#: ../widgets/XcaTreeView.cpp:437 - msgctxt "XcaTreeView|" - msgid "Rename" - msgstr "Renommer" - --#: ../widgets/XcaTreeView.cpp:413 -+#: ../widgets/XcaTreeView.cpp:438 - msgctxt "XcaTreeView|" - msgid "Properties" - msgstr "Propriétés" - --#: ../widgets/XcaTreeView.cpp:416 -+#: ../widgets/XcaTreeView.cpp:441 - msgctxt "XcaTreeView|" - msgid "Delete" - msgstr "Enlever" - --#: ../widgets/XcaTreeView.cpp:418 -+#: ../widgets/XcaTreeView.cpp:443 - msgctxt "XcaTreeView|" - msgid "Export" - msgstr "Exporter" - --#: ../widgets/XcaTreeView.cpp:419 -+#: ../widgets/XcaTreeView.cpp:444 - msgctxt "XcaTreeView|" - msgid "Clipboard" - msgstr "Presse-papier" - --#: ../widgets/XcaTreeView.cpp:421 -+#: ../widgets/XcaTreeView.cpp:446 - msgctxt "XcaTreeView|" - msgid "File" - msgstr "Fichier" - --#: ../lib/db_base.cpp:178 -+#: ../lib/database_model.cpp:125 -+#, qt-format -+msgctxt "database_model|" -+msgid "" -+"Legacy database format detected. Creating a backup copy called: '%1' and " -+"converting the database to the new format" -+msgstr "" -+"Format historique de base de données détecté. Une copie de sauvegarde " -+"appelée '%1' est créée et la base de données est convertie au nouveau format" -+ -+#: ../lib/database_model.cpp:134 -+msgctxt "database_model|" -+msgid "Failed to rename the database file, because the target already exists" -+msgstr "" -+"Le changement de nom du fichier de base de données a échoué parce qu'un " -+"autre fichier du même nom existe déjà" -+ -+#: ../lib/database_model.cpp:269 -+#, qt-format -+msgctxt "database_model|" -+msgid "" -+"Please enter the password to access the database server %2 as user '%1'." -+msgstr "" -+"SVP saisir le mot de passe de l'utilisateur '%1' sur le serveur de base de " -+"données %2." -+ -+#: ../lib/database_model.cpp:386 -+#, qt-format -+msgctxt "database_model|" -+msgid "Unable to create '%1': %2" -+msgstr "Impossible de créer '%1': %2" -+ -+#: ../lib/database_model.cpp:557 -+#, qt-format -+msgctxt "database_model|" -+msgid "The file '%1' is not an XCA database" -+msgstr "Le fichier '%1' n'est pas une base de données XCA" -+ -+#: ../lib/database_model.cpp:585 -+msgctxt "database_model|" -+msgid "" -+"No SqLite3 driver available. Please install the qt-sqlite package of your " -+"distribution" -+msgstr "" -+"Le pilote SqLite3 n'est pas disponible. SVP installez le paquetage qt-sqlite " -+"de votre distribution" -+ -+#: ../lib/database_model.cpp:626 -+msgctxt "database_model|" -+msgid "New Password" -+msgstr "Nouveau mot de passe" -+ -+#: ../lib/database_model.cpp:626 -+#, qt-format -+msgctxt "database_model|" -+msgid "" -+"Please enter a password, that will be used to encrypt your private keys in " -+"the database:\n" -+"%1" -+msgstr "" -+"Veuillez saisir un mot de passe, qui sera utilisé pour chiffrer vos clés " -+"privées dans la base de données:\n" -+"%1" -+ -+#: ../lib/database_model.cpp:646 -+msgctxt "database_model|" -+msgid "Password" -+msgstr "Mot de passe" -+ -+#: ../lib/database_model.cpp:647 -+#, qt-format -+msgctxt "database_model|" -+msgid "" -+"Please enter the password for unlocking the database:\n" -+"%1" -+msgstr "" -+"Veuillez entrer le mot passe pour déverrouiller la base de données:\n" -+"%1" -+ -+#: ../lib/db_base.cpp:170 - msgctxt "db_base|" - msgid "Internal name" - msgstr "Nom interne" - --#: ../lib/db_base.cpp:179 -+#: ../lib/db_base.cpp:171 - msgctxt "db_base|" - msgid "No." - msgstr "No." - --#: ../lib/db_base.cpp:180 -+#: ../lib/db_base.cpp:172 - msgctxt "db_base|" - msgid "Primary key" - msgstr "Clé primaire" - --#: ../lib/db_base.cpp:181 -+#: ../lib/db_base.cpp:173 - msgctxt "db_base|" - msgid "Database unique number" - msgstr "Numéro unique de la base de données" - --#: ../lib/db_base.cpp:182 -+#: ../lib/db_base.cpp:174 - msgctxt "db_base|" - msgid "Date" - msgstr "Date" - --#: ../lib/db_base.cpp:183 -+#: ../lib/db_base.cpp:175 - msgctxt "db_base|" - msgid "Date of creation or insertion" - msgstr "Date de création ou d'importation" - --#: ../lib/db_base.cpp:184 -+#: ../lib/db_base.cpp:176 - msgctxt "db_base|" - msgid "Source" - msgstr "Source" - --#: ../lib/db_base.cpp:185 -+#: ../lib/db_base.cpp:177 - msgctxt "db_base|" - msgid "Generated, Imported, Transformed" - msgstr "Généré, Importé, Transformé" - --#: ../lib/db_base.cpp:186 -+#: ../lib/db_base.cpp:178 - msgctxt "db_base|" - msgid "Comment" - msgstr "Commentaire" - --#: ../lib/db_base.cpp:187 -+#: ../lib/db_base.cpp:179 - msgctxt "db_base|" - msgid "First line of the comment field" - msgstr "Première ligne du champ de commentaire" - -+#: ../lib/db_base.cpp:241 -+#, qt-format -+msgctxt "db_base|" -+msgid "Import from: %1" -+msgstr "Importer à partir de: %1" -+ - #: ../lib/db_base.cpp:392 - #, qt-format - msgctxt "db_base|" -@@ -3411,42 +3516,42 @@ msgctxt "db_base|" - msgid "PEM files ( *.pem );; All files ( * )" - msgstr "Fichiers PEM ( *.pem );; Tous les fichiers ( * )" - --#: ../lib/db_crl.cpp:34 -+#: ../lib/db_crl.cpp:30 - msgctxt "db_crl|" - msgid "Signer" - msgstr "Signataire" - --#: ../lib/db_crl.cpp:35 -+#: ../lib/db_crl.cpp:31 - msgctxt "db_crl|" - msgid "Internal name of the signer" - msgstr "Nom interne du signataire" - --#: ../lib/db_crl.cpp:36 -+#: ../lib/db_crl.cpp:32 - msgctxt "db_crl|" - msgid "No. revoked" - msgstr "Numéro révoqué" - --#: ../lib/db_crl.cpp:37 -+#: ../lib/db_crl.cpp:33 - msgctxt "db_crl|" - msgid "Number of revoked certificates" - msgstr "Nombre de certificats révoqués" - --#: ../lib/db_crl.cpp:38 -+#: ../lib/db_crl.cpp:34 - msgctxt "db_crl|" - msgid "Last update" - msgstr "Dernière mise-à-jour" - --#: ../lib/db_crl.cpp:39 -+#: ../lib/db_crl.cpp:35 - msgctxt "db_crl|" - msgid "Next update" - msgstr "Prochaine mise-à-jour" - --#: ../lib/db_crl.cpp:40 -+#: ../lib/db_crl.cpp:36 - msgctxt "db_crl|" - msgid "CRL number" - msgstr "Numéro de la liste de révocation" - --#: ../lib/db_crl.cpp:106 -+#: ../lib/db_crl.cpp:105 - #, qt-format - msgctxt "db_crl|" - msgid "" -@@ -3458,68 +3563,53 @@ msgstr "" - "'%1'\n" - "En conséquence, elle n'a pas été importée" - --#: ../lib/db_crl.cpp:161 -+#: ../lib/db_crl.cpp:130 - msgctxt "db_crl|" - msgid "Revocation list export" - msgstr "Exportation d'une liste de révocation" - --#: ../lib/db_crl.cpp:162 -+#: ../lib/db_crl.cpp:131 - msgctxt "db_crl|" - msgid "CRL ( *.pem *.der *.crl )" - msgstr "Listes de révocation ( *.pem *.der *.crl )" - --#: ../lib/db_crl.cpp:228 --msgctxt "db_crl|" --msgid "There are no CA certificates for CRL generation" --msgstr "Il n'y a pas de certificat CA pour la génération de la CRL" -- --#: ../lib/db_crl.cpp:236 --msgctxt "db_crl|" --msgid "Select CA certificate" --msgstr "Sélectionner un certificat d'autorité" -- --#: ../lib/db_crl.cpp:257 --msgctxt "db_crl|" --msgid "Create CRL" --msgstr "Créer une liste de révocation" -- --#: ../lib/db_crl.cpp:301 -+#: ../lib/db_crl.cpp:194 - msgctxt "db_crl|" - msgid "Failed to initiate DB transaction" - msgstr "Impossible de démarrer la transaction BDD" - --#: ../lib/db_crl.cpp:311 ../lib/db_crl.cpp:319 ../lib/db_crl.cpp:323 -+#: ../lib/db_crl.cpp:204 ../lib/db_crl.cpp:212 ../lib/db_crl.cpp:216 - #, qt-format - msgctxt "db_crl|" - msgid "Database error: %1" - msgstr "Erreur de la base de données: %1" - --#: ../lib/db_key.cpp:65 -+#: ../lib/db_key.cpp:58 - msgctxt "db_key|" - msgid "Type" - msgstr "Type" - --#: ../lib/db_key.cpp:66 -+#: ../lib/db_key.cpp:59 - msgctxt "db_key|" - msgid "Size" - msgstr "Taille" - --#: ../lib/db_key.cpp:68 -+#: ../lib/db_key.cpp:61 - msgctxt "db_key|" - msgid "EC Group" - msgstr "Groupe EC" - --#: ../lib/db_key.cpp:70 -+#: ../lib/db_key.cpp:63 - msgctxt "db_key|" - msgid "Use" - msgstr "Usage" - --#: ../lib/db_key.cpp:71 -+#: ../lib/db_key.cpp:64 - msgctxt "db_key|" - msgid "Password" - msgstr "Mot de passe" - --#: ../lib/db_key.cpp:143 -+#: ../lib/db_key.cpp:138 - #, qt-format - msgctxt "db_key|" - msgid "" -@@ -3531,7 +3621,7 @@ msgstr "" - "'%1'\n" - "En conséquence, elle ne va pas être importée" - --#: ../lib/db_key.cpp:148 -+#: ../lib/db_key.cpp:143 - #, qt-format - msgctxt "db_key|" - msgid "" -@@ -3545,207 +3635,197 @@ msgstr "" - "En conséquence, cette dernière sera complétée par la partie privée de la clé " - "importée" - --#: ../lib/db_key.cpp:150 -+#: ../lib/db_key.cpp:145 - #, qt-format - msgctxt "db_key|" - msgid "Extending public key from %1 by imported key '%2'" - msgstr "Extension de la clé publique de %1 par la clé importée '%2'" - --#: ../lib/db_key.cpp:185 -+#: ../lib/db_key.cpp:163 - msgctxt "db_key|" - msgid "Key size too small !" - msgstr "Taille de clé trop petite !" - --#: ../lib/db_key.cpp:190 -+#: ../lib/db_key.cpp:167 - #, qt-format - msgctxt "db_key|" - msgid "You are sure to create a key of the size: %1 ?" - msgstr "Etes-vous sûr de vouloir créer une clé de taille %1 ?" - --#: ../lib/db_key.cpp:272 ../lib/db_key.cpp:316 -+#: ../lib/db_key.cpp:217 ../lib/db_key.cpp:268 - msgctxt "db_key|" - msgid "PEM public" - msgstr "clé publique PEM" - --#: ../lib/db_key.cpp:275 ../lib/db_key.cpp:321 -+#: ../lib/db_key.cpp:220 ../lib/db_key.cpp:273 - msgctxt "db_key|" - msgid "SSH2 public" - msgstr "Clé publique SSH2" - --#: ../lib/db_key.cpp:278 ../lib/db_key.cpp:340 -+#: ../lib/db_key.cpp:223 ../lib/db_key.cpp:293 - msgctxt "db_key|" - msgid "PEM private" - msgstr "Clé privée PEM" - --#: ../lib/db_key.cpp:283 -+#: ../lib/db_key.cpp:228 ../lib/db_key.cpp:298 -+msgctxt "db_key|" -+msgid "SSH2 private" -+msgstr "Clé privée SSH2" -+ -+#: ../lib/db_key.cpp:231 - msgctxt "db_key|" - msgid "Export keys to Clipboard" - msgstr "Exporter les clés vers le presse-papier" - --#: ../lib/db_key.cpp:286 -+#: ../lib/db_key.cpp:234 - msgctxt "db_key|" - msgid "Clipboard" - msgstr "Presse-papier" - --#: ../lib/db_key.cpp:299 -+#: ../lib/db_key.cpp:247 - #, qt-format - msgctxt "db_key|" - msgid "Export public key [%1]" - msgstr "Exporter la clé publique [%1]" - --#: ../lib/db_key.cpp:317 -+#: ../lib/db_key.cpp:269 - msgctxt "db_key|" - msgid "DER public" - msgstr "Clé publique DER" - --#: ../lib/db_key.cpp:326 -+#: ../lib/db_key.cpp:281 - msgctxt "db_key|" - msgid "DER private" - msgstr "Clé privée DER" - --#: ../lib/db_key.cpp:328 -+#: ../lib/db_key.cpp:278 - msgctxt "db_key|" - msgid "PEM encryped" - msgstr "Chiffrée en PEM" - --#: ../lib/db_key.cpp:334 -+#: ../lib/db_key.cpp:287 - msgctxt "db_key|" - msgid "PVK private" - msgstr "Clé privée PVK" - --#: ../lib/db_key.cpp:336 -+#: ../lib/db_key.cpp:289 - msgctxt "db_key|" - msgid "PVK encrypted" - msgstr "Chiffrée en PVK" - --#: ../lib/db_key.cpp:342 -+#: ../lib/db_key.cpp:295 - msgctxt "db_key|" - msgid "PKCS#8 encrypted" - msgstr "Chiffrée en PKCS#8" - --#: ../lib/db_key.cpp:343 -+#: ../lib/db_key.cpp:299 - #, qt-format - msgctxt "db_key|" - msgid "Export private key [%1]" - msgstr "Exporter la clé privée [%1]" - --#: ../lib/db_key.cpp:348 -+#: ../lib/db_key.cpp:304 - msgctxt "db_key|" - msgid "Private Keys ( *.pem *.der *.pk8 );; SSH Public Keys ( *.pub )" - msgstr "Clés privées ( *.pem *.der *.pk8 );; Clé publiques SSH ( *.pub )" - --#: ../lib/db_key.cpp:405 -+#: ../lib/db_key.cpp:364 - msgctxt "db_key|" - msgid "Internal error" - msgstr "Erreur interne" - --#: ../lib/db_key.cpp:424 -+#: ../lib/db_key.cpp:382 - msgctxt "db_key|" - msgid "Tried to change password of a token" - msgstr "Tentative de changement de mot de passe d'un jeton de sécurité" - --#: ../lib/db_temp.cpp:54 -+#: ../lib/db_temp.cpp:50 - #, qt-format - msgctxt "db_temp|" - msgid "Bad template: %1" - msgstr "Mauvais modèle: %1" - --#: ../lib/db_temp.cpp:38 -+#: ../lib/db_temp.cpp:34 - msgctxt "db_temp|" - msgid "Empty template" - msgstr "Modèle vide" - --#: ../lib/db_temp.cpp:99 --msgctxt "db_temp|" --msgid "Preset Template values" --msgstr "Initaliser les valeurs du modèle" -- --#: ../lib/db_temp.cpp:137 -+#: ../lib/db_temp.cpp:112 - msgctxt "db_temp|" - msgid "Save template as" - msgstr "Enregistrer le modèle sous" - --#: ../lib/db_temp.cpp:138 -+#: ../lib/db_temp.cpp:113 - msgctxt "db_temp|" - msgid "XCA templates ( *.xca );; All files ( * )" - msgstr "Modèles XCA ( *.xca);; Tous les fichiers ( * )" - --#: ../lib/db_x509.cpp:67 -+#: ../lib/db_x509.cpp:71 - msgctxt "db_x509|" - msgid "CA" - msgstr "CA" - --#: ../lib/db_x509.cpp:68 -+#: ../lib/db_x509.cpp:72 - msgctxt "db_x509|" - msgid "reflects the basic Constraints extension" - msgstr "reflète l'extension des contraintes basiques" - --#: ../lib/db_x509.cpp:69 -+#: ../lib/db_x509.cpp:73 - msgctxt "db_x509|" - msgid "Serial" - msgstr "Numéro de série" - --#: ../lib/db_x509.cpp:73 -+#: ../lib/db_x509.cpp:77 - msgctxt "db_x509|" - msgid "Start date" - msgstr "Date de début" - --#: ../lib/db_x509.cpp:75 -+#: ../lib/db_x509.cpp:79 - msgctxt "db_x509|" - msgid "Expiry date" - msgstr "Date d'expiration" - --#: ../lib/db_x509.cpp:70 -+#: ../lib/db_x509.cpp:74 - msgctxt "db_x509|" - msgid "MD5 fingerprint" - msgstr "Empreinte MD5" - --#: ../lib/db_x509.cpp:71 -+#: ../lib/db_x509.cpp:75 - msgctxt "db_x509|" - msgid "SHA1 fingerprint" - msgstr "Empreinte SHA1" - --#: ../lib/db_x509.cpp:72 -+#: ../lib/db_x509.cpp:76 - msgctxt "db_x509|" - msgid "SHA256 fingerprint" - msgstr "Empreinte SHA256" - --#: ../lib/db_x509.cpp:74 -+#: ../lib/db_x509.cpp:78 - msgctxt "db_x509|" - msgid "Not before" - msgstr "Pas avant" - --#: ../lib/db_x509.cpp:76 -+#: ../lib/db_x509.cpp:80 - msgctxt "db_x509|" - msgid "Not after" - msgstr "Pas après" - --#: ../lib/db_x509.cpp:77 -+#: ../lib/db_x509.cpp:81 - msgctxt "db_x509|" - msgid "Revocation" - msgstr "Révocation" - --#: ../lib/db_x509.cpp:78 -+#: ../lib/db_x509.cpp:82 - msgctxt "db_x509|" - msgid "CRL Expiration" - msgstr "Expiration de la CRL" - --#: ../lib/db_x509.cpp:152 --msgctxt "db_x509|" --msgid "Plain View" --msgstr "Vue à plat" -- --#: ../lib/db_x509.cpp:154 --msgctxt "db_x509|" --msgid "Tree View" --msgstr "Vue arborescente" -- --#: ../lib/db_x509.cpp:334 -+#: ../lib/db_x509.cpp:301 - msgctxt "db_x509|" - msgid "Failed to retrieve unique random serial" - msgstr "L'extraction d'un numéro de série aléatoire a échoué" - --#: ../lib/db_x509.cpp:357 -+#: ../lib/db_x509.cpp:324 - #, qt-format - msgctxt "db_x509|" - msgid "" -@@ -3757,177 +3837,183 @@ msgstr "" - "'%1'\n" - "En conséquence, il n'a pas été importé" - --#: ../lib/db_x509.cpp:401 -+#: ../lib/db_x509.cpp:366 - #, qt-format - msgctxt "db_x509|" - msgid "Signed on %1 by '%2'" - msgstr "Signé le %1 par '%2'" - --#: ../lib/db_x509.cpp:402 -+#: ../lib/db_x509.cpp:367 - msgctxt "db_x509|" - msgid "Unknown" - msgstr "Inconnu" - --#: ../lib/db_x509.cpp:494 -+#: ../lib/db_x509.cpp:455 - msgctxt "db_x509|" - msgid "Invalid public key" - msgstr "Clé publique invalide" - --#: ../lib/db_x509.cpp:652 -+#: ../lib/db_x509.cpp:611 - msgctxt "db_x509|" - msgid "PKCS#7 unrevoked" - msgstr "PKCS#7 non-révoqué" - --#: ../lib/db_x509.cpp:656 -+#: ../lib/db_x509.cpp:615 - msgctxt "db_x509|" - msgid "PEM unrevoked" - msgstr "PEM non-révoqué" - --#: ../lib/db_x509.cpp:663 -+#: ../lib/db_x509.cpp:622 - msgctxt "db_x509|" - msgid "vCalendar" - msgstr "message vCalendar" - --#: ../lib/db_x509.cpp:667 -+#: ../lib/db_x509.cpp:626 - msgctxt "db_x509|" - msgid "CA vCalendar" - msgstr "message vCalendar pour le CA" - --#: ../lib/db_x509.cpp:1092 -+#: ../lib/db_x509.cpp:630 -+msgctxt "db_x509|" -+msgid "X509 Certificates ( *.pem *.cer *.crt *.p12 *.pfx *.p7b )" -+msgstr "Certificats X509 ( *.pem *.cer *.crt *.p12 *.pfx *.p7b)" -+ -+#: ../lib/db_x509.cpp:1045 - msgctxt "db_x509|" - msgid "days" - msgstr " jours" - --#: ../lib/db_x509.cpp:1101 -+#: ../lib/db_x509.cpp:1054 - msgctxt "db_x509|" - msgid "No template" - msgstr "Pas de modèle" - --#: ../lib/db_x509.cpp:520 -+#: ../lib/db_x509.cpp:481 - msgctxt "db_x509|" - msgid "The key you selected for signing is not a private one." - msgstr "La clé sélectionnée pour la signature n'est pas une clé privée." - --#: ../lib/db_x509.cpp:562 -+#: ../lib/db_x509.cpp:253 -+#, qt-format -+msgctxt "db_x509|" -+msgid "Failed to create directory '%1'" -+msgstr "Impossible de créer le répertoire %1" -+ -+#: ../lib/db_x509.cpp:523 - #, qt-format - msgctxt "db_x509|" - msgid "Store the certificate to the key on the token '%1 (#%2)' ?" - msgstr "Enregistrer le certificate avec la clé sur le jeton '%1 (#%2)' ?" - --#: ../lib/db_x509.cpp:629 -+#: ../lib/db_x509.cpp:588 - msgctxt "db_x509|" - msgid "PEM chain" - msgstr "Chaîne en PEM" - --#: ../lib/db_x509.cpp:631 -+#: ../lib/db_x509.cpp:590 - msgctxt "db_x509|" - msgid "PKCS#7 chain" - msgstr "Chaîne PKCS#7" - --#: ../lib/db_x509.cpp:637 -+#: ../lib/db_x509.cpp:596 - msgctxt "db_x509|" - msgid "PKCS#12 chain" - msgstr "Chaîne PKCS#12" - --#: ../lib/db_x509.cpp:654 -+#: ../lib/db_x509.cpp:613 - msgctxt "db_x509|" - msgid "PKCS#7 all" - msgstr "Tous les certificats en PKCS#7" - --#: ../lib/db_x509.cpp:646 -+#: ../lib/db_x509.cpp:605 - msgctxt "db_x509|" - msgid "PEM + key" - msgstr "PEM + clé" - --#: ../lib/db_x509.cpp:658 -+#: ../lib/db_x509.cpp:617 - msgctxt "db_x509|" - msgid "PEM all" - msgstr "Tous les certificats en PEM" - --#: ../lib/db_x509.cpp:660 -+#: ../lib/db_x509.cpp:619 - msgctxt "db_x509|" - msgid "Certificate Index file" - msgstr "Ficher d'index des certificats" - --#: ../lib/db_x509.cpp:670 -+#: ../lib/db_x509.cpp:629 - msgctxt "db_x509|" - msgid "Certificate export" - msgstr "Exportation de certificat" - --#: ../lib/db_x509.cpp:671 --msgctxt "db_x509|" --msgid "X509 Certificates ( *.pem *.cer *.crt *.p12 *.p7b )" --msgstr "Certificats X509 ( *.pem *.cer *.crt *.p12 *.p7b)" -- --#: ../lib/db_x509.cpp:735 ../lib/db_x509.cpp:801 -+#: ../lib/db_x509.cpp:694 ../lib/db_x509.cpp:764 - #, qt-format - msgctxt "db_x509|" - msgid "There was no key found for the Certificate: '%1'" - msgstr "Aucune clé n'a été trouvée pour le Certificat. '%1'" - --#: ../lib/db_x509.cpp:740 -+#: ../lib/db_x509.cpp:699 - #, qt-format - msgctxt "db_x509|" - msgid "Not possible for a token key: '%1'" - msgstr "Impossible pour une clé d'un jeton de sécurité: '%1'" - --#: ../lib/db_x509.cpp:805 -+#: ../lib/db_x509.cpp:768 - #, qt-format - msgctxt "db_x509|" - msgid "Not possible for the token-key Certificate '%1'" - msgstr "Impossible pour le certificat d'une clé d'un jeton de sécurité: '%1'" - --#: ../lib/db_x509super.cpp:25 -+#: ../lib/db_x509super.cpp:30 - msgctxt "db_x509name|" - msgid "Subject" - msgstr "Sujet" - --#: ../lib/db_x509super.cpp:26 -+#: ../lib/db_x509super.cpp:31 - msgctxt "db_x509name|" - msgid "Complete distinguished name" - msgstr "Nom distinctif complet" - --#: ../lib/db_x509super.cpp:27 -+#: ../lib/db_x509super.cpp:32 - msgctxt "db_x509name|" - msgid "Subject hash" - msgstr "Hachage du sujet" - --#: ../lib/db_x509super.cpp:28 -+#: ../lib/db_x509super.cpp:33 - msgctxt "db_x509name|" - msgid "Hash to lookup certs in directories" - msgstr "Hachage de recherche dans un dossier" - --#: ../lib/db_x509req.cpp:31 -+#: ../lib/db_x509req.cpp:28 - msgctxt "db_x509req|" - msgid "Signed" - msgstr "Signée" - --#: ../lib/db_x509req.cpp:32 -+#: ../lib/db_x509req.cpp:29 - msgctxt "db_x509req|" - msgid "whether the request is already signed or not" - msgstr "si la requête a déjà été signée ou non" - --#: ../lib/db_x509req.cpp:33 -+#: ../lib/db_x509req.cpp:30 - msgctxt "db_x509req|" - msgid "Unstructured name" - msgstr "Nom non-structuré" - --#: ../lib/db_x509req.cpp:35 -+#: ../lib/db_x509req.cpp:32 - msgctxt "db_x509req|" - msgid "Challenge password" - msgstr "Mot de passe challenge" - --#: ../lib/db_x509req.cpp:37 -+#: ../lib/db_x509req.cpp:34 - msgctxt "db_x509req|" - msgid "Certificate count" - msgstr "Nombre de certificats" - --#: ../lib/db_x509req.cpp:38 -+#: ../lib/db_x509req.cpp:35 - msgctxt "db_x509req|" - msgid "Number of certificates in the database with the same public key" - msgstr "Nombre de certificats dans la base de données avec la même clé" - --#: ../lib/db_x509req.cpp:55 -+#: ../lib/db_x509req.cpp:52 - #, qt-format - msgctxt "db_x509req|" - msgid "" -@@ -3939,78 +4025,78 @@ msgstr "" - "'%1'\n" - "En conséquence, elle n'a pas été chargée" - --#: ../lib/db_x509req.cpp:132 -+#: ../lib/db_x509req.cpp:119 - msgctxt "db_x509req|" - msgid "Certificate request export" - msgstr "Exporter la requête de signature" - --#: ../lib/db_x509req.cpp:133 -+#: ../lib/db_x509req.cpp:120 - msgctxt "db_x509req|" - msgid "Certificate request ( *.pem *.der *.csr )" - msgstr "Requête de signature de certificat ( *.pem *.der *.csr )" - --#: ../lib/db_x509super.cpp:79 -+#: ../lib/db_x509super.cpp:81 - msgctxt "db_x509super|" - msgid "Key name" - msgstr "Nom de la clé" - --#: ../lib/db_x509super.cpp:80 -+#: ../lib/db_x509super.cpp:82 - msgctxt "db_x509super|" - msgid "Internal name of the key" - msgstr "Nom interne de la clé" - --#: ../lib/db_x509super.cpp:82 -+#: ../lib/db_x509super.cpp:84 - msgctxt "db_x509super|" - msgid "Signature algorithm" - msgstr "Algorithme de signature" - --#: ../lib/db_x509super.cpp:83 -+#: ../lib/db_x509super.cpp:85 - msgctxt "db_x509super|" - msgid "Key type" - msgstr "Type de clé" - --#: ../lib/db_x509super.cpp:84 -+#: ../lib/db_x509super.cpp:86 - msgctxt "db_x509super|" - msgid "Key size" - msgstr "Taille de la clé" - --#: ../lib/db_x509super.cpp:86 -+#: ../lib/db_x509super.cpp:88 - msgctxt "db_x509super|" - msgid "EC Group" - msgstr "Groupe EC" - --#: ../lib/db_x509super.cpp:140 -+#: ../lib/db_x509super.cpp:142 - #, qt-format - msgctxt "db_x509super|" - msgid "Extracted from %1 '%2'" - msgstr "Extrait de %1 '%2'" - --#: ../lib/db_x509super.cpp:142 ../lib/db_x509super.cpp:193 -+#: ../lib/db_x509super.cpp:144 ../lib/db_x509super.cpp:196 - msgctxt "db_x509super|" - msgid "Certificate" - msgstr "Certificat" - --#: ../lib/db_x509super.cpp:142 ../lib/db_x509super.cpp:193 -+#: ../lib/db_x509super.cpp:144 ../lib/db_x509super.cpp:196 - msgctxt "db_x509super|" - msgid "Certificate request" - msgstr "Requête de certificat" - --#: ../lib/db_x509super.cpp:157 -+#: ../lib/db_x509super.cpp:159 - msgctxt "db_x509super|" - msgid "Save as OpenSSL config" - msgstr "Enregistrer en format de configuration OpenSSL" - --#: ../lib/db_x509super.cpp:158 -+#: ../lib/db_x509super.cpp:160 - msgctxt "db_x509super|" - msgid "Config files ( *.conf *.cnf);; All files ( * )" - msgstr "Fichiers de configuration (*.conf *.cnf);; Tous les fichiers ( * )" - --#: ../lib/db_x509super.cpp:180 -+#: ../lib/db_x509super.cpp:183 - msgctxt "db_x509super|" - msgid "The following extensions were not ported into the template" - msgstr "Les extensions suivantes n'ont pas été enregistrées dans le modèle" - --#: ../lib/db_x509super.cpp:191 -+#: ../lib/db_x509super.cpp:194 - #, qt-format - msgctxt "db_x509super|" - msgid "Transformed from %1 '%2'" -@@ -4026,52 +4112,58 @@ msgctxt "kvView|" - msgid "Content" - msgstr "Contenu" - --#: ../lib/pass_info.cpp:20 -+#: ../lib/pass_info.cpp:15 - msgctxt "pass_info|" - msgid "Password" - msgstr "Mot de passe" - --#: ../lib/pass_info.cpp:26 -+#: ../lib/pass_info.cpp:22 - msgctxt "pass_info|" - msgid "PIN" - msgstr "NIP" - --#: ../lib/pki_base.cpp:284 -+#: ../lib/pki_base.cpp:289 - msgctxt "pki_base|" - msgid "Unknown" - msgstr "Inconnu" - --#: ../lib/pki_base.cpp:285 -+#: ../lib/pki_base.cpp:290 - msgctxt "pki_base|" - msgid "Imported" - msgstr "Importé" - --#: ../lib/pki_base.cpp:286 -+#: ../lib/pki_base.cpp:291 - msgctxt "pki_base|" - msgid "Generated" - msgstr "Généré" - --#: ../lib/pki_base.cpp:287 -+#: ../lib/pki_base.cpp:292 - msgctxt "pki_base|" - msgid "Transformed" - msgstr "Transformé" - --#: ../lib/pki_base.cpp:288 -+#: ../lib/pki_base.cpp:293 - msgctxt "pki_base|" - msgid "Token" - msgstr "Jeton" - --#: ../lib/pki_base.cpp:289 -+#: ../lib/pki_base.cpp:294 - msgctxt "pki_base|" - msgid "Legacy Database" - msgstr "Base de données antérieure" - --#: ../lib/pki_base.cpp:290 -+#: ../lib/pki_base.cpp:295 - msgctxt "pki_base|" - msgid "Renewed" - msgstr "Renouvelé" - --#: ../lib/pki_base.cpp:101 -+#: ../lib/pki_base.cpp:430 -+#, qt-format -+msgctxt "pki_base|" -+msgid "Property '%1' not listed in 'pki_base::print'" -+msgstr "Propriété '%1' non listée dans 'pki_base::print'" -+ -+#: ../lib/pki_base.cpp:125 - #, qt-format - msgctxt "pki_base|" - msgid "Internal error: Unexpected message: %1 %2" -@@ -4122,13 +4214,13 @@ msgctxt "pki_crl|" - msgid "Wrong Size %1" - msgstr "Taille fausse %1" - --#: ../lib/pki_crl.cpp:438 -+#: ../lib/pki_crl.cpp:434 - #, qt-format - msgctxt "pki_crl|" - msgid "CRL Renewal of CA '%1' due" - msgstr "Le renouvellement de la liste de révocation du CA '%1' est nécessaire" - --#: ../lib/pki_crl.cpp:439 -+#: ../lib/pki_crl.cpp:435 - #, qt-format - msgctxt "pki_crl|" - msgid "" -@@ -4138,13 +4230,13 @@ msgstr "" - "La dernière liste de révocation générée par le CA '%1' expirera le %2.\n" - "Elle est stockée dans la base de données XCA '%3'" - --#: ../lib/pki_crl.cpp:447 -+#: ../lib/pki_crl.cpp:443 - #, qt-format - msgctxt "pki_crl|" - msgid "Renew CRL: %1" - msgstr "Renouvellement de CRL: %1" - --#: ../lib/pki_crl.cpp:448 -+#: ../lib/pki_crl.cpp:444 - #, qt-format - msgctxt "pki_crl|" - msgid "" -@@ -4154,24 +4246,19 @@ msgstr "" - "La liste de révocation XCA '%1', émise le %3 expirera le %4.\n" - "Elle est stockée dans la base de données XCA '%5'" - --#: ../lib/pki_evp.cpp:238 -+#: ../lib/pki_evp.cpp:260 - #, qt-format - msgctxt "pki_evp|" --msgid "Failed to decrypt the key (bad password) %1" --msgstr "Le déchiffrage de la clé a échoué (mauvais mot de passe) %1" -- --#: ../lib/pki_evp.cpp:248 --msgctxt "pki_evp|" --msgid "Please enter the password to decrypt the private key." --msgstr "SVP saisir le mot de passe pour déchiffrer la clé privée" -+msgid "Please enter the password to decrypt the private key %1." -+msgstr "SVP saisir le mot de passe pour déchiffrer la clé privée %1," - --#: ../lib/pki_evp.cpp:305 -+#: ../lib/pki_evp.cpp:327 - #, qt-format - msgctxt "pki_evp|" - msgid "The key from file '%1' is incomplete or inconsistent." - msgstr "La clé dans le fichier '%1' est incomplète ou incorrecte." - --#: ../lib/pki_evp.cpp:321 -+#: ../lib/pki_evp.cpp:416 - #, qt-format - msgctxt "pki_evp|" - msgid "" -@@ -4181,7 +4268,7 @@ msgstr "" - "SVP saisir le mot de passe pour déchiffrer la clé privée du fichier:\n" - "%1" - --#: ../lib/pki_evp.cpp:383 -+#: ../lib/pki_evp.cpp:493 - #, qt-format - msgctxt "pki_evp|" - msgid "" -@@ -4192,148 +4279,148 @@ msgstr "" - "ainsi que les types de clés privé, public, PKCS#8 et le format SSH2 ont été " - "essayés." - --#: ../lib/pki_evp.cpp:414 -+#: ../lib/pki_evp.cpp:524 - msgctxt "pki_evp|" - msgid "Ignoring unsupported private key" - msgstr "Clé privée non-supportée: ignorée" - --#: ../lib/pki_evp.cpp:431 -+#: ../lib/pki_evp.cpp:541 - #, qt-format - msgctxt "pki_evp|" - msgid "Please enter the password to decrypt the private key: '%1'" - msgstr "SVP saisir le mot de passe pour déchiffrer la clé privée: '%1'" - --#: ../lib/pki_evp.cpp:434 ../lib/pki_evp.cpp:448 -+#: ../lib/pki_evp.cpp:544 ../lib/pki_evp.cpp:558 - msgctxt "pki_evp|" - msgid "Password input aborted" - msgstr "Saisie du mot de passe abandonnée" - --#: ../lib/pki_evp.cpp:444 -+#: ../lib/pki_evp.cpp:554 - #, qt-format - msgctxt "pki_evp|" - msgid "Please enter the database password for decrypting the key '%1'" - msgstr "" - "SVP saisir le mot de passe de la base de données pour déchiffrer la clé '%1'" - --#: ../lib/pki_evp.cpp:561 -+#: ../lib/pki_evp.cpp:659 - #, qt-format - msgctxt "pki_evp|" - msgid "Please enter the password to protect the private key: '%1'" - msgstr "SVP saisir le mot de passe pour protéger la clé privée: '%1'" - --#: ../lib/pki_evp.cpp:579 -+#: ../lib/pki_evp.cpp:677 - msgctxt "pki_evp|" - msgid "Please enter the database password for encrypting the key" - msgstr "SVP saisir le mot de passe de la base de données pour chiffrer la clé" - --#: ../lib/pki_evp.cpp:694 -+#: ../lib/pki_evp.cpp:789 - #, qt-format - msgctxt "pki_evp|" - msgid "Please enter the password protecting the PKCS#8 key '%1'" - msgstr "SVP saisir le mot de passe protégeant la clé en PKCS#8 '%1'" - --#: ../lib/pki_evp.cpp:713 -+#: ../lib/pki_evp.cpp:808 - #, qt-format - msgctxt "pki_evp|" - msgid "Please enter the password protecting the Microsoft PVK key '%1'" - msgstr "" - "SVP saisir le mot de passe protégeant la clé en format Microsoft PVK '%1'" - --#: ../lib/pki_evp.cpp:776 -+#: ../lib/pki_evp.cpp:863 - #, qt-format - msgctxt "pki_evp|" - msgid "Please enter the export password for the private key '%1'" - msgstr "SVP saisir le mot de passe d'exportation pour la clé privée '%1'" - --#: ../lib/pki_key.cpp:203 -+#: ../lib/pki_key.cpp:238 - #, qt-format - msgctxt "pki_key|" - msgid "Successfully imported the %1 public key '%2'" - msgstr "La clé publique %1 '%2' a été importée avec succès" - --#: ../lib/pki_key.cpp:204 -+#: ../lib/pki_key.cpp:239 - #, qt-format - msgctxt "pki_key|" - msgid "Delete the %1 public key '%2'?" - msgstr "Détruire la clé publique %1 '%2' ?" - --#: ../lib/pki_key.cpp:209 -+#: ../lib/pki_key.cpp:244 - #, qt-format - msgctxt "pki_key|" - msgid "Successfully imported the %1 private key '%2'" - msgstr "La clé privée %1 '%2' a été importée avec succès" - --#: ../lib/pki_key.cpp:210 -+#: ../lib/pki_key.cpp:245 - #, qt-format - msgctxt "pki_key|" - msgid "Delete the %1 private key '%2'?" - msgstr "Détruire la clé privée %1 '%2' ?" - --#: ../lib/pki_key.cpp:211 -+#: ../lib/pki_key.cpp:246 - #, qt-format - msgctxt "pki_key|" - msgid "Successfully created the %1 private key '%2'" - msgstr "La clé privée %1 '%2' a été créée avec succès" - --#: ../lib/pki_key.cpp:217 -+#: ../lib/pki_key.cpp:252 - #, qt-format - msgctxt "pki_key|" - msgid "Delete the %1 keys: %2?" - msgstr "Détruire les %1 clés: %2?" - --#: ../lib/pki_key.cpp:59 ../lib/pki_key.cpp:226 -+#: ../lib/pki_key.cpp:60 ../lib/pki_key.cpp:261 ../lib/pki_key.cpp:938 - msgctxt "pki_key|" - msgid "Public key" - msgstr "Clé publique" - --#: ../lib/pki_key.cpp:427 -+#: ../lib/pki_key.cpp:499 - msgctxt "pki_key|" - msgid "Common" - msgstr "Global" - --#: ../lib/pki_key.cpp:427 -+#: ../lib/pki_key.cpp:499 - msgctxt "pki_key|" - msgid "Private" - msgstr "Privé" - --#: ../lib/pki_key.cpp:427 -+#: ../lib/pki_key.cpp:499 - msgctxt "pki_key|" - msgid "Bogus" - msgstr "Erroné" - --#: ../lib/pki_key.cpp:427 -+#: ../lib/pki_key.cpp:499 - msgctxt "pki_key|" - msgid "PIN" - msgstr "NIP" - --#: ../lib/pki_key.cpp:437 -+#: ../lib/pki_key.cpp:509 - msgctxt "pki_key|" - msgid "No password" - msgstr "Pas de mot de passe" - --#: ../lib/pki_key.cpp:533 ../lib/pki_key.cpp:627 -+#: ../lib/pki_key.cpp:606 ../lib/pki_key.cpp:712 - #, qt-format - msgctxt "pki_key|" - msgid "Unexpected SSH2 content: '%1'" - msgstr "Contenu SSH2 inattendu: '%1'" - --#: ../lib/pki_key.cpp:553 ../lib/pki_key.cpp:559 -+#: ../lib/pki_key.cpp:626 ../lib/pki_key.cpp:632 - msgctxt "pki_key|" - msgid "Invalid SSH2 public key" - msgstr "Clé publique SSH2 invalide" - --#: ../lib/pki_key.cpp:735 -+#: ../lib/pki_key.cpp:830 - #, qt-format - msgctxt "pki_key|" - msgid "Failed writing to %1" - msgstr "Echec d'écriture sur %1" - --#: ../lib/pki_multi.cpp:125 -+#: ../lib/pki_multi.cpp:131 - msgctxt "pki_multi|" - msgid "No known PEM encoded items found" - msgstr "Aucun objet PEM connu n'a été trouvé" - --#: ../lib/pki_pkcs12.cpp:37 -+#: ../lib/pki_pkcs12.cpp:40 - #, qt-format - msgctxt "pki_pkcs12|" - msgid "" -@@ -4343,29 +4430,29 @@ msgstr "" - "SVP saisir le mot de passe pour déchiffrer le fichier en PKCS#12:\n" - "%1" - --#: ../lib/pki_pkcs12.cpp:45 -+#: ../lib/pki_pkcs12.cpp:49 - #, qt-format - msgctxt "pki_pkcs12|" - msgid "Unable to load the PKCS#12 (pfx) file %1." - msgstr "Impossible de charger le fichier en PKCS#12 (pfx) %1." - --#: ../lib/pki_pkcs12.cpp:60 -+#: ../lib/pki_pkcs12.cpp:73 - #, qt-format - msgctxt "pki_pkcs12|" - msgid "The supplied password was wrong (%1)" - msgstr "Le mot de passe renseigné était faux (%1)" - --#: ../lib/pki_pkcs12.cpp:112 -+#: ../lib/pki_pkcs12.cpp:127 - msgctxt "pki_pkcs12|" - msgid "Please enter the password to encrypt the PKCS#12 file" - msgstr "SVP saisir le mot de passe pour chiffrer le fichier en PKCS#12" - --#: ../lib/pki_pkcs12.cpp:116 -+#: ../lib/pki_pkcs12.cpp:130 - msgctxt "pki_pkcs12|" - msgid "No key or no Cert and no pkcs12" - msgstr "Pas de clé ou pas de certificat et pas en PKCS#12" - --#: ../lib/pki_pkcs7.cpp:151 -+#: ../lib/pki_pkcs7.cpp:173 - #, qt-format - msgctxt "pki_pkcs7|" - msgid "Unable to load the PKCS#7 file %1. Tried PEM and DER format." -@@ -4373,170 +4460,165 @@ msgstr "" - "Impossible de charger le fichier en PKCS#7 %1. Les formats PEM et DER ont " - "été essayés." - --#: ../lib/pki_scard.cpp:57 -+#: ../lib/pki_scard.cpp:52 - #, qt-format - msgctxt "pki_scard|" - msgid "Successfully imported the token key '%1'" - msgstr "La clé du jeton '%1' a été importée avec succès" - --#: ../lib/pki_scard.cpp:58 -+#: ../lib/pki_scard.cpp:53 - #, qt-format - msgctxt "pki_scard|" - msgid "Delete the token key '%1'?" - msgstr "Détruire la clé du jeton '%1' ?" - --#: ../lib/pki_scard.cpp:59 -+#: ../lib/pki_scard.cpp:54 - #, qt-format - msgctxt "pki_scard|" - msgid "Successfully created the token key '%1'" - msgstr "La clé du jeton '%1' a été créée avec succès" - --#: ../lib/pki_scard.cpp:61 -+#: ../lib/pki_scard.cpp:56 - #, qt-format - msgctxt "pki_scard|" - msgid "Delete the %1 keys: %2?" - msgstr "Détruire les %1 clés: %2?" - --#: ../lib/pki_scard.cpp:363 -+#: ../lib/pki_scard.cpp:358 - #, qt-format - msgctxt "pki_scard|" - msgid "Delete the private key '%1' from the token '%2 (#%3)' ?" - msgstr "Détruire la clé privée '%1' sur le jeton '%2 (#%3)' ?" - --#: ../lib/pki_scard.cpp:436 -+#: ../lib/pki_scard.cpp:431 - msgctxt "pki_scard|" - msgid "This Key is already on the token" - msgstr "Cette clé est déjà sur le jeton" - --#: ../lib/pki_scard.cpp:522 -+#: ../lib/pki_scard.cpp:517 - msgctxt "pki_scard|" - msgid "PIN input aborted" - msgstr "Saisie du NIP abandonnée" - --#: ../lib/pki_scard.cpp:534 -+#: ../lib/pki_scard.cpp:529 - msgctxt "pki_scard|" - msgid "Unable to find copied key on the token" - msgstr "Impossible de trouver la clé copiée sur le jeton" - --#: ../lib/pki_scard.cpp:621 -+#: ../lib/pki_scard.cpp:616 - #, qt-format - msgctxt "pki_scard|" - msgid "Please insert card: %1 %2 [%3] with Serial: %4" - msgstr "SVP insérer la carte %1 %2 [%3] avec le numéro de série: %4" - --#: ../lib/pki_scard.cpp:689 --msgctxt "pki_scard|" --msgid "Illegal Key generation method" --msgstr "Méthode de génération de clé illégale" -- --#: ../lib/pki_scard.cpp:705 -+#: ../lib/pki_scard.cpp:682 - msgctxt "pki_scard|" - msgid "Unable to find generated key on card" - msgstr "Impossible de trouver la clé générée sur la carte" - --#: ../lib/pki_scard.cpp:743 -+#: ../lib/pki_scard.cpp:720 - msgctxt "pki_scard|" - msgid "Ignoring unsupported token key" - msgstr "La clé non-supportée sur le jeton est ignorée" - --#: ../lib/pki_scard.cpp:746 -+#: ../lib/pki_scard.cpp:723 - #, qt-format - msgctxt "pki_scard|" - msgid "Wrong Size %1" - msgstr "Taille fausse %1" - --#: ../lib/pki_scard.cpp:752 -+#: ../lib/pki_scard.cpp:729 - #, qt-format - msgctxt "pki_scard|" - msgid "Token %1" - msgstr "Jeton %1" - --#: ../lib/pki_scard.cpp:761 ../lib/pki_scard.cpp:774 -+#: ../lib/pki_scard.cpp:738 ../lib/pki_scard.cpp:751 - msgctxt "pki_scard|" - msgid "Failed to find the key on the token" - msgstr "Impossible de trouver la clé sur le jeton" - --#: ../lib/pki_scard.cpp:768 -+#: ../lib/pki_scard.cpp:745 - msgctxt "pki_scard|" - msgid "Invalid Pin for the token" - msgstr "NIP invalide pour le jeton" - --#: ../lib/pki_scard.cpp:780 -+#: ../lib/pki_scard.cpp:757 - msgctxt "pki_scard|" - msgid "Failed to initialize the key on the token" - msgstr "Impossible d'initialiser la clé sur le jeton" - --#: ../lib/pki_temp.cpp:124 -+#: ../lib/pki_temp.cpp:123 - #, qt-format - msgctxt "pki_temp|" - msgid "Successfully imported the XCA template '%1'" - msgstr "Le modèle XCA '%1' a été importé avec succès" - --#: ../lib/pki_temp.cpp:125 -+#: ../lib/pki_temp.cpp:124 - #, qt-format - msgctxt "pki_temp|" - msgid "Delete the XCA template '%1'?" - msgstr "Détruire le modèle XCA '%1' ?" - --#: ../lib/pki_temp.cpp:126 -+#: ../lib/pki_temp.cpp:125 - #, qt-format - msgctxt "pki_temp|" - msgid "Successfully created the XCA template '%1'" - msgstr "Le modèle XCA '%1' a été créé avec succès" - --#: ../lib/pki_temp.cpp:128 -+#: ../lib/pki_temp.cpp:127 - #, qt-format - msgctxt "pki_temp|" - msgid "Delete the %1 XCA templates: %2?" - msgstr "Détruire les %1 modèles XCA: %2 ?" - --#: ../lib/pki_temp.cpp:336 -+#: ../lib/pki_temp.cpp:335 - #, qt-format - msgctxt "pki_temp|" - msgid "Wrong Size %1" - msgstr "Taille fausse %1" - --#: ../lib/pki_temp.cpp:426 -+#: ../lib/pki_temp.cpp:420 - msgctxt "pki_temp|" - msgid "Template file content error (too small)" - msgstr "Erreur de contenu du fichier de modèle (trop petit)" - --#: ../lib/pki_temp.cpp:481 -+#: ../lib/pki_temp.cpp:469 - msgctxt "pki_temp|" - msgid "Not a PEM encoded XCA Template" - msgstr "Ce n'est pas un modèle XCA en format PEM" - --#: ../lib/pki_temp.cpp:489 -+#: ../lib/pki_temp.cpp:477 - #, qt-format - msgctxt "pki_temp|" - msgid "Not an XCA Template, but '%1'" - msgstr "Ce n'est pas un modèle XCA, mais '%1'" - --#: ../lib/pki_x509.cpp:66 -+#: ../lib/pki_x509.cpp:64 - #, qt-format - msgctxt "pki_x509|" - msgid "Successfully imported the certificate '%1'" - msgstr "Le certificat '%1' a été importé avec succès" - --#: ../lib/pki_x509.cpp:67 -+#: ../lib/pki_x509.cpp:65 - #, qt-format - msgctxt "pki_x509|" - msgid "Delete the certificate '%1'?" - msgstr "Détruire le certificat '%1' ?" - --#: ../lib/pki_x509.cpp:68 -+#: ../lib/pki_x509.cpp:66 - #, qt-format - msgctxt "pki_x509|" - msgid "Successfully created the certificate '%1'" - msgstr "Le certificat '%1' a été créé avec succès" - --#: ../lib/pki_x509.cpp:70 -+#: ../lib/pki_x509.cpp:68 - #, qt-format - msgctxt "pki_x509|" - msgid "Delete the %1 certificates: %2?" - msgstr "Détruire les %1 certificats: '%2' ?" - --#: ../lib/pki_x509.cpp:218 -+#: ../lib/pki_x509.cpp:229 - #, qt-format - msgctxt "pki_x509|" - msgid "" -@@ -4545,45 +4627,45 @@ msgstr "" - "Impossible de charger le certificat du fichier %1. Les formats PEM et DER " - "ont été essayés." - --#: ../lib/pki_x509.cpp:363 -+#: ../lib/pki_x509.cpp:374 - msgctxt "pki_x509|" - msgid "This certificate is already on the security token" - msgstr "Ce certificat est déjà dans le jeton de sécurité" - --#: ../lib/pki_x509.cpp:426 -+#: ../lib/pki_x509.cpp:437 - #, qt-format - msgctxt "pki_x509|" - msgid "Delete the certificate '%1' from the token '%2 (#%3)'?" - msgstr "Détruire le certificat '%1' sur le jeton '%2 (#%3)' ?" - --#: ../lib/pki_x509.cpp:559 -+#: ../lib/pki_x509.cpp:570 - msgctxt "pki_x509|" - msgid "There is no key for signing !" - msgstr "Il n'y a pas de clé pour signer !" - --#: ../lib/pki_x509.cpp:620 -+#: ../lib/pki_x509.cpp:631 - #, qt-format - msgctxt "pki_x509|" - msgid "Wrong Size %1" - msgstr "Taille fausse %1" - --#: ../lib/pki_x509.cpp:911 -+#: ../lib/pki_x509.cpp:919 - msgctxt "pki_x509|" - msgid "No" - msgstr "Non" - --#: ../lib/pki_x509.cpp:913 -+#: ../lib/pki_x509.cpp:921 - msgctxt "pki_x509|" - msgid "Yes" - msgstr "Oui" - --#: ../lib/pki_x509.cpp:943 -+#: ../lib/pki_x509.cpp:951 - #, qt-format - msgctxt "pki_x509|" - msgid "Renew certificate: %1" - msgstr "Renouvellement du certificat: %1" - --#: ../lib/pki_x509.cpp:944 -+#: ../lib/pki_x509.cpp:952 - #, qt-format - msgctxt "pki_x509|" - msgid "" -@@ -4593,36 +4675,36 @@ msgstr "" - "Le certificat XCA '%1' émis le %2 expirera le %3.\n" - "Il est stocké dans la base de données XCA '%4'" - --#: ../lib/pki_x509req.cpp:102 -+#: ../lib/pki_x509req.cpp:110 - msgctxt "pki_x509req|" - msgid "Signing key not valid (public key)" - msgstr "La clé de signature n'est pas valide (c'est une clé publique)" - --#: ../lib/pki_x509req.cpp:144 -+#: ../lib/pki_x509req.cpp:152 - #, qt-format - msgctxt "pki_x509req|" - msgid "Successfully imported the %1 certificate request '%2'" - msgstr "La requête %1 de signature '%2' a été importée avec succès" - --#: ../lib/pki_x509req.cpp:145 -+#: ../lib/pki_x509req.cpp:153 - #, qt-format - msgctxt "pki_x509req|" - msgid "Delete the %1 certificate request '%2'?" - msgstr "Détruire la requête %1 de signature '%2' ?" - --#: ../lib/pki_x509req.cpp:146 -+#: ../lib/pki_x509req.cpp:154 - #, qt-format - msgctxt "pki_x509req|" - msgid "Successfully created the %1 certificate request '%2'" - msgstr "La requête %1 de signature '%2' a été créée avec succès" - --#: ../lib/pki_x509req.cpp:148 -+#: ../lib/pki_x509req.cpp:156 - #, qt-format - msgctxt "pki_x509req|" - msgid "Delete the %1 certificate requests: %2?" - msgstr "Détruire la requête %1 de signature '%2' ?" - --#: ../lib/pki_x509req.cpp:176 -+#: ../lib/pki_x509req.cpp:184 - #, qt-format - msgctxt "pki_x509req|" - msgid "" -@@ -4632,18 +4714,18 @@ msgstr "" - "Impossible de charger la requête de signature du fichier %1. Les formats " - "PEM, DER et SPKAC ont été essayés." - --#: ../lib/pki_x509req.cpp:208 -+#: ../lib/pki_x509req.cpp:216 - #, qt-format - msgctxt "pki_x509req|" - msgid "Wrong Size %1" - msgstr "Taille fausse %1" - --#: ../lib/pki_x509req.cpp:356 -+#: ../lib/pki_x509req.cpp:383 - msgctxt "pki_x509req|" - msgid "Signed" - msgstr "Signée" - --#: ../lib/pki_x509req.cpp:356 -+#: ../lib/pki_x509req.cpp:383 - msgctxt "pki_x509req|" - msgid "Unhandled" - msgstr "Non-géré" -@@ -4678,52 +4760,52 @@ msgctxt "v3ext|" - msgid "Cancel" - msgstr "Annuler" - --#: ../widgets/v3ext.cpp:72 -+#: ../widgets/v3ext.cpp:75 - msgctxt "v3ext|" - msgid "An email address or 'copy'" - msgstr "Une adresse de courriel ou 'copy'" - --#: ../widgets/v3ext.cpp:74 -+#: ../widgets/v3ext.cpp:77 - msgctxt "v3ext|" - msgid "An email address" - msgstr "Une adresse de courriel" - --#: ../widgets/v3ext.cpp:76 -+#: ../widgets/v3ext.cpp:79 - msgctxt "v3ext|" - msgid "A registered ID: OBJECT IDENTIFIER" - msgstr "un IDentifiant enregistré: IDENTIFICATEUR.OBJET" - --#: ../widgets/v3ext.cpp:80 -+#: ../widgets/v3ext.cpp:83 - msgctxt "v3ext|" - msgid "A uniform resource indicator" - msgstr "un indicateur uniforme de ressource" - --#: ../widgets/v3ext.cpp:85 -+#: ../widgets/v3ext.cpp:88 - msgctxt "v3ext|" - msgid "A DNS domain name or 'copycn'" - msgstr "un nom de domaine DNS ou 'copycn'" - --#: ../widgets/v3ext.cpp:87 -+#: ../widgets/v3ext.cpp:90 - msgctxt "v3ext|" - msgid "A DNS domain name" - msgstr "un nom de domaine DNS" - --#: ../widgets/v3ext.cpp:89 -+#: ../widgets/v3ext.cpp:92 - msgctxt "v3ext|" - msgid "An IP address" - msgstr "Une adresse IP" - --#: ../widgets/v3ext.cpp:92 -+#: ../widgets/v3ext.cpp:95 - msgctxt "v3ext|" - msgid "Syntax: ;TYPE:text like '1.2.3.4:UTF8:name'" - msgstr "Syntaxe: ;TYPE:texte sous la forme '1.2.3.4:UTF8:nom'" - --#: ../widgets/v3ext.cpp:96 -+#: ../widgets/v3ext.cpp:99 - msgctxt "v3ext|" - msgid "No editing. Only 'copy' allowed here" - msgstr "Pas de modification possible. Seul 'copy' est permis ici" - --#: ../widgets/v3ext.cpp:165 -+#: ../widgets/v3ext.cpp:168 - #, qt-format - msgctxt "v3ext|" - msgid "" -@@ -4735,7 +4817,7 @@ msgstr "" - "'%1'\n" - "%2" - --#: ../widgets/v3ext.cpp:170 -+#: ../widgets/v3ext.cpp:173 - #, qt-format - msgctxt "v3ext|" - msgid "" -@@ -4744,3 +4826,13 @@ msgid "" - msgstr "" - "La validation a été effectuée avec succès:\n" - "'%1'" -+ -+#: ../widgets/XcaWarning.cpp:121 -+msgctxt "xcaWarning|" -+msgid "The following error occurred:" -+msgstr "L'erreur suivante s'est produite:" -+ -+#: ../widgets/XcaWarning.cpp:124 -+msgctxt "xcaWarning|" -+msgid "Copy to Clipboard" -+msgstr "Copier dans le presse-papier" diff --git a/xca-2.4.0-lang-it.patch b/xca-2.4.0-lang-it.patch deleted file mode 100644 index cae2369..0000000 --- a/xca-2.4.0-lang-it.patch +++ /dev/null @@ -1,312 +0,0 @@ -From 36abc2b4980980d92a1acb697340c36b8cce6e64 Mon Sep 17 00:00:00 2001 -From: albanobattistella <34811668+albanobattistella@users.noreply.github.com> -Date: Mon, 24 May 2021 17:52:22 +0200 -Subject: [PATCH] Update xca_it.ts - ---- - lang/xca_it.ts | 80 +++++++++++++++++++++++++------------------------- - 1 file changed, 40 insertions(+), 40 deletions(-) - -diff --git a/lang/xca_it.ts b/lang/xca_it.ts -index 0bf93bc9..ba06ec62 100644 ---- a/lang/xca_it.ts -+++ b/lang/xca_it.ts -@@ -180,7 +180,7 @@ - - - Revoked: -- Revocato: -+ Revocato: - - - -@@ -1133,7 +1133,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile - - No deleted items found -- Non trovati elementi cancellati -+ Non trovati elementi cancellati - - - -@@ -1228,11 +1228,11 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile - - &New DataBase -- &Nuovo database -+ &Nuovo database - - - &Open DataBase -- &Apri database -+ &Apri database - - - -@@ -1246,7 +1246,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile - - &Close DataBase -- &Chiudi database -+ &Chiudi database - - - -@@ -1408,7 +1408,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile - - &Content -- &Contenuti -+ &Contenuti - - - -@@ -1417,7 +1417,7 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile - - no such option: %1 -- opzione inesistente: %1 -+ opzione inesistente: %1 - - - -@@ -1483,30 +1483,30 @@ Ciò eliminerà la chiave '%1' e la renderà non esportabile - Please enter a password, that will be used to encrypt your private keys in the database: - %1 -- Prego inserire una password che verrà utilizzata per crittare le chiavi private nel database: -+ Prego inserire una password che verrà utilizzata per crittare le chiavi private nel database: - %1 - - - Password verify error, please try again -- Errore di verifica password, prego riprovare -+ Errore di verifica password, prego riprovare - - - Password -- Password -+ Password - - - Please enter the password for unlocking the database: - %1 -- Prego inserire la password per sbloccare il database: -+ Prego inserire la password per sbloccare il database: - %1 - - - The following error occurred: -- Incontrato l'errore seguente: -+ Incontrato l'errore seguente: - - - Copy to Clipboard -- Copia negli appunti -+ Copia negli appunti - - - -@@ -1533,7 +1533,7 @@ Prego inserire i bit dei parametri DH - - - Error opening file: '%1': %2 -- Errore in apertura file: '%1': %2 -+ Errore in apertura file: '%1': %2 - - - -@@ -1769,7 +1769,7 @@ Prego inserire i bit dei parametri DH - - - Distinguished name -- Distinguished name -+ Nome distinto - - - -@@ -2279,12 +2279,12 @@ nonostante siano stati dichiarati come obbligatori nel menu opzioni. - - Hostname -- -+ Nome host - - - - Username -- -+ Nome utente - - - -@@ -2309,11 +2309,11 @@ nonostante siano stati dichiarati come obbligatori nel menu opzioni. - - Please enter the password to access the database server %2 as user '%1'. -- Prego inserire la password di accesso al database server %2 come utente: '%1'. -+ Prego inserire la password di accesso al database server %2 come utente: '%1'. - - - The database driver does not support transactions. This may happen if the client and server have different versions. Continue with care. -- Il driver database non supporta le transazioni. Questo può succedere se il client e il server hanno versioni differenti. Continuare con attenzione. -+ Il driver database non supporta le transazioni. Questo può succedere se il client e il server hanno versioni differenti. Continuare con attenzione. - - - -@@ -2524,7 +2524,7 @@ Nello specifico EC e DSA sono definiti solo con SHA1 nelle specifiche PKCS#11. - - E&xit -- E&sci -+ E&sci - - - -@@ -2614,15 +2614,15 @@ Nello specifico EC e DSA sono definiti solo con SHA1 nelle specifiche PKCS#11. - - DB: Rename: '%1' already in use -- DB: Rinomina: '%1' già in uso -+ DB: Rinomina: '%1' già in uso - - - DB: Entry to rename not found: %1 -- DB: Elemento da rinominare non trovato: %1 -+ DB: Elemento da rinominare non trovato: %1 - - - DB: Write error %1 - %2 -- DB: Errore di scrittura %1 - %2 -+ DB: Errore di scrittura %1 - %2 - - - -@@ -2991,7 +2991,7 @@ Nello specifico EC e DSA sono definiti solo con SHA1 nelle specifiche PKCS#11. - - Failed to open PKCS11 library: %1 -- Impossibile aprire libreria PKCS#11: %1 -+ Impossibile aprire libreria PKCS#11: %1 - - - -@@ -3456,7 +3456,7 @@ nella libreria %3 - db_base - - Error opening file: '%1': %2 -- Errore in apertura file: '%1': %2 -+ Errore in apertura file: '%1': %2 - - - -@@ -3607,15 +3607,15 @@ quindi non è stata importata - - - There are no CA certificates for CRL generation -- Non esistono certificati CA per generare la CRL -+ Non esistono certificati CA per generare la CRL - - - Select CA certificate -- Seleziona un certificato CA -+ Seleziona un certificato CA - - - Create CRL -- Crea CRL -+ Crea CRL - - - -@@ -3873,11 +3873,11 @@ e sarà completata con la nuova parte privata della chiave - - - Plain View -- Visualizzazione semplice -+ Visualizzazione semplice - - - Tree View -- Visualizzazione ad albero -+ Visualizzazione ad albero - - - -@@ -4000,7 +4000,7 @@ pertanto non è stato importato - - - X509 Certificates ( *.pem *.cer *.crt *.p12 *.p7b ) -- Certificati x509 ( *.pem *.cer *.crt *.p12 *.p7b ) -+ Certificati x509 ( *.pem *.cer *.crt *.p12 *.p7b ) - - - -@@ -4015,7 +4015,7 @@ pertanto non è stato importato - - - Error opening file: '%1': %2 -- Errore in apertura file: '%1': %2 -+ Errore in apertura file: '%1': %2 - - - -@@ -4024,7 +4024,7 @@ pertanto non è stato importato - - - days -- giorni -+ giorni - - - -@@ -4202,11 +4202,11 @@ pertanto non è stata salvata - pki_base - - Error opening file: '%1': %2 -- Errore in apertura file: '%1': %2 -+ Errore in apertura file: '%1': %2 - - - Error writing to file: '%1': %2 -- Errore scrittura file: '%1': %2 -+ Errore scrittura file: '%1': %2 - - - -@@ -4312,7 +4312,7 @@ Si trova nel database XCA '%5' - - - unknown -- Sconosciuto -+ Sconosciuto - - - -@@ -4322,22 +4322,22 @@ Si trova nel database XCA '%5' - - The XCA CRL '%1', issued by the CA '%2' on %3 will expire on %4. - It is stored in the XCA database '%5' -- La CRL XCA '%1', rilasciata dalla CA '%2' il %3, scadrà il %4. E' mantenuta nel database XCA '%5' -+ La CRL XCA '%1', rilasciata dalla CA '%2' il %3, scadrà il %4. E' mantenuta nel database XCA '%5' - - - - pki_evp - - Failed to decrypt the key (bad password) -- Impossibile decrittare la chiave (password errata) -+ Impossibile decrittare la chiave (password errata) - - - Failed to decrypt the key (bad password) %1 -- Impossibile decrittare la chiave (password errata) %1 -+ Impossibile decrittare la chiave (password errata) %1 - - - Please enter the password to decrypt the private key. -- Prego inserire la password per decrittare la chiave privata. -+ Prego inserire la password per decrittare la chiave privata. - - - diff --git a/xca-2.4.0-mimeicons.patch b/xca-2.4.0-mimeicons.patch deleted file mode 100644 index f8398e3..0000000 --- a/xca-2.4.0-mimeicons.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -Naurp xca-2.4.0.orig/misc/xca.xml xca-2.4.0.new/misc/xca.xml ---- xca-2.4.0.orig/misc/xca.xml 2021-05-07 22:40:29.000000000 +0200 -+++ xca-2.4.0.new/misc/xca.xml 2021-11-13 17:09:16.478893271 +0100 -@@ -3,11 +3,11 @@ - - XCA database - -- -+ - - - XCA template - -- -+ - - diff --git a/xca-2.4.0-noclean.patch b/xca-2.4.0-noclean.patch deleted file mode 100644 index e754f9f..0000000 --- a/xca-2.4.0-noclean.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naurp xca-2.4.0.orig/Makefile xca-2.4.0.new/Makefile ---- xca-2.4.0.orig/Makefile 2021-05-07 22:40:29.000000000 +0200 -+++ xca-2.4.0.new/Makefile 2021-11-13 16:59:53.656274074 +0100 -@@ -69,7 +69,9 @@ PRINT=: - endif - export PRINT - --ifneq ($(TOPDIR), $(BUILD)) -+REALBUILD=$(shell realpath $(BUILD)) -+REALTOPDIR=$(shell realpath $(TOPDIR)) -+ifneq ($(REALTOPDIR), $(REALBUILD)) - do.ui: clean_topdir - clean_topdir: - $(MAKE) -C $(TOPDIR) clean diff --git a/xca-2.4.0-openssl3.patch b/xca-2.4.0-openssl3.patch deleted file mode 100644 index 7667d02..0000000 --- a/xca-2.4.0-openssl3.patch +++ /dev/null @@ -1,233 +0,0 @@ -diff -Naurp xca-2.4.0.orig/lib/pkcs11.cpp xca-2.4.0.new/lib/pkcs11.cpp ---- xca-2.4.0.orig/lib/pkcs11.cpp 2021-05-07 22:40:29.000000000 +0200 -+++ xca-2.4.0.new/lib/pkcs11.cpp 2021-11-13 02:58:27.866824246 +0100 -@@ -840,8 +840,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY - - switch (EVP_PKEY_type(keytype)) { - case EVP_PKEY_RSA: -- rsa = EVP_PKEY_get0_RSA(pub); -- rsa = RSAPublicKey_dup(rsa); -+ rsa = RSAPublicKey_dup(EVP_PKEY_get0_RSA(pub)); - openssl_error(); - if (!rsa_meth) { - #if OPENSSL_VERSION_NUMBER >= 0x1010000L -@@ -865,8 +864,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY - EVP_PKEY_assign_RSA(evp, rsa); - break; - case EVP_PKEY_DSA: -- dsa = EVP_PKEY_get0_DSA(pub); -- dsa = DSAparams_dup(dsa); -+ dsa = DSAparams_dup(EVP_PKEY_get0_DSA(pub)); - openssl_error(); - if (!dsa_meth) { - #if OPENSSL_VERSION_NUMBER >= 0x10100000L -@@ -889,8 +887,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY - break; - #if !defined(OPENSSL_NO_EC) && OPENSSL_VERSION_NUMBER >= 0x10100000L - case EVP_PKEY_EC: -- ec = EVP_PKEY_get0_EC_KEY(pub); -- ec = EC_KEY_dup(ec); -+ ec = EC_KEY_dup(EVP_PKEY_get0_EC_KEY(pub)); - openssl_error(); - if (!ec_key_meth) { - ec_key_meth = setup_ec_key_meth(); -diff -Naurp xca-2.4.0.orig/lib/pki_evp.cpp xca-2.4.0.new/lib/pki_evp.cpp ---- xca-2.4.0.orig/lib/pki_evp.cpp 2021-05-07 22:40:29.000000000 +0200 -+++ xca-2.4.0.new/lib/pki_evp.cpp 2021-11-13 03:00:39.279152488 +0100 -@@ -282,8 +282,8 @@ void pki_evp::fromPEMbyteArray(const QBy - static void search_ec_oid(EVP_PKEY *pkey) - { - #ifndef OPENSSL_NO_EC -- EC_KEY *ec; - EC_GROUP *builtin; -+ const EC_KEY *ec; - const EC_GROUP *ec_group; - - int keytype = EVP_PKEY_id(pkey); -@@ -498,7 +498,7 @@ void pki_evp::fload(const QString &fname - void pki_evp::fromData(const unsigned char *p, db_header_t *head) - { - int version, type, size; -- void *ptr = NULL; -+ const void *ptr = NULL; - - if (key) - EVP_PKEY_free(key); -@@ -518,8 +518,23 @@ void pki_evp::fromData(const unsigned ch - } - pki_openssl_error(); - -- if (key) -- ptr = EVP_PKEY_get0(key); -+ if (key) { -+ switch (EVP_PKEY_type(EVP_PKEY_id(key))) { -+ case EVP_PKEY_RSA: -+ ptr = EVP_PKEY_get0_RSA(key); -+ break; -+ case EVP_PKEY_DSA: -+ ptr = EVP_PKEY_get0_DSA(key); -+ break; -+#ifndef OPENSSL_NO_EX -+ case EVP_PKEY_EC: -+ ptr = EVP_PKEY_get0_EC_KEY(key); -+ break; -+#endif -+ default: -+ ptr = EVP_PKEY_get0(key); -+ } -+ } - if (!ptr) - throw errorEx(tr("Ignoring unsupported private key")); - -@@ -621,8 +636,8 @@ EVP_PKEY *pki_evp::legacyDecryptKey(QByt - - pki_openssl_error(); - if (EVP_PKEY_type(getKeyType()) == EVP_PKEY_RSA) { -- RSA *rsa = EVP_PKEY_get0_RSA(tmpkey); -- RSA_blinding_on(rsa, NULL); -+ const RSA *rsa = EVP_PKEY_get0_RSA(tmpkey); -+ RSA_blinding_on((RSA *) rsa, NULL); - } - myencKey.fill(0); - return tmpkey; -@@ -930,7 +945,7 @@ bool pki_evp::verify_priv(EVP_PKEY *pkey - EVP_MD_CTX_free(ctx); - #endif - if (EVP_PKEY_id(pkey) == EVP_PKEY_RSA && EVP_PKEY_isPrivKey(pkey)) { -- RSA *rsa = EVP_PKEY_get0_RSA(pkey); -+ const RSA *rsa = EVP_PKEY_get0_RSA(pkey); - if (RSA_check_key(rsa) != 1) - verify = false; - } -diff -Naurp xca-2.4.0.orig/lib/pki_key.cpp xca-2.4.0.new/lib/pki_key.cpp ---- xca-2.4.0.orig/lib/pki_key.cpp 2021-05-07 22:40:29.000000000 +0200 -+++ xca-2.4.0.new/lib/pki_key.cpp 2021-11-13 02:58:27.866824246 +0100 -@@ -197,7 +197,7 @@ QString pki_key::length() const - - if (EVP_PKEY_id(key) == EVP_PKEY_DSA) { - const BIGNUM *p = NULL; -- DSA *dsa = EVP_PKEY_get0_DSA(key); -+ const DSA *dsa = EVP_PKEY_get0_DSA(key); - if (dsa) - DSA_get0_pqg(dsa, &p, NULL, NULL); - dsa_unset = p == NULL; -@@ -299,7 +299,7 @@ QString pki_key::modulus() const - if (getKeyType() == EVP_PKEY_RSA) { - const BIGNUM *n = NULL; - -- RSA *rsa = EVP_PKEY_get0_RSA(key); -+ const RSA *rsa = EVP_PKEY_get0_RSA(key); - RSA_get0_key(rsa, &n, NULL, NULL); - return BN2QString(n); - } -@@ -310,7 +310,7 @@ QString pki_key::pubEx() const - { - if (getKeyType() == EVP_PKEY_RSA) { - const BIGNUM *e = NULL; -- RSA *rsa = EVP_PKEY_get0_RSA(key); -+ const RSA *rsa = EVP_PKEY_get0_RSA(key); - RSA_get0_key(rsa, NULL, &e, NULL); - return BN2QString(e); - } -@@ -321,7 +321,7 @@ QString pki_key::subprime() const - { - if (getKeyType() == EVP_PKEY_DSA) { - const BIGNUM *q = NULL; -- DSA *dsa = EVP_PKEY_get0_DSA(key); -+ const DSA *dsa = EVP_PKEY_get0_DSA(key); - if (dsa) - DSA_get0_pqg(dsa, NULL, &q, NULL); - return BN2QString(q); -@@ -333,7 +333,7 @@ QString pki_key::pubkey() const - { - if (getKeyType() == EVP_PKEY_DSA) { - const BIGNUM *pubkey = NULL; -- DSA *dsa = EVP_PKEY_get0_DSA(key); -+ const DSA *dsa = EVP_PKEY_get0_DSA(key); - if (dsa) - DSA_get0_key(dsa, &pubkey, NULL); - return BN2QString(pubkey); -@@ -766,7 +766,7 @@ QByteArray pki_key::SSH2publicQByteArray - txt = "ssh-rsa"; - ssh_key_QBA2data(txt, &data); - { -- RSA *rsa = EVP_PKEY_get0_RSA(key); -+ const RSA *rsa = EVP_PKEY_get0_RSA(key); - const BIGNUM *n, *e; - RSA_get0_key(rsa, &n, &e, NULL); - ssh_key_bn2data(e, &data); -@@ -777,7 +777,7 @@ QByteArray pki_key::SSH2publicQByteArray - txt = "ssh-dss"; - ssh_key_QBA2data(txt, &data); - { -- DSA *dsa = EVP_PKEY_get0_DSA(key); -+ const DSA *dsa = EVP_PKEY_get0_DSA(key); - const BIGNUM *p, *q, *g, *pubkey; - DSA_get0_pqg(dsa, &p, &q, &g); - DSA_get0_key(dsa, &pubkey, NULL); -diff -Naurp xca-2.4.0.orig/lib/pki_scard.cpp xca-2.4.0.new/lib/pki_scard.cpp ---- xca-2.4.0.orig/lib/pki_scard.cpp 2021-05-07 22:40:29.000000000 +0200 -+++ xca-2.4.0.new/lib/pki_scard.cpp 2021-11-13 03:02:20.379174056 +0100 -@@ -293,10 +293,10 @@ void pki_scard::deleteFromToken() - pk11_attlist pki_scard::objectAttributesNoId(EVP_PKEY *pk, bool priv) const - { - QByteArray ba; -- RSA *rsa; -- DSA *dsa; -+ const RSA *rsa; -+ const DSA *dsa; - #ifndef OPENSSL_NO_EC -- EC_KEY *ec; -+ const EC_KEY *ec; - #endif - const BIGNUM *n = NULL; - const BIGNUM *e = NULL; -@@ -401,10 +401,10 @@ int pki_scard::renameOnToken(const sloti - void pki_scard::store_token(const slotid &slot, EVP_PKEY *pkey) - { - QByteArray ba; -- RSA *rsa; -- DSA *dsa; -+ const RSA *rsa; -+ const DSA *dsa; - #ifndef OPENSSL_NO_EC -- EC_KEY *ec; -+ const EC_KEY *ec; - #endif - pk11_attlist pub_atts; - pk11_attlist priv_atts; -@@ -691,7 +691,7 @@ pki_scard::~pki_scard() - void pki_scard::fromData(const unsigned char *p, db_header_t *head ) - { - int version, size; -- void *ptr = NULL; -+ const void *ptr = NULL; - - size = head->len - sizeof(db_header_t); - version = head->version; -@@ -713,8 +713,23 @@ void pki_scard::fromData(const unsigned - - d2i(ba); - -- if (key) -- ptr = EVP_PKEY_get0(key); -+ if (key) { -+ switch (EVP_PKEY_type(EVP_PKEY_id(key))) { -+ case EVP_PKEY_RSA: -+ ptr = EVP_PKEY_get0_RSA(key); -+ break; -+ case EVP_PKEY_DSA: -+ ptr = EVP_PKEY_get0_DSA(key); -+ break; -+#ifndef OPENSSL_NO_EX -+ case EVP_PKEY_EC: -+ ptr = EVP_PKEY_get0_EC_KEY(key); -+ break; -+#endif -+ default: -+ ptr = EVP_PKEY_get0(key); -+ } -+ } - - if (!ptr) - throw errorEx(tr("Ignoring unsupported token key")); diff --git a/xca-2.5.0-README.IMPORTANT b/xca-2.5.0-README.IMPORTANT new file mode 100644 index 0000000..8e3f25a --- /dev/null +++ b/xca-2.5.0-README.IMPORTANT @@ -0,0 +1,27 @@ +When trying to use a private key when working on a database protected by +a password set by xca version < 2.0.0, version 2.5.0 might issue an error like: + +--- +The following error occurred: +(8pki_x509[]:foo) +error:0300009C:digital envelope routines::unsupported algorithm +error:068C0100:asn1 encoding routines::malloc failure +error:068C0100:asn1 encoding routines::malloc failure + +(pki_x509.cpp:574) +--- + +The database is therefore unusable as it is in xca 2.5.0 for any operation +involving some private key. + +The solution is to reset the database password with xca version 2.4.0 +(Extra --> Change Database password). The new password may be the same as +the old one. + +If some private keys have their own password, reset the latter the same +way (right click --> Change password). + +Once these operations have been performed, the database is ready for use with +xca version 2.5. + +See https://github.com/chris2511/xca/discussions/468. diff --git a/xca.spec b/xca.spec index 7d3652b..039c27b 100644 --- a/xca.spec +++ b/xca.spec @@ -3,17 +3,14 @@ Summary: Graphical X.509 certificate management tool Name: xca -Version: 2.4.0 -Release: 5%{?dist} +Version: 2.5.0 +Release: 1%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz -Patch1: xca-2.4.0-openssl3.patch -Patch2: xca-2.4.0-noclean.patch -Patch3: xca-2.4.0-mimeicons.patch -Patch4: xca-2.4.0-lang-it.patch -Patch5: xca-2.4.0-lang-fr.patch +Source1: xca-2.5.0-README.IMPORTANT +BuildRequires: cmake BuildRequires: make BuildRequires: gcc-c++ BuildRequires: qt5-qtbase-devel @@ -50,24 +47,23 @@ format, portable across operating systems. #------------------------------------------------------------------------------- %autosetup -p 1 +cp '%{SOURCE1}' README.IMPORTANT #------------------------------------------------------------------------------- %build #------------------------------------------------------------------------------- -%configure CXXFLAGS='%{optflags}' \ - STRIP=: \ - LIBS='-Wl,-as-needed' -make %{?_smp_mflags} +export CXXFLAGS='%{optflags} -DDOCDIR=\"%{_docdir}/xca\"' +%cmake -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" +%cmake_build #------------------------------------------------------------------------------- %install #------------------------------------------------------------------------------- -make DESTDIR='%{buildroot}' \ - ICON_SIZES='16x16 32x32 48x48 64x64 128x128 256x256' install +%cmake_install # Do not include db statistics program and man. find '%{buildroot}' -name 'xca_db_stat*' -delete @@ -75,6 +71,10 @@ find '%{buildroot}' -name 'xca_db_stat*' -delete # Do not use pixmaps directory. rm -rf '%{buildroot}%{_datadir}/pixmaps' +# Reinstall documentation. +rm -rf '%{buildroot}%{_docdir}/xca'/* +mv '%{buildroot}%{_datadir}/xca/html' '%{buildroot}%{_docdir}/xca/' + # Install mime file types. install -d -m 755 '%{buildroot}%{_datadir}/mime/packages' install -p -m 644 misc/xca.xml '%{buildroot}%{_datadir}/mime/packages/' @@ -96,7 +96,7 @@ desktop-file-install --mode 0644 \ %files -f %{name}.lang #------------------------------------------------------------------------------- -%doc AUTHORS COPYRIGHT +%doc AUTHORS COPYRIGHT README.IMPORTANT %doc %{_docdir}/xca/* %{_bindir}/* %dir %{_datadir}/xca @@ -111,6 +111,14 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +#------------------------------------------------------------------------------- + +* Fri Oct 6 2023 Patrick Monnerat 2.5.0-1 +- New upstream release. +- Build using cmake. +- Doc file "README.IMPORTANT" for needed passord reset. + https://github.com/chris2511/xca/issues/458#issuecomment-1740106691 + * Sat Jul 22 2023 Fedora Release Engineering - 2.4.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild @@ -123,8 +131,6 @@ desktop-file-install --mode 0644 \ * Sat Jan 22 2022 Fedora Release Engineering - 2.4.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild -#------------------------------------------------------------------------------- - * Sat Nov 13 2021 Patrick Monnerat 2.4.0-1 - New upstream release. - Patch "openssl3" for openssl version 3 compatibility. From b3f37b4db97bd6a4916cfeea19800816c702464a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 7 Nov 2023 15:58:28 +0100 Subject: [PATCH 09/23] Explicitly BuildRequire python3-sphinxcontrib-qthelp In preparation for making the sphinx -> sphinxcontrib.qthelp dependency optional, I have identified this package uses sphinxcontrib.qthelp and fails without it: [ 9%] Create context sensitive help /usr/bin/sphinx-build -q -b html /builddir/build/BUILD/xca-2.5.0/redhat-linux-build/doc/rst /builddir/build/BUILD/xca-2.5.0/redhat-linux-build/doc/html /usr/bin/sphinx-build -q -b qthelp /builddir/build/BUILD/xca-2.5.0/redhat-linux-build/doc/rst /builddir/build/BUILD/xca-2.5.0/redhat-linux-build/doc/qthelp Sphinx error: Builder name qthelp not registered or available through entry point --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index 039c27b..9fccd9c 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.5.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -20,6 +20,7 @@ BuildRequires: openssl-devel BuildRequires: xdg-utils BuildRequires: libtool-ltdl-devel BuildRequires: python3-sphinx +BuildRequires: python3-sphinxcontrib-qthelp Requires: hicolor-icon-theme @@ -112,6 +113,8 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog #------------------------------------------------------------------------------- +* Tue Nov 07 2023 Miro Hrončok - 2.5.0-2 +- Explicitly BuildRequire python3-sphinxcontrib-qthelp * Fri Oct 6 2023 Patrick Monnerat 2.5.0-1 - New upstream release. From e4c2b9f8bf34889b67201cf7dd32dc7596836f16 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Thu, 25 Jan 2024 08:35:31 +0100 Subject: [PATCH 10/23] Fix crashes Patch "pastekey" fixes a crash pasting an encrypted private key. Patch "revokedel" fixes a freeze when deleting a certificate. Patch "delete_after_revoke" fixes a crash deleting+revoking a certificate. --- xca-2.5-delete_after_revoke.patch | 23 ++++++++ xca-2.5-pastekey.patch | 90 +++++++++++++++++++++++++++++++ xca-2.5-revokedel.patch | 46 ++++++++++++++++ xca.spec | 15 +++++- 4 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 xca-2.5-delete_after_revoke.patch create mode 100644 xca-2.5-pastekey.patch create mode 100644 xca-2.5-revokedel.patch diff --git a/xca-2.5-delete_after_revoke.patch b/xca-2.5-delete_after_revoke.patch new file mode 100644 index 0000000..45d33a8 --- /dev/null +++ b/xca-2.5-delete_after_revoke.patch @@ -0,0 +1,23 @@ +diff -Naurp xca-2.5.0.orig/lib/db_x509.cpp xca-2.5.0.new/lib/db_x509.cpp +--- xca-2.5.0.orig/lib/db_x509.cpp 2023-09-24 20:22:03.000000000 +0200 ++++ xca-2.5.0.new/lib/db_x509.cpp 2024-01-22 08:22:11.704982550 +0100 +@@ -768,13 +768,15 @@ void db_x509::certRenewal(QModelIndexLis + newcert->sign(signkey, oldcert->getDigest()); + newcert = dynamic_cast(insert(newcert)); + createSuccess(newcert); +- +- // delete old certificate if requested +- if (doReplace) +- deletePKI(idx); + } + if (doRevoke) + do_revoke(indexes, r); ++ ++ // delete old certificates if requested ++ if (doReplace) ++ foreach(idx, indexes) ++ if (fromIndex(idx)) ++ deletePKI(idx); + } + catch (errorEx &err) { + XCA_ERROR(err); diff --git a/xca-2.5-pastekey.patch b/xca-2.5-pastekey.patch new file mode 100644 index 0000000..78205e3 --- /dev/null +++ b/xca-2.5-pastekey.patch @@ -0,0 +1,90 @@ +From d29d55ab20509d3e7d279f1fcd85374b5fecdcd8 Mon Sep 17 00:00:00 2001 +From: Christian Hohnstaedt +Date: Thu, 2 Nov 2023 14:06:12 +0100 +Subject: [PATCH] Close #477: paste an encrypted private key results in a crash + +Improve error- and password handling: + - Also identify: (ERR_LIB_PROV:PROV_R_BAD_DECRYPT) as password error. + - Do not use the OpenSSL internal bitfield definition (0xff000fff) + but the official API: ERR_GET_LIB(), ERR_GET_REASON() + Especially ERR_LIB_OFFSET changed from 24 to 23 in Openssl 3.0.0 + - First check for "Cancel", then for invalid password to avoid + an "Invalid Password" message after aborting the password input dialog. +--- + lib/pki_evp.cpp | 16 +++++++++++----- + lib/pki_multi.cpp | 3 +++ + 2 files changed, 14 insertions(+), 5 deletions(-) + +diff --git a/lib/pki_evp.cpp b/lib/pki_evp.cpp +index d2097ed2..54846d5c 100644 +--- a/lib/pki_evp.cpp ++++ b/lib/pki_evp.cpp +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + Passwd pki_evp::passwd; + +@@ -213,10 +214,14 @@ pki_evp::pki_evp(EVP_PKEY *pkey) + + bool pki_evp::openssl_pw_error() const + { +- switch (ERR_peek_error() & 0xff000fff) { ++ unsigned long e = ERR_peek_error(); ++ ++ switch (ERR_PACK(ERR_GET_LIB(e), 0, ERR_GET_REASON(e))) { + case ERR_PACK(ERR_LIB_PEM, 0, PEM_R_BAD_DECRYPT): + case ERR_PACK(ERR_LIB_PEM, 0, PEM_R_BAD_PASSWORD_READ): + case ERR_PACK(ERR_LIB_EVP, 0, EVP_R_BAD_DECRYPT): ++ case ERR_PACK(ERR_LIB_PROV, 0, PROV_R_BAD_DECRYPT): ++ case ERR_PACK(ERR_LIB_PKCS12, 0, PKCS12_R_PKCS12_CIPHERFINAL_ERROR): + pki_ign_openssl_error(); + return true; + } +@@ -230,14 +235,15 @@ void pki_evp::fromPEMbyteArray(const QByteArray &ba, const QString &name) + tr("Please enter the password to decrypt the private key %1.") + .arg(name)); + pkey = load_ssh_ed25519_privatekey(ba, p); ++ pki_ign_openssl_error(); + + while (!pkey) { + pkey = PEM_read_bio_PrivateKey(BioByteArray(ba).ro(), NULL, + PwDialogCore::pwCallback, &p); +- if (openssl_pw_error()) +- XCA_PASSWD_ERROR(); + if (p.getResult() != pw_ok) + throw p.getResult(); ++ if (openssl_pw_error()) ++ XCA_PASSWD_ERROR(); + if (pki_ign_openssl_error()) + break; + } +@@ -396,10 +402,10 @@ void pki_evp::fload(const QString &fname) + do { + pkey = PEM_read_bio_PrivateKey(BioByteArray(ba).ro(), + NULL, cb, &p); +- if (openssl_pw_error()) +- XCA_PASSWD_ERROR(); + if (p.getResult() != pw_ok) + throw p.getResult(); ++ if (openssl_pw_error()) ++ XCA_PASSWD_ERROR(); + if (pki_ign_openssl_error()) + break; + } while (!pkey); +diff --git a/lib/pki_multi.cpp b/lib/pki_multi.cpp +index 1ed81035..f3c6332e 100644 +--- a/lib/pki_multi.cpp ++++ b/lib/pki_multi.cpp +@@ -127,6 +127,9 @@ void pki_multi::fromPEMbyteArray(const QByteArray &_ba, const QString &name) + XCA_ERROR(err); + delete item; + item = NULL; ++ } catch (...) { ++ delete item; ++ item = NULL; + } + ba.remove(0, sizeof BEGIN -1); + } diff --git a/xca-2.5-revokedel.patch b/xca-2.5-revokedel.patch new file mode 100644 index 0000000..c3d3169 --- /dev/null +++ b/xca-2.5-revokedel.patch @@ -0,0 +1,46 @@ +From 43e1b336d23e7512b246da142c78307baad4cbff Mon Sep 17 00:00:00 2001 +From: Christian Hohnstaedt +Date: Mon, 30 Oct 2023 01:11:30 +0100 +Subject: [PATCH] Fix crash when deleting CA certificates + +If a CA certificate is deleted, all issued certificates must be moved to +an other issuer or the top-level list. + +The CA cert will be taken from the model together with the issued certs +first. Then the issued certs are re-inserted. +To make this work correctly, the issuer must be erased from the issued certs +to be interpreted as insertion and not as move. +--- + lib/db_base.cpp | 2 +- + lib/pki_base.cpp | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/lib/db_base.cpp b/lib/db_base.cpp +index 4d7cc87d..a2e4250f 100644 +--- a/lib/db_base.cpp ++++ b/lib/db_base.cpp +@@ -302,7 +302,7 @@ void db_base::insertChild(pki_base *child, pki_base *parent) + if (parent != treeItem && treeview) + idx = index(parent); + +- if (curr_parent) { // && curr_parent != parent) ++ if (curr_parent) { + int row = curr_parent->indexOf(child); + beginMoveRows(index(curr_parent), row, row, idx, 0); + curr_parent->takeChild(child); +diff --git a/lib/pki_base.cpp b/lib/pki_base.cpp +index 62ca3ac5..77722cb2 100644 +--- a/lib/pki_base.cpp ++++ b/lib/pki_base.cpp +@@ -269,7 +269,10 @@ QList pki_base::getChildItems() const + + pki_base *pki_base::takeFirst() + { +- return childItems.takeFirst(); ++ pki_base *pki = childItems.takeFirst(); ++ if (pki) ++ pki->setParent(nullptr); ++ return pki; + } + + QString pki_base::pki_source_name() const diff --git a/xca.spec b/xca.spec index 9fccd9c..9860c08 100644 --- a/xca.spec +++ b/xca.spec @@ -4,12 +4,16 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.5.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz Source1: xca-2.5.0-README.IMPORTANT +Patch1: xca-2.5-pastekey.patch +Patch2: xca-2.5-revokedel.patch +Patch3: xca-2.5-delete_after_revoke.patch + BuildRequires: cmake BuildRequires: make BuildRequires: gcc-c++ @@ -113,6 +117,15 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog #------------------------------------------------------------------------------- + +* Mon Jan 22 2024 Patrick Monnerat 2.5.0-3 +- Patch "pastekey" fixes a crash pasting an encrypted private key. + https://github.com/chris2511/xca/commit/d29d55a +- Patch "revokedel" fixes a freeze when deleting a certificate. + https://github.com/chris2511/xca/commit/43e1b33 +- Patch "delete_after_revoke" fixes a crash deleting+revoking a certificate. + https://bugzilla.redhat.com/show_bug.cgi?id=2259477 + * Tue Nov 07 2023 Miro Hrončok - 2.5.0-2 - Explicitly BuildRequire python3-sphinxcontrib-qthelp From c858aac3c377c8c47854f034749f7ca28613e29f Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Sun, 17 Mar 2024 15:15:14 +0100 Subject: [PATCH 11/23] New upstream release. --- .gitignore | 1 + sources | 2 +- xca-2.5-delete_after_revoke.patch | 23 -------- xca-2.5-pastekey.patch | 90 ------------------------------- xca-2.5-revokedel.patch | 46 ---------------- xca.spec | 12 ++--- 6 files changed, 8 insertions(+), 166 deletions(-) delete mode 100644 xca-2.5-delete_after_revoke.patch delete mode 100644 xca-2.5-pastekey.patch delete mode 100644 xca-2.5-revokedel.patch diff --git a/.gitignore b/.gitignore index c51d13f..c0f530c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ xca-0.8.1.tar.gz /xca-2.3.0.tar.gz /xca-2.4.0.tar.gz /xca-2.5.0.tar.gz +/xca-2.6.0.tar.gz diff --git a/sources b/sources index c48f1e0..e48068e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xca-2.5.0.tar.gz) = 36b9b97ff0649934fbe78e38048e75883555aab5d86ee2cbd629f9789326d16463f182cf0bbcc76b1ac8f631b24fa187f1b64c466e04de010724ea5f9ebfa11e +SHA512 (xca-2.6.0.tar.gz) = 0904df3095cd1cce3c1d19320f207f1997378776728767201a791680d7b937fd947bfdb887cbc7dd4d9ffa18178807cba7844245cf65c84591af7af287ed531e diff --git a/xca-2.5-delete_after_revoke.patch b/xca-2.5-delete_after_revoke.patch deleted file mode 100644 index 45d33a8..0000000 --- a/xca-2.5-delete_after_revoke.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -Naurp xca-2.5.0.orig/lib/db_x509.cpp xca-2.5.0.new/lib/db_x509.cpp ---- xca-2.5.0.orig/lib/db_x509.cpp 2023-09-24 20:22:03.000000000 +0200 -+++ xca-2.5.0.new/lib/db_x509.cpp 2024-01-22 08:22:11.704982550 +0100 -@@ -768,13 +768,15 @@ void db_x509::certRenewal(QModelIndexLis - newcert->sign(signkey, oldcert->getDigest()); - newcert = dynamic_cast(insert(newcert)); - createSuccess(newcert); -- -- // delete old certificate if requested -- if (doReplace) -- deletePKI(idx); - } - if (doRevoke) - do_revoke(indexes, r); -+ -+ // delete old certificates if requested -+ if (doReplace) -+ foreach(idx, indexes) -+ if (fromIndex(idx)) -+ deletePKI(idx); - } - catch (errorEx &err) { - XCA_ERROR(err); diff --git a/xca-2.5-pastekey.patch b/xca-2.5-pastekey.patch deleted file mode 100644 index 78205e3..0000000 --- a/xca-2.5-pastekey.patch +++ /dev/null @@ -1,90 +0,0 @@ -From d29d55ab20509d3e7d279f1fcd85374b5fecdcd8 Mon Sep 17 00:00:00 2001 -From: Christian Hohnstaedt -Date: Thu, 2 Nov 2023 14:06:12 +0100 -Subject: [PATCH] Close #477: paste an encrypted private key results in a crash - -Improve error- and password handling: - - Also identify: (ERR_LIB_PROV:PROV_R_BAD_DECRYPT) as password error. - - Do not use the OpenSSL internal bitfield definition (0xff000fff) - but the official API: ERR_GET_LIB(), ERR_GET_REASON() - Especially ERR_LIB_OFFSET changed from 24 to 23 in Openssl 3.0.0 - - First check for "Cancel", then for invalid password to avoid - an "Invalid Password" message after aborting the password input dialog. ---- - lib/pki_evp.cpp | 16 +++++++++++----- - lib/pki_multi.cpp | 3 +++ - 2 files changed, 14 insertions(+), 5 deletions(-) - -diff --git a/lib/pki_evp.cpp b/lib/pki_evp.cpp -index d2097ed2..54846d5c 100644 ---- a/lib/pki_evp.cpp -+++ b/lib/pki_evp.cpp -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - Passwd pki_evp::passwd; - -@@ -213,10 +214,14 @@ pki_evp::pki_evp(EVP_PKEY *pkey) - - bool pki_evp::openssl_pw_error() const - { -- switch (ERR_peek_error() & 0xff000fff) { -+ unsigned long e = ERR_peek_error(); -+ -+ switch (ERR_PACK(ERR_GET_LIB(e), 0, ERR_GET_REASON(e))) { - case ERR_PACK(ERR_LIB_PEM, 0, PEM_R_BAD_DECRYPT): - case ERR_PACK(ERR_LIB_PEM, 0, PEM_R_BAD_PASSWORD_READ): - case ERR_PACK(ERR_LIB_EVP, 0, EVP_R_BAD_DECRYPT): -+ case ERR_PACK(ERR_LIB_PROV, 0, PROV_R_BAD_DECRYPT): -+ case ERR_PACK(ERR_LIB_PKCS12, 0, PKCS12_R_PKCS12_CIPHERFINAL_ERROR): - pki_ign_openssl_error(); - return true; - } -@@ -230,14 +235,15 @@ void pki_evp::fromPEMbyteArray(const QByteArray &ba, const QString &name) - tr("Please enter the password to decrypt the private key %1.") - .arg(name)); - pkey = load_ssh_ed25519_privatekey(ba, p); -+ pki_ign_openssl_error(); - - while (!pkey) { - pkey = PEM_read_bio_PrivateKey(BioByteArray(ba).ro(), NULL, - PwDialogCore::pwCallback, &p); -- if (openssl_pw_error()) -- XCA_PASSWD_ERROR(); - if (p.getResult() != pw_ok) - throw p.getResult(); -+ if (openssl_pw_error()) -+ XCA_PASSWD_ERROR(); - if (pki_ign_openssl_error()) - break; - } -@@ -396,10 +402,10 @@ void pki_evp::fload(const QString &fname) - do { - pkey = PEM_read_bio_PrivateKey(BioByteArray(ba).ro(), - NULL, cb, &p); -- if (openssl_pw_error()) -- XCA_PASSWD_ERROR(); - if (p.getResult() != pw_ok) - throw p.getResult(); -+ if (openssl_pw_error()) -+ XCA_PASSWD_ERROR(); - if (pki_ign_openssl_error()) - break; - } while (!pkey); -diff --git a/lib/pki_multi.cpp b/lib/pki_multi.cpp -index 1ed81035..f3c6332e 100644 ---- a/lib/pki_multi.cpp -+++ b/lib/pki_multi.cpp -@@ -127,6 +127,9 @@ void pki_multi::fromPEMbyteArray(const QByteArray &_ba, const QString &name) - XCA_ERROR(err); - delete item; - item = NULL; -+ } catch (...) { -+ delete item; -+ item = NULL; - } - ba.remove(0, sizeof BEGIN -1); - } diff --git a/xca-2.5-revokedel.patch b/xca-2.5-revokedel.patch deleted file mode 100644 index c3d3169..0000000 --- a/xca-2.5-revokedel.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 43e1b336d23e7512b246da142c78307baad4cbff Mon Sep 17 00:00:00 2001 -From: Christian Hohnstaedt -Date: Mon, 30 Oct 2023 01:11:30 +0100 -Subject: [PATCH] Fix crash when deleting CA certificates - -If a CA certificate is deleted, all issued certificates must be moved to -an other issuer or the top-level list. - -The CA cert will be taken from the model together with the issued certs -first. Then the issued certs are re-inserted. -To make this work correctly, the issuer must be erased from the issued certs -to be interpreted as insertion and not as move. ---- - lib/db_base.cpp | 2 +- - lib/pki_base.cpp | 5 ++++- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/lib/db_base.cpp b/lib/db_base.cpp -index 4d7cc87d..a2e4250f 100644 ---- a/lib/db_base.cpp -+++ b/lib/db_base.cpp -@@ -302,7 +302,7 @@ void db_base::insertChild(pki_base *child, pki_base *parent) - if (parent != treeItem && treeview) - idx = index(parent); - -- if (curr_parent) { // && curr_parent != parent) -+ if (curr_parent) { - int row = curr_parent->indexOf(child); - beginMoveRows(index(curr_parent), row, row, idx, 0); - curr_parent->takeChild(child); -diff --git a/lib/pki_base.cpp b/lib/pki_base.cpp -index 62ca3ac5..77722cb2 100644 ---- a/lib/pki_base.cpp -+++ b/lib/pki_base.cpp -@@ -269,7 +269,10 @@ QList pki_base::getChildItems() const - - pki_base *pki_base::takeFirst() - { -- return childItems.takeFirst(); -+ pki_base *pki = childItems.takeFirst(); -+ if (pki) -+ pki->setParent(nullptr); -+ return pki; - } - - QString pki_base::pki_source_name() const diff --git a/xca.spec b/xca.spec index 9860c08..af855bf 100644 --- a/xca.spec +++ b/xca.spec @@ -3,17 +3,13 @@ Summary: Graphical X.509 certificate management tool Name: xca -Version: 2.5.0 -Release: 3%{?dist} +Version: 2.6.0 +Release: 1%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz Source1: xca-2.5.0-README.IMPORTANT -Patch1: xca-2.5-pastekey.patch -Patch2: xca-2.5-revokedel.patch -Patch3: xca-2.5-delete_after_revoke.patch - BuildRequires: cmake BuildRequires: make BuildRequires: gcc-c++ @@ -111,6 +107,7 @@ desktop-file-install --mode 0644 \ %{_datadir}/mime/packages/%{name}.* %{_datadir}/applications/* %{_datadir}/bash-completion/ +%{_metainfodir}/* %attr(0644, root, root) %{_mandir}/*/* @@ -118,6 +115,9 @@ desktop-file-install --mode 0644 \ %changelog #------------------------------------------------------------------------------- +* Sun Mar 17 2024 Patrick Monnerat 2.6.0-1 +- New upstream release. + * Mon Jan 22 2024 Patrick Monnerat 2.5.0-3 - Patch "pastekey" fixes a crash pasting an encrypted private key. https://github.com/chris2511/xca/commit/d29d55a From 9f6c55a1ff23adb7d7c883f420f8a77e4e520232 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Mon, 6 May 2024 11:29:15 +0200 Subject: [PATCH 12/23] Fix application icon --- xca.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xca.spec b/xca.spec index af855bf..57c0b47 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.6.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -86,7 +86,6 @@ desktop-file-install --mode 0644 \ --delete-original \ --add-mime-type application/x-xca-database \ --remove-category QT \ - --set-icon=xca \ '%{buildroot}%{_datadir}/applications/xca.desktop' # Tag translation files. @@ -115,6 +114,10 @@ desktop-file-install --mode 0644 \ %changelog #------------------------------------------------------------------------------- +* Mon May 6 2024 Patrick Monnerat 2.6.0-2 +- Fix application icon. + https://bugzilla.redhat.com/show_bug.cgi?id=2279161 + * Sun Mar 17 2024 Patrick Monnerat 2.6.0-1 - New upstream release. From c261cc9651254bc3dc1afae4a7707104bcd68d2a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 09:45:48 +0000 Subject: [PATCH 13/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index 57c0b47..f0ceb75 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.6.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -112,6 +112,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 2.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + #------------------------------------------------------------------------------- * Mon May 6 2024 Patrick Monnerat 2.6.0-2 From c190c0e58fbb100cd5c01aca2d6fb6e33e6651b7 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Tue, 23 Jul 2024 08:28:20 +0200 Subject: [PATCH 14/23] BR openssl-devel-engine for Fedora >= 41. --- xca.spec | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/xca.spec b/xca.spec index f0ceb75..a201c67 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.6.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz @@ -17,6 +17,9 @@ BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qttools-devel BuildRequires: qt5-linguist BuildRequires: openssl-devel +%if 0%{?fedora} >= 41 +BuildRequires: openssl-devel-engine +%endif BuildRequires: xdg-utils BuildRequires: libtool-ltdl-devel BuildRequires: python3-sphinx @@ -112,11 +115,14 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +#------------------------------------------------------------------------------- + +* Tue Jul 23 2024 Patrick Monnerat 2.6.0-4 +- BR openssl-devel-engine for Fedora >= 41. + * Sat Jul 20 2024 Fedora Release Engineering - 2.6.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild -#------------------------------------------------------------------------------- - * Mon May 6 2024 Patrick Monnerat 2.6.0-2 - Fix application icon. https://bugzilla.redhat.com/show_bug.cgi?id=2279161 From cee503e376d7c7ac60a5e2e58a444c69fd0ea6d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Wed, 4 Sep 2024 22:50:31 +0200 Subject: [PATCH 15/23] convert license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- xca.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/xca.spec b/xca.spec index a201c67..3aab7e2 100644 --- a/xca.spec +++ b/xca.spec @@ -4,8 +4,9 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.6.0 -Release: 4%{?dist} -License: BSD +Release: 5%{?dist} +# Automatically converted from old format: BSD - review is highly recommended. +License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz Source1: xca-2.5.0-README.IMPORTANT @@ -117,6 +118,9 @@ desktop-file-install --mode 0644 \ %changelog #------------------------------------------------------------------------------- +* Wed Sep 4 2024 Miroslav Suchý - 2.6.0-5 +- convert license to SPDX + * Tue Jul 23 2024 Patrick Monnerat 2.6.0-4 - BR openssl-devel-engine for Fedora >= 41. From a649da8913c7761d0d05cb79056211f8fdbf26e7 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Fri, 6 Sep 2024 12:48:02 +0200 Subject: [PATCH 16/23] New upstream release. --- .gitignore | 1 + sources | 2 +- xca-2.5.0-README.IMPORTANT | 5 +++-- xca.spec | 7 +++++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index c0f530c..b2972f3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ xca-0.8.1.tar.gz /xca-2.4.0.tar.gz /xca-2.5.0.tar.gz /xca-2.6.0.tar.gz +/xca-2.7.0.tar.gz diff --git a/sources b/sources index e48068e..18e5652 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xca-2.6.0.tar.gz) = 0904df3095cd1cce3c1d19320f207f1997378776728767201a791680d7b937fd947bfdb887cbc7dd4d9ffa18178807cba7844245cf65c84591af7af287ed531e +SHA512 (xca-2.7.0.tar.gz) = 33b19c43b55077b7508420c73d60f9c8c6969d3ab7a9f80fea75ec7b089f7cb44bc8ddccf9d3c1f8d064b877dcb15183f7875b717591972cdae8c67513c4cb16 diff --git a/xca-2.5.0-README.IMPORTANT b/xca-2.5.0-README.IMPORTANT index 8e3f25a..f65ad65 100644 --- a/xca-2.5.0-README.IMPORTANT +++ b/xca-2.5.0-README.IMPORTANT @@ -1,5 +1,6 @@ When trying to use a private key when working on a database protected by -a password set by xca version < 2.0.0, version 2.5.0 might issue an error like: +a password set by xca version < 2.0.0, version 2.5.0 and above might issue an +error like: --- The following error occurred: @@ -22,6 +23,6 @@ If some private keys have their own password, reset the latter the same way (right click --> Change password). Once these operations have been performed, the database is ready for use with -xca version 2.5. +xca version >= 2.5. See https://github.com/chris2511/xca/discussions/468. diff --git a/xca.spec b/xca.spec index 3aab7e2..bd43605 100644 --- a/xca.spec +++ b/xca.spec @@ -3,8 +3,8 @@ Summary: Graphical X.509 certificate management tool Name: xca -Version: 2.6.0 -Release: 5%{?dist} +Version: 2.7.0 +Release: 1%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -118,6 +118,9 @@ desktop-file-install --mode 0644 \ %changelog #------------------------------------------------------------------------------- +* Fri Sep 6 2024 Patrick Monnerat 2.7.0-1 +- New upstream release. + * Wed Sep 4 2024 Miroslav Suchý - 2.6.0-5 - convert license to SPDX From de9e3ec6fd0e28e69d6d18238741dab5b618e6b1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 15:29:03 +0000 Subject: [PATCH 17/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index bd43605..e633a37 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.7.0 -Release: 1%{?dist} +Release: 2%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -116,6 +116,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 2.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + #------------------------------------------------------------------------------- * Fri Sep 6 2024 Patrick Monnerat 2.7.0-1 From d855066634ca74a146a920e2200485aa487f75d8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 20:39:23 +0000 Subject: [PATCH 18/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index e633a37..e812e59 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.7.0 -Release: 2%{?dist} +Release: 3%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -116,6 +116,9 @@ desktop-file-install --mode 0644 \ #------------------------------------------------------------------------------- %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 2.7.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Sun Jan 19 2025 Fedora Release Engineering - 2.7.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 1d334f950acb143ccefd136cc733a8d40b0c1fb2 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Sun, 31 Aug 2025 22:50:01 -0400 Subject: [PATCH 19/23] Update to 2.9.0 --- .gitignore | 1 + sources | 2 +- xca.spec | 44 ++++++++++++++++++++++++-------------------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index b2972f3..ecb192a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ xca-0.8.1.tar.gz /xca-2.5.0.tar.gz /xca-2.6.0.tar.gz /xca-2.7.0.tar.gz +/xca-2.9.0.tar.gz diff --git a/sources b/sources index 18e5652..fae6ef5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xca-2.7.0.tar.gz) = 33b19c43b55077b7508420c73d60f9c8c6969d3ab7a9f80fea75ec7b089f7cb44bc8ddccf9d3c1f8d064b877dcb15183f7875b717591972cdae8c67513c4cb16 +SHA512 (xca-2.9.0.tar.gz) = e635b83668d0053acb1ad5a8a20a2a1854de90a1e2a8806ecd38e83528d17bc87042d44fcea0f75f2e17df1ed135cc473449547fe273e7e3ea1fe175a4ddf054 diff --git a/xca.spec b/xca.spec index e812e59..5fc0edf 100644 --- a/xca.spec +++ b/xca.spec @@ -3,8 +3,8 @@ Summary: Graphical X.509 certificate management tool Name: xca -Version: 2.7.0 -Release: 3%{?dist} +Version: 2.9.0 +Release: 1%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -12,25 +12,28 @@ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEAS Source1: xca-2.5.0-README.IMPORTANT BuildRequires: cmake -BuildRequires: make BuildRequires: gcc-c++ -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-qttools-devel -BuildRequires: qt5-linguist +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6Widgets) +BuildRequires: cmake(Qt6Sql) +BuildRequires: cmake(Qt6Help) +BuildRequires: cmake(Qt6LinguistTools) +BuildRequires: cmake(Qt6Test) BuildRequires: openssl-devel %if 0%{?fedora} >= 41 BuildRequires: openssl-devel-engine %endif -BuildRequires: xdg-utils +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib BuildRequires: libtool-ltdl-devel BuildRequires: python3-sphinx BuildRequires: python3-sphinxcontrib-qthelp Requires: hicolor-icon-theme -Suggests: qt5-qtbase-mysql -Suggests: qt5-qtbase-postgresql -Suggests: qt5-qtbase-odbc +Suggests: qt6-qtbase-mysql +Suggests: qt6-qtbase-postgresql +Suggests: qt6-qtbase-odbc %description @@ -84,13 +87,9 @@ mv '%{buildroot}%{_datadir}/xca/html' '%{buildroot}%{_docdir}/xca/' install -d -m 755 '%{buildroot}%{_datadir}/mime/packages' install -p -m 644 misc/xca.xml '%{buildroot}%{_datadir}/mime/packages/' -# Install desktop application file. -desktop-file-install --mode 0644 \ - --dir '%{buildroot}%{_datadir}/applications' \ - --delete-original \ - --add-mime-type application/x-xca-database \ - --remove-category QT \ - '%{buildroot}%{_datadir}/applications/xca.desktop' +# Validate desktop files. +desktop-file-validate %{buildroot}%{_datadir}/applications/de.hohnstaedt.xca.desktop +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt.xca.metainfo.xml # Tag translation files. %find_lang '%{name}' --with-qt @@ -102,20 +101,25 @@ desktop-file-install --mode 0644 \ %doc AUTHORS COPYRIGHT README.IMPORTANT %doc %{_docdir}/xca/* -%{_bindir}/* +%{_bindir}/xca %dir %{_datadir}/xca %{_datadir}/xca/*.txt %{_datadir}/xca/*.xca %{_datadir}/icons/*/*/*/*.png %{_datadir}/mime/packages/%{name}.* -%{_datadir}/applications/* +%{_datadir}/applications/de.hohnstaedt.xca.desktop %{_datadir}/bash-completion/ -%{_metainfodir}/* +%{_metainfodir}/de.hohnstaedt.xca.metainfo.xml %attr(0644, root, root) %{_mandir}/*/* +# template, contains no translations or language code +%exclude %{_datadir}/xca/i18n/xca.qm #------------------------------------------------------------------------------- %changelog +* Mon Sep 01 2025 Yaakov Selkowitz - 2.9.0-1 +- Update to 2.9.0 + * Fri Jul 25 2025 Fedora Release Engineering - 2.7.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From ac6e7c196cd19a8e9200e80988fac1be7d4361f2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:29:14 +0000 Subject: [PATCH 20/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index 5fc0edf..068f316 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.9.0 -Release: 1%{?dist} +Release: 2%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -117,6 +117,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt. #------------------------------------------------------------------------------- %changelog +* Sat Jan 17 2026 Fedora Release Engineering - 2.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Mon Sep 01 2025 Yaakov Selkowitz - 2.9.0-1 - Update to 2.9.0 From 5fb38df5757096166d585f9d6e22eac8870ef0b9 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Fri, 12 Jun 2026 20:07:25 -0400 Subject: [PATCH 21/23] Rebuilt for openssl 4.0 --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index 068f316..d9193d8 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.9.0 -Release: 2%{?dist} +Release: 3%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -117,6 +117,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt. #------------------------------------------------------------------------------- %changelog +* Sat Jun 13 2026 Yaakov Selkowitz - 2.9.0-3 +- Rebuilt for openssl 4.0 + * Sat Jan 17 2026 Fedora Release Engineering - 2.9.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 95cf7629c8ab037c0311fd3bee56fa59da588b33 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 09:02:38 +0000 Subject: [PATCH 22/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild --- xca.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xca.spec b/xca.spec index d9193d8..af9321f 100644 --- a/xca.spec +++ b/xca.spec @@ -4,7 +4,7 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.9.0 -Release: 3%{?dist} +Release: 4%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ @@ -117,6 +117,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt. #------------------------------------------------------------------------------- %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 2.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + * Sat Jun 13 2026 Yaakov Selkowitz - 2.9.0-3 - Rebuilt for openssl 4.0 From 8d5e70b6721098a741f2a3c2d20b5c75160a925f Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Wed, 22 Jul 2026 21:14:47 +0200 Subject: [PATCH 23/23] Patch "openssl4" for openssl version 4 compatibility. Remove BR openssl-devel-engine for Fedora > 44. Perform tests. --- xca-2.9.0-openssl4.patch | 504 +++++++++++++++++++++++++++++++++++++++ xca.spec | 42 +++- 2 files changed, 534 insertions(+), 12 deletions(-) create mode 100644 xca-2.9.0-openssl4.patch diff --git a/xca-2.9.0-openssl4.patch b/xca-2.9.0-openssl4.patch new file mode 100644 index 0000000..85d3eca --- /dev/null +++ b/xca-2.9.0-openssl4.patch @@ -0,0 +1,504 @@ +diff -Naurp xca-2.9.0.orig/lib/asn1int.cpp xca-2.9.0.new/lib/asn1int.cpp +--- xca-2.9.0.orig/lib/asn1int.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/asn1int.cpp 2026-07-21 14:50:45.138768332 +0200 +@@ -10,6 +10,7 @@ + #include "func_base.h" + #include "exception.h" + #include "limits.h" ++#include "openssl_compat.h" + #include + #include + +@@ -67,7 +68,7 @@ a1int &a1int::set(long l) + QString a1int::toQString(int dec) const + { + QString r; +- if (in->length == 0) { ++ if (xca_asn1_string_length(in.get()) == 0) { + return r; + } + QSharedPointer bn(ASN1_INTEGER_to_BN(get0(), NULL), BN_free); +diff -Naurp xca-2.9.0.orig/lib/asn1time.cpp xca-2.9.0.new/lib/asn1time.cpp +--- xca-2.9.0.orig/lib/asn1time.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/asn1time.cpp 2026-07-21 15:48:01.479132516 +0200 +@@ -11,6 +11,7 @@ + #include "func.h" + #include "exception.h" + #include "asn1time.h" ++#include "openssl_compat.h" + #include + #include + #include +@@ -50,7 +51,8 @@ int a1time::from_asn1(const ASN1_TIME *a + gt = ASN1_TIME_to_generalizedtime((ASN1_TIME*)a, NULL); + if (!gt) + return -1; +- t = QString::fromLatin1((char*)gt->data, gt->length); ++ t = QString::fromLatin1((char*)xca_asn1_string_get0_data(gt), ++ xca_asn1_string_length(gt)); + ASN1_GENERALIZEDTIME_free(gt); + return fromPlain(t); + } +@@ -68,11 +70,15 @@ int a1time::fromPlain(const QString &pla + + int a1time::set_asn1(const QString &str, int type) const + { +- if (!atime) +- atime = ASN1_TIME_new(); +- if (!atime) +- return -1; +- atime->type = type; ++ if (atime && xca_asn1_string_type(atime) != type) { ++ ASN1_STRING_free(atime); ++ atime = NULL; ++ } ++ if (!atime) { ++ atime = ASN1_STRING_type_new(type); ++ if (!atime) ++ return -1; ++ } + if (ASN1_STRING_set(atime, str.toLatin1(), str.length())) + return -1; + return 0; +diff -Naurp xca-2.9.0.orig/lib/openssl_compat.h xca-2.9.0.new/lib/openssl_compat.h +--- xca-2.9.0.orig/lib/openssl_compat.h 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/openssl_compat.h 2026-07-21 16:05:30.252809689 +0200 +@@ -35,4 +35,15 @@ EVP_DigestVerify(EVP_MD_CTX *ctx, const + } + #endif + ++ ++#if OPENSSL_VERSION_NUMBER < 0x40000000L ++#define xca_asn1_string_length(p) ((p)->length) ++#define xca_asn1_string_get0_data(p) ((p)->data) ++#define xca_asn1_string_type(p) ((p)->type) ++#else ++#define xca_asn1_string_length(p) ASN1_STRING_length(p) ++#define xca_asn1_string_get0_data(p) ASN1_STRING_get0_data(p) ++#define xca_asn1_string_type(p) ASN1_STRING_type(p) ++#endif ++ + #endif +diff -Naurp xca-2.9.0.orig/lib/pkcs11.cpp xca-2.9.0.new/lib/pkcs11.cpp +--- xca-2.9.0.orig/lib/pkcs11.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/pkcs11.cpp 2026-07-22 17:10:39.158463523 +0200 +@@ -650,29 +650,6 @@ int pkcs11::encrypt(int flen, const unsi + return size; + } + +-#if not defined OPENSSL_NO_EC and defined EVP_PKEY_ED25519 +-// Shared between libressl and openssl +-static int eng_idx = -1; +-static int eng_finish(ENGINE *e) +-{ +- pkcs11 *p11 = (pkcs11 *)ENGINE_get_ex_data(e, eng_idx); +- delete p11; +- ENGINE_set_ex_data(e, eng_idx, NULL); +- return 1; +-} +- +-#if (OPENSSL_VERSION_NUMBER >= 0x30000000L) +-static int eng_pmeth_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src) +-#else +-static int eng_pmeth_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) +-#endif +-{ +- void *p = EVP_PKEY_CTX_get_app_data((EVP_PKEY_CTX *)src); +- EVP_PKEY_CTX_set_app_data(dst, p); +- return 1; +-} +-#endif +- + static int rsa_privdata_free(RSA *rsa) + { + pkcs11 *priv = (pkcs11*)RSA_get_app_data(rsa); +@@ -830,10 +807,33 @@ static EC_KEY_METHOD *setup_ec_key_meth( + ec_set_private_proc, ec_set_public_proc); + return ec_key_meth; + } +-#ifdef EVP_PKEY_ED25519 ++ ++ ++#if defined(EVP_PKEY_ED25519) && OPENSSL_VERSION_NUMBER < 0x40000000L + + static EVP_PKEY_METHOD *p11_eddsa_method; + ++// Shared between libressl and openssl ++static int eng_idx = -1; ++static int eng_finish(ENGINE *e) ++{ ++ pkcs11 *p11 = (pkcs11 *)ENGINE_get_ex_data(e, eng_idx); ++ delete p11; ++ ENGINE_set_ex_data(e, eng_idx, NULL); ++ return 1; ++} ++ ++#if (OPENSSL_VERSION_NUMBER >= 0x30000000L) ++static int eng_pmeth_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src) ++#else ++static int eng_pmeth_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) ++#endif ++{ ++ void *p = EVP_PKEY_CTX_get_app_data((EVP_PKEY_CTX *)src); ++ EVP_PKEY_CTX_set_app_data(dst, p); ++ return 1; ++} ++ + static int eddsa_eng_meths(ENGINE *e, EVP_PKEY_METHOD **m, const int **nids, int nid) + { + static const int my_nids[] = {EVP_PKEY_ED25519 }; +@@ -904,7 +904,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY + #ifndef OPENSSL_NO_EC + static EC_KEY_METHOD *ec_key_meth = NULL; + EC_KEY *ec; +-#ifdef EVP_PKEY_ED25519 ++#if defined(EVP_PKEY_ED25519) && OPENSSL_VERSION_NUMBER < 0x40000000L + static ENGINE *e = NULL; + + if (!e) { +@@ -991,6 +991,7 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY + #ifdef EVP_PKEY_ED25519 + case EVP_PKEY_ED25519: + size_t len; ++#if OPENSSL_VERSION_NUMBER < 0x40000000L + if (ENGINE_get_ex_data(e, eng_idx)) + qWarning() << "We forgot to free the previous Card key."; + ENGINE_set_ex_data(e, eng_idx, this); +@@ -1003,6 +1004,17 @@ EVP_PKEY *pkcs11::getPrivateKey(EVP_PKEY + openssl_error(); + OPENSSL_free(pubkey); + //EVP_PKEY_set1_engine(evp, e); ++#else ++ p11obj = obj; ++ EVP_PKEY_get_raw_public_key(pub, NULL, &len); ++ unsigned char *pubkey = (unsigned char *)OPENSSL_malloc(len); ++ Q_CHECK_PTR(pubkey); ++ EVP_PKEY_get_raw_public_key(pub, pubkey, &len); ++ evp = EVP_PKEY_new_raw_public_key_ex(OSSL_LIB_CTX_get0_global_default(), ++ "ED25519", NULL, pubkey, len); ++ openssl_error(); ++ OPENSSL_free(pubkey); ++#endif + break; + #endif + #endif +diff -Naurp xca-2.9.0.orig/lib/pki_pkcs12.cpp xca-2.9.0.new/lib/pki_pkcs12.cpp +--- xca-2.9.0.orig/lib/pki_pkcs12.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/pki_pkcs12.cpp 2026-07-21 14:41:11.421805953 +0200 +@@ -85,7 +85,7 @@ pki_pkcs12::pki_pkcs12(const QString &fn + } + pki_ign_openssl_error(); + if (mycert) { +- unsigned char *str = X509_alias_get0(mycert, NULL); ++ const unsigned char *str = X509_alias_get0(mycert, NULL); + if (str) + alias = QString::fromUtf8((const char *)str); + alias = QString::fromUtf8(alias.toLatin1()); +diff -Naurp xca-2.9.0.orig/lib/pki_scard.cpp xca-2.9.0.new/lib/pki_scard.cpp +--- xca-2.9.0.orig/lib/pki_scard.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/pki_scard.cpp 2026-07-21 16:07:19.266072856 +0200 +@@ -14,6 +14,7 @@ + #include "pkcs11.h" + #include "x509name.h" + #include "func.h" ++#include "openssl_compat.h" + #include "XcaProgress.h" + + #include "XcaWarningCore.h" +@@ -187,7 +188,8 @@ EVP_PKEY *pki_scard::load_pubkey(pkcs11 + d2i_bytearray(D2I_VOID(d2i_ASN1_OCTET_STRING), ba); + pki_openssl_error(); + +- BIGNUM *bn = BN_bin2bn(os->data, os->length, NULL); ++ BIGNUM *bn = BN_bin2bn(xca_asn1_string_get0_data(os), ++ xca_asn1_string_length(os), NULL); + pki_openssl_error(); + + EC_POINT *point = EC_POINT_bn2point(group, bn, NULL, NULL); +@@ -215,8 +217,8 @@ EVP_PKEY *pki_scard::load_pubkey(pkcs11 + d2i_bytearray(D2I_VOID(d2i_ASN1_OCTET_STRING), ba); + pki_openssl_error(); + pkey = EVP_PKEY_new_raw_public_key(EVP_PKEY_ED25519, NULL, +- (const uint8_t *)os->data, +- os->length); ++ (const uint8_t *)xca_asn1_string_get0_data(os), ++ xca_asn1_string_length(os)); + pki_openssl_error(); + ASN1_OCTET_STRING_free(os); + pki_openssl_error(); +diff -Naurp xca-2.9.0.orig/lib/pki_x509.cpp xca-2.9.0.new/lib/pki_x509.cpp +--- xca-2.9.0.orig/lib/pki_x509.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/pki_x509.cpp 2026-07-21 16:09:29.644513174 +0200 +@@ -836,7 +836,7 @@ pki_key *pki_x509::getPubKey() const + bool pki_x509::compareNameAndKey(pki_x509 *other) + { + int r; +- X509_NAME *s1, *s2; ++ const X509_NAME *s1, *s2; + EVP_PKEY *pub1, *pub2; + + if (!cert || !other->cert) +diff -Naurp xca-2.9.0.orig/lib/pki_x509req.cpp xca-2.9.0.new/lib/pki_x509req.cpp +--- xca-2.9.0.orig/lib/pki_x509req.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/pki_x509req.cpp 2026-07-21 16:11:59.068866756 +0200 +@@ -15,6 +15,7 @@ + #include "db_base.h" + #include "x509name.h" + #include "exception.h" ++#include "openssl_compat.h" + #include + + pki_x509req::pki_x509req(const QString &name) +@@ -204,7 +205,9 @@ void pki_x509req::addAttribute(int nid, + return; + + ASN1_STRING *a = QStringToAsn1(content, nid); +- X509_REQ_add1_attr_by_NID(request, nid, a->type, a->data, a->length); ++ X509_REQ_add1_attr_by_NID(request, nid, xca_asn1_string_type(a), ++ xca_asn1_string_get0_data(a), ++ xca_asn1_string_length(a)); + ASN1_STRING_free(a); + openssl_error_msg(QString("'%1' (%2)").arg(content).arg(OBJ_nid2ln(nid))); + } +diff -Naurp xca-2.9.0.orig/lib/x509name.cpp xca-2.9.0.new/lib/x509name.cpp +--- xca-2.9.0.orig/lib/x509name.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/x509name.cpp 2026-07-21 15:56:14.876877763 +0200 +@@ -9,6 +9,7 @@ + #include "base.h" + #include "func_base.h" + #include "BioByteArray.h" ++#include "openssl_compat.h" + #include + #include + #include "exception.h" +@@ -89,7 +90,7 @@ QString x509name::getMostPopular() const + QString x509name::getEntry(int i) const + { + QString ret; +- ASN1_STRING *d; ++ const ASN1_STRING *d; + + if ( i<0 || i>entryCount() ) + return ret; +@@ -102,7 +103,7 @@ QString x509name::getEntry(int i) const + QString x509name::getEntryTag(int i) const + { + QString s = QObject::tr("Invalid"); +- ASN1_STRING *d; ++ const ASN1_STRING *d; + + if (i<0 || i>=entryCount()) + i = entryCount() - 1; +@@ -111,7 +112,7 @@ QString x509name::getEntryTag(int i) con + if (!d) + return s; + +- s = ASN1_tag2str(d->type); ++ s = ASN1_tag2str(xca_asn1_string_type(d)); + return s; + } + +@@ -154,13 +155,13 @@ QStringList x509name::entryList(int i) c + + int x509name::nid(int i) const + { +- X509_NAME_ENTRY *ne = X509_NAME_get_entry(get0(), i); ++ const X509_NAME_ENTRY *ne = X509_NAME_get_entry(get0(), i); + return ne ? OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne)) : NID_undef; + } + + QString x509name::getOid(int i) const + { +- X509_NAME_ENTRY *ne = X509_NAME_get_entry(_get(), i); ++ const X509_NAME_ENTRY *ne = X509_NAME_get_entry(_get(), i); + return ne ? OBJ_obj2QString(X509_NAME_ENTRY_get_object(ne), 1) : QString(); + } + +@@ -258,7 +259,10 @@ void x509name::addEntryByNid(int nid, co + if (entry.isEmpty()) + return; + ASN1_STRING *a = QStringToAsn1(entry.simplified(), nid); +- X509_NAME_add_entry_by_NID(_get(), nid, a->type, a->data, a->length, -1, 0); ++ X509_NAME_add_entry_by_NID(_get(), nid, ++ xca_asn1_string_type(a), ++ xca_asn1_string_get0_data(a), ++ xca_asn1_string_length(a), -1, 0); + ASN1_STRING_free(a); + openssl_error_msg(QString("'%1' (%2)").arg(entry).arg(OBJ_nid2ln(nid))); + } +diff -Naurp xca-2.9.0.orig/lib/x509v3ext.cpp xca-2.9.0.new/lib/x509v3ext.cpp +--- xca-2.9.0.orig/lib/x509v3ext.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/x509v3ext.cpp 2026-07-22 17:43:52.060374543 +0200 +@@ -10,6 +10,7 @@ + #include "asn1int.h" + #include "func.h" + #include "exception.h" ++#include "openssl_compat.h" + #include + #include + #include +@@ -49,8 +50,8 @@ x509v3ext::~x509v3ext() + x509v3ext &x509v3ext::set(const X509_EXTENSION *n) + { + if (n) { +- ASN1_OCTET_STRING *str = X509_EXTENSION_get_data((X509_EXTENSION *)n); +- if (!str || !str->length) ++ const ASN1_OCTET_STRING *str = X509_EXTENSION_get_data((X509_EXTENSION *)n); ++ if (!str || !xca_asn1_string_length(str)) + n = nullptr; + } + if (ext != nullptr) +@@ -116,7 +117,7 @@ x509v3ext &x509v3ext::create_ia5(int nid + + const ASN1_OBJECT *x509v3ext::object() const + { +- ASN1_OBJECT *obj = nullptr; ++ const ASN1_OBJECT *obj = nullptr; + if (ext) { + obj = X509_EXTENSION_get_object(ext); + ign_openssl_error(); +@@ -166,9 +167,9 @@ int x509v3ext::getCritical() const + return ext ? X509_EXTENSION_get_critical(ext) : 0; + } + +-ASN1_OCTET_STRING *x509v3ext::getData() const ++const ASN1_OCTET_STRING *x509v3ext::getData() const + { +- return ext ? X509_EXTENSION_get_data(ext) : nullptr;; ++ return ext ? X509_EXTENSION_get_data(ext) : nullptr; + } + + QString x509v3ext::getValue() const +@@ -318,7 +319,7 @@ static QString ipv6_from_binary(const un + static bool + genName2conf(GENERAL_NAME *gen, QString tag, QString *single, QString *sect) + { +- unsigned char *p; ++ const unsigned char *p; + QString ret; + + switch (gen->type) { +@@ -335,22 +336,23 @@ genName2conf(GENERAL_NAME *gen, QString + return true; + } + case GEN_IPADD: +- p = gen->d.ip->data; +- if (gen->d.ip->length == 4) { ++ p = xca_asn1_string_get0_data(gen->d.ip); ++ if (xca_asn1_string_length(gen->d.ip) == 4) { + *single = QString("IP:%1.%2.%3.%4"). + arg(p[0]).arg(p[1]).arg(p[2]).arg(p[3]); + return true; +- } else if(gen->d.ip->length == 8) { ++ } else if(xca_asn1_string_length(gen->d.ip) == 8) { + *single = QString("IP:%1.%2.%3.%4/%5.%6.%7.%8"). + arg(p[0]).arg(p[1]).arg(p[2]).arg(p[3]). + arg(p[4]).arg(p[5]).arg(p[6]).arg(p[7]); + return true; +- } else if(gen->d.ip->length == 16) { +- *single = "IP:" + ipv6_from_binary(gen->d.ip->data); ++ } else if(xca_asn1_string_length(gen->d.ip) == 16) { ++ *single = "IP:" + ipv6_from_binary(xca_asn1_string_get0_data(gen->d.ip)); + return true; +- } else if(gen->d.ip->length == 32) { +- *single = "IP:" + ipv6_from_binary(gen->d.ip->data) + +- "/" + ipv6_from_binary(gen->d.ip->data +16); ++ } else if(xca_asn1_string_length(gen->d.ip) == 32) { ++ *single = "IP:" + ++ ipv6_from_binary(xca_asn1_string_get0_data(gen->d.ip)) + ++ "/" + ipv6_from_binary(xca_asn1_string_get0_data(gen->d.ip) + 16); + return true; + } + return false; +@@ -372,9 +374,9 @@ genName2conf(GENERAL_NAME *gen, QString + *single = QString("otherName:%1;FORMAT:HEX,%2"). + arg(obj2SnOid(gen->d.otherName->type_id)). + arg(asn1Type2Name(type)); +- for (int i=0; ilength; i++) { ++ for (int i=0; idata[i]), 2, 16, QChar('0')); ++ arg((int)(xca_asn1_string_get0_data(a)[i]), 2, 16, QChar('0')); + } + } + return true; +@@ -423,12 +425,12 @@ bool x509v3ext::parse_ia5(QString *singl + return false; + + if (!str) { +- const unsigned char *p = getData()->data; +- str = d2i_ASN1_OCTET_STRING(NULL, &p, getData()->length); ++ const unsigned char *p = xca_asn1_string_get0_data(getData()); ++ str = d2i_ASN1_OCTET_STRING(NULL, &p, xca_asn1_string_length(getData())); + if (ign_openssl_error() || !str) + return false; + ret = QString("%2"). +- arg(asn1Type2Name(str->type)). ++ arg(asn1Type2Name(xca_asn1_string_type(str))). + arg(QString(asn1ToQString(str))); + } else { + ret = QString(asn1ToQString(str)); +@@ -824,10 +826,10 @@ bool x509v3ext::parse_generic(QString *, + + const ASN1_OBJECT *o = object(); + QString der, obj = o ? obj2SnOid(o) : QString("INVALID"); +- ASN1_OCTET_STRING *v = getData(); ++ const ASN1_OCTET_STRING *v = getData(); + +- for (int i=0; v && i < v->length; i++) +- der += QString(":%1").arg((int)(v->data[i]), 2, 16, QChar('0')); ++ for (int i=0; v && i < xca_asn1_string_length(v); i++) ++ der += QString(":%1").arg((int)(xca_asn1_string_get0_data(v)[i]), 2, 16, QChar('0')); + + if (adv) + *adv = QString("%1=%2DER%3\n").arg(obj). +@@ -1037,7 +1039,7 @@ X509_EXTENSION *x509v3ext::get() const + + bool x509v3ext::isValid() const + { +- return ext && getData() && getData()->length > 0 && ++ return ext && getData() && xca_asn1_string_length(getData()) > 0 && + OBJ_obj2nid(X509_EXTENSION_get_object(ext)) != NID_undef; + } + +diff -Naurp xca-2.9.0.orig/lib/x509v3ext.h xca-2.9.0.new/lib/x509v3ext.h +--- xca-2.9.0.orig/lib/x509v3ext.h 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/lib/x509v3ext.h 2026-07-22 17:33:42.586049536 +0200 +@@ -35,7 +35,7 @@ class x509v3ext + // bool operator == (const x509v3ext &x) const; + QString getObject() const; + int getCritical() const; +- ASN1_OCTET_STRING *getData() const; ++ const ASN1_OCTET_STRING *getData() const; + QString getValue() const; + QString getHtmlValue() const; + QString getConsoleValue(const QString &indent) const; +diff -Naurp xca-2.9.0.orig/widgets/CertDetail.cpp xca-2.9.0.new/widgets/CertDetail.cpp +--- xca-2.9.0.orig/widgets/CertDetail.cpp 2025-03-28 19:28:15.000000000 +0100 ++++ xca-2.9.0.new/widgets/CertDetail.cpp 2026-07-22 17:48:13.703356907 +0200 +@@ -16,6 +16,7 @@ + #include "lib/func_base.h" + #include "lib/func.h" + #include "lib/XcaWarningCore.h" ++#include "lib/openssl_compat.h" + #include + #include + #include +@@ -269,7 +270,7 @@ void CertDetail::setReq(pki_x509req *req + + int count = X509_ATTRIBUTE_count(att); + for (int j=0; jvalue.asn1_string); + attrLayout->addWidget(label, ii, j +1); + } +@@ -289,7 +290,7 @@ QLabel *CertDetail::labelFromAsn1String( + QLabel *label; + label = new CopyLabel(this); + label->setText(asn1ToQString(s)); +- label->setToolTip(QString(ASN1_tag2str(s->type))); ++ label->setToolTip(QString(ASN1_tag2str(xca_asn1_string_type(s)))); + return label; + } + diff --git a/xca.spec b/xca.spec index af9321f..d9b5861 100644 --- a/xca.spec +++ b/xca.spec @@ -4,13 +4,15 @@ Summary: Graphical X.509 certificate management tool Name: xca Version: 2.9.0 -Release: 4%{?dist} +Release: 5%{?dist} # Automatically converted from old format: BSD - review is highly recommended. License: LicenseRef-Callaway-BSD URL: https://hohnstaedt.de/xca/ Source0: https://github.com/%{gitowner0}/%{gitproject0}/releases/download/RELEASE.%{version}/%{name}-%{version}.tar.gz Source1: xca-2.5.0-README.IMPORTANT +Patch1: xca-2.9.0-openssl4.patch + BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: cmake(Qt6Core) @@ -20,7 +22,7 @@ BuildRequires: cmake(Qt6Help) BuildRequires: cmake(Qt6LinguistTools) BuildRequires: cmake(Qt6Test) BuildRequires: openssl-devel -%if 0%{?fedora} >= 41 +%if 0%{?fedora} >= 41 && 0%{?fedora} <= 44 BuildRequires: openssl-devel-engine %endif BuildRequires: desktop-file-utils @@ -44,10 +46,10 @@ OpenSSL library for the cryptographic operations. Certificate signing requests (PKCS#10), certificates (X509v3), the signing of requests, the creation of self-signed certificates, certificate revocation lists and SmartCards are supported. For an easy company-wide use, customizable -templates can be used for certificate and request generation. The PKI structures -can be imported and exported in several formats like PKCS#7, PKCS#12, PEM, -DER, PKCS#8. All cryptographic data are stored in a byte order agnostic file -format, portable across operating systems. +templates can be used for certificate and request generation. The PKI +structures can be imported and exported in several formats like PKCS#7, +PKCS#12, PEM, DER, PKCS#8. All cryptographic data are stored in a byte order +agnostic file format, portable across operating systems. #------------------------------------------------------------------------------- @@ -88,13 +90,26 @@ install -d -m 755 '%{buildroot}%{_datadir}/mime/packages' install -p -m 644 misc/xca.xml '%{buildroot}%{_datadir}/mime/packages/' # Validate desktop files. -desktop-file-validate %{buildroot}%{_datadir}/applications/de.hohnstaedt.xca.desktop -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt.xca.metainfo.xml +desktop-file-validate \ + '%{buildroot}%{_datadir}/applications/de.hohnstaedt.xca.desktop' +appstream-util validate-relax --nonet \ + '%{buildroot}%{_metainfodir}/de.hohnstaedt.xca.metainfo.xml' + +# Template contains neither translations nor language code. +rm -f '%{buildroot}%{_datadir}/xca/i18n/xca.qm' # Tag translation files. %find_lang '%{name}' --with-qt +#------------------------------------------------------------------------------- +%check +#------------------------------------------------------------------------------- + +# Do not test GUI. +%ctest -E '^testxca$' || : + + #------------------------------------------------------------------------------- %files -f %{name}.lang #------------------------------------------------------------------------------- @@ -111,12 +126,17 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt. %{_datadir}/bash-completion/ %{_metainfodir}/de.hohnstaedt.xca.metainfo.xml %attr(0644, root, root) %{_mandir}/*/* -# template, contains no translations or language code -%exclude %{_datadir}/xca/i18n/xca.qm #------------------------------------------------------------------------------- %changelog +#------------------------------------------------------------------------------- + +* Wed Jul 22 2026 Patrick Monnerat 2.9.0-5 +- Patch "openssl4" for openssl version 4 compatibility. +- Remove BR openssl-devel-engine for Fedora > 44. +- Perform tests. + * Fri Jul 17 2026 Fedora Release Engineering - 2.9.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild @@ -135,8 +155,6 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/de.hohnstaedt. * Sun Jan 19 2025 Fedora Release Engineering - 2.7.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild -#------------------------------------------------------------------------------- - * Fri Sep 6 2024 Patrick Monnerat 2.7.0-1 - New upstream release.