Package-level declarations

Types

Link copied to clipboard
@SerialInfo
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Asn1BitString

Marks ByteArray properties to encode/decode as ASN.1 BIT STRING.

Link copied to clipboard

ASN.1 constructed-bit override domain for Asn1Tag.

Link copied to clipboard

DSL builder for OID-discriminated open polymorphism.

Link copied to clipboard

DSL builder for tag-discriminated open polymorphism.

Link copied to clipboard

Marker for ASN.1 open-polymorphism registration DSL scopes.

Link copied to clipboard
annotation class Asn1Tag(val tagNumber: ULong, val tagClass: Asn1TagClass = Asn1TagClass.CONTEXT_SPECIFIC, val constructed: Asn1ConstructedBit = Asn1ConstructedBit.INFER)

ASN.1 implicit tag override annotation.

Link copied to clipboard

ASN.1 tag-class override domain for Asn1Tag.

Link copied to clipboard
@ExperimentalSerializationApi
object DefaultDerSerializersModuleRegistry
Link copied to clipboard
class Der : BinaryFormat

Marker format type for ASN.1 DER serialization via kotlinx.serialization.

Link copied to clipboard

Builder for DerConfiguration, used by DER { ... }.

Link copied to clipboard
data class DerConfiguration(val encodeDefaults: Boolean = true, val explicitNulls: Boolean = false, val serializersModule: SerializersModule = EmptySerializersModule())

DER format options.

Link copied to clipboard
interface DerDecoder : Decoder, Asn1DerDecoder
Link copied to clipboard
interface DerEncoder : Encoder, Asn1DerEncoder
Link copied to clipboard
@Serializable
data class ExplicitlyTagged<T>(val value: T)

Explicit-tag modelling wrapper.

Link copied to clipboard
@Serializable
data class OctetStringEncapsulated<T>(val value: T)

OCTET STRING encapsulation wrapper.

Link copied to clipboard

Supplies discriminator OIDs for OID-discriminated open polymorphism DSL registrations.

Properties

Link copied to clipboard
val DER: Der

Functions

Link copied to clipboard
fun <T : Identifiable> asn1OpenPolymorphicByOidSerializer(serialName: String, oidSelector: (Asn1Element) -> ObjectIdentifier? = ::oidFrom, block: Asn1OpenPolymorphismByOidBuilder<T>.() -> Unit): KSerializer<T>

Builds an OID-discriminated ASN.1 open-polymorphic serializer.

Link copied to clipboard
fun <T : Any> asn1OpenPolymorphicByTagSerializer(serialName: String, block: Asn1OpenPolymorphismByTagBuilder<T>.() -> Unit): KSerializer<T>

Builds a tag-discriminated ASN.1 open-polymorphic serializer.

Link copied to clipboard
@ExperimentalSerializationApi
inline fun <T> Der.decodeFromDer(source: ByteArray): T

Decodes source from DER bytes using the inferred deserializer for T.

Link copied to clipboard
@ExperimentalSerializationApi
inline fun <T> Der.decodeFromTlv(source: Asn1Element): T

Decodes source from a single ASN.1 TLV element using the inferred deserializer for T.

Link copied to clipboard
fun DER(config: DerBuilder.() -> Unit = {}): Der

Factory for the ASN.1 DER kotlinx-serialization format.

Link copied to clipboard
@ExperimentalSerializationApi
inline fun <T> Der.encodeToTlv(value: T): Asn1Element?
@ExperimentalSerializationApi
@JvmName(name = "encodeToTlvNonNull")
inline fun <T : Any> Der.encodeToTlv(value: T): Asn1Element

Encodes value into a single ASN.1 TLV element using the inferred serializer for T.

Link copied to clipboard
fun <T : Identifiable> SerializersModuleBuilder.polymorphicByOid(baseClass: KClass<T>, serialName: String = "Asn1OpenPolymorphicByOid", oidSelector: (Asn1Element) -> ObjectIdentifier? = ::oidFrom, block: Asn1OpenPolymorphismByOidBuilder<T>.() -> Unit)

Registers an OID-discriminated ASN.1 open-polymorphic serializer as contextual serializer.

Link copied to clipboard
fun <T : Any> SerializersModuleBuilder.polymorphicByTag(baseClass: KClass<T>, serialName: String = "Asn1OpenPolymorphicByTag", block: Asn1OpenPolymorphismByTagBuilder<T>.() -> Unit)

Registers a tag-discriminated ASN.1 open-polymorphic serializer as contextual serializer.

Link copied to clipboard
fun SerialDescriptor.withAsn1LeadingTags(leadingTags: Set<Asn1Element.Tag>): SerialDescriptor
Link copied to clipboard
fun SerialDescriptor.withDynamicAsn1LeadingTags(leadingTagsProvider: () -> Set<Asn1Element.Tag>): SerialDescriptor