Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.faceless.pdf2
Class EGIZSignatureHandler

    java.lang.Object
      org.faceless.pdf2.SignatureHandler
          org.faceless.pdf2.EGIZSignatureHandler

    public class EGIZSignatureHandler

extends SignatureHandler

The EGIZSignatureHandler `SignatureHandler` provides the framework for signing documents according to the requirements set by http://www.egiz.gv.at/. In order for this class to do anything useful, a `EGIZSignatureHandler.Factory` must be created.

Since:
  2.11.12

Nested Class Summary
`static interface` | `EGIZSignatureHandler.Factory` An implementation of this Factory is required to create and control the EGIZSignatureHandler

Nested classes/interfaces inherited from class org.faceless.pdf2.SignatureHandler
`SignatureHandler.Placeholder`

Field Summary
`static int` | `FONTCONSTANT` A constant that must be added to the value passed in to the `StandardFont` constructor for any fonts used within the `populateCanvas` method

Constructor Summary
`EGIZSignatureHandler(EGIZSignatureHandler.Factory factory)` Create a a new EGIZSignatureHandler from the specified Factory

Method Summary
`String` | `createToken(String type, int line, int length)` Create a new token to be inserted into the canvas.
`X509Certificate[]` | `getCertificates()` Get the X.509 Certificates used to sign this Signature
`String` | `getFilter()` Return the name of the filter, eg "Adobe.PPKLite".
`String` | `getIssuerInfo()` Return the "Issuer Information" field of this siganture
`PDFCanvas` | `getLayerAppearance(String value, PDFStyle style)` Return a `PDFCanvas` for the specified layer.
`String[]` | `getLayerNames()` Return the list of appearance layer names used by this Signature Handler to create a visible appearance on the page, in the order they should be drawn.
`MessageDigest` | `getMessageDigest()` Return a MessageDigest that will be used to calculate the digest of the PDF for signing.
`String` | `getParameter()` Get the "Parameter" field of this Signature
`BigInteger` | `getSerialNumber()` Get the "Serial Number" field of this Signature
`byte[]` | `getSignatureValue()` Get the "Signature Value" of this signature.
`Calendar` | `getSignDate()` Get the time this signature was applied
`Map` | `getVariables()` Return the list of "variables" which will be set by the handler after the PDF is rendered.
`void` | `postDigest(long filelength, Map variables)` Update any Variables that need to be updated after the Digest is calculated (eg Contents).
`void` | `preDigest(long filelength, Map variables)` Update any Variables that need to be updated before the Digest is calculated (eg ByteRange).
`void` | `prepareToSign(KeyStore keystore, String alias, char[] password)` This method initialized the handler using the specified values into a state where it's ready to sign.
`void` | `setCertificates(X509Certificate[] certs)` Set the X.509 Certificates for this signature.
`void` | `setIssuerInfo(String value)` Set the "Issuer Information" field of this siganture.
`void` | `setParameter(String value)` Set the "Parameter" field of this Signature
`void` | `setSerialNumber(BigInteger serial)` Set the "Serial Number" field of this Signature
`void` | `setSignatureValue(byte[] data)` Set the "Signature Value" of this signature.
`void` | `setSignDate(Calendar calender)` Set the time this signature was applied
`void` | `setSignerInfo(String value)` Set the "Signer Information" field of this siganture.
`boolean` | `verify(InputStream in)` Return a boolean indicating whether or not the signature handler can verify the specified `InputStream`.

Methods inherited from class org.faceless.pdf2.SignatureHandler
`containsKey, getArrayValueSize, getBooleanValue, getDefaultName, getDictionaryValueKeys, getEstimatedContentSize, getFormSignature, getNameValue, getNumericValue, getStreamValue, getStringValue, getTextStringValue, putArrayValue, putBooleanValue, putDictionaryValue, putNameValue, putNumericValue, putStreamValue, putStringValue, putTextStringValue, sign`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### FONTCONSTANT

    public static final int FONTCONSTANT

  A constant that must be added to the value passed in to the `StandardFont` constructor for any fonts used within the `populateCanvas` method

  See Also:
    Constant Field Values

Constructor Detail

### EGIZSignatureHandler

    public EGIZSignatureHandler(EGIZSignatureHandler.Factory factory)

  Create a a new EGIZSignatureHandler from the specified Factory

Method Detail

### getFilter

    public String getFilter()

  Description copied from class: `SignatureHandler`
  Return the name of the filter, eg "Adobe.PPKLite".

  Specified by:
    `getFilter` in class `SignatureHandler`

### createToken

    public String createToken(String type,
                              int line,
                              int length)

  Create a new token to be inserted into the canvas. The token type must be one of "date" for the signature date, "serial" for the serial number, "parameter" for the parameter field, "value" for the signature value, "issuer" or "signer" for the signature issuer/signer, or "method" for the signature method. All these fields except for method can be split over multiple lines if necessary - the "line" parameter can range from 0 to 9.

  This method should be called by the `populateCanvas` method, which is passed a reference to this `EGIZSignatureHandler` for this reason.

  Parameters:
    `type` - one of "date", "serial", "signer", "issuer", "method", "parameter" or "value"
    `line` - the line number, from 0 to 9 (for type="method", this must be 0)
    `length` - the length of the field in the canvas
  Returns:
    the piece of text to be inserted into the canvas for later substitution

### prepareToSign

    public void prepareToSign(KeyStore keystore,
                              String alias,
                              char[] password)
                       throws GeneralSecurityException

  Description copied from class: `SignatureHandler`

  This method initialized the handler using the specified values into a state where it's ready to sign. This method should be used to set any additional fields in the Signature dictionary, for example "Certs" for the Self-Sign handler.

  Those overriding this method must call `super.prepareToSign()` before doing anything else.

  Overrides:
    `prepareToSign` in class `SignatureHandler`
  Parameters:
    `keystore` - the KeyStore
    `alias` - which key to use
    `password` - the password to use to decode the key
  Throws:
    `GeneralSecurityException`

### setSignatureValue

    public void setSignatureValue(byte[] data)

  Set the "Signature Value" of this signature. Must be called from `EGIZSignatureHandler.Factory.doSign(org.faceless.pdf2.EGIZSignatureHandler, java.security.MessageDigest)`

### setCertificates

    public void setCertificates(X509Certificate[] certs)

  Set the X.509 Certificates for this signature. Must be called from `EGIZSignatureHandler.Factory.doSign(org.faceless.pdf2.EGIZSignatureHandler, java.security.MessageDigest)`

### getSignatureValue

    public byte[] getSignatureValue()

  Get the "Signature Value" of this signature.

### setSignerInfo

    public void setSignerInfo(String value)

  Set the "Signer Information" field of this siganture. The supplied String may be split into multiple lines with "\n"

### getCertificates

    public X509Certificate[] getCertificates()

  Get the X.509 Certificates used to sign this Signature

### getIssuerInfo

    public String getIssuerInfo()

  Return the "Issuer Information" field of this siganture

### setIssuerInfo

    public void setIssuerInfo(String value)

  Set the "Issuer Information" field of this siganture. The supplied String may be split into multiple lines with "\n"

### setSignDate

    public void setSignDate(Calendar calender)

  Set the time this signature was applied

### getSignDate

    public Calendar getSignDate()

  Get the time this signature was applied

### setSerialNumber

    public void setSerialNumber(BigInteger serial)

  Set the "Serial Number" field of this Signature

### getSerialNumber

    public BigInteger getSerialNumber()

  Get the "Serial Number" field of this Signature

### getParameter

    public String getParameter()

  Get the "Parameter" field of this Signature

### setParameter

    public void setParameter(String value)

  Set the "Parameter" field of this Signature

### getMessageDigest

    public MessageDigest getMessageDigest()

  Description copied from class: `SignatureHandler`
  Return a MessageDigest that will be used to calculate the digest of the PDF for signing. This message will be called before `SignatureHandler.sign()` - see the API docs for that method for more details.

  Specified by:
    `getMessageDigest` in class `SignatureHandler`

### getVariables

    public Map getVariables()
                     throws GeneralSecurityException

  Description copied from class: `SignatureHandler`

  Return the list of "variables" which will be set by the handler after the PDF is rendered. Entries in the returned map should have a `String` as a key and a `SignatureHandler.Placeholder` as a value. These placeholders will be inserted into the PDF at the correct points.

  For most SignatureHandlers, the only variables are the "ByteRange" and "Contents" array containing the signature token, which is what this method returns (it may be overridden if more variables are required).

  This method was updated for a new signing architecture in release 2.11.12.

  Overrides:
    `getVariables` in class `SignatureHandler`
  Returns:
    a Map containing the variables to be substituted into the PDF during signing
  Throws:
    `GeneralSecurityException`
  See Also:
    `AcrobatSignatureHandlerFactory.setContentSize(int)`

### preDigest

    public void preDigest(long filelength,
                          Map variables)
                   throws IOException,
                          GeneralSecurityException,
                          CertificateException

  Description copied from class: `SignatureHandler`
  Update any Variables that need to be updated before the Digest is calculated (eg ByteRange).

  Overrides:
    `preDigest` in class `SignatureHandler`
  Parameters:
    `filelength` - the length of the PDF file, in bytes
    `variables` - the Map of variables, ordered by their position in the file.
  Throws:
    `IOException`
    `GeneralSecurityException`
    `CertificateException`

### postDigest

    public void postDigest(long filelength,
                           Map variables)
                    throws Exception

  Description copied from class: `SignatureHandler`
  Update any Variables that need to be updated after the Digest is calculated (eg Contents).

  Overrides:
    `postDigest` in class `SignatureHandler`
  Parameters:
    `filelength` - the length of the PDF file, in bytes
    `variables` - the Map of variables, ordered by their position in the file.
  Throws:
    `Exception`

### verify

    public boolean verify(InputStream in)
                   throws IOException,
                          GeneralSecurityException

  Description copied from class: `SignatureHandler`
  Return a boolean indicating whether or not the signature handler can verify the specified `InputStream`.

  Specified by:
    `verify` in class `SignatureHandler`
  Returns:
    true if the signature matches the specified InputStream
  Throws:
    `IOException` - if the InputStream cannot be read
    `GeneralSecurityException` - if the signature cannot be verified for some cryptographic reason

### getLayerNames

    public String[] getLayerNames()

  Description copied from class: `SignatureHandler`
  Return the list of appearance layer names used by this Signature Handler to create a visible appearance on the page, in the order they should be drawn. This method is called internally by the `FormSignature` class when drawing the signature annotations on the page. For more information see the document "Digital Signature Appearances for Public-Key Interoperability", from Adobes website.

  As an example, both the Verisign and the SelfSign handlers return the array `[ "n0", "n1", "n2", "n3" ]`.

  Specified by:
    `getLayerNames` in class `SignatureHandler`
  Returns:
    the ordered list of layer names that should to used to create a visible representation of this signature on a page.
  See Also:
    `SignatureHandler.getLayerAppearance(java.lang.String, org.faceless.pdf2.PDFStyle)`

### getLayerAppearance

    public PDFCanvas getLayerAppearance(String value,
                                        PDFStyle style)

  Description copied from class: `SignatureHandler`
  Return a `PDFCanvas` for the specified layer. This method is called internally by the `FormSignature` class when drawing the signature annotations on the page. For more information see the document "Digital Signature Appearances for Public-Key Interoperability", from Adobes website.

  Specified by:
    `getLayerAppearance` in class `SignatureHandler`
  Parameters:
    `value` - the layer to create (from the list returned by `SignatureHandler.getLayerNames()`)
    `style` - the style in which to draw the text, if any
  Returns:
    a new `PDFCanvas` of any size containing the specified layer.
  See Also:
    `SignatureHandler.getLayerNames()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2012 Big Faceless Organization