You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2020/08/07 17:11:17 UTC

svn commit: r1880685 - /pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateSignature.java

Author: tilman
Date: Fri Aug  7 17:11:17 2020
New Revision: 1880685

URL: http://svn.apache.org/viewvc?rev=1880685&view=rev
Log:
PDFBOX-3017: DRY refactoring of keyStore loading

Modified:
    pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateSignature.java

Modified: pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateSignature.java?rev=1880685&r1=1880684&r2=1880685&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateSignature.java (original)
+++ pdfbox/trunk/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateSignature.java Fri Aug  7 17:11:17 2020
@@ -32,7 +32,6 @@ import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.security.GeneralSecurityException;
 import java.security.KeyStore;
-import java.security.KeyStoreException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
@@ -118,6 +117,7 @@ import org.junit.runners.Parameterized;
 public class TestCreateSignature
 {
     private static CertificateFactory certificateFactory = null;
+    private static KeyStore keyStore = null;
     private static final String IN_DIR = "src/test/resources/org/apache/pdfbox/examples/signature/";
     private static final String OUT_DIR = "target/test-output/";
     private static final String KEYSTORE_PATH = IN_DIR + "keystore.p12";
@@ -146,11 +146,13 @@ public class TestCreateSignature
         Security.addProvider(SecurityProvider.getProvider());
         certificateFactory = CertificateFactory.getInstance("X.509");
 
+        // load the keystore
+        keyStore = KeyStore.getInstance("PKCS12");
+        keyStore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
+
         new File("target/test-output").mkdirs();
-        
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-        certificate = keystore.getCertificateChain(keystore.aliases().nextElement())[0];
+
+        certificate = keyStore.getCertificateChain(keyStore.aliases().nextElement())[0];
         tsa = System.getProperty("org.apache.pdfbox.examples.pdmodel.tsa");
     }
 
@@ -169,12 +171,8 @@ public class TestCreateSignature
             throws IOException, CMSException, OperatorCreationException, GeneralSecurityException,
                    TSPException, CertificateVerificationException
     {
-        // load the keystore
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-
         // sign PDF
-        CreateSignature signing = new CreateSignature(keystore, PASSWORD.toCharArray());
+        CreateSignature signing = new CreateSignature(keyStore, PASSWORD.toCharArray());
         signing.setExternalSigning(externallySign);
 
         final String fileName = getOutputFileName("signed{0}.pdf");
@@ -229,15 +227,11 @@ public class TestCreateSignature
         response.setMockResponseCode(200);
         mockServer.setMockHttpServerResponses(response);
 
-        // load the keystore
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-
         String inPath = IN_DIR + "sign_me_tsa.pdf";
         String outPath = OUT_DIR + getOutputFileName("signed{0}_tsa.pdf");
 
         // sign PDF (will fail due to nonce and timestamp differing)
-        CreateSignature signing1 = new CreateSignature(keystore, PASSWORD.toCharArray());
+        CreateSignature signing1 = new CreateSignature(keyStore, PASSWORD.toCharArray());
         signing1.setExternalSigning(externallySign);
         try
         {
@@ -258,7 +252,7 @@ public class TestCreateSignature
             return;
         }
 
-        CreateSignature signing2 = new CreateSignature(keystore, PASSWORD.toCharArray());
+        CreateSignature signing2 = new CreateSignature(keyStore, PASSWORD.toCharArray());
         signing2.setExternalSigning(externallySign);
         signing2.signDetached(new File(inPath), new File(outPath), tsa);
         checkSignature(new File(inPath), new File(outPath), true);
@@ -332,16 +326,12 @@ public class TestCreateSignature
             throws IOException, CMSException, OperatorCreationException, GeneralSecurityException,
                    TSPException, CertificateVerificationException
     {
-        // load the keystore
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-
         // sign PDF
         String inPath = IN_DIR + "sign_me_visible.pdf";
         File destFile;
         try (FileInputStream fis = new FileInputStream(JPEG_PATH))
         {
-            CreateVisibleSignature signing = new CreateVisibleSignature(keystore, PASSWORD.toCharArray());
+            CreateVisibleSignature signing = new CreateVisibleSignature(keyStore, PASSWORD.toCharArray());
             signing.setVisibleSignDesigner(inPath, 0, 0, -50, fis, 1);
             signing.setVisibleSignatureProperties("name", "location", "Security", 0, 1, true);
             signing.setExternalSigning(externallySign);
@@ -367,15 +357,11 @@ public class TestCreateSignature
             throws IOException, CMSException, OperatorCreationException, GeneralSecurityException,
                    TSPException, CertificateVerificationException
     {
-        // load the keystore
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-
         // sign PDF
         String inPath = IN_DIR + "sign_me_visible.pdf";
         File destFile;
 
-        CreateVisibleSignature2 signing = new CreateVisibleSignature2(keystore, PASSWORD.toCharArray());
+        CreateVisibleSignature2 signing = new CreateVisibleSignature2(keyStore, PASSWORD.toCharArray());
         Rectangle2D humanRect = new Rectangle2D.Float(100, 200, 150, 50);
         signing.setImageFile(new File(JPEG_PATH));
         signing.setExternalSigning(externallySign);
@@ -391,7 +377,6 @@ public class TestCreateSignature
      * 
      * @throws IOException
      * @throws NoSuchAlgorithmException
-     * @throws KeyStoreException
      * @throws CertificateException
      * @throws UnrecoverableKeyException
      * @throws CMSException
@@ -401,7 +386,7 @@ public class TestCreateSignature
      * @throws CertificateVerificationException
      */
     @Test
-    public void testPDFBox3978() throws IOException, NoSuchAlgorithmException, KeyStoreException, 
+    public void testPDFBox3978() throws IOException, NoSuchAlgorithmException, 
                                         CertificateException, UnrecoverableKeyException, 
                                         CMSException, OperatorCreationException, GeneralSecurityException,
                                         TSPException, CertificateVerificationException
@@ -415,15 +400,11 @@ public class TestCreateSignature
             return;
         }
 
-        // load the keystore
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-
         // create file with empty signature
         CreateEmptySignatureForm.main(new String[]{filename});
 
         // sign PDF
-        CreateSignature signing1 = new CreateSignature(keystore, PASSWORD.toCharArray());
+        CreateSignature signing1 = new CreateSignature(keyStore, PASSWORD.toCharArray());
         signing1.setExternalSigning(false);
         signing1.signDetached(new File(filename), new File(filenameSigned1));
 
@@ -438,7 +419,7 @@ public class TestCreateSignature
         // do visual signing in the field
         try (FileInputStream fis = new FileInputStream(JPEG_PATH))
         {
-            CreateVisibleSignature signing2 = new CreateVisibleSignature(keystore, PASSWORD.toCharArray());
+            CreateVisibleSignature signing2 = new CreateVisibleSignature(keyStore, PASSWORD.toCharArray());
             signing2.setVisibleSignDesigner(filenameSigned1, 0, 0, -50, fis, 1);
             signing2.setVisibleSignatureProperties("name", "location", "Security", 0, 1, true);
             signing2.setExternalSigning(true);
@@ -620,12 +601,8 @@ public class TestCreateSignature
 
         CreateSimpleForm.main(new String[0]); // creates "target/SimpleForm.pdf"
 
-        // load the keystore
-        KeyStore keystore = KeyStore.getInstance("PKCS12");
-        keystore.load(new FileInputStream(KEYSTORE_PATH), PASSWORD.toCharArray());
-
         // sign PDF
-        CreateSignature signing = new CreateSignature(keystore, PASSWORD.toCharArray());
+        CreateSignature signing = new CreateSignature(keyStore, PASSWORD.toCharArray());
         signing.setExternalSigning(externallySign);
 
         final String fileNameSigned = getOutputFileName("SimpleForm_signed{0}.pdf");