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 );
@@ -226,7 +227,7 @@ public void testSigningMultipleFiles() throws Exception {
226227 public void testSigningMultipleFilesWithListFile () throws Exception {
227228 File listFile = new File ("target/test-classes/files.txt" );
228229 Files .write (listFile .toPath (), Arrays .asList ("# first file" , '"' + targetFile .getPath () + '"' , " " , "# second file" , targetFile .getAbsolutePath ()));
229-
230+
230231 cli .execute ("--name=WinEyes" , "--url=http://www.steelblue.com/WinEyes" , "--alg=SHA-1" , "--keystore=target/test-classes/keystores/" + keystore , "--keypass=" + keypass , "@" + listFile );
231232
232233 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
@@ -278,7 +279,7 @@ public void testSigningPowerShell() throws Exception {
278279 File sourceFile = new File ("target/test-classes/hello-world.ps1" );
279280 File targetFile = new File ("target/test-classes/hello-world-signed-with-cli.ps1" );
280281 FileUtils .copyFile (sourceFile , targetFile );
281-
282+
282283 cli .execute ("--alg=SHA-1" , "--replace" , "--encoding=ISO-8859-1" , "--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile );
283284
284285 PowerShellScript script = new PowerShellScript (targetFile );
@@ -291,7 +292,7 @@ public void testSigningPowerShellWithDefaultEncoding() throws Exception {
291292 File sourceFile = new File ("target/test-classes/hello-world.ps1" );
292293 File targetFile = new File ("target/test-classes/hello-world-signed-with-cli.ps1" );
293294 FileUtils .copyFile (sourceFile , targetFile );
294-
295+
295296 cli .execute ("--alg=SHA-1" , "--replace" , "--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile );
296297
297298 PowerShellScript script = new PowerShellScript (targetFile );
@@ -304,7 +305,7 @@ public void testSigningMSI() throws Exception {
304305 File sourceFile = new File ("target/test-classes/minimal.msi" );
305306 File targetFile = new File ("target/test-classes/minimal-signed-with-cli.msi" );
306307 FileUtils .copyFile (sourceFile , targetFile );
307-
308+
308309 cli .execute ("--alg=SHA-1" , "--replace" , "--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile );
309310
310311 try (MSIFile file = new MSIFile (targetFile )) {
@@ -315,7 +316,7 @@ public void testSigningMSI() throws Exception {
315316 @ Test
316317 public void testSigningPKCS12 () throws Exception {
317318 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 );
318-
319+
319320 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
320321
321322 try (PEFile peFile = new PEFile (targetFile )) {
@@ -337,7 +338,7 @@ public void testSigningJCEKS() throws Exception {
337338 @ Test
338339 public void testSigningPVKSPC () throws Exception {
339340 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 );
340-
341+
341342 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
342343
343344 try (PEFile peFile = new PEFile (targetFile )) {
@@ -348,7 +349,7 @@ public void testSigningPVKSPC() throws Exception {
348349 @ Test
349350 public void testSigningPEM () throws Exception {
350351 cli .execute ("--certfile=target/test-classes/keystores/jsign-test-certificate.pem" , "--keyfile=target/test-classes/keystores/privatekey.pkcs8.pem" , "--keypass=password" , "" + targetFile );
351-
352+
352353 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
353354
354355 try (PEFile peFile = new PEFile (targetFile )) {
@@ -359,7 +360,7 @@ public void testSigningPEM() throws Exception {
359360 @ Test
360361 public void testSigningEncryptedPEM () throws Exception {
361362 cli .execute ("--certfile=target/test-classes/keystores/jsign-test-certificate.pem" , "--keyfile=target/test-classes/keystores/privatekey-encrypted.pkcs1.pem" , "--keypass=password" , "" + targetFile );
362-
363+
363364 assertTrue ("The file " + targetFile + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile ));
364365
365366 try (PEFile peFile = new PEFile (targetFile )) {
@@ -369,7 +370,7 @@ public void testSigningEncryptedPEM() throws Exception {
369370
370371 @ Test
371372 public void testSigningWithYubikey () throws Exception {
372- Assume .assumeTrue ("No Yubikey detected" , YubiKey .isPresent ());
373+ Assume .assumeTrue ("No Yubikey detected" , YubiKeyKeyStore .isPresent ());
373374
374375 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 );
375376 }
@@ -379,7 +380,7 @@ public void testTimestampingAuthenticode() throws Exception {
379380 File targetFile2 = new File ("target/test-classes/wineyes-timestamped-with-cli-authenticode.exe" );
380381 FileUtils .copyFile (sourceFile , targetFile2 );
381382 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "--tsaurl=http://timestamp.sectigo.com" , "--tsmode=authenticode" , "" + targetFile2 );
382-
383+
383384 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
384385
385386 try (PEFile peFile = new PEFile (targetFile2 )) {
@@ -412,18 +413,18 @@ public HttpFilters filterRequest(HttpRequest originalRequest) {
412413 }
413414 })
414415 .start ();
415-
416+
416417 try {
417418 File targetFile2 = new File ("target/test-classes/wineyes-timestamped-with-cli-rfc3161-proxy-unauthenticated.exe" );
418419 FileUtils .copyFile (sourceFile , targetFile2 );
419420 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass ,
420421 "--tsaurl=http://timestamp.sectigo.com" , "--tsmode=rfc3161" , "--tsretries=1" , "--tsretrywait=1" ,
421422 "--proxyUrl=localhost:" + proxy .getListenAddress ().getPort (),
422423 "" + targetFile2 );
423-
424+
424425 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
425426 assertTrue ("The proxy wasn't used" , proxyUsed .get ());
426-
427+
427428 try (PEFile peFile = new PEFile (targetFile2 )) {
428429 SignatureAssert .assertSigned (peFile , SHA256 );
429430 }
@@ -465,10 +466,10 @@ public String getRealm() {
465466 "--proxyUser=jsign" ,
466467 "--proxyPass=jsign" ,
467468 "" + targetFile2 );
468-
469+
469470 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
470471 assertTrue ("The proxy wasn't used" , proxyUsed .get ());
471-
472+
472473 try (PEFile peFile = new PEFile (targetFile2 )) {
473474 SignatureAssert .assertSigned (peFile , SHA256 );
474475 }
@@ -482,11 +483,11 @@ public void testReplaceSignature() throws Exception {
482483 File targetFile2 = new File ("target/test-classes/wineyes-re-signed.exe" );
483484 FileUtils .copyFile (sourceFile , targetFile2 );
484485 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "" + targetFile2 );
485-
486+
486487 assertTrue ("The file " + targetFile2 + " wasn't changed" , SOURCE_FILE_CRC32 != FileUtils .checksumCRC32 (targetFile2 ));
487-
488+
488489 cli .execute ("--keystore=target/test-classes/keystores/" + keystore , "--alias=" + alias , "--keypass=" + keypass , "--alg=SHA-512" , "--replace" , "" + targetFile2 );
489-
490+
490491 try (PEFile peFile = new PEFile (targetFile2 )) {
491492 SignatureAssert .assertSigned (peFile , SHA512 );
492493 }
@@ -525,7 +526,7 @@ public Integer getStatus() {
525526 }
526527
527528 public void checkPermission (Permission perm ) { }
528-
529+
529530 public void checkPermission (Permission perm , Object context ) { }
530531
531532 public void checkExit (int status ) {
0 commit comments