Class 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 Detail

      • tsaURL

        protected String tsaURL
        URL of the Time Stamp Authority
      • tsaUsername

        protected String tsaUsername
        TSA Username
      • tsaPassword

        protected String tsaPassword
        TSA password
      • tsaInfo

        protected TSAInfoBouncyCastle tsaInfo
        An interface that allows you to inspect the timestamp info.
      • DEFAULTTOKENSIZE

        public static final int DEFAULTTOKENSIZE
        The default value for the hash algorithm
        See Also:
        Constant Field Values
      • tokenSizeEstimate

        protected int tokenSizeEstimate
        Estimate of the received time stamp token
      • DEFAULTHASHALGORITHM

        public static final String DEFAULTHASHALGORITHM
        The default value for the hash algorithm
        See Also:
        Constant Field Values
      • digestAlgorithm

        protected String digestAlgorithm
        Hash algorithm
    • Constructor Detail

      • 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,
                                     String digestAlgorithm)
        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 Detail

      • setTSAInfo

        public void setTSAInfo​(TSAInfoBouncyCastle tsaInfo)
        Parameters:
        tsaInfo - the tsaInfo to set
      • 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
      • getTSAReqPolicy

        public String getTSAReqPolicy()
      • setTSAReqPolicy

        public void setTSAReqPolicy​(String tsaReqPolicy)
      • getTimeStampToken

        public byte[] getTimeStampToken​(byte[] imprint)
                                 throws IOException,
                                        org.bouncycastle.tsp.TSPException
        Get RFC 3161 timeStampToken. Method may return null indicating that timestamp should be skipped.
        Specified by:
        getTimeStampToken in interface TSAClient
        Parameters:
        imprint - data imprint to be time-stamped
        Returns:
        encoded, TSA signed data of the timeStampToken
        Throws:
        IOException
        org.bouncycastle.tsp.TSPException
      • getTSAResponse

        protected byte[] getTSAResponse​(byte[] requestBytes)
                                 throws IOException
        Get timestamp token - communications layer
        Returns:
        - byte[] - TSA response, raw bytes (RFC 3161 encoded)
        Throws:
        IOException