dart_otp 1.0.3 copy "dart_otp: ^1.0.3" to clipboard
dart_otp: ^1.0.3 copied to clipboard

outdated

dart_otp is a dart package to generate and verify one-time passwords.

dart_otp #

dart_otp is a dart package to generate and verify one-time passwords that were used to implement 2FA and MFA authentication method in web applications and other login-required systems.

The package was implement based on RFC4226 (HOTP: An HMAC-Based One-Time Password Algorithm) and RFC6238 (TOTP: Time-Based One-Time Password Algorithm).

Feature #

  • Generate a otpauth url with the b32 encoded string
  • Create a HOTP object with verification
  • Verify a HOTP token
  • Create a TOTP object with verification
  • Verify a TOTP token

Installation #

Pubspec

Add dart_otp as a dependency in your pubspec.yaml file.

dependencies:
  dart_otp: ^1.0.2

Example #

Time-based OTPs

import 'package:dart_otp/dart_otp.dart';

void main() {
  TOTP totp = TOTP("J22U6B3WIWRRBTAV");
  totp.now(); /// => 432143

  /// verify for the current time
  totp.verify(432143); /// => true

  /// verify after 30s
  totp.verify(432143); /// => false
}

Counter-based OTPs

import 'package:dart_otp/dart_otp.dart';

void main() {
  HOTP hotp = HOTP("J22U6B3WIWRRBTAV");
  hotp.at(0); /// => 432143
  hotp.at(1); /// => 231434
  hotp.at(2132); /// => 242432

  /// verify with a counter
  hotp.verify(242432, 2132); /// => true
  hotp.verify(242432, 2133); /// => false
}

Api #

TOTP(String secret, [int interval, int digits])

param: secret
type: String
param: interval = 30
type: int
param: digits = 6
type: int
return: TOTP
desc: generate TOTP instance.

TOTP.now()

return: String
desc: get the one-time password with current time.

TOTP.verify(String otp, [Datetime time])

param: otp
type: String
param: time
type: Datetime
return: Boolean
desc: verify the totp code.

TOTP.urlGen(String issuer)

param: issuer
type: String
return: String
desc: generate url with TOTP instance

HOTP(String secret, [int digits])

param: secret
type: String
param: digits = 6
type: int
return: HOTP
desc: generate HOTP instance.

HOTP.at(int counter)

param: counter
type: int
return: String
desc: generate one-time password with counter.

HOTP.verify(String otp, int counter)

param: otp
type: String
param: counter
type: int
return: Boolean
desc: verify the hotp code.

HOTP.urlGen(String issuer)

param: issuer
type: String
return: String
desc: generate url with HOTP instance

Release notes #

See CHANGELOG.md.

13
likes
0
pub points
68%
popularity

Publisher

unverified uploader

dart_otp is a dart package to generate and verify one-time passwords.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

base32, crypto

More

Packages that depend on dart_otp