Skip to content

Commit

Permalink
Refactorings (#500)
Browse files Browse the repository at this point in the history
* fix typo in getSignerCerificates()

Signed-off-by: Sergey Ponomarev <[email protected]>

* JarParser.getSignerCerificates(): early break

Signed-off-by: Sergey Ponomarev <[email protected]>

* use Path.of() to avoid depending on a system's file separator

Signed-off-by: Sergey Ponomarev <[email protected]>

* Use Path.of() for DUpgradeCryptoStrength.ManualInstructions.message

Signed-off-by: Sergey Ponomarev <[email protected]>

* i18n ru improve

Signed-off-by: Sergey Ponomarev <[email protected]>

* Simplify usage of System.getProperty()

Signed-off-by: Sergey Ponomarev <[email protected]>

* DUserNoticeChooser: remove unnecessary boxing

Signed-off-by: Sergey Ponomarev <[email protected]>

* ObjectIdUtil: Stream may be extended replacing 'toArray'

Signed-off-by: Sergey Ponomarev <[email protected]>

* Use isEmpty()

Signed-off-by: Sergey Ponomarev <[email protected]>

* Remove Conditional break inside loop

Signed-off-by: Sergey Ponomarev <[email protected]>

* Fix typos

Signed-off-by: Sergey Ponomarev <[email protected]>

---------

Signed-off-by: Sergey Ponomarev <[email protected]>
  • Loading branch information
stokito authored Jun 15, 2024
1 parent 50f2279 commit 448a88a
Show file tree
Hide file tree
Showing 21 changed files with 47 additions and 50 deletions.
4 changes: 2 additions & 2 deletions kse/src/main/java/org/kse/AuthorityCertificates.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.security.KeyStore;

import org.kse.crypto.CryptoException;
Expand Down Expand Up @@ -80,8 +81,7 @@ public void setCaCertificates(KeyStore caCertificates) {
*/
public static File getDefaultCaCertificatesLocation() {
String javaInstallDir = System.getProperty("java.home");
String fileSep = System.getProperty("file.separator");
File cacertsFile = new File(javaInstallDir, "lib" + fileSep + "security" + fileSep + "cacerts");
File cacertsFile = Path.of(javaInstallDir, "lib", "security", "cacerts").toFile();
try {
return cacertsFile.getCanonicalFile();
} catch (IOException e) {
Expand Down
2 changes: 1 addition & 1 deletion kse/src/main/java/org/kse/crypto/csr/spkac/Spkac.java
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public class Spkac {
private static ResourceBundle res = ResourceBundle.getBundle("org/kse/crypto/csr/spkac/resources");

private static final String SPKAC_PROPERTY = "SPKAC";
private static final String NEWLINE = System.getProperty("line.separator");
private static final String NEWLINE = System.lineSeparator();

private String challenge;
private SpkacSubject subject;
Expand Down
4 changes: 2 additions & 2 deletions kse/src/main/java/org/kse/crypto/jcepolicy/JcePolicyUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.nio.file.Path;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.text.MessageFormat;
Expand Down Expand Up @@ -167,9 +168,8 @@ public static String getPolicyDetails(JcePolicy jcePolicy) throws CryptoExceptio
* @return JAR file
*/
public static File getJarFile(JcePolicy jcePolicy) {
String fileSeperator = System.getProperty("file.separator");
String javaHome = System.getProperty("java.home");
File libSecurityFile = new File(javaHome, "lib" + fileSeperator + "security");
File libSecurityFile = Path.of(javaHome, "lib", "security").toFile();

return new File(libSecurityFile, jcePolicy.jar());
}
Expand Down
26 changes: 12 additions & 14 deletions kse/src/main/java/org/kse/crypto/signing/JarParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,31 +49,29 @@ public JarParser(File jarFile) {
* @return Unordered array with signer certificates
* @throws IOException if an I/O error has occurred
*/
public X509Certificate[] getSignerCerificates() throws IOException {
public X509Certificate[] getSignerCertificates() throws IOException {
try (JarFile jf = new JarFile(jarFile, true)) {

Set<Certificate> allSignerCerts = new HashSet<>();
Enumeration<JarEntry> entries = jf.entries();

while (entries.hasMoreElements()) {

JarEntry entry = entries.nextElement();

// reading entry completely is required for calling getCodeSigners()/getCertificates()
readEntry(jf, entry);

if (!entry.isDirectory()) {
CodeSigner[] codeSigners = entry.getCodeSigners();
if (codeSigners != null) {
for (CodeSigner cs : entry.getCodeSigners()) {
allSignerCerts.addAll(cs.getSignerCertPath().getCertificates());
}
if (entry.isDirectory()) {
continue;
}
CodeSigner[] codeSigners = entry.getCodeSigners();
if (codeSigners != null) {
for (CodeSigner cs : entry.getCodeSigners()) {
allSignerCerts.addAll(cs.getSignerCertPath().getCertificates());
}
}

Certificate[] certificates = entry.getCertificates();
if (certificates != null) {
allSignerCerts.addAll(Arrays.asList(certificates));
}
Certificate[] certificates = entry.getCertificates();
if (certificates != null) {
allSignerCerts.addAll(Arrays.asList(certificates));
}
}

Expand Down
2 changes: 1 addition & 1 deletion kse/src/main/java/org/kse/gui/CurrentDirectory.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ private static void initialiseWorkingDirToBeHomeDir() {
}

/**
* Update CurrentSirectory to be the supplied directory.
* Update CurrentDirectory to be the supplied directory.
*
* @param directory Used to set current directory
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public void openFile(File file) {
switch (fileType) {
case JAR:
JarParser jarParser = new JarParser(file);
X509Certificate[] signerCertificates = jarParser.getSignerCerificates();
X509Certificate[] signerCertificates = jarParser.getSignerCertificates();
showCerts(signerCertificates, file.getName());
break;
case JCEKS_KS:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ protected void doAction() {
List<X509Certificate> listCertificate = getCertificates();
File exportFile = null;
try {
if (listCertificate.size() > 0) {
if (!listCertificate.isEmpty()) {
KeyStoreHistory history = kseFrame.getActiveKeyStoreHistory();
String fileName = FileNameUtil.removeExtension(history.getName());
DExportCertificates dExportCertificates = new DExportCertificates(frame, fileName, false, true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import java.io.IOException;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.MessageFormat;
import java.util.Enumeration;
import java.util.List;
Expand Down Expand Up @@ -80,7 +81,7 @@
import net.miginfocom.swing.MigLayout;

/**
* Dialog to upgrade cyptography strength.
* Dialog to upgrade cryptography strength.
*/
public class DUpgradeCryptoStrength extends JEscDialog {
private static final long serialVersionUID = 1L;
Expand Down Expand Up @@ -234,10 +235,9 @@ private void upgradeFailedShowManualInstructions() {
JOptionPane.WARNING_MESSAGE);

String javaHome = System.getProperty("java.home");
String fileSeparator = System.getProperty("file.separator");

String javaSecurityLibFolder = Path.of(javaHome, "lib", "security").toString();
String manualInstructions = MessageFormat.format(
res.getString("DUpgradeCryptoStrength.ManualInstructions.message"), javaHome, fileSeparator);
res.getString("DUpgradeCryptoStrength.ManualInstructions.message"), javaSecurityLibFolder);

JOptionPane.showMessageDialog(this, manualInstructions, getTitle(), JOptionPane.INFORMATION_MESSAGE);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,9 @@ private void okPressed() {

NoticeReference noticeReference = null;
if (!organizationString.isEmpty()) { // If organization is present then so is al of notice reference

Vector<Integer> noticeNumbers = new Vector<>();

for (int noticeNumber : noticeNumberInts) {
noticeNumbers.add(new Integer(noticeNumber));
noticeNumbers.add(noticeNumber);
}

noticeReference = new NoticeReference(organizationString, noticeNumbers);
Expand Down
4 changes: 2 additions & 2 deletions kse/src/main/java/org/kse/gui/dialogs/DialogHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ public static void populateSigAlgs(KeyPairType keyPairType, PrivateKey privateKe
*/
public static void populatePkcs10Challenge(Attribute[] attributes, JTextField textField) {

ASN1ObjectIdentifier pkcs9AtChallengepassword = PKCSObjectIdentifiers.pkcs_9_at_challengePassword;
populateTextField(attributes, textField, pkcs9AtChallengepassword);
ASN1ObjectIdentifier pkcs9AtChallengePassword = PKCSObjectIdentifiers.pkcs_9_at_challengePassword;
populateTextField(attributes, textField, pkcs9AtChallengePassword);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,9 +192,9 @@ private void populateExtensionTypes() {
// Population is the supported set minus those already added
ArrayList<X509ExtensionType> availableExtensions = new ArrayList<>();

for (X509ExtensionType extentionType : SUPPORTED_EXTENSIONS) {
if (extensions.getExtensionValue(extentionType.oid()) == null) {
availableExtensions.add(extentionType);
for (X509ExtensionType extensionType : SUPPORTED_EXTENSIONS) {
if (extensions.getExtensionValue(extensionType.oid()) == null) {
availableExtensions.add(extensionType);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -825,7 +825,7 @@ public static void saveTemplatePressed(X509ExtensionSet extensionsToSave, JDialo
}

/**
* Get chosen certficate extensions.
* Get chosen certificate extensions.
*
* @return Certificate extensions or null if dialog cancelled.
*/
Expand Down
2 changes: 1 addition & 1 deletion kse/src/main/java/org/kse/gui/jar/DJarInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ private JarFile[] getClassPathJars() throws IOException {
Vector<JarFile> jars = new Vector<>();

String classPath = System.getProperty("java.class.path");
String pathSeparator = System.getProperty("path.separator");
String pathSeparator = File.pathSeparator;

StringTokenizer strTok = new StringTokenizer(classPath, pathSeparator);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,10 @@ public KeyStoreState getCurrentState() {
public void nullPasswords() {
KeyStoreState state = initialState;

while (true) {
do {
state.nullPasswords();
state = state.nextState();

if (state == null) {
break;
}
}
} while (state != null);
}

/**
Expand Down
3 changes: 1 addition & 2 deletions kse/src/main/java/org/kse/utilities/oid/ObjectIdUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -2311,8 +2311,7 @@ private static void validate(int[] arcs) throws InvalidObjectIdException {
*/
public static ObjectOid[] getAllOidsStartingWith(String prefix) {
ObjectOid[] oids = oidToNameMapping.entrySet().stream().filter(e -> e.getKey().startsWith(prefix))
.map(e -> new ObjectOid(prefix, e.getKey(), e.getValue())).sorted()
.collect(Collectors.toList()).toArray(new ObjectOid[0]);
.map(e -> new ObjectOid(prefix, e.getKey(), e.getValue())).sorted().toArray(ObjectOid[]::new);
return oids;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ ExportKeyPairAction.ExportKeyPair.Title=\u042D\u043A\u0441\u043F\u043E\u0440\u04
ExportKeyPairAction.text=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0430\u0440\u0443 \u043A\u043B\u044E\u0447\u0435\u0439
ExportKeyPairAction.tooltip=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043F\u0438\u0441\u044C \u043F\u0430\u0440\u044B \u043A\u043B\u044E\u0447\u0435\u0439
ExportKeyPairCertificateChainAction.ExportCertificateChain.Title=\u042D\u043A\u0441\u043F\u043E\u0440\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\u0430
ExportKeyPairCertificateChainAction.ExportCertificateChainSuccessful.message=\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430 \u0443\u0441\u043F\u0435\u0448\u0435\u043D.
ExportKeyPairCertificateChainAction.statusbar=\u042D\u043A\u0441\u043F\u043E\u0440\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\u0430 \u0437\u0430\u043F\u0438\u0441\u0438 \u043F\u0430\u0440\u044B \u043A\u043B\u044E\u0447\u0435\u0439 \u043A\u0430\u043A X.509, PKCS #7, PKI Path \u0438\u043B\u0438 SPC
ExportKeyPairCertificateChainAction.text=\u042D\u043A\u0441\u043F\u043E\u0440\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\u0430
ExportKeyPairPrivateKeyAction.ExportPrivateKeyPvk.Title=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u0432\u0430\u0442\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043A\u0430\u043A PVK
ExportKeyPairPrivateKeyAction.text=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u0432\u0430\u0442\u043D\u044B\u0439 \u043A\u043B\u044E\u0447
ExportKeyPairPublicKeyAction.text=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0439 \u043A\u043B\u044E\u0447
Expand Down Expand Up @@ -210,10 +213,11 @@ OpenCaCertificatesAction.OpenCaCertificatesKeyStore.Title=\u041E\u0442\u043A\u04
OpenCaCertificatesAction.statusbar=\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\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445 \u0426\u0435\u043D\u0442\u0440\u043E\u0432 (\u0423\u0426)
OpenCaCertificatesAction.text=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B \u0423\u0426
OpenCaCertificatesAction.tooltip=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B \u0423\u0426
OpenDefaultAction.NoDefaultKeyStoreCreate.message=\u0425\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 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.\n\u0412\u044B \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u0435\u0433\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C?
OpenDefaultAction.OpenDefaultKeyStore.Title=\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
OpenDefaultAction.statusbar=\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
OpenDefaultAction.text=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E
OpenDefaultAction.tooltip=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E
OpenDefaultAction.text=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E
OpenDefaultAction.tooltip=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E
OpenMsCapiAction.TabTitle=Windows-MY
OpenMsCapiAction.text=\u041E\u0442\u043A\u0440\u044B\u0442\u044C Windows-MY
OpenMsCapiAction.tooltip=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043A\u043B\u044E\u0447\u0435\u0439 Windows-MY
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ DProviderInfo.jbCopy.text = Copy
DProviderInfo.jbCopy.tooltip = Copy security provider information to the clipboard
DProviderInfo.jbOK.text = OK

DUpgradeCryptoStrength.ManualInstructions.message = <html><b>Manual Instructions to Upgrade Cryptography Strength</b><br><br>Press OK to exit KeyStore Explorer before proceeding with these instructions as it can lock existing policy files.<ol><li>Open the <b>Unlimited Strength Jurisdiction Policy ZIP</b> and extract the files <b>local_policy.jar</b> and <b>US_export_policy.jar</b>.</li><li>Locate the <b>Java Security Lib</b> folder on your computer: <b>{0}{1}lib{1}security</b>.</li><li>Make backup copies the existing <b>local_policy.jar</b> and <b>US_export_policy.jar</b> files present in the <b>Java Security Lib</b> folder.</li><li>Copy the extracted copies of the <b>local_policy.jar</b> and <b>US_export_policy.jar</b> files into the <b>Java Security Lib</b> folder.</li><li>Restart KeyStore Explorer for the above steps to take effect.</li></ol></html>
DUpgradeCryptoStrength.ManualInstructions.message = <html><b>Manual Instructions to Upgrade Cryptography Strength</b><br><br>Press OK to exit KeyStore Explorer before proceeding with these instructions as it can lock existing policy files.<ol><li>Open the <b>Unlimited Strength Jurisdiction Policy ZIP</b> and extract the files <b>local_policy.jar</b> and <b>US_export_policy.jar</b>.</li><li>Locate the <b>Java Security Lib</b> folder on your computer: <b>{0}</b>.</li><li>Make backup copies the existing <b>local_policy.jar</b> and <b>US_export_policy.jar</b> files present in the <b>Java Security Lib</b> folder.</li><li>Copy the extracted copies of the <b>local_policy.jar</b> and <b>US_export_policy.jar</b> files into the <b>Java Security Lib</b> folder.</li><li>Restart KeyStore Explorer for the above steps to take effect.</li></ol></html>
DUpgradeCryptoStrength.NoLaunchBrowser.message = Could not launch web browser. Policy download web address is ''{0}''.
DUpgradeCryptoStrength.NoUpdatePolicy.message = Could not upgrade cryptography strength automatically.\nThis was probably due to insufficient privileges.\nManual upgrade instructions will now be displayed.
DUpgradeCryptoStrength.NotPolicyZip.message = The supplied file is not a valid Unlimited Strength Jurisdiction Policy ZIP.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ DProviderInfo.jbCopy.text = Kopieren
DProviderInfo.jbCopy.tooltip = Informationen zum Sicherheitsanbieter in die Zwischenablage kopieren
DProviderInfo.jbOK.text = OK

DUpgradeCryptoStrength.ManualInstructions.message = <html><b>Anleitung zum manuellen Upgrade der kryptographischen St\u00E4rke</b><br><br>Klicken Sie auf \u00BBOK\u00AB um \u00BBKeystore Explorer\u00AB zu verlassen, bevor sie mit diesen Anweisungen fortfahren. Die Richtlinien-Dateien k\u00F6nnten durch diese Anwendung gesperrt sein.<ol><li>\u00D6ffnen sie die Archivdatei \u00BB<b>Unlimited Strength Jurisdiction Policy ZIP</b>\u00AB und entpacken daraus die Dateien <b>local_policy.jar</b> und <b>US_export_policy.jar</b>.</li><li>Navigieren sie zum Verzeichnis <b>Java Security Bibliotheken</b> auf ihrem Computer: <b>{0}{1}lib{1}security</b>.</li><li>Erstellen sie eine Sicherheitskopie der in diesem Verzeichnis vorhandenen Dateien <b>local_policy.jar</b> und <b>US_export_policy.jar</b>.</li><li>Kopieren sie die zuvor entpackten Dateien <b>local_policy.jar</b> und <b>US_export_policy.jar</b> in das Verzeichnis <b>Java Security Bibliotheken</b>.</li><li>Beim n\u00E4chsten Start von \u00BBKeyStore Explorer\u00AB werden die neuen Richtlinien angewendet.</li></ol></html>
DUpgradeCryptoStrength.ManualInstructions.message = <html><b>Anleitung zum manuellen Upgrade der kryptographischen St\u00E4rke</b><br><br>Klicken Sie auf \u00BBOK\u00AB um \u00BBKeystore Explorer\u00AB zu verlassen, bevor sie mit diesen Anweisungen fortfahren. Die Richtlinien-Dateien k\u00F6nnten durch diese Anwendung gesperrt sein.<ol><li>\u00D6ffnen sie die Archivdatei \u00BB<b>Unlimited Strength Jurisdiction Policy ZIP</b>\u00AB und entpacken daraus die Dateien <b>local_policy.jar</b> und <b>US_export_policy.jar</b>.</li><li>Navigieren sie zum Verzeichnis <b>Java Security Bibliotheken</b> auf ihrem Computer: <b>{0}</b>.</li><li>Erstellen sie eine Sicherheitskopie der in diesem Verzeichnis vorhandenen Dateien <b>local_policy.jar</b> und <b>US_export_policy.jar</b>.</li><li>Kopieren sie die zuvor entpackten Dateien <b>local_policy.jar</b> und <b>US_export_policy.jar</b> in das Verzeichnis <b>Java Security Bibliotheken</b>.</li><li>Beim n\u00E4chsten Start von \u00BBKeyStore Explorer\u00AB werden die neuen Richtlinien angewendet.</li></ol></html>
DUpgradeCryptoStrength.NoLaunchBrowser.message = Der Webbrowser konnte nicht gestartet werden. Die Download-Adresse ist \u00BB{0}\u00AB.
DUpgradeCryptoStrength.NoUpdatePolicy.message = Die kryptographische St\u00E4rke konnte nicht automatisch auf unbegrenzt erweitert werden.\nVermutlich aufgrund fehlender Berechtigungen.\nEine Anleitung zur manuellen Erweiterung wird nun angezeigt.
DUpgradeCryptoStrength.NotPolicyZip.message = Das angegebene ZIP-Archiv enth\u00E4lt keine g\u00FCltigen \u00BBUnlimited Strength Jurisdiction Policy\u00AB Dateien.
Expand Down
Loading

0 comments on commit 448a88a

Please sign in to comment.