From b3ae550f4196dfc7b3b45739a04c5b1ae1859623 Mon Sep 17 00:00:00 2001 From: Jakob Heher Date: Fri, 8 Jul 2022 13:42:20 +0200 Subject: cache keystore password in memory cf. #68 #69 todo: sanitize config loading behavior --- .../asit/pdfover/gui/keystore/KeystoreUtils.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pdf-over-gui/src/main/java/at/asit/pdfover/gui/keystore/KeystoreUtils.java (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/keystore/KeystoreUtils.java') diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/keystore/KeystoreUtils.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/keystore/KeystoreUtils.java new file mode 100644 index 00000000..8b7bb59c --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/keystore/KeystoreUtils.java @@ -0,0 +1,28 @@ +package at.asit.pdfover.gui.keystore; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.UnrecoverableKeyException; +import java.security.cert.CertificateException; + +public class KeystoreUtils { + public static KeyStore tryLoadKeystore(File location, String storeType, String storePass) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException { + KeyStore ks = KeyStore.getInstance(storeType); + FileInputStream fis = new FileInputStream(location); + try + { + ks.load(fis, storePass.toCharArray()); + } catch (IOException e) { + UnrecoverableKeyException keyCause = (UnrecoverableKeyException)e.getCause(); + if (keyCause != null) + throw keyCause; + else + throw e; + } + return ks; + } +} -- cgit v1.2.3