Asn1BitString
ASN.1 BIT STRING, enforcing strict DER rules:
The number of padding bits must be in range 0..7
The raw bytes must not be empty if padding bits are set
The padding bits must be zero
When serialized to a non-DER format, the following representation is used:"$numPaddingBits:${base64Strict(bitCarryingBytes)}"
val bitSet = BitSet.fromString("001")
val bitString = Asn1BitString(bitSet)
Json.encodeToString(bitString) //produces "5:IA=="Constructors
Creates an ASN.1 BIT STRING from the provided bitSet. The transformation to bitCarryingBytes and the calculation of numPaddingBits happens immediately in the constructor. Hence, modifications to the source BitSet have no effect on the resulting Asn1BitString.
Constructs an ASN.1 BIT STRING with source used for bitCarryingBytes and zero padding bits
Properties
Functions
Convenience function to directly get the DER-encoded representation of the implementing object
Exception-free version of encodeToDer
Encodes the implementing object into an A
Exception-free version of Asn1Encodable.encodeToTlv
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.
Transforms bitCarryingBytes and wraps into a BitSet. The last numPaddingBits bits are ignored. This is a deep copy and mirrors the bits in every byte to match the native bitset layout where bit and byte indices run in opposite direction. Hence, modifications to the resulting bitset do not affect bitCarryingBytes
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
Creates a new implicitly tagged ASN.1 Element from this ASN.1 Element. Sets the class of the resulting structure to TagClass.CONTEXT_SPECIFIC