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

org.bouncycastle.asn1.tsp

## Class EvidenceRecord

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.tsp.EvidenceRecord

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class EvidenceRecord
      extends ASN1Object

  RFC 4998: Evidence Record Syntax (ERS)

       EvidenceRecord ::= SEQUENCE {
         version                   INTEGER { v1(1) } ,
         digestAlgorithms          SEQUENCE OF AlgorithmIdentifier,
         cryptoInfos               [0] CryptoInfos OPTIONAL,
         encryptionInfo            [1] EncryptionInfo OPTIONAL,
         archiveTimeStampSequence  ArchiveTimeStampSequence
       }

       CryptoInfos ::= SEQUENCE SIZE (1..MAX) OF Attribute

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EvidenceRecord(AlgorithmIdentifier[] digestAlgorithms, CryptoInfos cryptoInfos, EncryptionInfo encryptionInfo, ArchiveTimeStampSequence archiveTimeStampSequence)`
    `EvidenceRecord(CryptoInfos cryptoInfos, EncryptionInfo encryptionInfo, ArchiveTimeStamp archiveTimeStamp)` Build a basic evidence record from an initial ArchiveTimeStamp.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `EvidenceRecord` | `addArchiveTimeStamp(ArchiveTimeStamp ats, boolean newChain)` Return a new EvidenceRecord with an added ArchiveTimeStamp
    `ArchiveTimeStampSequence` | `getArchiveTimeStampSequence()`
    `AlgorithmIdentifier[]` | `getDigestAlgorithms()`
    `static EvidenceRecord` | `getInstance(ASN1TaggedObject tagged, boolean explicit)`
    `static EvidenceRecord` | `getInstance(java.lang.Object obj)` Return an EvidenceRecord from the given object.
    `ASN1Primitive` | `toASN1Primitive()` Method providing a primitive representation of this object suitable for encoding.
    `java.lang.String` | `toString()`

    - ### 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, wait, wait, wait`

- - ### Constructor Detail

    - #### EvidenceRecord

          public EvidenceRecord(CryptoInfos cryptoInfos,
                                EncryptionInfo encryptionInfo,
                                ArchiveTimeStamp archiveTimeStamp)

      Build a basic evidence record from an initial ArchiveTimeStamp.
      Parameters:
        `cryptoInfos` -
        `encryptionInfo` -
        `archiveTimeStamp` -

    - #### EvidenceRecord

          public EvidenceRecord(AlgorithmIdentifier[] digestAlgorithms,
                                CryptoInfos cryptoInfos,
                                EncryptionInfo encryptionInfo,
                                ArchiveTimeStampSequence archiveTimeStampSequence)

  - ### Method Detail

    - #### getInstance

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

      Return an EvidenceRecord from the given object.
      Parameters:
        `obj` - the object we want converted.
      Returns:
        an EvidenceRecord instance, or null.
      Throws:
        `java.lang.IllegalArgumentException` - if the object cannot be converted.

    - #### getInstance

          public static EvidenceRecord getInstance(ASN1TaggedObject tagged,
                                                   boolean explicit)

    - #### getDigestAlgorithms

          public AlgorithmIdentifier[] getDigestAlgorithms()

    - #### getArchiveTimeStampSequence

          public ArchiveTimeStampSequence getArchiveTimeStampSequence()

    - #### addArchiveTimeStamp

          public EvidenceRecord addArchiveTimeStamp(ArchiveTimeStamp ats,
                                                    boolean newChain)

      Return a new EvidenceRecord with an added ArchiveTimeStamp
      Parameters:
        `ats` - the archive timestamp to add
        `newChain` - states whether this new archive timestamp must be added as part of a new sequence (i.e. in the case of hashtree renewal) or not (i.e. in the case of timestamp renewal)
      Returns:
        the new EvidenceRecord

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### 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.