TOTP & HOTP generator for iOS, tvOS, watchOS, and macOS
Pure Swift implementation of time-based and HMAC-based one-time password generators. Heavily inspired by the OneTimePassword library from @mattrubin. Protocol based design, so you won’t find any subclasses here.
Installation
THOTP can be installed via Swift Package Manager.
Supported platforms are iOS (13.0+), tvOS (13.0+), watchOS (6.0+), and macOS (10.15+).
Swift Package Manager
The easiest integration is to use the built in package manager tools in Xcode 11.0+. You can also do it manually.
Add the following as a dependency to your Package.swift:
After specifying THOTP as a dependency of the target in which you want to use it, run:
swift package update
Usage
By default, this includes basic concrete types for Password & Generators. If you are interested in persistence, there are a couple of options to choose from:
Implement PasswordProtocol with your own concrete type, such as NSManagedObject
Use Valet-THOTP, which adds extensions + a new concrete type for easily persisting using Valet
let password = try? Password(url: URL(string: "otpauth://totp/test?secret=GEZDGNBV")!)
print(password.currentPassword) // 123321
Documentation
Docs are generated with jazzy & can be found here. The process is currently manual, so it’s possible for documentation to be out of date. Tests are a great way to see how to use this library.
License
This library is released under the MIT License. See LICENSE for details.
Installation • Usage • Documentation • License • Issues • Pull Requests
TOTP & HOTP generator for iOS, tvOS, watchOS, and macOS
Pure Swift implementation of time-based and HMAC-based one-time password generators. Heavily inspired by the OneTimePassword library from @mattrubin. Protocol based design, so you won’t find any subclasses here.
Installation
THOTP
can be installed via Swift Package Manager.Supported platforms are iOS (13.0+), tvOS (13.0+), watchOS (6.0+), and macOS (10.15+).
Swift Package Manager
The easiest integration is to use the built in package manager tools in Xcode 11.0+. You can also do it manually.
Add the following as a dependency to your Package.swift:
After specifying
THOTP
as a dependency of the target in which you want to use it, run:Usage
By default, this includes basic concrete types for Password & Generators. If you are interested in persistence, there are a couple of options to choose from:
PasswordProtocol
with your own concrete type, such asNSManagedObject
Basic
The simplest usage is to parse a URL.
THOTP
is compatible with Google Authenticator’s URI Scheme.Documentation
Docs are generated with jazzy & can be found here. The process is currently manual, so it’s possible for documentation to be out of date. Tests are a great way to see how to use this library.
License
This library is released under the MIT License. See LICENSE for details.