Class TSAClientBouncyCastle

java.lang.Object
com.lowagie.text.pdf.TSAClientBouncyCastle
All Implemented Interfaces:
TSAClient

public class TSAClientBouncyCastle extends Object implements TSAClient
Time Stamp Authority Client interface implementation using Bouncy Castle org.bouncycastle.tsp package.

Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 for ease of subclassing.

Since:
2.1.6
  • Field Details

    • tsaURL

      protected String tsaURL
      URL of the Time Stamp Authority
    • tsaUsername

      protected String tsaUsername
      TSA Username
    • tsaPassword

      protected String tsaPassword
      TSA password
    • tokSzEstimate

      protected int tokSzEstimate
      Estimate of the received time stamp token
    • proxy

      private Proxy proxy
    • policy

      private String policy
    • digestName

      private String digestName
  • Constructor Details

    • TSAClientBouncyCastle

      public TSAClientBouncyCastle(String url)
      Creates an instance of a TSAClient that will use BouncyCastle.
      Parameters:
      url - String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA")
    • TSAClientBouncyCastle

      public TSAClientBouncyCastle(String url, String username, String password)
      Creates an instance of a TSAClient that will use BouncyCastle.
      Parameters:
      url - String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA")
      username - String - user(account) name
      password - String - password
    • TSAClientBouncyCastle

      public TSAClientBouncyCastle(String url, String username, String password, int tokSzEstimate)
      Constructor. Note the token size estimate is updated by each call, as the token size is not likely to change (as long as we call the same TSA using the same imprint length).
      Parameters:
      url - String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA")
      username - String - user(account) name
      password - String - password
      tokSzEstimate - int - estimated size of received time stamp token (DER encoded)
  • Method Details

    • isNotEmpty

      private static boolean isNotEmpty(String arg)
    • getTokenSizeEstimate

      public int getTokenSizeEstimate()
      Get the token size estimate. Returned value reflects the result of the last succesfull call, padded
      Specified by:
      getTokenSizeEstimate in interface TSAClient
      Returns:
      an estimate of the token size
    • getMessageDigest

      public MessageDigest getMessageDigest() throws GeneralSecurityException
      Get the MessageDigest. Default algorithm `SHA-1` used as per algorithm used without tsaClient
      Specified by:
      getMessageDigest in interface TSAClient
      Returns:
      SHA-1 MessageDigest
      Throws:
      GeneralSecurityException - a security problem
      See Also:
    • getTimeStampToken

      public byte[] getTimeStampToken(PdfPKCS7 caller, byte[] imprint) throws Exception
      Get RFC 3161 timeStampToken. Method may return null indicating that timestamp should be skipped.
      Specified by:
      getTimeStampToken in interface TSAClient
      Parameters:
      caller - PdfPKCS7 - calling PdfPKCS7 instance (in case caller needs it)
      imprint - byte[] - data imprint to be time-stamped
      Returns:
      byte[] - encoded, TSA signed data of the timeStampToken
      Throws:
      Exception - - TSA request failed
      See Also:
    • getTimeStampToken

      protected byte[] getTimeStampToken(byte[] imprint) throws Exception
      Get timestamp token - Bouncy Castle request encoding / decoding layer
      Parameters:
      imprint - a byte array containing the imprint
      Returns:
      the timestamp token
      Throws:
      Exception - on error
    • getTSAResponse

      protected byte[] getTSAResponse(byte[] requestBytes) throws Exception
      Get timestamp token - communications layer
      Parameters:
      requestBytes - the request bytes
      Returns:
      - byte[] - TSA response, raw bytes (RFC 3161 encoded)
      Throws:
      Exception - on error
    • getProxy

      public Proxy getProxy()
      Proxy object used for URL connections.
      Returns:
      Proxy object
    • setProxy

      public void setProxy(Proxy aProxy)
      Sets Proxy which will be used for URL connection.
      Parameters:
      aProxy - Proxy to set
    • getPolicy

      public String getPolicy()
      Gets Policy OID of TSA request.
    • setPolicy

      public void setPolicy(String policy)
      Sets Policy OID of TSA request.
      Parameters:
      policy - oid
    • getTsaURL

      public String getTsaURL()
    • getTsaUsername

      public String getTsaUsername()
    • getTsaPassword

      public String getTsaPassword()
    • getTokSzEstimate

      public int getTokSzEstimate()
    • getDigestName

      public String getDigestName()
    • setDigestName

      public void setDigestName(String hashAlgorithm)