Class PDSignature
java.lang.Object
org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature
- All Implemented Interfaces:
COSObjectable
This represents a digital signature that can be attached to a document. To learn more about
digital signatures, read
Digital
Signatures in a PDF by Adobe.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final COSDictionary
static final COSName
A signature filter value.static final COSName
A signature filter value.static final COSName
A signature filter value.static final COSName
A signature filter value.static final COSName
A signature subfilter value.static final COSName
A signature subfilter value.static final COSName
A signature subfilter value.static final COSName
A signature subfilter value. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint[]
Read out the byterange from the file.Returns the contact info provided by the signer to enable a recipient to contact the signer to verify the signature, e.g.byte[]
Returns the /Contents string as a byte array, i.e.byte[]
getContents
(byte[] pdfFile) Will return the embedded signature between the byterange gap.byte[]
getContents
(InputStream pdfFile) Will return the embedded signature between the byterange gap.private byte[]
Convert this standard java object to a COS dictionary.Returns the filter.Returns the CPU host name or physical location of the signing.getName()
Returns the name of the person or authority signing the document.PDF signature build dictionary.Returns the reason for the signing, such as (I agree...).Returns the sign date.byte[]
getSignedContent
(byte[] pdfFile) Return the signed content of the document.byte[]
getSignedContent
(InputStream pdfFile) Return the signed content of the document.Returns the subfilter.void
setByteRange
(int[] range) Sets the byte range.void
setContactInfo
(String contactInfo) Sets the contact info provided by the signer to enable a recipient to contact the signer to verify the signature, e.g.void
setContents
(byte[] bytes) Sets the contents.void
Set the filter.void
setLocation
(String location) Sets the CPU host name or physical location of the signing.void
Sets the name of the person or authority signing the document.void
setPropBuild
(PDPropBuild propBuild) PDF signature build dictionary.void
Sets the reason for the signing, such as (I agree...).void
setSignDate
(Calendar cal) Set the sign date.void
setSubFilter
(COSName subfilter) Set a subfilter that specify the signature that should be used.void
Set the dictionary type.
-
Field Details
-
dictionary
-
FILTER_ADOBE_PPKLITE
A signature filter value. -
FILTER_ENTRUST_PPKEF
A signature filter value. -
FILTER_CICI_SIGNIT
A signature filter value. -
FILTER_VERISIGN_PPKVS
A signature filter value. -
SUBFILTER_ADBE_X509_RSA_SHA1
A signature subfilter value. -
SUBFILTER_ADBE_PKCS7_DETACHED
A signature subfilter value. -
SUBFILTER_ETSI_CADES_DETACHED
A signature subfilter value. -
SUBFILTER_ADBE_PKCS7_SHA1
A signature subfilter value.
-
-
Constructor Details
-
PDSignature
public PDSignature()Default constructor. -
PDSignature
Constructor.- Parameters:
dict
- The signature dictionary.
-
-
Method Details
-
getCOSObject
Convert this standard java object to a COS dictionary.- Specified by:
getCOSObject
in interfaceCOSObjectable
- Returns:
- The COS dictionary that matches this Java object.
-
setType
Set the dictionary type.- Parameters:
type
- is the dictionary type.
-
setFilter
Set the filter.- Parameters:
filter
- the filter to be used
-
setSubFilter
Set a subfilter that specify the signature that should be used.- Parameters:
subfilter
- the subfilter that shall be used.
-
setName
Sets the name of the person or authority signing the document. According to the PDF specification, this value should be used only when it is not possible to extract the name from the signature.- Parameters:
name
- the name to be used
-
setLocation
Sets the CPU host name or physical location of the signing.- Parameters:
location
- the location to be used
-
setReason
Sets the reason for the signing, such as (I agree...).- Parameters:
reason
- the reason to be used
-
setContactInfo
Sets the contact info provided by the signer to enable a recipient to contact the signer to verify the signature, e.g. a phone number.- Parameters:
contactInfo
- the contact info to be used
-
setSignDate
Set the sign date.- Parameters:
cal
- the date to be used as sign date
-
getFilter
Returns the filter.- Returns:
- the filter
-
getSubFilter
Returns the subfilter.- Returns:
- the subfilter
-
getName
Returns the name of the person or authority signing the document. According to the PDF specification, this value should be used only when it is not possible to extract the name from the signature.- Returns:
- the name
-
getLocation
Returns the CPU host name or physical location of the signing.- Returns:
- the location
-
getReason
Returns the reason for the signing, such as (I agree...).- Returns:
- the reason
-
getContactInfo
Returns the contact info provided by the signer to enable a recipient to contact the signer to verify the signature, e.g. a phone number.- Returns:
- the contact info
-
getSignDate
Returns the sign date.- Returns:
- the sign date
-
setByteRange
public void setByteRange(int[] range) Sets the byte range.- Parameters:
range
- the byte range to be used
-
getByteRange
public int[] getByteRange()Read out the byterange from the file.- Returns:
- an integer array with the byterange, or an empty array if there is none.
-
getContents
public byte[] getContents()Returns the /Contents string as a byte array, i.e. the embedded signature between the byterange gap.- Returns:
- a byte array containing the signature, or an empty array if there isn't any.
-
getContents
Will return the embedded signature between the byterange gap.- Parameters:
pdfFile
- The signed pdf file as InputStream. It will be closed in this method.- Returns:
- a byte array containing the signature
- Throws:
IOException
- if the pdfFile can't be readIndexOutOfBoundsException
- if the byterange array is not long enough
-
getContents
Will return the embedded signature between the byterange gap.- Parameters:
pdfFile
- The signed pdf file as byte array- Returns:
- a byte array containing the signature
- Throws:
IOException
- if the pdfFile can't be readIndexOutOfBoundsException
- if the byterange array is not long enough
-
getConvertedContents
- Throws:
IOException
-
setContents
public void setContents(byte[] bytes) Sets the contents.- Parameters:
bytes
- contents to be used
-
getSignedContent
Return the signed content of the document. This is not a PDF file, nor is it the PDF file before signing, it is the byte sequence made of the input minus the area where the signature bytes will be. See "The ByteRange and signature value" in the document Digital Signatures in a PDF.- Parameters:
pdfFile
- The signed pdf file as InputStream. It will be closed in this method.- Returns:
- a byte array containing only the signed part of the content
- Throws:
IOException
- if the pdfFile can't be read
-
getSignedContent
Return the signed content of the document. This is not a PDF file, nor is it the PDF file before signing, it is the byte sequence made of the input minus the area where the signature bytes will be. See "The ByteRange and signature value" in the document Digital Signatures in a PDF.- Parameters:
pdfFile
- The signed pdf file as byte array- Returns:
- a byte array containing only the signed part of the content
- Throws:
IOException
- if the pdfFile can't be read
-
getPropBuild
PDF signature build dictionary. Provides information about the signature handler.- Returns:
- the pdf signature build dictionary.
-
setPropBuild
PDF signature build dictionary. Provides information about the signature handler.- Parameters:
propBuild
- the prop build
-