TimeStampToken (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.tsp

## Class TimeStampToken

- java.lang.Object
- - org.bouncycastle.tsp.TimeStampToken

-     public class TimeStampToken
      extends java.lang.Object

  Carrier class for a TimeStampToken.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TimeStampToken(CMSSignedData signedData)`
    `TimeStampToken(org.bouncycastle.asn1.cms.ContentInfo contentInfo)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `org.bouncycastle.util.Store` | `getAttributeCertificates()`
    `org.bouncycastle.util.Store` | `getCertificates()`
    `org.bouncycastle.util.Store` | `getCRLs()`
    `byte[]` | `getEncoded()` Return a ASN.1 encoded byte stream representing the encoded object.
    `SignerId` | `getSID()`
    `org.bouncycastle.asn1.cms.AttributeTable` | `getSignedAttributes()`
    `TimeStampTokenInfo` | `getTimeStampInfo()`
    `org.bouncycastle.asn1.cms.AttributeTable` | `getUnsignedAttributes()`
    `boolean` | `isSignatureValid(SignerInformationVerifier sigVerifier)` Return true if the signature on time stamp token is valid.
    `CMSSignedData` | `toCMSSignedData()` Return the underlying CMSSignedData object.
    `void` | `validate(SignerInformationVerifier sigVerifier)` Validate the time stamp token.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TimeStampToken

          public TimeStampToken(org.bouncycastle.asn1.cms.ContentInfo contentInfo)
                         throws TSPException,
                                java.io.IOException

      Throws:
        `TSPException`
        `java.io.IOException`

    - #### TimeStampToken

          public TimeStampToken(CMSSignedData signedData)
                         throws TSPException,
                                java.io.IOException

      Throws:
        `TSPException`
        `java.io.IOException`

  - ### Method Detail

    - #### getTimeStampInfo

          public TimeStampTokenInfo getTimeStampInfo()

    - #### getSID

          public SignerId getSID()

    - #### getSignedAttributes

          public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes()

    - #### getUnsignedAttributes

          public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes()

    - #### getCertificates

          public org.bouncycastle.util.Store getCertificates()

    - #### getCRLs

          public org.bouncycastle.util.Store getCRLs()

    - #### getAttributeCertificates

          public org.bouncycastle.util.Store getAttributeCertificates()

    - #### validate

          public void validate(SignerInformationVerifier sigVerifier)
                        throws TSPException,
                               TSPValidationException

      Validate the time stamp token.

      To be valid the token must be signed by the passed in certificate and the certificate must be the one referred to by the SigningCertificate attribute included in the hashed attributes of the token. The certificate must also have the ExtendedKeyUsageExtension with only KeyPurposeId.id_kp_timeStamping and have been valid at the time the timestamp was created.

      A successful call to validate means all the above are true.

      Parameters:
        `sigVerifier` - the content verifier create the objects required to verify the CMS object in the timestamp.
      Throws:
        `TSPException` - if an exception occurs in processing the token.
        `TSPValidationException` - if the certificate or signature fail to be valid.
        `java.lang.IllegalArgumentException` - if the sigVerifierProvider has no associated certificate.

    - #### isSignatureValid

          public boolean isSignatureValid(SignerInformationVerifier sigVerifier)
                                   throws TSPException

      Return true if the signature on time stamp token is valid.

      Note: this is a much weaker proof of correctness than calling validate().

      Parameters:
        `sigVerifier` - the content verifier create the objects required to verify the CMS object in the timestamp.
      Returns:
        true if the signature matches, false otherwise.
      Throws:
        `TSPException` - if the signature cannot be processed or the provider cannot match the algorithm.

    - #### toCMSSignedData

          public CMSSignedData toCMSSignedData()

      Return the underlying CMSSignedData object.
      Returns:
        the underlying CMS structure.

    - #### getEncoded

          public byte[] getEncoded()
                            throws java.io.IOException

      Return a ASN.1 encoded byte stream representing the encoded object.
      Throws:
        `java.io.IOException` - if encoding fails.