Asn1Decodable

Interface providing convenience methods to decode from ASN.1. Especially useful when companion objects of classes implementing Asn1Encodable implement it.

Inheritors

Functions

Link copied to clipboard
fun <A : Asn1Element, T : Asn1Encodable<A>> Asn1Decodable<A, T>.decodeFromDer(src: ByteArray, limit: Long = src.size.toLong(), assertTag: Asn1Element.Tag? = null): T

Convenience method, directly DER-decoding a byte array to T

fun <A : Asn1Element, T : Asn1Encodable<A>> Asn1Decodable<A, T>.decodeFromDer(src: Source<*>, limit: Long?, assertTag: Asn1Element.Tag? = null): T

Decodes src as DER using this Asn1Decodable.

Link copied to clipboard
fun <A : Asn1Element, T : Asn1Encodable<A>> Asn1Decodable<A, T>.decodeFromDerOrNull(src: ByteArray, limit: Long = src.size.toLong(), assertTag: Asn1Element.Tag? = null): T?

Exception-free version of decodeFromDer

Link copied to clipboard
open fun decodeFromTlv(src: A, assertTag: Asn1Element.Tag? = null): T

Processes an A, parsing it into an instance of T

Link copied to clipboard
fun <A : Asn1Element, T : Asn1Encodable<A>> Asn1Decodable<A, T>.decodeFromTlvOrNull(src: A, assertTag: Asn1Element.Tag? = null): T?

Exception-free version of Asn1Decodable.decodeFromTlv

Link copied to clipboard
abstract fun doDecode(src: A): T

Actual element-specific decoding function. By default, this is invoked after verifyTag

Link copied to clipboard

Convenience method to directly parse a HEX-string representation of DER-encoded data. Ignores and strips all whitespace.

Link copied to clipboard
open fun verifyTag(src: A, assertTag: Asn1Element.Tag?)

Specify assertTag for verifying implicitly tagged elements' tags (and better not override this function).