From fe4a278a7aec914f81da5391c6290f8a89f26665 Mon Sep 17 00:00:00 2001 From: Sergey Ponomarev Date: Mon, 17 Jun 2024 00:24:34 +0300 Subject: [PATCH] Fixes (#501) * i18n ru improve Signed-off-by: Sergey Ponomarev * Use Base64.toBase64String() Signed-off-by: Sergey Ponomarev * Use .append(char) Signed-off-by: Sergey Ponomarev * i18n ru: welcome icons Signed-off-by: Sergey Ponomarev * populateSigAlgs() handle CryptoException Signed-off-by: Sergey Ponomarev --------- Signed-off-by: Sergey Ponomarev --- .../java/org/kse/crypto/csr/pkcs10/Pkcs10Util.java | 2 +- .../main/java/org/kse/crypto/csr/spkac/Spkac.java | 2 +- .../java/org/kse/crypto/signing/JarSigner.java | 10 ++++------ .../java/org/kse/crypto/signing/MidletSigner.java | 4 ++-- .../java/org/kse/gui/dialogs/DialogHelper.java | 11 +++++++---- .../java/org/kse/gui/dialogs/sign/DSignJar.java | 9 ++------- .../main/java/org/kse/utilities/pem/PemUtil.java | 8 ++++---- .../org/kse/gui/crypto/resources_ru.properties | 2 +- .../gui/dialogs/extensions/resources_ru.properties | 2 +- .../kse/gui/dialogs/sign/resources_ru.properties | 2 +- .../org/kse/gui/quickstart/resources_ru.properties | 14 +++++++------- .../resources/org/kse/gui/resources_ru.properties | 4 ++-- 12 files changed, 33 insertions(+), 37 deletions(-) diff --git a/kse/src/main/java/org/kse/crypto/csr/pkcs10/Pkcs10Util.java b/kse/src/main/java/org/kse/crypto/csr/pkcs10/Pkcs10Util.java index fae423031..4e7b3e67c 100644 --- a/kse/src/main/java/org/kse/crypto/csr/pkcs10/Pkcs10Util.java +++ b/kse/src/main/java/org/kse/crypto/csr/pkcs10/Pkcs10Util.java @@ -185,7 +185,7 @@ public static String getCsrEncodedDerPem(PKCS10CertificationRequest csr) throws ByteArrayOutputStream baos = new ByteArrayOutputStream(); ASN1OutputStream deros = ASN1OutputStream.create(baos, ASN1Encoding.DER); deros.writeObject(csr.toASN1Structure().toASN1Primitive()); - String tmp = new String(Base64.encode(baos.toByteArray())); + String tmp = Base64.toBase64String(baos.toByteArray()); // Header String csrStr = BEGIN_CSR_FORM_1 + "\n"; diff --git a/kse/src/main/java/org/kse/crypto/csr/spkac/Spkac.java b/kse/src/main/java/org/kse/crypto/csr/spkac/Spkac.java index 4c89a9dd8..2a65a4331 100644 --- a/kse/src/main/java/org/kse/crypto/csr/spkac/Spkac.java +++ b/kse/src/main/java/org/kse/crypto/csr/spkac/Spkac.java @@ -341,7 +341,7 @@ public void output(OutputStream os) throws IOException, SpkacException { osw = new OutputStreamWriter(os); outputProperty(osw, SPKAC_PROPERTY, - new String(Base64.encode(createSignedPublicKeyAndChallenge().getEncoded(ASN1Encoding.DER)))); + Base64.toBase64String(createSignedPublicKeyAndChallenge().getEncoded(ASN1Encoding.DER))); outputProperty(osw, CN_PROPERTY, subject.getCN()); outputProperty(osw, OU_PROPERTY, subject.getOU()); outputProperty(osw, O_PROPERTY, subject.getO()); diff --git a/kse/src/main/java/org/kse/crypto/signing/JarSigner.java b/kse/src/main/java/org/kse/crypto/signing/JarSigner.java index ecf71394c..6e07ceda1 100644 --- a/kse/src/main/java/org/kse/crypto/signing/JarSigner.java +++ b/kse/src/main/java/org/kse/crypto/signing/JarSigner.java @@ -227,8 +227,7 @@ public static void sign(File jarFile, File signedJarFile, PrivateKey privateKey, // Get the digest of manifest entries created above byte[] mdSf = DigestUtil.getMessageDigest(manifestEntry.getBytes(), digestType); - byte[] mdSf64 = Base64.encode(mdSf); - String mdSf64Str = new String(mdSf64); + String mdSf64Str = Base64.toBase64String(mdSf); // Write this digest as entries in signature file sbSf.append(createAttributeText(NAME_ATTR, jarEntry.getName())); @@ -245,13 +244,13 @@ public static void sign(File jarFile, File signedJarFile, PrivateKey privateKey, byte[] manifest = sbManifest.toString().getBytes(); byte[] digestMf = DigestUtil.getMessageDigest(manifest, digestType); - String digestMfStr = new String(Base64.encode(digestMf)); + String digestMfStr = Base64.toBase64String(digestMf); // Get base 64 encoded digest of manifest's main attributes for inclusion in signature file byte[] manifestMainAttrsBytes = manifestMainAttrs.getBytes(); byte[] digestMfMainAttrs = DigestUtil.getMessageDigest(manifestMainAttrsBytes, digestType); - String digestMfMainAttrsStr = new String(Base64.encode(digestMfMainAttrs)); + String digestMfMainAttrsStr = Base64.toBase64String(digestMfMainAttrs); // Write out Manifest Digest, Created By and Signature Version to start of signature file sbSf.insert(0, CRLF); @@ -436,8 +435,7 @@ private static String getDigestManifestAttrs(JarFile jar, JarEntry jarEntry, Dig // Get the digest of content in Base64 byte[] md = DigestUtil.getMessageDigest(jis, digestType); - byte[] md64 = Base64.encode(md); - String md64Str = new String(md64); + String md64Str = Base64.toBase64String(md); // Write manifest entries for JARs digest String sbManifestEntry = createAttributeText(NAME_ATTR, jarEntry.getName()) + diff --git a/kse/src/main/java/org/kse/crypto/signing/MidletSigner.java b/kse/src/main/java/org/kse/crypto/signing/MidletSigner.java index 04c9d824d..c74d97b09 100644 --- a/kse/src/main/java/org/kse/crypto/signing/MidletSigner.java +++ b/kse/src/main/java/org/kse/crypto/signing/MidletSigner.java @@ -130,7 +130,7 @@ public static void sign(File jadFile, File outputJadFile, File jarFile, RSAPriva X509Certificate certificate = certificateChain[i]; String base64Cert = null; try { - base64Cert = new String(Base64.encode(certificate.getEncoded())); + base64Cert = Base64.toBase64String(certificate.getEncoded()); } catch (CertificateEncodingException ex) { throw new CryptoException(res.getString("Base64CertificateFailed.exception.message"), ex); } @@ -141,7 +141,7 @@ public static void sign(File jadFile, File outputJadFile, File jarFile, RSAPriva // Get signed Base 64 SHA-1 digest of JAR file as attr byte[] signedJarDigest = signJarDigest(jarFile, privateKey); - String base64SignedJarDigest = new String(Base64.encode(signedJarDigest)); + String base64SignedJarDigest = Base64.toBase64String(signedJarDigest); newJadProperties.put(MIDLET_JAR_RSA_SHA1_ATTR, base64SignedJarDigest); // Sort properties alphabetically diff --git a/kse/src/main/java/org/kse/gui/dialogs/DialogHelper.java b/kse/src/main/java/org/kse/gui/dialogs/DialogHelper.java index 4d1cae4c2..20d11d004 100644 --- a/kse/src/main/java/org/kse/gui/dialogs/DialogHelper.java +++ b/kse/src/main/java/org/kse/gui/dialogs/DialogHelper.java @@ -54,10 +54,9 @@ private DialogHelper() { * @param keyPairType * @param privateKey * @param jcbSignatureAlgorithm - * @throws CryptoException */ public static void populateSigAlgs(KeyPairType keyPairType, PrivateKey privateKey, - JComboBox jcbSignatureAlgorithm) throws CryptoException { + JComboBox jcbSignatureAlgorithm) { List sigAlgs; @@ -84,8 +83,12 @@ public static void populateSigAlgs(KeyPairType keyPairType, PrivateKey privateKe break; case RSA: default: - KeyInfo keyInfo = KeyPairUtil.getKeyInfo(privateKey); - sigAlgs = SignatureType.rsaSignatureTypes(keyInfo.getSize()); + try { + KeyInfo keyInfo = KeyPairUtil.getKeyInfo(privateKey); + sigAlgs = SignatureType.rsaSignatureTypes(keyInfo.getSize()); + } catch (CryptoException e) { + sigAlgs = Collections.emptyList(); + } } jcbSignatureAlgorithm.removeAllItems(); diff --git a/kse/src/main/java/org/kse/gui/dialogs/sign/DSignJar.java b/kse/src/main/java/org/kse/gui/dialogs/sign/DSignJar.java index b9fa4e7ab..5e8983af9 100644 --- a/kse/src/main/java/org/kse/gui/dialogs/sign/DSignJar.java +++ b/kse/src/main/java/org/kse/gui/dialogs/sign/DSignJar.java @@ -57,7 +57,6 @@ import org.apache.commons.io.IOUtils; import org.kse.KSE; -import org.kse.crypto.CryptoException; import org.kse.crypto.digest.DigestType; import org.kse.crypto.keypair.KeyPairType; import org.kse.crypto.signing.JarSigner; @@ -132,11 +131,8 @@ public class DSignJar extends JEscDialog { * @param signPrivateKey Signing key pair's private key * @param signKeyPairType Signing key pair's type * @param signatureName Default signature name - * @throws CryptoException A crypto problem was encountered constructing the - * dialog */ - public DSignJar(JFrame parent, PrivateKey signPrivateKey, KeyPairType signKeyPairType, String signatureName) - throws CryptoException { + public DSignJar(JFrame parent, PrivateKey signPrivateKey, KeyPairType signKeyPairType, String signatureName) { super(parent, Dialog.ModalityType.DOCUMENT_MODAL); this.signPrivateKey = signPrivateKey; this.signKeyPairType = signKeyPairType; @@ -148,9 +144,8 @@ public DSignJar(JFrame parent, PrivateKey signPrivateKey, KeyPairType signKeyPai * Initializes the dialogue panel and associated elements * * @param signatureName String - * @throws CryptoException */ - private void initComponents(String signatureName) throws CryptoException { + private void initComponents(String signatureName) { jlSignDirectly = new JLabel(res.getString("DSignJar.jlSignDirectly.text")); jrbSignDirectly = new JRadioButton("", true); jrbSignDirectly.setToolTipText(res.getString("DSignJar.jrbSignDirectly.tooltip")); diff --git a/kse/src/main/java/org/kse/utilities/pem/PemUtil.java b/kse/src/main/java/org/kse/utilities/pem/PemUtil.java index f9ba98bfe..a1d9d2eb8 100644 --- a/kse/src/main/java/org/kse/utilities/pem/PemUtil.java +++ b/kse/src/main/java/org/kse/utilities/pem/PemUtil.java @@ -66,7 +66,7 @@ public static String encode(PemInfo pemInfo) { sbPem.append(PEM_BEGIN_MARKER); sbPem.append(pemInfo.getType()); sbPem.append(PEM_FIVE_DASHES); - sbPem.append("\n"); + sbPem.append('\n'); // Output any header attributes PemAttributes attributes = pemInfo.getAttributes(); @@ -82,7 +82,7 @@ public static String encode(PemInfo pemInfo) { } // Output content - String base64 = new String(Base64.encode(pemInfo.getContent())); + String base64 = Base64.toBase64String(pemInfo.getContent()); // Limit line lengths for (int i = 0; i < base64.length(); i += MAX_PRINTABLE_ENCODING_LINE_LENGTH) { @@ -95,14 +95,14 @@ public static String encode(PemInfo pemInfo) { } sbPem.append(base64, i, i + lineLength); - sbPem.append("\n"); + sbPem.append('\n'); } // Output footer sbPem.append(PEM_END_MARKER); sbPem.append(pemInfo.getType()); sbPem.append(PEM_FIVE_DASHES); - sbPem.append("\n"); + sbPem.append('\n'); return sbPem.toString(); } diff --git a/kse/src/main/resources/org/kse/gui/crypto/resources_ru.properties b/kse/src/main/resources/org/kse/gui/crypto/resources_ru.properties index ddfbaf11a..e5398b2a2 100644 --- a/kse/src/main/resources/org/kse/gui/crypto/resources_ru.properties +++ b/kse/src/main/resources/org/kse/gui/crypto/resources_ru.properties @@ -63,7 +63,7 @@ JPublicKeyFingerprint.jbViewPublicKeyFingerprint.tooltip=\u041F\u043E\u0441\u043 JPublicKeyFingerprint.jcbFingerprintAlg.tooltip=\u0410\u043B\u0433\u043E\u0440\u0438\u0442\u043C\u044B \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u043E\u0432:\n1. RFC 5280 \u2014 \u043C\u0435\u0442\u043E\u0434 1 SubjectKeyIdentifier (SKI)\n2. RFC 5280 \u2014 \u043C\u0435\u0442\u043E\u0434 2 SubjectKeyIdentifier (SKI)\n3. SHA-1, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0439 \u043F\u043E ASN.1 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435 SubjectPublicKeyInfo (SPKI)\n4. SHA-256, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0439 \u043F\u043E ASN.1 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0435 SubjectPublicKeyInfo (SPKI) JPublicKeyFingerprint.jtfPublicKeyFingerprint.tooltip=\u041E\u0442\u043F\u0435\u0447\u0430\u0442\u043E\u043A \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430 JDistinguishedName.jbClearDistinguishedName.tooltip=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0438\u043C\u044F -JDistinguishedName.jbViewEditDistinguishedName.Edit.tooltip=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u043C\u044F +JDistinguishedName.jbViewEditDistinguishedName.Edit.tooltip=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u043C\u044F JDistinguishedName.jbViewEditDistinguishedName.View.tooltip=\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438\u043C\u044F JValidityPeriod.jbApply.text=\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C JValidityPeriod.jcbType.days.text=\u0414\u043D\u0435\u0439 diff --git a/kse/src/main/resources/org/kse/gui/dialogs/extensions/resources_ru.properties b/kse/src/main/resources/org/kse/gui/dialogs/extensions/resources_ru.properties index 201330590..b18df066b 100644 --- a/kse/src/main/resources/org/kse/gui/dialogs/extensions/resources_ru.properties +++ b/kse/src/main/resources/org/kse/gui/dialogs/extensions/resources_ru.properties @@ -56,7 +56,7 @@ DCustomExtension.jbOK.text=OK DCustomExtension.jtaEncodedHexValue.tooltip=\u0428\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u0430\u044F \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 DER-\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E ASN.1 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\n\u0431\u0435\u0437 \u0438\u043D\u043A\u0430\u043F\u0441\u0443\u043B\u0438\u0440\u0443\u044E\u0449\u0435\u0433\u043E \u0442\u0435\u0433\u0430 OCTET STRING \u0438 \u0431\u0430\u0439\u0442\u043E\u0432 \u0434\u043B\u0438\u043D\u044B DExtendedKeyUsage.Title=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u043A\u043B\u044E\u0447\u0430 (EKU) DExtendedKeyUsage.ValueReq.message=\u0414\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u043E \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u043E \u0438\u0437 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0433\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u043A\u043B\u044E\u0447\u0430. -DExtendedKeyUsage.jbAddEku.text=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C +DExtendedKeyUsage.jbAddEku.text=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C DExtendedKeyUsage.jbCancel.text=\u041E\u0442\u043C\u0435\u043D\u0430 DExtendedKeyUsage.jbOK.text=OK DExtendedKeyUsage.jcbAdobePDFSigning.text=\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Adobe PDF diff --git a/kse/src/main/resources/org/kse/gui/dialogs/sign/resources_ru.properties b/kse/src/main/resources/org/kse/gui/dialogs/sign/resources_ru.properties index 91c016176..fd70ecc8f 100644 --- a/kse/src/main/resources/org/kse/gui/dialogs/sign/resources_ru.properties +++ b/kse/src/main/resources/org/kse/gui/dialogs/sign/resources_ru.properties @@ -61,7 +61,7 @@ DSignJar.jcbDigestAlgorithm.tooltip=\u0410\u043B\u0433\u043E\u0440\u0438\u0442\u DSignJar.jcbSignatureAlgorithm.tooltip=\u0410\u043B\u0433\u043E\u0440\u0438\u0442\u043C \u043F\u043E\u0434\u043F\u0438\u0441\u0438, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 \u0434\u043B\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u0438\u044F JAR \u0444\u0430\u0439\u043B\u0430 DSignJar.jcbTimestampServerUrl.tooltip=\u041C\u0435\u0441\u0442\u043E\u043D\u0430\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435 \u041E\u0440\u0433\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 (Time Stamping Authority, TSA) DSignJar.jlAddTimestamp.text=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438: -DSignJar.jlDigestAlgorithm.text=\u0410\u043B\u0433\u043E\u0440\u0438\u0442\u043C \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u0438: {0} +DSignJar.jlDigestAlgorithm.text=\u0410\u043B\u0433\u043E\u0440\u0438\u0442\u043C \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u043F\u043E\u0434\u043F\u0438\u0441\u0438: DSignJar.jlFileCount.text=\u0412\u044B\u0431\u0440\u0430\u043D\u043E {0} \u0444\u0430\u0439\u043B\u043E\u0432. DSignJar.jlFiles.text=\u0424\u0430\u0439\u043B\u044B DSignJar.jlInputJar.text=\u0412\u0445\u043E\u0434\u043D\u044B\u0435 JAR \u0444\u0430\u0439\u043B(\u044B): diff --git a/kse/src/main/resources/org/kse/gui/quickstart/resources_ru.properties b/kse/src/main/resources/org/kse/gui/quickstart/resources_ru.properties index a33ecf381..b326b1056 100644 --- a/kse/src/main/resources/org/kse/gui/quickstart/resources_ru.properties +++ b/kse/src/main/resources/org/kse/gui/quickstart/resources_ru.properties @@ -1,7 +1,7 @@ -JQuickStartPane.jqslHeading.text=
KeyStore Explorer
\u0411\u044B\u0441\u0442\u0440\u044B\u0439 \u0441\u0442\u0430\u0440\u0442
-JQuickStartPane.jqsbNewKeyStore.text=
\u0421\u043E\u0437\u0434\u0430\u0442\u044C
\u043D\u043E\u0432\u043E\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439.
-JQuickStartPane.jqsbOpenKeyStore.text=
\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439
.
-JQuickStartPane.jqsbOpenDefaultKeyStore.text=
\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E
.
-JQuickStartPane.jqsbOpenCaCertificatesKeyStore.text=
\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432 \u0423\u0426
.
-JQuickStartPane.jqsbExamineCertificate.text=
\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
-JQuickStartPane.jqsbHelp.text=
\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0441\u043F\u0440\u0430\u0432\u043A\u0438
+JQuickStartPane.jqslHeading.text=
KeyStore Explorer
\u0411\u044B\u0441\u0442\u0440\u044B\u0439 \u0441\u0442\u0430\u0440\u0442
+JQuickStartPane.jqsbNewKeyStore.text=
\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u043E\u0435
\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439
+JQuickStartPane.jqsbOpenKeyStore.text=
\u041E\u0442\u043A\u0440\u044B\u0442\u044C
\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439
+JQuickStartPane.jqsbOpenDefaultKeyStore.text=
\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435
\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439
+JQuickStartPane.jqsbOpenCaCertificatesKeyStore.text=
\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435
\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432 \u0423\u0426
+JQuickStartPane.jqsbExamineCertificate.text=
\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C
\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
+JQuickStartPane.jqsbHelp.text=
\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C
\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0441\u043F\u0440\u0430\u0432\u043A\u0438
diff --git a/kse/src/main/resources/org/kse/gui/resources_ru.properties b/kse/src/main/resources/org/kse/gui/resources_ru.properties index 7291f8fe1..0da69f278 100644 --- a/kse/src/main/resources/org/kse/gui/resources_ru.properties +++ b/kse/src/main/resources/org/kse/gui/resources_ru.properties @@ -42,7 +42,7 @@ KseFrame.jcbmiShowHideToolBar.mnemonic=t KseFrame.jmChangeType.mnemonic=c KseFrame.jmChangeType.text=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0438\u043F \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u043A\u043B\u044E\u0447\u0435\u0439 KseFrame.jmEdit.mnemonic=e -KseFrame.jmEdit.text=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C +KseFrame.jmEdit.text=\u041F\u0440\u0430\u0432\u043A\u0430 KseFrame.jmExamine.mnemonic=x KseFrame.jmExamine.text=\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C KseFrame.jmFile.mnemonic=f @@ -50,7 +50,7 @@ KseFrame.jmFile.text=\u0424\u0430\u0439\u043B KseFrame.jmHelp.mnemonic=h KseFrame.jmHelp.text=\u041F\u043E\u043C\u043E\u0449\u044C KseFrame.jmKeyPairDetails.text=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 -KseFrame.jmKeyPairEditCertChain.text=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0446\u0435\u043F\u043E\u0447\u043A\u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432 +KseFrame.jmKeyPairEditCertChain.text=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0446\u0435\u043F\u043E\u0447\u043A\u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432 KseFrame.jmKeyPairExport.text=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C KseFrame.jmKeyPairImportCaReply.text=\u0418\u043C\u043F\u043E\u0440\u0442 \u043E\u0442\u0432\u0435\u0442\u0430 \u0423\u0426 KseFrame.jmKeyPairSign.text=\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u0442\u044C