diff --git a/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSigner.java b/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSigner.java index 2014835e..2339b94b 100644 --- a/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSigner.java +++ b/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSigner.java @@ -57,13 +57,22 @@ public static Builder builder() { @Override public Path sign(Path file) { try { - KeyStore keystore = - new KeyStoreBuilder() - .storetype(configuration().getStoreType()) - .keystore(configuration().getKeystore()) - .storepass(googleAccessToken()) - .certfile(configuration().getCertificateChain().toFile()) - .build(); + KeyStoreBuilder keyStoreBuilder = new KeyStoreBuilder() + .storetype(configuration().getStoreType()) + .keystore(configuration().getKeystore()); + if (kmsCredentials!=null) { + keyStoreBuilder.storepass(googleAccessToken()); + } else if (configuration().getStorePass() != null) { + keyStoreBuilder.storepass(configuration().getStorePass()); + } + try { + if (configuration().getCertificateChain() != null) { + keyStoreBuilder.certfile(configuration().getCertificateChain().toFile()); + } + } catch(IllegalArgumentException e){ + // Ignore missing certficate chain;could be stored in keystore + } + KeyStore keystore =keyStoreBuilder.build(); AuthenticodeSigner signer = new AuthenticodeSigner(keystore, configuration().getKeyAlias(), null) diff --git a/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSignerProperties.java b/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSignerProperties.java index 53d9fcca..cb898a00 100644 --- a/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSignerProperties.java +++ b/webservice/signing/windows/src/main/java/org/eclipse/cbi/webservice/signing/windows/JSignerProperties.java @@ -30,6 +30,7 @@ public class JSignerProperties { private static final String JSIGN_DESCRIPTION = "windows.jsign.description"; private static final String JSIGN_STORETYPE = "windows.jsign.storetype"; + private static final String JSIGN_STOREPASS = "windows.jsign.storepass"; private static final String JSIGN_KEYSTORE = "windows.jsign.keystore"; private static final String JSIGN_KEY_ALIAS = "windows.jsign.keyalias"; private static final String JSIGN_CERTCHAIN = "windows.jsign.certchain"; @@ -67,6 +68,10 @@ public String getStoreType() { return propertiesReader.getString(JSIGN_STORETYPE); } + public String getStorePass() { + return propertiesReader.getString(JSIGN_STOREPASS); + } + public String getKeystore() { return propertiesReader.getString(JSIGN_KEYSTORE); }