aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java40
1 files changed, 33 insertions, 7 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java
index e10061c..52d1d9f 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java
@@ -27,6 +27,8 @@ import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateEncodingException;
+import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -1131,11 +1133,11 @@ public abstract class BinarySignature
*/
public static void replaceCertificate(IncrementalUpdateInformation iui) throws PDFDocumentException
{
- X509Cert cert = iui.signed_signature_object.getX509Cert();
- // X509Certificate certificate = cert.getX509Certificate();
+ X509Certificate certificate = iui.signed_signature_object.getX509Certificate();
try
{
- byte[] encoded = cert.getCertString().getBytes("US-ASCII"); // certificate.getEncoded();
+ byte[] der = certificate.getEncoded();
+ byte[] encoded = CodingHelper.encodeBase64(der).getBytes("US-ASCII");
byte[] escaped = Placeholder.escapePDFString(encoded);
if (escaped.length > iui.cert_length)
{
@@ -1143,14 +1145,38 @@ public abstract class BinarySignature
}
System.arraycopy(escaped, 0, iui.signed_pdf, iui.cert_start, escaped.length);
}
- // catch (CertificateEncodingException e)
- // {
- // throw new PDFDocumentException(300, e);
- // }
+ catch (CertificateEncodingException e)
+ {
+ throw new PDFDocumentException(300, e);
+ }
catch (UnsupportedEncodingException e)
{
throw new PDFDocumentException(300, e);
}
+
+ // X509Cert cert = iui.signed_signature_object.getX509Cert();
+ // // X509Certificate certificate = cert.getX509Certificate();
+ // try
+ // {
+ // byte[] encoded = cert.getCertString().getBytes("US-ASCII"); //
+ // certificate.getEncoded();
+ // byte[] escaped = Placeholder.escapePDFString(encoded);
+ // if (escaped.length > iui.cert_length)
+ // {
+ // throw new PlaceholderException("certificate", escaped.length -
+ // iui.cert_length);
+ // }
+ // System.arraycopy(escaped, 0, iui.signed_pdf, iui.cert_start,
+ // escaped.length);
+ // }
+ // // catch (CertificateEncodingException e)
+ // // {
+ // // throw new PDFDocumentException(300, e);
+ // // }
+ // catch (UnsupportedEncodingException e)
+ // {
+ // throw new PDFDocumentException(300, e);
+ // }
}
/**