2828import java .util .concurrent .atomic .AtomicBoolean ;
2929
3030import io .netty .handler .codec .http .HttpRequest ;
31+ import net .jsign .ks .YubiKeyKeyStore ;
3132import org .apache .commons .cli .ParseException ;
3233import org .apache .commons .io .ByteOrderMark ;
3334import org .apache .commons .io .FileUtils ;
@@ -54,7 +55,7 @@ public class JsignCLITest {
5455 private JsignCLI cli ;
5556 private File sourceFile = new File ("target/test-classes/wineyes.exe" );
5657 private File targetFile = new File ("target/test-classes/wineyes-signed-with-cli.exe" );
57-
58+
5859 private String keystore = "keystore.jks" ;
5960 private String alias = "test" ;
6061 private String keypass = "password" ;
@@ -64,12 +65,12 @@ public class JsignCLITest {
6465 @ Before
6566 public void setUp () throws Exception {
6667 cli = new JsignCLI ();
67-
68+
6869 // remove the files signed previously
6970 if (targetFile .exists ()) {
7071 assertTrue ("Unable to remove the previously signed file" , targetFile .delete ());
7172 }
72-
73+
7374 assertEquals ("Source file CRC32" , SOURCE_FILE_CRC32 , FileUtils .checksumCRC32 (sourceFile ));
7475 Thread .sleep (100 );
7576 FileUtils .copyFile (sourceFile , targetFile );
@@ -218,7 +219,7 @@ public void testSigningMultipleFiles() throws Exception {
218219 public void testSigningMultipleFilesWithListFile () throws Exception {
219220 File listFile = new File ("target/test-classes/files.txt" );
220221 Files .write (listFile .toPath (), Arrays .asList ("# first file" , '"' + targetFile .getPath () + '"' , " " , "# second file" , targetFile .getAbsolutePath ()));
221-
222+
222223 cli .execute ("--name=WinEyes" , "--url=http://www.steelblue.com/WinEyes" , "--alg=SHA-1" , "--keystore=target/test-classes/keystores/" + keystore , "--keypass=" + keypass , "@" + listFile );
223224
224225 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
@@ -270,7 +271,7 @@ public void testSigningPowerShell() throws Exception {
270271 File sourceFile = new File ("target/test-classes/hello-world.ps1" );
271272 File targetFile = new File ("target/test-classes/hello-world-signed-with-cli.ps1" );
272273 FileUtils .copyFile (sourceFile , targetFile );
273-
274+
274275 cli .execute ("--alg=SHA-1" , "--replace" , "--encoding=ISO-8859-1" , "--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile );
275276
276277 PowerShellScript script = new PowerShellScript (targetFile );
@@ -283,7 +284,7 @@ public void testSigningPowerShellWithDefaultEncoding() throws Exception {
283284 File sourceFile = new File ("target/test-classes/hello-world.ps1" );
284285 File targetFile = new File ("target/test-classes/hello-world-signed-with-cli.ps1" );
285286 FileUtils .copyFile (sourceFile , targetFile );
286-
287+
287288 cli .execute ("--alg=SHA-1" , "--replace" , "--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile );
288289
289290 PowerShellScript script = new PowerShellScript (targetFile );
@@ -296,7 +297,7 @@ public void testSigningMSI() throws Exception {
296297 File sourceFile = new File ("target/test-classes/minimal.msi" );
297298 File targetFile = new File ("target/test-classes/minimal-signed-with-cli.msi" );
298299 FileUtils .copyFile (sourceFile , targetFile );
299-
300+
300301 cli .execute ("--alg=SHA-1" , "--replace" , "--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile );
301302
302303 try (MSIFile file = new MSIFile (targetFile )) {
@@ -307,7 +308,7 @@ public void testSigningMSI() throws Exception {
307308 @ Test
308309 public void testSigningPKCS12 () throws Exception {
309310 cli .execute ("--name=WinEyes" , "--url=http://www.steelblue.com/WinEyes" , "--alg=SHA-256" , "--keystore=target/test-classes/keystores/keystore.p12" , "--alias=test" , "--storepass=password" , "" + targetFile );
310-
311+
311312 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
312313
313314 try (PEFile peFile = new PEFile (targetFile )) {
@@ -329,7 +330,7 @@ public void testSigningJCEKS() throws Exception {
329330 @ Test
330331 public void testSigningPVKSPC () throws Exception {
331332 cli .execute ("--url=http://www.steelblue.com/WinEyes" , "--certfile=target/test-classes/keystores/jsign-test-certificate-full-chain.spc" , "--keyfile=target/test-classes/keystores/privatekey-encrypted.pvk" , "--storepass=password" , "" + targetFile );
332-
333+
333334 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
334335
335336 try (PEFile peFile = new PEFile (targetFile )) {
@@ -340,7 +341,7 @@ public void testSigningPVKSPC() throws Exception {
340341 @ Test
341342 public void testSigningPEM () throws Exception {
342343 cli .execute ("--certfile=target/test-classes/keystores/jsign-test-certificate.pem" , "--keyfile=target/test-classes/keystores/privatekey.pkcs8.pem" , "--keypass=password" , "" + targetFile );
343-
344+
344345 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
345346
346347 try (PEFile peFile = new PEFile (targetFile )) {
@@ -351,7 +352,7 @@ public void testSigningPEM() throws Exception {
351352 @ Test
352353 public void testSigningEncryptedPEM () throws Exception {
353354 cli .execute ("--certfile=target/test-classes/keystores/jsign-test-certificate.pem" , "--keyfile=target/test-classes/keystores/privatekey-encrypted.pkcs1.pem" , "--keypass=password" , "" + targetFile );
354-
355+
355356 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
356357
357358 try (PEFile peFile = new PEFile (targetFile )) {
@@ -361,7 +362,7 @@ public void testSigningEncryptedPEM() throws Exception {
361362
362363 @ Test
363364 public void testSigningWithYubikey () throws Exception {
364- Assume .assumeTrue ("No Yubikey detected" , YubiKey .isPresent ());
365+ Assume .assumeTrue ("No Yubikey detected" , YubiKeyKeyStore .isPresent ());
365366
366367 cli .execute ("--storetype=YUBIKEY" , "--certfile=target/test-classes/keystores/jsign-test-certificate-full-chain.spc" , "--storepass=123456" , "--alias=X.509 Certificate for Digital Signature" , "" + targetFile , "" + targetFile );
367368 }
@@ -371,7 +372,7 @@ public void testTimestampingAuthenticode() throws Exception {
371372 File targetFile2 = new File ("target/test-classes/wineyes-timestamped-with-cli-authenticode.exe" );
372373 FileUtils .copyFile (sourceFile , targetFile2 );
373374 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "--tsaurl=http://timestamp.sectigo.com" , "--tsmode=authenticode" , "" + targetFile2 );
374-
375+
375376 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
376377
377378 try (PEFile peFile = new PEFile (targetFile2 )) {
@@ -404,18 +405,18 @@ public HttpFilters filterRequest(HttpRequest originalRequest) {
404405 }
405406 })
406407 .start ();
407-
408+
408409 try {
409410 File targetFile2 = new File ("target/test-classes/wineyes-timestamped-with-cli-rfc3161-proxy-unauthenticated.exe" );
410411 FileUtils .copyFile (sourceFile , targetFile2 );
411412 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass ,
412413 "--tsaurl=http://timestamp.sectigo.com" , "--tsmode=rfc3161" , "--tsretries=1" , "--tsretrywait=1" ,
413414 "--proxyUrl=localhost:" + proxy .getListenAddress ().getPort (),
414415 "" + targetFile2 );
415-
416+
416417 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
417418 assertTrue ("The proxy wasn't used" , proxyUsed .get ());
418-
419+
419420 try (PEFile peFile = new PEFile (targetFile2 )) {
420421 SignatureAssert .assertSigned (peFile , SHA256 );
421422 }
@@ -457,10 +458,10 @@ public String getRealm() {
457458 "--proxyUser=jsign" ,
458459 "--proxyPass=jsign" ,
459460 "" + targetFile2 );
460-
461+
461462 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
462463 assertTrue ("The proxy wasn't used" , proxyUsed .get ());
463-
464+
464465 try (PEFile peFile = new PEFile (targetFile2 )) {
465466 SignatureAssert .assertSigned (peFile , SHA256 );
466467 }
@@ -474,11 +475,11 @@ public void testReplaceSignature() throws Exception {
474475 File targetFile2 = new File ("target/test-classes/wineyes-re-signed.exe" );
475476 FileUtils .copyFile (sourceFile , targetFile2 );
476477 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile2 );
477-
478+
478479 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
479-
480+
480481 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "--alg=SHA-512" , "--replace" , "" + targetFile2 );
481-
482+
482483 try (PEFile peFile = new PEFile (targetFile2 )) {
483484 SignatureAssert .assertSigned (peFile , SHA512 );
484485 }
@@ -514,7 +515,7 @@ public Integer getStatus() {
514515 }
515516
516517 public void checkPermission (Permission perm ) { }
517-
518+
518519 public void checkPermission (Permission perm , Object context ) { }
519520
520521 public void checkExit (int status ) {
0 commit comments