Class SctVerifier

java.lang.Object
zeroecho.pki.server.ct.SctVerifier

public final class SctVerifier extends Object
Verifies Signed Certificate Timestamps collected from CT logs before they may be embedded in a final certificate.

Verification enforces two invariants per RFC 9162 §4.9 and the operator policy:

  1. Timestamp freshness: SCTs with a timestamp more than 10 minutes in the future are rejected. A future timestamp indicates a misbehaving or malicious log.
  2. Signature validity: The SCT's DigitallySigned structure must verify against the corresponding log's public key using the pre-certificate as input. Any SCT whose cryptographic signature is invalid is discarded.

SCTs from logs not present in the supplied logPublicKeys map are silently discarded (the log is not trusted by the operator for this authority).

After filtering, the verifyAll(List, Map, byte[], int) method enforces a minimum SCT count. If fewer than minScts SCTs survive verification the issuance is aborted by throwing CtSubmissionException.

Thread safety

This class is stateless and thread-safe.

Since:
1.0
  • Field Details

    • MAX_FUTURE_DRIFT_MINUTES

      public static final int MAX_FUTURE_DRIFT_MINUTES
      Maximum allowed clock skew between a CT log and the local clock.
      See Also:
  • Method Details