Package-level declarations

Pre-defined ASN.1 modules/declarations from cryptography-related RFCs.

Types

Link copied to clipboard
Link copied to clipboard
@ExperimentalSerializationApi
abstract class AlgorithmIdentifierSerializer : KSerializer<AlgorithmIdentifier>
Link copied to clipboard

Algorithm identifier for DH keys in SubjectPublicKeyInfo/PrivateKeyInfo.

Link copied to clipboard
@Serializable
class DhParameters(val prime: BigInt, val base: BigInt, val privateValueLength: Int? = null)

As defined in PKCS#3 (RFC 2631). The privateValueLength field is optional and typically omitted.

Link copied to clipboard

Algorithm identifier for DSA keys in SubjectPublicKeyInfo/PrivateKeyInfo.

Link copied to clipboard
@Serializable
class DsaParameters(val prime: BigInt, val subprime: BigInt, val generator: BigInt)

As defined in FIPS 186 (RFC 3279).

Link copied to clipboard
@Serializable
class DssSignatureValue(val r: BigInt, val s: BigInt)
Link copied to clipboard
Link copied to clipboard
@Serializable
value class EcParameters(val namedCurve: ObjectIdentifier)

Overall while it's CHOICE in ASN.1, but only namedCurve is allowed

Link copied to clipboard
@Serializable
value class EcPoint(val bytes: ByteArray)

This is EC publicKey representation for SubjectPublicKeyInfo

Link copied to clipboard
@Serializable
class EcPrivateKey(val version: Int, val privateKey: ByteArray, val parameters: EcParameters? = null, val publicKey: BitArray? = null)
Link copied to clipboard
@Serializable
class PrivateKeyInfo(val version: Int, val privateKeyAlgorithm: AlgorithmIdentifier, val privateKey: ByteArray, val publicKey: BitArray? = null)

OneAsymmetricKey as defined in RFC 5958 (extends PKCS#8 PrivateKeyInfo):

Link copied to clipboard
@Serializable
class RsaPrivateKey(val version: Int, val modulus: BigInt, val publicExponent: BigInt, val privateExponent: BigInt, val prime1: BigInt, val prime2: BigInt, val exponent1: BigInt, val exponent2: BigInt, val coefficient: BigInt)

OtherPrimeInfos is not supported yet:

Link copied to clipboard
@Serializable
class RsaPublicKey(val modulus: BigInt, val publicExponent: BigInt)
Link copied to clipboard
@Serializable
class SubjectPublicKeyInfo(val algorithm: AlgorithmIdentifier, val subjectPublicKey: BitArray)

Properties

Link copied to clipboard

OID for DH key agreement algorithm (PKCS#3) id-dhKeyAgreement OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-3(3) 1 }

Link copied to clipboard

OID for DSA algorithm (FIPS 186) id-dsa OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard