A slightly updated version of https://github.com/szkolny-eu/x509-generator
Find a file
2025-03-18 01:48:36 +01:00
gradle/wrapper Update Gradle configuration and dependencies 2025-03-18 01:48:36 +01:00
src Fix certificate date timezone. 2021-02-15 14:29:06 +01:00
.gitignore Initial commit. 2020-10-26 18:25:31 +01:00
.travis.yml Add Travis CI config. 2020-10-26 19:00:07 +01:00
build.gradle Update Gradle configuration and dependencies 2025-03-18 01:48:36 +01:00
gradle.properties Initial commit. 2020-10-26 18:25:31 +01:00
gradlew Make gradlew executable. 2020-10-26 19:57:00 +01:00
gradlew.bat Initial commit. 2020-10-26 18:25:31 +01:00
LICENSE Initial commit. 2020-10-26 18:25:31 +01:00
README.md Add usage sample to README.md 2021-02-15 15:20:13 +01:00
settings.gradle Initial commit. 2020-10-26 18:25:31 +01:00

x509-generator

A hacky solution to the difficulties of generating an X.509 certificate in JVM/Android.

Usage

repositories {
    jcenter()
}

dependencies {
    implementation 'eu.szkolny:x509-generator:1.0.0'
}
val keyPairGenerator = KeyPairGenerator.getInstance("RSA")
keyPairGenerator.initialize(2048)
val keyPair = keyPairGenerator.generateKeyPair()

val notBefore = ZonedDateTime.now()
val notAfter = notBefore.plusYears(10)

val cert = X509Generator(X509Generator.Algorithm.RSA_SHA256)
    .generate(
        subject = mapOf(
            "CN" to "Certificate Example",
            "O" to "IT"
        ),
        issuer = mapOf("CN" to "Certificate Issuer"),
        notBefore = notBefore,
        notAfter = notAfter,
        serialNumber = 1337,
        keyPair = keyPair
    )

Available signature algorithms - X509Generator.kt#27

Available subject claims - X509Generator.kt#15