aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <>2022-10-17 14:48:29 +0200
committerThomas <>2023-01-12 15:25:34 +0100
commitc14096c5a87dabcc7483c5ff7bcd7014ee3a0319 (patch)
treed7c863ff85d4b0657e2587fc9d33ad9704a39672
parent061129ed699a214818e7f62e2850fbe3b8b7b0ab (diff)
downloadpdf-as-4-c14096c5a87dabcc7483c5ff7bcd7014ee3a0319.tar.gz
pdf-as-4-c14096c5a87dabcc7483c5ff7bcd7014ee3a0319.tar.bz2
pdf-as-4-c14096c5a87dabcc7483c5ff7bcd7014ee3a0319.zip
test(sigblock): add jUnit test to check title attribute of signer name
-rw-r--r--pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java121
-rw-r--r--pdf-as-lib/src/test/resources/data/Hermann_Peyerl.20210930-20260930.SerNo651789F5.cer33
2 files changed, 154 insertions, 0 deletions
diff --git a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java
new file mode 100644
index 00000000..68222881
--- /dev/null
+++ b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java
@@ -0,0 +1,121 @@
+package at.gv.egiz.pdfas.lib.test.stamping;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.security.cert.CertificateException;
+import java.util.Map;
+import java.util.Vector;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import com.google.gson.annotations.SerializedName;
+
+import at.gv.egiz.pdfas.common.settings.DefaultSignatureProfileSettings;
+import at.gv.egiz.pdfas.common.settings.ISettings;
+import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;
+import at.gv.egiz.pdfas.lib.api.sign.SignParameter;
+import at.gv.egiz.pdfas.lib.impl.SignParameterImpl;
+import at.gv.egiz.pdfas.lib.impl.stamping.CertificateAndRequestParameterResolver;
+import at.gv.egiz.pdfas.lib.impl.stamping.ValueResolver;
+import at.gv.egiz.pdfas.lib.impl.status.ICertificateProvider;
+import at.gv.egiz.pdfas.lib.impl.status.OperationStatus;
+import iaik.x509.X509Certificate;
+
+@RunWith(JUnit4.class)
+public class CertificateAndRequestParameterResolverTest {
+
+ private OperationStatus opStatus;
+ private SignatureProfileSettings sigProfileSetting;
+
+ @Before
+ public void initialize() {
+ SignParameter signParams = new SignParameterImpl(null, null, null);
+ opStatus = new OperationStatus(buildDummySettings(), signParams , null);
+
+ sigProfileSetting = new SignatureProfileSettings("test", buildDummySettings());
+
+ }
+
+ @Test
+ public void signerWithTitleOld() throws CertificateException, IOException {
+ X509Certificate cert = new X509Certificate(
+ CertificateAndRequestParameterResolverTest.class.getResourceAsStream(
+ "/data/Hermann_Peyerl.20210930-20260930.SerNo651789F5.cer"));
+ ValueResolver resolver = new ValueResolver(buildCertProvider(cert), opStatus);
+
+ String result = resolver.resolve("",
+ "${subject.T != null ? (subject.T + \" \") : \"\"}${subject.CN}",
+ sigProfileSetting);
+ assertEquals("wrong signer Name", "Hermann Peyerl", result);
+
+ }
+
+ @Test
+ public void signerWithTitle() throws CertificateException, IOException {
+ X509Certificate cert = new X509Certificate(
+ CertificateAndRequestParameterResolverTest.class.getResourceAsStream(
+ "/data/Hermann_Peyerl.20210930-20260930.SerNo651789F5.cer"));
+ ValueResolver resolver = new ValueResolver(buildCertProvider(cert), opStatus);
+
+ String result = resolver.resolve("",
+ "${subject.title != null ? (subject.title + \" \") : \"\"}${subject.CN}",
+ sigProfileSetting);
+ assertEquals("wrong signer Name", "A.Univ.Prof.DDr. Hermann Peyerl", result);
+
+ }
+
+ private ICertificateProvider buildCertProvider(final X509Certificate cert) {
+ return new ICertificateProvider() {
+
+ @Override
+ public X509Certificate getCertificate() {
+ return cert;
+ }
+ };
+ }
+
+ private ISettings buildDummySettings() {
+ return new ISettings() {
+
+ @Override
+ public boolean hasValue(String key) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean hasPrefix(String prefix) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public String getWorkingDirectory() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, String> getValuesPrefix(String prefix) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getValue(String key) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Vector<String> getFirstLevelKeys(String prefix) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ };
+ }
+}
diff --git a/pdf-as-lib/src/test/resources/data/Hermann_Peyerl.20210930-20260930.SerNo651789F5.cer b/pdf-as-lib/src/test/resources/data/Hermann_Peyerl.20210930-20260930.SerNo651789F5.cer
new file mode 100644
index 00000000..39f609dc
--- /dev/null
+++ b/pdf-as-lib/src/test/resources/data/Hermann_Peyerl.20210930-20260930.SerNo651789F5.cer
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFrzCCA5egAwIBAgIEZReJ9TANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMC
+QVQxSDBGBgNVBAoMP0EtVHJ1c3QgR2VzLiBmLiBTaWNoZXJoZWl0c3N5c3RlbWUg
+aW0gZWxla3RyLiBEYXRlbnZlcmtlaHIgR21iSDEhMB8GA1UECwwYYS1zaWduLXBy
+ZW1pdW0tbW9iaWxlLTA1MSEwHwYDVQQDDBhhLXNpZ24tcHJlbWl1bS1tb2JpbGUt
+MDUwHhcNMjEwOTMwMDc1MjE1WhcNMjYwOTMwMDc1MjE1WjB7MQswCQYDVQQGEwJB
+VDEXMBUGA1UEAwwOSGVybWFubiBQZXllcmwxDzANBgNVBAQMBlBleWVybDEQMA4G
+A1UEKgwHSGVybWFubjEVMBMGA1UEBRMMNTc1NDcwMTM4NzUxMRkwFwYDVQQMDBBB
+LlVuaXYuUHJvZi5ERHIuMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8blARx8X
+uWDpWxlZdka0fig4zuAwnw6bqbtDZWccS/y9L8+bkt50X2XOi0+e1wXVTmuuVYTz
+rC3bCi29DEKB/KOCAeEwggHdMH0GCCsGAQUFBwEBBHEwbzBEBggrBgEFBQcwAoY4
+aHR0cDovL3d3dy5hLXRydXN0LmF0L2NlcnRzL2Etc2lnbi1wcmVtaXVtLW1vYmls
+ZS0wNS5jcnQwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLmEtdHJ1c3QuYXQvb2Nz
+cDATBgNVHSMEDDAKgAhI8/2cIw6HdzByBggrBgEFBQcBAwRmMGQwCgYIKwYBBQUH
+CwIwCAYGBACORgEBMAgGBgQAjkYBBDATBgYEAI5GAQYwCQYHBACORgEGATAtBgYE
+AI5GAQUwIzAhFhtodHRwczovL3d3dy5hLXRydXN0LmF0L3Bkcy8TAkVOMBEGA1Ud
+DgQKBAhJBIQ9948+azAOBgNVHQ8BAf8EBAMCBsAwCQYDVR0TBAIwADBgBgNVHSAE
+WTBXMAgGBgQAizABATBLBgYqKAARARQwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3
+dy5hLXRydXN0LmF0L2RvY3MvY3AvYS1zaWduLXByZW1pdW0tbW9iaWxlMEMGA1Ud
+HwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuYS10cnVzdC5hdC9jcmwvYS1zaWduLXBy
+ZW1pdW0tbW9iaWxlLTA1MA0GCSqGSIb3DQEBCwUAA4ICAQBlqkb7w3qHqxycLyfT
+YLjXJ6c9eiuMh0+dfPOLCveVF3l9vylTVJF5MZN4qeIKm9yGTpnzGXPSpHgrUbAl
++6GaYZ55BRtFAEeW/t6x5ngVfXaE/CtcL/J/lt+2D0rKZvjPvXRJ31T3LtE44JLC
+3SK6g7tsUbgsx1qEh2kChX90HIN8r3JjFsuMyZ1xeSKkLogLfHwhwAmVmC2RxJxf
+X0R4xsBl6yUkn3qGO8S5zN4lia9TLKMVMNdAfl0QiHdMtRAkdgg4p8UjN/Imq2El
+f6j1UGZUMlF/iZdPl79AKXo8H9eYrskeXSwy0T3XUcfMzNzvKQBElis78C2MPsfD
+I6jsGg3ILTIVhap0yxfB/5LZiDYGb/4NnkYntmXr2FgcKKm/a4zbpHjd8ChgUkSe
+eKnpqy9YtyKQruHE8CoRsPGK4EZHbX6Gq7srhwSC+TjyylwjE0Qj9toeBl5mMaQk
+PYVMwQiJT93BQH5amEJU4bvCuPR6Z6sWUzZXxCe7EAMOuZ9aIWY0bPwDixZhM01g
+x/1juRQ77UB0uWw6wTxj9RIU0fYS9BnW5+jHxU39ululdq9hY+V0PSTm1hP27r9a
+IbrQCD9twYbYacr9DTR1czeuxe5SpSeNnIlqpkjTN/lxGS88SH2j29hIEz6C6c+Q
+rQ1l5SFmkQZH91bEnmt1V+F41w==
+-----END CERTIFICATE----- \ No newline at end of file