Files
otp.kt/README.md
Infendro 37bbe35482 update README
small rewording, link wikipedia article
2025-12-14 14:43:30 +01:00

1.3 KiB

otp-kt

otp-kt is a Kotlin Multiplatform library that provides common One-Time Password algorithms.

Supported algorithms:

  • HOTP
  • TOTP

Targets

Target Status
JVM Supported
JavaScript Supported
Native (Linux) Supported
Native (Windows) Not Supported

Installation

Add the following to your build.gradle.kts.

repositories {
    maven("https://git.infendro.com/api/packages/Infendro/maven")
}

dependencies {
    implementation("com.infendro:otp:1.2.2")
}

Usage

import com.infendro.hash.sha1.SHA1
import com.infendro.otp.SecretGenerator
import com.infendro.otp.TOTP
import com.infendro.random.csprng.CSPRNG
import kotlin.time.Clock.System.now
import kotlin.time.Duration.Companion.seconds

fun main() {
    // create a SecretGenerator and TOTP instance
    val generator = SecretGenerator(CSPRNG.HMAC(SHA1))
    val totp = TOTP(
        function = SHA1,
        length = 6,
        period = 30.seconds,
    )

    // generate a secret using SHA1
    val secret = generator.generate()

    // generate an OTP
    val otp = totp.generate(secret, now())

    // verify an OTP
    totp.verify(secret, now(), otp)
}