Skip to content

Commit

Permalink
Check if the keystore file exists in the validate() method
Browse files Browse the repository at this point in the history
  • Loading branch information
ebourg committed Nov 14, 2024
1 parent 1f2f455 commit 1d21642
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
13 changes: 9 additions & 4 deletions jsign-crypto/src/main/java/net/jsign/KeyStoreType.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@ void validate(KeyStoreBuilder params) {
if (params.keystore() == null) {
throw new IllegalArgumentException("keystore " + params.parameterName() + " must be set");
}
if (!params.createFile(params.keystore()).exists()) {
throw new IllegalArgumentException("The keystore " + params.keystore() + " couldn't be found");
}
}
},

Expand All @@ -129,6 +132,9 @@ void validate(KeyStoreBuilder params) {
if (params.keystore() == null) {
throw new IllegalArgumentException("keystore " + params.parameterName() + " must be set");
}
if (!params.createFile(params.keystore()).exists()) {
throw new IllegalArgumentException("The keystore " + params.keystore() + " couldn't be found");
}
}
},

Expand All @@ -139,6 +145,9 @@ void validate(KeyStoreBuilder params) {
if (params.keystore() == null) {
throw new IllegalArgumentException("keystore " + params.parameterName() + " must be set");
}
if (!params.createFile(params.keystore()).exists()) {
throw new IllegalArgumentException("The keystore " + params.keystore() + " couldn't be found");
}
}
},

Expand Down Expand Up @@ -629,10 +638,6 @@ KeyStore getKeystore(KeyStoreBuilder params, Provider provider) throws KeyStoreE
throw new KeyStoreException("keystore type '" + name() + "' is not supported" + (provider != null ? " with security provider " + provider.getName() : ""), e);
}

if (fileBased && (params.keystore() == null || !params.createFile(params.keystore()).exists())) {
throw new KeyStoreException("The keystore " + params.keystore() + " couldn't be found");
}

try {
try (FileInputStream in = fileBased ? new FileInputStream(params.createFile(params.keystore())) : null) {
ks.load(in, params.storepass() != null ? params.storepass().toCharArray() : null);
Expand Down
15 changes: 15 additions & 0 deletions jsign-crypto/src/test/java/net/jsign/KeyStoreBuilderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,11 @@ public void testBuildJKS() throws Exception {
Exception e = assertThrows(IllegalArgumentException.class, builder::build);
assertEquals("message", "keystore parameter must be set", e.getMessage());

builder.keystore("target/test-classes/keystores/missing.jks");

e = assertThrows(IllegalArgumentException.class, builder::build);
assertEquals("message", "The keystore target/test-classes/keystores/missing.jks couldn't be found", e.getMessage());

builder.keystore("target/test-classes/keystores/keystore.jks");

KeyStore keystore = builder.build();
Expand All @@ -350,6 +355,11 @@ public void testBuildJCEKS() throws Exception {
Exception e = assertThrows(IllegalArgumentException.class, builder::build);
assertEquals("message", "keystore parameter must be set", e.getMessage());

builder.keystore("target/test-classes/keystores/missing.jceks");

e = assertThrows(IllegalArgumentException.class, builder::build);
assertEquals("message", "The keystore target/test-classes/keystores/missing.jceks couldn't be found", e.getMessage());

builder.keystore("target/test-classes/keystores/keystore.jceks");

KeyStore keystore = builder.build();
Expand All @@ -363,6 +373,11 @@ public void testBuildPKCS12() throws Exception {
Exception e = assertThrows(IllegalArgumentException.class, builder::build);
assertEquals("message", "keystore parameter must be set", e.getMessage());

builder.keystore("target/test-classes/keystores/missing.p12");

e = assertThrows(IllegalArgumentException.class, builder::build);
assertEquals("message", "The keystore target/test-classes/keystores/missing.p12 couldn't be found", e.getMessage());

builder.keystore("target/test-classes/keystores/keystore.p12");

KeyStore keystore = builder.build();
Expand Down

0 comments on commit 1d21642

Please sign in to comment.