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");