Skip to content

Commit 1d21642

Browse files
committed
Check if the keystore file exists in the validate() method
1 parent 1f2f455 commit 1d21642

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

jsign-crypto/src/main/java/net/jsign/KeyStoreType.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ void validate(KeyStoreBuilder params) {
119119
if (params.keystore() == null) {
120120
throw new IllegalArgumentException("keystore " + params.parameterName() + " must be set");
121121
}
122+
if (!params.createFile(params.keystore()).exists()) {
123+
throw new IllegalArgumentException("The keystore " + params.keystore() + " couldn't be found");
124+
}
122125
}
123126
},
124127

@@ -129,6 +132,9 @@ void validate(KeyStoreBuilder params) {
129132
if (params.keystore() == null) {
130133
throw new IllegalArgumentException("keystore " + params.parameterName() + " must be set");
131134
}
135+
if (!params.createFile(params.keystore()).exists()) {
136+
throw new IllegalArgumentException("The keystore " + params.keystore() + " couldn't be found");
137+
}
132138
}
133139
},
134140

@@ -139,6 +145,9 @@ void validate(KeyStoreBuilder params) {
139145
if (params.keystore() == null) {
140146
throw new IllegalArgumentException("keystore " + params.parameterName() + " must be set");
141147
}
148+
if (!params.createFile(params.keystore()).exists()) {
149+
throw new IllegalArgumentException("The keystore " + params.keystore() + " couldn't be found");
150+
}
142151
}
143152
},
144153

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

632-
if (fileBased && (params.keystore() == null || !params.createFile(params.keystore()).exists())) {
633-
throw new KeyStoreException("The keystore " + params.keystore() + " couldn't be found");
634-
}
635-
636641
try {
637642
try (FileInputStream in = fileBased ? new FileInputStream(params.createFile(params.keystore())) : null) {
638643
ks.load(in, params.storepass() != null ? params.storepass().toCharArray() : null);

jsign-crypto/src/test/java/net/jsign/KeyStoreBuilderTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,11 @@ public void testBuildJKS() throws Exception {
337337
Exception e = assertThrows(IllegalArgumentException.class, builder::build);
338338
assertEquals("message", "keystore parameter must be set", e.getMessage());
339339

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

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

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

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

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

368383
KeyStore keystore = builder.build();

0 commit comments

Comments
 (0)