Skip to content

OTP implementation

Compare
Choose a tag to compare
@tanner0101 tanner0101 released this 03 Oct 14:14
2fba43f
This patch was authored by @Craz1k0ek and released by @MrLotU.

Adds HOTP & TOTP support. (#2499)

The HOTP can be created as an object, or it can be statically generated once:

let key = SymmetricKey(size: .bits128)
let code = HOTP(key: key, digest: .sha1, digits: .six).generate(counter: 15)

HOTP.generate(key: key, digest: .sha1, digits: .six, counter: 15)

The TOTP can be created as an object, or it can be statically generated once:

let key = SymmetricKey(size: .bits128)
let code = TOTP(key: key, digest: .sha1, digits: .six, interval: 30).generate(time: Date())

TOTP.generate(key: key, digest: .sha1, digits: .six, interval: 30, time: Date())