diff options
author | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-08-24 17:04:57 +0000 |
---|---|---|
committer | tkellner <tkellner@3a0b52a2-8410-0410-bc02-ff6273a87459> | 2012-08-24 17:04:57 +0000 |
commit | e1bc934f1948043fa4bfa44963337c2ef554d99d (patch) | |
tree | 5790c073e9eb1f80accc1d3020509466e5a3454e /trunk/pdf-over-signator/src | |
parent | 969617f6557c559b173a8cc267c7cd37c6e2e088 (diff) | |
download | pdf-over-e1bc934f1948043fa4bfa44963337c2ef554d99d.tar.gz pdf-over-e1bc934f1948043fa4bfa44963337c2ef554d99d.tar.bz2 pdf-over-e1bc934f1948043fa4bfa44963337c2ef554d99d.zip |
Changed SLRequest interface
git-svn-id: https://svn.iaik.tugraz.at/svn/egiz/prj/current/12PDF-OVER-4.0@12392 3a0b52a2-8410-0410-bc02-ff6273a87459
Diffstat (limited to 'trunk/pdf-over-signator/src')
-rw-r--r-- | trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/SLRequest.java | 84 |
1 files changed, 73 insertions, 11 deletions
diff --git a/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/SLRequest.java b/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/SLRequest.java index abc0ff30..c4be9dae 100644 --- a/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/SLRequest.java +++ b/trunk/pdf-over-signator/src/main/java/at/asit/pdfover/signator/SLRequest.java @@ -15,28 +15,90 @@ */ package at.asit.pdfover.signator; +import org.apache.commons.codec.binary.Base64; + /** * Security Layer Request */ -public interface SLRequest { - +public class SLRequest { + /** - * The String Konstant to replace the SL DATAOBJECT + * The String constant to replace the SL DATAOBJECT */ public static final String DATAOBJECT_STRING = "##DATAOBJECT##"; - + + /** + * The security layer request + */ + private String request; + + /** + * The document to be signed + */ + private DocumentSource signatureData; + + /** + * Set the SL request + * @param request the request to set + */ + protected void setRequest(String request) { + this.request = request; + } + /** - * The SL Request String + * The SL request String with the document encoded in base64 * - * In this string the DATAOBJECT_STRING has to be replaced by the reference of the Signature Data - * Examples are sl:Base64Content, sl:LocRefContent - * @return + * This SL Request is always a detached signature request which contains a + * reference to the data object in base64 encoding. + * + * @return SL request String + */ + public String getBase64Request() { + byte[] b64content = Base64.encodeBase64(getSignatureData().getByteArray()); + + String b64request = this.request.replace( + DATAOBJECT_STRING, + "<sl:Base64Content>" + b64content //$NON-NLS-1$ + + "</sl:Base64Content>"); //$NON-NLS-1$ + + return b64request; + } + + /** + * The SL request String with the document referenced as an URI + * + * This SL Request is always a detached signature request which contains a + * reference to the data object as an URI + * The URI has to be provided and should be a valid reference to + * the document provided by getSignatureData(). + * + * @param uri The URI pointing to the signature data + * @return SL request String */ - public String getRequest(); - + public String getURIRequest(String uri) { + String urirequest = this.request.replace( + DATAOBJECT_STRING, + "<sl:LocRefContent>" + uri //$NON-NLS-1$ + + "</sl:LocRefContent>"); //$NON-NLS-1$ + + return urirequest; + } + + /** + * Set the signature data (document to be signed) + * @param signatureData the signatureData to set + */ + protected void setSignatureData(DocumentSource signatureData) { + this.signatureData = signatureData; + } + /** * Gets the signature data for this request + * * @return The document source */ - public DocumentSource getSignatureData(); + public DocumentSource getSignatureData() + { + return this.signatureData; + } } |