Fractional

A GENERALIZED TIME carrying an exact fractional second. Produced only by decoding or from a sub-second Instant; a whole-second value is always a SecondsCapped instead.

Types

Link copied to clipboard
object Companion

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

Fractional-second digits. Matches FRACTIONAL_SECONDS regex: one or more digits. Every digit is significant and preserved, including leading and trailing zeros and an all-zero fraction: "05" (0.05 s) ≠ "5" (0.5 s), "120" is kept verbatim rather than normalized to "12", and "000" is kept rather than dropped to ensure even faulty encodings are round-tripped. Although cursed, certificates with such time encodings exist in practice.

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