From 83cf03424b67b52599f0ac2a84e11dcc31e4fb27 Mon Sep 17 00:00:00 2001 From: "ARTECH\\sgrampone" Date: Fri, 21 Jun 2024 16:19:18 -0300 Subject: [PATCH] Load first key and certificate from store --- .../com/genexus/securityapicommons/keys/CertificateX509.java | 4 ++++ .../genexus/securityapicommons/keys/PrivateKeyManager.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/CertificateX509.java b/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/CertificateX509.java index d40c63c..050fd7d 100644 --- a/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/CertificateX509.java +++ b/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/CertificateX509.java @@ -223,6 +223,10 @@ private boolean loadPublicKeyFromPKCS12File(String path, String alias, String pa try { ks = KeyStore.getInstance("PKCS12"); ks.load(in, password.toCharArray()); + if(SecurityUtils.compareStrings("", alias)) + { + alias = ks.aliases().nextElement(); + } this.cert = (X509Certificate) ks.getCertificate(alias); } catch (Exception e) { this.error.setError("CE007", "Path not found."); diff --git a/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/PrivateKeyManager.java b/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/PrivateKeyManager.java index 54cae01..b53e930 100644 --- a/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/PrivateKeyManager.java +++ b/SecurityAPICommons/src/main/java/com/genexus/securityapicommons/keys/PrivateKeyManager.java @@ -282,6 +282,10 @@ private boolean loadPrivateKeyFromPKCS12File(String path, String alias, String p InputStream in = SecurityUtils.inputFileToStream(path); KeyStore ks = KeyStore.getInstance("PKCS12"); ks.load(in, password.toCharArray()); + if(SecurityUtils.compareStrings("", alias)) + { + alias = ks.aliases().nextElement(); + } if (ks.getKey(alias, password.toCharArray()) != null) { PrivateKey privateKey = (PrivateKey) ks.getKey(alias, password.toCharArray()); this.privateKeyInfo = PrivateKeyInfo.getInstance(privateKey.getEncoded());