SecondsCapped

class SecondsCapped(instant: Instant, formatOverride: Asn1Time.Format? = null) : Asn1Time(source)

An Asn1Time with no encoded fractional second (whole-second) — the canonical DER-minimal form, and the only way to construct a time from Kotlin.

A value being whole-second is equivalent to being a SecondsCapped. The converse is not true for Fractional: a Fractional whose value happens to land on a whole second (e.g. an all-zero fraction .000) is still a Fractional, because it encodes differently. Detect "no fraction" via is SecondsCapped, never via instant.

Parameters

instant

the timestamp to encode; any sub-second part is dropped

formatOverride

force either GENERALIZED TIME or UTC TIME

Constructors

Link copied to clipboard
constructor(instant: Instant, formatOverride: Asn1Time.Format? = null)

Properties

Link copied to clipboard
open override val format: Asn1Time.Format

Indicates whether this timestamp uses UTC TIME or GENERALIZED TIME.

Link copied to clipboard
open override val instant: Instant

The timestamp value only, truncated to Instant's nanosecond resolution. For SecondsCapped this is whole-second; for Fractional it reflects the decoded fraction only up to nanoseconds.

Functions

Link copied to clipboard

Convenience function to directly get the DER-encoded representation of the implementing object

Link copied to clipboard

Exception-free version of encodeToDer

Link copied to clipboard
open override fun encodeToTlv(): Asn1Primitive

Encodes the implementing object into an A

Link copied to clipboard
Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard

shorthand for Asn1Element.prettyPrint, hence, a call to this function encodes this encodable to an Asn1Element, holds it in memory, pretty prints it, and discards it. This characteristic may be relevant in memory-constrained environments.

Link copied to clipboard

Returns a fresh instance of a SecondsCapped version of this Asn1Time.

Link copied to clipboard
fun Asn1Encodable<*>.toDerHexString(lineLen: Int? = null): String
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard

Creates a new implicitly tagged ASN.1 Element from this ASN.1 Element. NOTE: The TagClass of the provided tag will be used! If you want the result to have TagClass.CONTEXT_SPECIFIC, also invoke tag withClass TagClass.CONTEXT_SPECIFIC!. If a CONSTRUCTED Tag is applied to an ASN.1 Primitive, the CONSTRUCTED bit is overridden and set to zero

Creates a new implicitly tagged ASN.1 Element from this ASN.1 Structure. If the provided template's tagClass is not set, the class of the resulting structure defaults to TagClass.CONTEXT_SPECIFIC. If a CONSTRUCTED Tag is applied to an ASN.1 Primitive, the CONSTRUCTED bit is overridden and set to zero

open infix fun withImplicitTag(tagValue: ULong): Asn1Element

Creates a new implicitly tagged ASN.1 Element from this ASN.1 Element. Sets the class of the resulting structure to TagClass.CONTEXT_SPECIFIC