com.adobe.livecycle.signatures.client
Class SignatureServiceClient

java.lang.Object
  extended by com.adobe.livecycle.signatures.client.SignatureServiceClient
All Implemented Interfaces:
SignatureServiceClientInterface

public class SignatureServiceClient
extends java.lang.Object
implements SignatureServiceClientInterface

The SignatureServiceClient class implements the SignatureServiceClientInterface. The Signature service lets your organization protect the security and privacy of Adobe PDF documents that it distributes and receives. This service uses digital signatures and certification to ensure that documents cannot be altered by anyone other than the intended recipients. Because security features are applied to the document itself, the document remains secure and controlled for its entire life cycle; that is, beyond the firewall, when it is downloaded offline, and when it is submitted back to your organization. Using this object, you can perform tasks such as digitally signing or certifying PDF documents. For information, see Digitally Signing and Certifying Documents in the Programming with Adobe Experience Manager forms.


Constructor Summary
SignatureServiceClient(ServiceClientFactory m_serviceFactory)
          A constructor that creates a SignatureServiceClient object.
SignatureServiceClient(ServiceClientFactory m_serviceFactory, java.lang.String serviceName)
          A constructor that creates a SignatureServiceClient object.
 
Method Summary
 Document addInvisibleSignatureField(Document inPDFDoc, java.lang.String signatureFieldName, FieldMDPOptionSpec fieldMDPOptionsSpec, PDFSeedValueOptionSpec seedValueOptionsSpec)
          Creates an invisible signature field in the PDF document.
 Document addSignatureField(Document inPDFDoc, java.lang.String signatureFieldName, java.lang.Integer pageNumber, PositionRectangle positionRectangle, FieldMDPOptionSpec fieldMDPOptionsSpec, PDFSeedValueOptionSpec seedValueOptionsSpec)
          Creates a visible signature field within the PDF document.
 Document addSignatureValidationInfo(Document inPDFDoc, java.lang.String signatureFieldName, AddSignatureValidationOptionSpec addSigValidiationSpec)
           
 Document applyDocumentTimeStamp(Document inPDFDoc, AddSignatureValidationOptionSpec addSigValidiationSpec)
           
 Document certify(Document inPDFDoc, java.lang.String signatureFieldName, Credential credential, HashAlgorithm hashAlgorithm, java.lang.String reason, java.lang.String location, java.lang.String contactInfo, MDPPermissions mdpPermissions, java.lang.String legalAttestation, PDFSignatureAppearanceOptionSpec appearanceOptionSpec, java.lang.Boolean embedRevocationInfo, java.lang.Boolean lockCertifyingField, OCSPOptionSpec ocspOptionSpec, CRLOptionSpec crlOptionSpec, TSPOptionSpec tspOptionSpec)
          Certifies the specified signature field that is located within the PDF document with the security credential that corresponds to the specified alias.
 Document clearSignatureField(Document inPDFDoc, java.lang.String signatureFieldName)
          Clears the specified signature field.
 PDFSignatureField getCertifyingSignatureField(Document inPDFDoc)
          Returns the signature field that was used to certify the document.
 PDFLegalWarnings getLegalAttestation(Document inPDFDoc, java.lang.Boolean generateOnTheFly)
          Retrieves the legal attestation values for the document.
 PDFSignature getSignature(Document inPDFDoc, java.lang.String signatureFieldName)
          Returns signature data for a given signature field.
 java.util.List getSignatureFieldList(Document inPDFDoc)
          Returns a list of all the signature fields located within a PDF document.
 Document getSignedVersion(Document inPDFDoc, java.lang.String signatureFieldName)
          Returns the version of the PDF document that contains a signature.
 Document modifySignatureField(Document inPDFDoc, java.lang.String signatureFieldName, PDFSignatureFieldProperties pdfSignatureFieldProperties)
          Modifies a signature field's signature field lock dictionary and seed value dictionary values.
 Document removeSignatureField(Document inPDFDoc, java.lang.String signatureFieldName)
          Removes the specified signature field.
 Document sign(Document inPDFDoc, java.lang.String signatureFieldName, Credential credential, HashAlgorithm hashAlgorithm, java.lang.String reason, java.lang.String location, java.lang.String contactInfo, PDFSignatureAppearanceOptionSpec appearanceOptionSpec, java.lang.Boolean embedRevocationInfo, OCSPOptionSpec ocspOptionSpec, CRLOptionSpec crlOptionSpec, TSPOptionSpec tspOptionSpec)
          Signs the specified signature field that is located within the PDF document with the security credential that corresponds to the specified alias.
 PDFSignatureVerificationResult verify(Document inPDFDoc, java.lang.String signatureFieldName, RevocationCheckStyle revocationCheckStyle, VerificationTime verificationTime, OCSPOptionSpec ocspOptionSpec, CRLOptionSpec crlOptionSpec, TSPOptionSpec tspOptionSpec, PathValidationOptionSpec pathValidationOptionSpec)
          Verifies the signature in a signature field and returns information about the signature.
 PDFSignatureVerificationResult verify(Document inPDFDoc, java.lang.String signatureFieldName, RevocationCheckStyle revocationCheckStyle, VerificationTime verificationTime, OCSPOptionSpec ocspOptionSpec, CRLOptionSpec crlOptionSpec, TSPOptionSpec tspOptionSpec, PathValidationOptionSpec pathValidationOptionSpec, java.util.HashMap spiProperties)
          Verifies the signature in a signature field and returns information about the signature.
 PDFSignatureVerificationInfo verify2(Document inPDFDoc, java.lang.String signatureFieldName, PKIOptions pkiOptions, VerifySPIOptions spiOptions)
          Verifies the signature in a signature field and returns information about the signature.
 PDFDocumentVerificationInfo verifyPDFDocument(Document inPDFDoc, PKIOptions pkiOptions, VerifySPIOptions spiOptions)
          Verifies all signatures that are located within a signed PDF document.
 XMLSignatureVerificationResult verifyXMLSignature(Document inXMLDoc, java.lang.String signatureFieldName, RevocationCheckStyle revocationCheckStyle, VerificationTime verificationTime, OCSPOptionSpec ocspOptionSpec, CRLOptionSpec crlOptionSpec, PathValidationOptionSpec pathValidationOptionSpec)
          Verifies an XML signature associated with a signature field.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SignatureServiceClient

public SignatureServiceClient(ServiceClientFactory m_serviceFactory)
A constructor that creates a SignatureServiceClient object.

Parameters:
m_serviceFactory - A ServiceClientFactory that contains connection properties. For information about connection properties, see Invoking Adobe Experience Manager forms Services.

SignatureServiceClient

public SignatureServiceClient(ServiceClientFactory m_serviceFactory,
                              java.lang.String serviceName)
A constructor that creates a SignatureServiceClient object.

Parameters:
m_serviceFactory - A ServiceClientFactory object that contains connection properties.
serviceName - The name of the Adobe Experience Manager forms Signatures Service.
Method Detail

sign

public Document sign(Document inPDFDoc,
                     java.lang.String signatureFieldName,
                     Credential credential,
                     HashAlgorithm hashAlgorithm,
                     java.lang.String reason,
                     java.lang.String location,
                     java.lang.String contactInfo,
                     PDFSignatureAppearanceOptionSpec appearanceOptionSpec,
                     java.lang.Boolean embedRevocationInfo,
                     OCSPOptionSpec ocspOptionSpec,
                     CRLOptionSpec crlOptionSpec,
                     TSPOptionSpec tspOptionSpec)
              throws PDFOperationException,
                     SigningException,
                     PermissionsException,
                     InvalidArgumentException,
                     SeedValueValidationException,
                     MissingSignatureFieldException,
                     SignatureFieldSignedException,
                     CredentialLoginException,
                     SignaturesOtherException,
                     FIPSComplianceException
Signs the specified signature field that is located within the PDF document with the security credential that corresponds to the specified alias. The alias maps to a credential that is located within Adobe Experience Manager forms Credential Service.

To see this method in a code example, see the Digitally signing a PDF document using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
sign in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents the PDF document to sign. This is a required parameter and cannot be null.
signatureFieldName - The name of the signature field in the PDF document that is signed. Before a PDF document can be signed, the signature field must exist, be unsigned, and have permissions for signing. The fully qualified name of the signature field should be specified. If you are signing a PDF document that is based on an XFA form, then the partial name of the signature field can also be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3]. However, if multiple signature fields exist with a similar partial name, the first signature field enumerated with the same partial name is signed, and if it is already signed, an SignatureFieldSignedException is thrown. It is recommended that a fully qualified name is used to avoid these situations.
credential - The security credential that is used to sign the PDF document.
hashAlgorithm - The hash algorithm that is used to digest the PDF document.
reason - The reason for signing the PDF document.
location - The location of the signer.
contactInfo - Contact information, such as an address and a telephone number, of the person that signed the PDF document.
appearanceOptionSpec - Appearance options for the signature.
embedRevocationInfo - Specifies whether revocation checking is performed for the signer's certificate. If revocation checking is done, it is embedded in the signature. The default setting is false, which means that revocation checking is not performed.
ocspOptionSpec - Settings for online certificate status protocol (OCSP) revocation checking if revocation checking is performed. If revocation checking is not performed, then this parameter is ignored.
crlOptionSpec - Settings for certificate revocation list (CRL) preferences if revocation checking is done. If revocation checking is not performed, then this parameter is ignored.
tspOptionSpec - Settings that define time-stamping information that is applied to the digitial signature.
Returns:
A com.adobe.idp.Document object that represents the signed PDF document. Note that this is a new document and the input PDF document is not modified.
Throws:
PDFOperationException - If a signing based error occurs while this operation is performed.
SigningException - If a signing based error occurs.
PermissionsException - If the document does not permit signing.
InvalidArgumentException - If an invalid argument is passed.
SeedValueValidationException - If seed values of the signature field cannot be validated.
MissingSignatureFieldException - If a specified signature field is not located within the PDF document.
SignatureFieldSignedException - If a specified signature field already contains a signature.
CredentialLoginException - If the specified alias does not correspond to a security credential.
SignaturesOtherException - If another run-time error occurs.
FIPSComplianceException - If the FIPS compliance is enforced but not met.

certify

public Document certify(Document inPDFDoc,
                        java.lang.String signatureFieldName,
                        Credential credential,
                        HashAlgorithm hashAlgorithm,
                        java.lang.String reason,
                        java.lang.String location,
                        java.lang.String contactInfo,
                        MDPPermissions mdpPermissions,
                        java.lang.String legalAttestation,
                        PDFSignatureAppearanceOptionSpec appearanceOptionSpec,
                        java.lang.Boolean embedRevocationInfo,
                        java.lang.Boolean lockCertifyingField,
                        OCSPOptionSpec ocspOptionSpec,
                        CRLOptionSpec crlOptionSpec,
                        TSPOptionSpec tspOptionSpec)
                 throws PDFOperationException,
                        SigningException,
                        PermissionsException,
                        InvalidArgumentException,
                        SeedValueValidationException,
                        MissingSignatureFieldException,
                        SignatureFieldSignedException,
                        CredentialLoginException,
                        SignaturesOtherException,
                        FIPSComplianceException
Certifies the specified signature field that is located within the PDF document with the security credential that corresponds to the specified alias. The alias maps to a credential that is located within Adobe Experience Manager forms trust store (or as part of the Signature SPI implementation, if provided). Certification can only be performed if this is the first signature applied to the PDF document. If the signature field name is not specified, null is passed. In this situation, the Signatures service adds a signature field with a generated name.

To see this method in a code example, see the Certifying a PDF document using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
certify in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents the PDF document to certify. This is a required parameter and cannot be null.
signatureFieldName - The name of the signature field in the PDF document that is certified. Before a PDF document can be certified, the signature field must exist, be unsigned, and have permissions for signing. The fully qualified name of the signature field should be specified. If you are certifying a PDF document that is based on an XFA form, then the partial name of the signature field can also be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3]. However, if multiple signature fields exist with a similar partial name, the first signature field enumerated with the same partial name is certified, and if it is already signed, a SignatureFieldSignedException is thrown. It is recommended that a fully qualified name is used to avoid these situations as well as to increase the performance of the certify operation.
credential - The security credential that is used to certify the PDF document.
hashAlgorithm - The hash algorithm that is used to digest the PDF document.
reason - The reason for certifying the PDF document.
location - The location of the signer.
contactInfo - Contact information, such as an address and a telephone number, of the person that signed the PDF document.
mdpPermissions - Permissions that control the actions that an end user can perform on a document without causing the certified signature to be invalid.
legalAttestation - Provides an additional explanation of the content that generates warnings.
appearanceOptionSpec - Appearance options for the signature.
embedRevocationInfo - Specifies whether revocation checking is performed for the signer's certificate. If revocation checking is done, it is embedded in the signature. The default setting is false, which means that revocation checking is not performed.
lockCertifyingField - Specifies whether the signature field being certified is locked or not. If the field is locked, the signature field is marked as read only and its properties can not be modified and it can not be cleared by anyone who does not have the credential that is used to certify the document. The default setting is false, which means that signature field is not locked. This parameter is set to true if the Acrobat 9 compatibility option is on. That is, if the Acrobat 9 compatibility option is not set, the certified signature can be cleared by any user. If the Acrobat 9 compatibility option is set in the Signature service configuration parameters, the signature field that is certified is locked and only the user who has the credential can clear the signature.
ocspOptionSpec - Settings for online certificate status protocol (OCSP) revocation checking if revocation checking is done.
crlOptionSpec - Settings for certificate revocation list (CRL) preferences if revocation checking is done.
tspOptionSpec - Settings that define time-stamping information that is applied to the certified signature.
Returns:
A com.adobe.idp.Document object that represents the certified PDF document. Note that this is a new document and the input PDF document is not modified.
Throws:
PDFOperationException - If an error occurs during this operation.
SigningException - Any signing-based error occurs.
PermissionsException - If the PDF document does not permit signing.
InvalidArgumentException - If an invalid argument is passed.
SeedValueValidationException - If seed values of the signature field could not be validated.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldSignedException - If this is not the first signature that is signed.
CredentialLoginException - If a problem occurs while retrieving the specified security credential.
SignaturesOtherException - If another run-time error occurs.
FIPSComplianceException - If the FIPS compliance is enforced but not met.

addSignatureField

public Document addSignatureField(Document inPDFDoc,
                                  java.lang.String signatureFieldName,
                                  java.lang.Integer pageNumber,
                                  PositionRectangle positionRectangle,
                                  FieldMDPOptionSpec fieldMDPOptionsSpec,
                                  PDFSeedValueOptionSpec seedValueOptionsSpec)
                           throws PDFOperationException,
                                  PermissionsException,
                                  InvalidArgumentException,
                                  DuplicateSignatureFieldException,
                                  SignaturesOtherException
Creates a visible signature field within the PDF document. This method is not supported when working with dynamic PDF documents.

To see this method in a code example, see the Adding a signature field to a PDF document using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
addSignatureField in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents the PDF document to which the signature field is added. This is a required parameter and cannot be null.
signatureFieldName - The name of the signature field. This is a required parameter and cannot be null.
pageNumber - The page number on which the signature field is added. Valid values are 1 to the number of pages contained within the document. This is a required parameter and cannot be null.
positionRectangle - A PositionRectangle object that specifies the position for the signature field. This is a required parameter and cannot be null. If the specified rectangle does not lie at least partially on the crop box of the specified page, an InvalidArgumentException is thrown. Also, neither the height or width value of the specified rectangle can be 0 or negative. Lower left X or lower left Y coordinates can be 0 or greater but not negative, and are relative to the crop box of the page.
fieldMDPOptionsSpec - A FieldMDPOptionSpec object that specifies the PDF document fields that are locked after the signature field is signed. This is an optional parameter and can be null.
seedValueOptionsSpec - A SeedValueOptions object that specifies the various seed values for the field. This is an optional parameter and can be null.
Returns:
A com.adobe.idp.Document object that represents the PDF document to which a signature field is added. Note that this is a new document and the input PDF document is not modified.
Throws:
PDFOperationException - An exception thrown by other Adobe Experience Manager forms operations.
PermissionsException - If the permissions on the document do not allow this operation or the document is encrypted and cannot be processed.
InvalidArgumentException - If some argument value is invalid. For example either of lowerleftX/lowerleftY is negative or width/height is zero or negative.
DuplicateSignatureFieldException - If a signature field with the same name already exists.
SignaturesOtherException - If another run-time error occurs.

modifySignatureField

public Document modifySignatureField(Document inPDFDoc,
                                     java.lang.String signatureFieldName,
                                     PDFSignatureFieldProperties pdfSignatureFieldProperties)
                              throws InvalidArgumentException,
                                     PDFOperationException,
                                     PermissionsException,
                                     MissingSignatureFieldException,
                                     SignatureFieldSignedException,
                                     SignaturesOtherException
Modifies a signature field's signature field lock dictionary and seed value dictionary values. A field lock dictionary specifies a list of fields which are locked once the signature field is signed. Any changes to the locked fields subsequent to the signing of this signature field invalidates the signature. A seed value dictionary contains entries that constrain information that is used at the time the signature is applied. For example, you can specify form fields that are locked when the PDF document is signed. Once a field is locked, its value cannot be modified.

To see this method in a code example, see the Modifying signature fields using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
modifySignatureField in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that contains a signature field whose seedValueOption and FieldMDPOption values are to be modified. This is a required parameter and cannot be null.
signatureFieldName - The name of the signature field. This is a required parameter and cannot be null.
pdfSignatureFieldProperties - An PDFSignatureFieldProperties object that specifies information about the PDFSeedValueOptions and FieldMDPOptions values of the signature field.
Returns:
A com.adobe.idp.Document object that represents the PDF document to which a given signature field is modified. Note that this is a new document and the input PDF document is not modified.
Throws:
InvalidArgumentException - If an invalid argument value is specified.
PDFOperationException - Represents an exception that is thrown if an error occurs during this operation.
PermissionsException - If the document permission does not allow this operation, or if the document is encrypted and cannot be accessed. An encrypted PDF document must be unlocked before an operation can be performed on it.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldSignedException - If a specified signature field contains a signature.
SignaturesOtherException

addInvisibleSignatureField

public Document addInvisibleSignatureField(Document inPDFDoc,
                                           java.lang.String signatureFieldName,
                                           FieldMDPOptionSpec fieldMDPOptionsSpec,
                                           PDFSeedValueOptionSpec seedValueOptionsSpec)
                                    throws PDFOperationException,
                                           PermissionsException,
                                           InvalidArgumentException,
                                           DuplicateSignatureFieldException,
                                           SignaturesOtherException
Creates an invisible signature field in the PDF document. This method is not supported when working with dynamic PDF documents.

Specified by:
addInvisibleSignatureField in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - The PDF document to which the invisible signature field is added. This is a required parameter and cannot be null.
signatureFieldName - The name of the signature field. This is a required parameter and cannot be null.
fieldMDPOptionsSpec - A FieldMDPOptionSpec object that specifies the PDF document fields that are locked after the signature field is signed. This is an optional parameter and can be null.
seedValueOptionsSpec - A SeedValueOptions object that specifies the various seed values for the field. This is an optional parameter and can be null.
Returns:
A com.adobe.idp.Document object that represents the PDF document to which the invisible signature field is added.
Throws:
PDFOperationException - An exception thrown by other Adobe Experience Manager forms operations.
PermissionsException - If the permissions on the document do not allow this operation or the document is encrypted and cannot be processed.
InvalidArgumentException - If some argument value is invalid.
DuplicateSignatureFieldException - If a signature field with the same name already exists.
SignaturesOtherException - If another run-time error occurs.

clearSignatureField

public Document clearSignatureField(Document inPDFDoc,
                                    java.lang.String signatureFieldName)
                             throws PDFOperationException,
                                    PermissionsException,
                                    InvalidArgumentException,
                                    MissingSignatureFieldException,
                                    SignaturesOtherException
Clears the specified signature field. After a signature field is cleared, it can be signed or certified again.

To see this method in a code example, see the Removing a digital signature using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
clearSignatureField in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains a signature field whose signature is removed.
signatureFieldName - The name of the signature field.
Returns:
A com.adobe.idp.Document object that represents a PDF document that contains an empty signature field.
Throws:
PDFOperationException - Represents an exception that is thrown if an exception occurs during this operation.
PermissionsException - If the permissions on the document do not allow this operation, or if the document is encrypted and cannot be accessed.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified signature field does not exist.
SignaturesOtherException - If another run-time error occurs.

getCertifyingSignatureField

public PDFSignatureField getCertifyingSignatureField(Document inPDFDoc)
                                              throws PDFOperationException,
                                                     InvalidArgumentException,
                                                     NoCertifyingSignatureException,
                                                     PermissionsException,
                                                     SignaturesOtherException
Returns the signature field that was used to certify the document.

Specified by:
getCertifyingSignatureField in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains a signature field that contains a certified signature.
Returns:
A PDFSignatureField object that holds information about the certified signature.
Throws:
PDFOperationException - Represents an exception that is thrown if an exception occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
NoCertifyingSignatureException - If the PDF document does not contain a certified signature.
PermissionsException - If the permissions on the document do not allow this operation, or if the document is encrypted and cannot be accessed.
SignaturesOtherException - If another run-time error occurs.

getSignature

public PDFSignature getSignature(Document inPDFDoc,
                                 java.lang.String signatureFieldName)
                          throws PDFOperationException,
                                 PermissionsException,
                                 InvalidArgumentException,
                                 MissingSignatureFieldException,
                                 SignatureFieldNotSignedException,
                                 SignaturesOtherException
Returns signature data for a given signature field.

Specified by:
getSignature in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that contains a signature field for which data is retrieved.
signatureFieldName - The name of the signature field that contains a signature. The fully qualified name of the signature field should be specified. When using a PDF document that is based on an XFA form, then the partial name of the signature field can be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3].
Returns:
A PDFSignature object which contains a signature and information about the filter and subfilters which is used for validating the signature and also the certificates embedded in the PDF document.
Throws:
PDFOperationException - Represents an exception that is thrown if an exception occurs during this operation.
PermissionsException - If the permissions on the document do not allow this operation, or if the document is encrypted and cannot be accessed.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldNotSignedException - If the signature field has not been signed.
SignaturesOtherException - If another run-time error occurs.

getSignedVersion

public Document getSignedVersion(Document inPDFDoc,
                                 java.lang.String signatureFieldName)
                          throws PDFOperationException,
                                 PermissionsException,
                                 InvalidArgumentException,
                                 MissingSignatureFieldException,
                                 SignatureFieldNotSignedException,
                                 SignaturesOtherException
Returns the version of the PDF document that contains a signature.

Specified by:
getSignedVersion in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that contains a signature.
signatureFieldName - The name of the signature field in the PDF document that contains a signature. The fully qualified name of the signature field should be specified. When using a PDF document that is based on an XFA form, then the partial name of the signature field can be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3].
Returns:
A com.adobe.idp.Document object that represents a signed PDF document.
Throws:
PDFOperationException - Represents an exception that is thrown if an error occurs during this operation.
PermissionsException - If the permissions on the document do not allow this operation, or if the PDF document is encrypted and cannot be accessed.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldNotSignedException - If the signature field was not signed.
SignaturesOtherException - If another run-time error occurs.

removeSignatureField

public Document removeSignatureField(Document inPDFDoc,
                                     java.lang.String signatureFieldName)
                              throws PDFOperationException,
                                     PermissionsException,
                                     InvalidArgumentException,
                                     MissingSignatureFieldException,
                                     SignatureFieldSignedException,
                                     SignaturesOtherException
Removes the specified signature field. You cannot remove a signature field if it is signed or certified. First, you must clear the signature.

Specified by:
removeSignatureField in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains a signature field to remove.
signatureFieldName - The name of the signature field to remove. The fully qualified name of the signature field should be specified. When using a PDF document that is based on an XFA form, then the partial name of the signature field can be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3].
Returns:
A com.adobe.idp.Document object that represents a PDF document that does not contain a signature field.
Throws:
PDFOperationException - Represents an exception that is thrown if an error occurs during this operation.
PermissionsException - If document permissions do not allow this operation, or if the PDF document is encrypted and cannot be accessed.
InvalidArgumentException - If the specified signature field does not exist..
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldSignedException - If the signature field to be removed is already signed.
SignaturesOtherException - If another run-time error occurs.
See Also:
clearSignatureField

verify

public PDFSignatureVerificationResult verify(Document inPDFDoc,
                                             java.lang.String signatureFieldName,
                                             RevocationCheckStyle revocationCheckStyle,
                                             VerificationTime verificationTime,
                                             OCSPOptionSpec ocspOptionSpec,
                                             CRLOptionSpec crlOptionSpec,
                                             TSPOptionSpec tspOptionSpec,
                                             PathValidationOptionSpec pathValidationOptionSpec,
                                             java.util.HashMap spiProperties)
                                      throws PDFOperationException,
                                             InvalidArgumentException,
                                             MissingSignatureFieldException,
                                             SignatureFieldNotSignedException,
                                             SignatureVerifyException,
                                             PermissionsException,
                                             SignaturesOtherException
Verifies the signature in a signature field and returns information about the signature. This overloaded method uses the Signature SPI to verify the signature. For information about the Signature SPI, see Creating Signature Handlers in Programming with Adobe Experience Manager forms.

Specified by:
verify in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains a signature to verify.
signatureFieldName - The name of the signature field that contains a signature to verify. The fully qualified name of the signature field should be specified. When using a PDF document that is based on an XFA form, then the partial name of the signature field can be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3].
revocationCheckStyle - An enumeration specifying the revocation settings to use during the verify operation.
verificationTime - An enumeration specifying the verification time to use.
ocspOptionSpec - A collection of online certificate status protocol (OCSP) related options.
crlOptionSpec - A collection of certificate revocation lists (CRL) related options.
tspOptionSpec - Settings related to time stamping authority.
pathValidationOptionSpec - Settings that control RFC3280 related path validation options. For example, using the value, you can indicate if policy mapping is allowed in the certification path. For more information, go to the following URL: http://rfc.net/rfc3280.html.
spiProperties - A HashMap containing additional properites to be passed to SPI when verifying a Signature using the Signature SPI. The following key value pairs are presently supported: Key=SPIName and Value is the name of the SPI provider where the verify certificate is performed.
Returns:
A PDFSignatureVerificationResult object containing information about the signature including its validity status.
Throws:
PDFOperationException - An exception that is thrown if an error occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldNotSignedException - If the signature field to verify is not signed.
SignatureVerifyException - Any other exceptions that are related to the signature verification.
PermissionsException - If an invalid permission for this operation exists.
SignaturesOtherException - If another run-time error occurs.

verify

public PDFSignatureVerificationResult verify(Document inPDFDoc,
                                             java.lang.String signatureFieldName,
                                             RevocationCheckStyle revocationCheckStyle,
                                             VerificationTime verificationTime,
                                             OCSPOptionSpec ocspOptionSpec,
                                             CRLOptionSpec crlOptionSpec,
                                             TSPOptionSpec tspOptionSpec,
                                             PathValidationOptionSpec pathValidationOptionSpec)
                                      throws PDFOperationException,
                                             InvalidArgumentException,
                                             MissingSignatureFieldException,
                                             SignatureFieldNotSignedException,
                                             SignatureVerifyException,
                                             PermissionsException,
                                             SignaturesOtherException
Verifies the signature in a signature field and returns information about the signature.

To see this method in a code example, see the Verifying digital signatures using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
verify in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains a signature to verify.
signatureFieldName - The name of the signature field that contains a signature to verify. The fully qualified name of the signature field should be specified. When using a PDF document that is based on an XFA form, then the partial name of the signature field can be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3].
revocationCheckStyle - An enumeration specifying the revocation settings to use during the verify operation.
verificationTime - An enumeration specifying the verification time to use.
ocspOptionSpec - A collection of online certificate status protocol (OCSP) related options.
crlOptionSpec - A collection of certificate revocation lists (CRL) related options.
tspOptionSpec - Settings related to time stamping authority.
pathValidationOptionSpec - Settings that control RFC3280 related path validation options. For example, using the value, you can indicate if policy mapping is allowed in the certification path. For more information, go to the following URL: http://rfc.net/rfc3280.html.
Returns:
A PDFSignatureVerificationResult object containing information about the signature including its validity status.
Throws:
PDFOperationException - An exception that is thrown if an error occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldNotSignedException - If the signature field to verify is not signed.
SignatureVerifyException - Any other exceptions that are related to the signature verification.
PermissionsException - If an invalid permission for this operation exists.
SignaturesOtherException - If another run-time error occurs.

verify2

public PDFSignatureVerificationInfo verify2(Document inPDFDoc,
                                            java.lang.String signatureFieldName,
                                            PKIOptions pkiOptions,
                                            VerifySPIOptions spiOptions)
                                     throws PDFOperationException,
                                            InvalidArgumentException,
                                            MissingSignatureFieldException,
                                            SignatureFieldNotSignedException,
                                            SignatureVerifyException,
                                            PermissionsException,
                                            SignaturesOtherException
Verifies the signature in a signature field and returns information about the signature. This method was added in Adobe Experience Manager forms.

Specified by:
verify2 in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains a signature to verify.
signatureFieldName - The name of the signature field that contains a signature to verify. The fully qualified name of the signature field should be specified. When using a PDF document that is based on an XFA form, then the partial name of the signature field can be used. For example, form1[0].#subform[1].SignatureField3[3] can be specified as SignatureField3[3].
pkiOptions - A PKIOptions object that captures the PKI related information required to validate the signature.
spiOptions - A VerifySPIOptions object that captures the details of the SPI that would be used for verification of the signer.
Returns:
A PDFSignatureVerificationInfo object containing information about the signature including its validity status.
Throws:
PDFOperationException - An exception that is thrown if an error occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified signature field does not exist.
SignatureFieldNotSignedException - If the signature field to verify is not signed.
SignatureVerifyException - Any other exceptions that are related to the signature verification.
PermissionsException - If an invalid permission for this operation exists.
SignaturesOtherException - If another run-time error occurs.

verifyXMLSignature

public XMLSignatureVerificationResult verifyXMLSignature(Document inXMLDoc,
                                                         java.lang.String signatureFieldName,
                                                         RevocationCheckStyle revocationCheckStyle,
                                                         VerificationTime verificationTime,
                                                         OCSPOptionSpec ocspOptionSpec,
                                                         CRLOptionSpec crlOptionSpec,
                                                         PathValidationOptionSpec pathValidationOptionSpec)
                                                  throws SignatureVerifyException,
                                                         InvalidArgumentException,
                                                         MissingSignatureFieldException,
                                                         SignaturesOtherException
Verifies an XML signature associated with a signature field.

Specified by:
verifyXMLSignature in interface SignatureServiceClientInterface
Parameters:
inXMLDoc - A com.adobe.idp.Document object that represents an XML document that contains an XML signature to verify.
signatureFieldName - This is the value of the Id attribute of the Signature node.
revocationCheckStyle - An enumeration specifying the revocation settings to use during the verify operation.
verificationTime - An enumeration specifying the verification time to use.
ocspOptionSpec - A collection of online certificate status protocol (OCSP) related options.
crlOptionSpec - A collection of certificate revocation lists (CRL) related options.
pathValidationOptionSpec - Settings that control RFC3280 related path validation options. For example, using this value, you can indicate if policy mapping is allowed in the certification path. For more information, go to the following URL: http://rfc.net/rfc3280.html.
Returns:
A XMLSignatureVerificationResult object that holds information about the signature including its validity status.
Throws:
SignatureVerifyException - Any exception thrown while verifying the XML signature.
InvalidArgumentException - If an invalid argument value is specified.
MissingSignatureFieldException - If the specified XML signature field is not located within the PDF document.
SignaturesOtherException - If another run-time error occurs.

getLegalAttestation

public PDFLegalWarnings getLegalAttestation(Document inPDFDoc,
                                            java.lang.Boolean generateOnTheFly)
                                     throws PDFOperationException,
                                            InvalidArgumentException,
                                            NoCertifyingSignatureException,
                                            PermissionsException,
                                            SignaturesOtherException
Retrieves the legal attestation values for the document.

Specified by:
getLegalAttestation in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document.
generateOnTheFly - Determines if the legal attestation counter values are calculated or are picked up from the dictionary.
Returns:
A PDFLegalWarnings object that holds information about the legal warnings found in the document.
Throws:
PDFOperationException - Thrown if an error occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
NoCertifyingSignatureException - If the PDF document does not contain a certified signature.
PermissionsException - If document permission do not allow this operation, or if the document is encrypted and cannot be accessed. An encrypted PDF document must be unlocked before an operation can be performed on it.
SignaturesOtherException - If another run-time error occurs.

getSignatureFieldList

public java.util.List getSignatureFieldList(Document inPDFDoc)
                                     throws PDFOperationException,
                                            InvalidArgumentException,
                                            PermissionsException,
                                            SignaturesOtherException
Returns a list of all the signature fields located within a PDF document.

To see this method in a code example, see the Retrieving signature field names using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
getSignatureFieldList in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains signature fields to retrieve.
Returns:
A java.util.List of PDFSignatureField objects.
Throws:
PDFOperationException - Represents an exception that is thrown if an error occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
PermissionsException - If document permission do not allow this operation, or if the document is encrypted and cannot be accessed. An encrypted PDF document must be unlocked before an operation can be performed on it.
SignaturesOtherException - If another run-time error occurs.

verifyPDFDocument

public PDFDocumentVerificationInfo verifyPDFDocument(Document inPDFDoc,
                                                     PKIOptions pkiOptions,
                                                     VerifySPIOptions spiOptions)
                                              throws PDFOperationException,
                                                     InvalidArgumentException,
                                                     SignatureVerifyException,
                                                     PermissionsException,
                                                     SignaturesOtherException
Description copied from interface: SignatureServiceClientInterface
Verifies all signatures that are located within a signed PDF document. This method was added in Adobe Experience Manager forms.

To see this method in a code example, see the Verifying signed PDF documents using the Java API quick start in Programming with Adobe Experience Manager forms.

Specified by:
verifyPDFDocument in interface SignatureServiceClientInterface
Parameters:
inPDFDoc - A com.adobe.idp.Document object that represents a PDF document that contains signatures to verify.
pkiOptions - A PKIOptions object that captures the PKI related information required to validate the signature.
spiOptions - A VerifySPIOptions object that captures the details of the SPI that would be used for verification of the signer.
Returns:
A PDFDocumentVerificationInfo object containing information about the signatures in the document including their validity status.
Throws:
PDFOperationException - An exception that is thrown if an error occurs during this operation.
InvalidArgumentException - If an invalid argument value is specified.
SignatureVerifyException - Any other exceptions that are related to the signature verification.
PermissionsException - If an invalid permission for this operation exists.
SignaturesOtherException - If another run-time error occurs.

addSignatureValidationInfo

public Document addSignatureValidationInfo(Document inPDFDoc,
                                           java.lang.String signatureFieldName,
                                           AddSignatureValidationOptionSpec addSigValidiationSpec)
                                    throws PDFOperationException,
                                           InvalidArgumentException,
                                           MissingSignatureFieldException,
                                           SignatureFieldNotSignedException,
                                           SignatureVerifyException,
                                           PermissionsException,
                                           SignaturesOtherException
Specified by:
addSignatureValidationInfo in interface SignatureServiceClientInterface
Throws:
PDFOperationException
InvalidArgumentException
MissingSignatureFieldException
SignatureFieldNotSignedException
SignatureVerifyException
PermissionsException
SignaturesOtherException

applyDocumentTimeStamp

public Document applyDocumentTimeStamp(Document inPDFDoc,
                                       AddSignatureValidationOptionSpec addSigValidiationSpec)
                                throws PDFOperationException,
                                       PermissionsException,
                                       SignatureFieldNotSignedException,
                                       SignatureVerifyException,
                                       SignaturesOtherException
Specified by:
applyDocumentTimeStamp in interface SignatureServiceClientInterface
Throws:
PDFOperationException
PermissionsException
SignatureFieldNotSignedException
SignatureVerifyException
SignaturesOtherException