aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-11-27 10:05:17 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-11-27 10:05:17 +0100
commitf3476576c50efd922593c82656efda7aec5ae97f (patch)
tree66107d5c5d3a88af66bd4829d8fcecc5678b749e /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
parent7b2e2b640b0f392183f7927f692936950d3fabfc (diff)
downloadpdf-as-4-f3476576c50efd922593c82656efda7aec5ae97f.tar.gz
pdf-as-4-f3476576c50efd922593c82656efda7aec5ae97f.tar.bz2
pdf-as-4-f3476576c50efd922593c82656efda7aec5ae97f.zip
MOA integration sign/verification (not finished yet ...)
Lots of PDF-AS Web implementation
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java37
1 files changed, 21 insertions, 16 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
index 75408567..4a8e41c3 100644
--- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java
@@ -86,7 +86,7 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
status);
status.setRequestedSignature(requestedSignature);
-
+
requestedSignature.setCertificate(status.getSignParamter()
.getPlainSigner().getCertificate());
@@ -256,10 +256,13 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
dict.getNameAsString("Filter"),
dict.getNameAsString("SubFilter"));
- List<VerifyResult> results = verifyFilter.verify(
- contentData.toByteArray(), content.getBytes());
-
- result.addAll(results);
+ if (verifyFilter != null) {
+ List<VerifyResult> results = verifyFilter.verify(
+ contentData.toByteArray(), content.getBytes());
+ if(results != null && !results.isEmpty()) {
+ result.addAll(results);
+ }
+ }
}
}
return result;
@@ -338,22 +341,23 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
SignatureDataExtractor signatureDataExtractor = new SignatureDataExtractor(
request.getCertificate(), pdfFilter, pdfSubFilter,
status.getSigningDate());
-
+
IPdfSigner signer = PdfSignerFactory.createPdfSigner();
signer.signPDF(status.getPdfObject(),
status.getRequestedSignature(), signatureDataExtractor);
-
+
StringBuilder sb = new StringBuilder();
-
- int[] byteRange = PDFUtils.extractSignatureByteRange(signatureDataExtractor
- .getSignatureData());
-
- for(int i = 0; i < byteRange.length; i++) {
+
+ int[] byteRange = PDFUtils
+ .extractSignatureByteRange(signatureDataExtractor
+ .getSignatureData());
+
+ for (int i = 0; i < byteRange.length; i++) {
sb.append(" " + byteRange[i]);
}
-
+
logger.info("ByteRange: " + sb.toString());
-
+
request.setSignatureData(signatureDataExtractor
.getSignatureData());
request.setByteRange(byteRange);
@@ -368,9 +372,10 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants {
// Inject signature byte[] into signedDocument
int offset = request.getSignatureDataByteRange()[1] + 1;
- String signature = new COSString(request.getSignature()).getHexString();
+ String signature = new COSString(request.getSignature())
+ .getHexString();
byte[] pdfSignature = signature.getBytes();
-
+
for (int i = 0; i < pdfSignature.length; i++) {
status.getPdfObject().getSignedDocument()[offset + i] = pdfSignature[i];
}