TimeStampRequest (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.asn1.microsoft

## Class TimeStampRequest

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.microsoft.TimeStampRequest

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class TimeStampRequest
      extends ASN1Object

  The Microsoft Authenticode time stamp request, as sent to a legacy (pre-RFC 3161) Authenticode time stamping service (the protocol behind `signtool /t`; the RFC 3161 protocol is `signtool /tr`).

       TimeStampRequest ::= SEQUENCE {
          countersignatureType OBJECT IDENTIFIER,
          attributes Attributes OPTIONAL,
          content  ContentInfo
       }

  The countersignatureType identifying a time stamp countersignature is the exact OID 1.3.6.1.4.1.311.3.2.1 (`MicrosoftObjectIdentifiers.microsoftTimeStampRequest`). No attributes are currently included in requests. The content is a PKCS#7 ContentInfo of type data whose content is the encryptedDigest (signature) from the SignerInfo of the PKCS#7 SignedData to be time stamped.

  On the wire the request travels as the body of an HTTP 1.1 POST, base64 encoded, with Content-Type application/octet-stream. The response is a base64 encoded PKCS#7 SignedData whose SignerInfo the requester copies into the original SignedData as a PKCS#9 countersignature (an unsigned attribute of the original SignerInfo), merging the time stamper's certificates into the original SignedData's certificate set.

  See Time Stamping Authenticode Signatures.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TimeStampRequest(ASN1ObjectIdentifier countersignatureType, Attributes attributes, ContentInfo content)`
    `TimeStampRequest(ContentInfo content)` Construct a time stamp request for the given content using the standard Authenticode countersignature type OID, 1.3.6.1.4.1.311.3.2.1, and no attributes.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Attributes` | `getAttributes()` Return the attributes included in the request, or null if there are none.
    `ContentInfo` | `getContent()`
    `ASN1ObjectIdentifier` | `getCountersignatureType()`
    `static TimeStampRequest` | `getInstance(java.lang.Object obj)`
    `ASN1Primitive` | `toASN1Primitive()` Method providing a primitive representation of this object suitable for encoding.

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `encodeTo, encodeTo, equals, getEncoded, getEncoded, hasEncodedTagValue, hashCode`

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

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

- - ### Constructor Detail

    - #### TimeStampRequest

          public TimeStampRequest(ContentInfo content)

      Construct a time stamp request for the given content using the standard Authenticode countersignature type OID, 1.3.6.1.4.1.311.3.2.1, and no attributes.
      Parameters:
        `content` - a ContentInfo of type data carrying the signature to be time stamped.

    - #### TimeStampRequest

          public TimeStampRequest(ASN1ObjectIdentifier countersignatureType,
                                  Attributes attributes,
                                  ContentInfo content)

  - ### Method Detail

    - #### getInstance

          public static TimeStampRequest getInstance(java.lang.Object obj)

    - #### getCountersignatureType

          public ASN1ObjectIdentifier getCountersignatureType()

    - #### getAttributes

          public Attributes getAttributes()

      Return the attributes included in the request, or null if there are none.

    - #### getContent

          public ContentInfo getContent()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Description copied from class: `ASN1Object`
      Method providing a primitive representation of this object suitable for encoding.
      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a primitive representation of this object.