Class SignedCertificateTimestampDataV2

java.lang.Object
org.bouncycastle.cert.ct.SignedCertificateTimestampDataV2

public class SignedCertificateTimestampDataV2 extends Object
The SCT body carried inside an RFC 9162 (CT v2) TransItem whose versioned_type is x509_sct_v2 (0x0102) or precert_sct_v2 (0x0103).
    struct {
        LogID    log_id;                       // opaque LogID<2..127>
        uint64   timestamp;
        Extension sct_extensions<0..2^16-1>;
        opaque   signature<1..2^16-1>;
    } SignedCertificateTimestampDataV2;
Notable differences vs the RFC 6962 v1 SignedCertificateTimestamp: the log identifier is variable-length (a 1-byte length prefix preceding 2-127 bytes, not a fixed 32-byte SHA-256); sct_extensions is a structured list of SctExtension entries rather than an opaque blob; the signature is plain opaque bytes (no embedded hash / signature algorithm pair — the verifier discovers the algorithm from the log's published key).
  • Constructor Details

    • SignedCertificateTimestampDataV2

      public SignedCertificateTimestampDataV2(byte[] logID, long timestamp, SctExtension[] sctExtensions, byte[] signature)
  • Method Details

    • getInstance

      public static SignedCertificateTimestampDataV2 getInstance(byte[] encoded)
      Decode the v2 SCT body from its serialized TLS form (the bytes of the containing TransItem.data field, after the 2-byte versioned_type prefix has been stripped).
    • getLogID

      public byte[] getLogID()
      Variable-length log identifier (2..127 bytes).
    • getTimestamp

      public long getTimestamp()
      Issuance timestamp in milliseconds since the Unix epoch.
    • getSctExtensions

      public List getSctExtensions()
      Decoded sct_extensions entries; never null.
    • getSignature

      public byte[] getSignature()
      Raw signature bytes.
    • getEncoded

      public byte[] getEncoded()
      Serialize this v2 SCT body to its TLS wire form (the bytes that would form the data field of the containing TransItem).