PureSwift OTP
Swift のみで書かれた OTP ライブラリであり、 [lachlanbell/SwiftOTP] のフォークバージョンです。
OTP を生成するロジックはほとんど変更されていませんが、パッケージの依存関係と使用法を少し変更したことで、より少ないコードかつ Swift Only で OTP を生成できるようになりました。
特徴
- Swift 100%: このパッケージは Swift のみを使用して実装されています。
インストール
// Swift Package Manager
dependencies: [
.package(url: "https://github.com/HALQME/PureSwiftOTP.git", branch: "main")
]
使用法
import PureSwiftOTP
// TOTP
// https://tools.ietf.org/html/rfc4226#page-32
let data = Data(hex: "3132333435363738393031323334353637383930")!
let totp = TOTP() // digits: Int = 6, algorithm: OTPAlgorithm = .sha1, timeInterval: TimeInterval = 30
totp.generate(data: data, time: Date(timeIntervalSince1970: 0)) // "755224"
// Base32エンコードされた文字列からTOTPコードを生成
let secret = "BASE32ENCODEDVALUE"
totp.generate(secret: secret) // 現在時刻に基づいたTOTPコードを返します
// HOTP
// https://tools.ietf.org/html/rfc4226#page-32
let data = Data(hex: "3132333435363738393031323334353637383930")!
let hotp = HOTP() // デフォルトでは6桁のコードとSHA1アルゴリズムを使用
hotp.generate(secret: data, counter: 0) // カウンター値0に基づいたHOTPコードを生成