PackageTrack
Sign in Get early access

otp

RFC6238 Time-Based One-Time Password / Google Authenticator Library

3.2.0 104K downloads/mo #1108 most downloaded on pub.dev Daegalus/dart-otp

What this package is like to depend on

Last release 1 years ago

07 Aug 2025

Ships unpredictably

gaps range from 2 weeks to 2.3 years

Nearly every release is documented

notes for 28 of 29 stable releases

Nothing withdrawn

no release was ever pulled

13 years old

30 releases · first in 2013

0 releases in the last 12 months

see the full history below

Release timeline

30 releases · Mar 2013 to Aug 2025
2014 2016 2018 2020 2022 2024 2026
Release Pre-release

Releases

latest 30
  1. 3.2.0 07 Aug 2025
    Release notes

    v3.2.0

    • Update timezone to 0.10.0 (Thanks @NM4ik)
    • Some minor cleanup for how long this repo has been untouched

    What's Changed

    • Update timezone package in pubspec.yaml from ^0.9.0 to ^0.10.0 by @NM4ik in #52

    New Contributors

    • @NM4ik made their first contribution in #52

    Full Changelog: 3.1.4...3.2.0

    Open source →
    Release notes
    • Update timezone to 0.10.0 (Thanks @NiM4iK)
    • Some minor cleanup
    Open source →
  2. 3.1.4 06 Apr 2023
    Release notes

    What's Changed

    Full Changelog: v3.1.2...3.1.4

    Open source →
    Release notes
    • Fix case issues when using isGoogle:true (Thanks @amadejkastelic)
    Open source →
  3. 3.1.3 12 Nov 2022
    Release notes

    Fix incorrect padding logic

    Open source →
    Release notes
    • Fix incorrect padding logic for isGoogle HOTP
    Open source →
  4. 3.1.2 12 Nov 2022
    Release notes
    • Allow isGoogle flag for HOTP
    Open source →
  5. 3.1.1 23 Jun 2022
    Release notes
    • Loosen version constraint on the crypto so that there is no conflict between our library and those requiring 3.0.1 or 3.0.0. crypto versions 3.0.1 and 3.0.2 don't affect this library or are just doc/link fixes.
    Open source →
    Release notes
    • Loosen version constraint on the crypto so that there is no conflict between our library and those requiring 3.0.1 or 3.0.0. crypto versions 3.0.1 and 3.0.2 don't affect this library or are just doc/link fixes.
    Open source →
  6. 3.1.0 16 Jun 2022
    Release notes
    • Bug where all secrets were being treated as Base32 by default, when RFC default is ASCII. Base32 is only when using Google Authenticator mode. This came about due to even when not using Google, secrets were Base32 encoded anyway by most implementations, so the bug wasn't caught, including my tests where I pre-encoded everything as Base32. (thanks @pt-rick for catching this.)
      • Used notp and otplib to verify my outputs.
    Open source →
    Release notes
    • Bug where all secrets were being treated as Base32 by default, when RFC default is ASCII. Base32 is only when using Google Authenticator mode. This came about due to even when not using Google, secrets were Base32 encoded anyway by most implementations, so the bug wasn't caught, including my tests where I pre-encoded everything as Base32. (thanks @pt-rick for catching this.)
      • Used notp and otplib to verify my outputs.
    Open source →
  7. 3.0.4 21 May 2022
    Release notes
    • Partially change behavior, if it is invalid Base32, it should throw, but in certain cases, it still doesn't throw, so we do fallback behavior.
    Open source →
    Release notes
    • Partially change behavior, if it is invalid Base32, it should throw, but in certain cases, it still doesn't throw, so we do fallback behavior.
    Open source →
  8. 3.0.3 21 May 2022
    Release notes
    • Fix when secrets are not Base32 causing infinite loops because the resulting list is size 0.
    • Don't assume Base32, use the secret as is if not base32.
    Open source →
  9. 3.0.2 03 Jan 2022
    Release notes
    • Add remainingSeconds() in order to calculate the remaining seconds based on lastUsedTime. (thanks @AkbarAsghari)
    Open source →
  10. 3.0.1 18 Aug 2021
    Release notes
    • Add lastUsedTime and lastUsedCounter to provide additional information for users and potential debugging points.
    Open source →
  11. 3.0.0 30 May 2021
    Release notes
    • Docs and file cleanup
    Open source →
  12. 3.0.0-nullsafety.0 01 Feb 2021 pre-release
    Release notes
    • Nullsafety conversion
    Open source →
  13. 2.2.3 28 Aug 2020
    Release notes
    • Improve pub package score (thanks @DavBfr)
    • Use const and final instead of var (thanks @DavBfr)
    • Document public API members (thanks @DavBfr)
    Open source →
  14. 2.2.2 26 Aug 2020
    Release notes
    • Update quick_log to latest version
    Open source →
  15. 2.2.1 18 May 2020
    Release notes
    • Correctly use Google Auth flag (isGoogle) to disable padding. (thanks hpoul)
    Open source →
  16. 2.2.0 03 May 2020
    Release notes
    • Add Google Auth flag, because they do SHA1 TOTP without Padding the secret.
    • Reverting _int2bytes function back to old implementation, as the new on uses int64 which breaks flutter web and dart2js as it doesn't have support for Int64.
    Open source →
  17. 2.1.0 01 Apr 2020
    Release notes
    • Fix secret paddding to follow proper TOTP secret padding and sizing for SHA256, SHA512
    • Remove RFC unsupported hashes. SHA224 and SHA384 are no longer supported.
    • Show warning when using anything other than SHA1, as the RFC doesn't support it so I have found that libraries don't pad correctly for HOTP.
    • At the same time, SHA1 is now again the HOTP default.
    • Add optional TOTP style paddding for HOTP when using SHA256 and SHA512.
    • Force version 1.1.1 of Base32 library, as that was a major bug fix release that improved Base32 support.
    • Add documentation and additional information on how to use this library.
    Open source →
  18. 2.0.3 18 Dec 2019
    Release notes
    • Fix type error at runtime for RandomSecret generation. MR #14 (thanks readytopark)
    Open source →
  19. 2.0.2 20 Nov 2019
    Release notes
    • Switch to crypto lib inplace of PointyCastle for HMAC
    Open source →
  20. 2.0.1 14 Nov 2019
    Release notes
    • Formatting
    • No changes from rc1, accepting the 1-3 second timing difference between constant time code checks until someone can help me figure out how to make it match.
    Open source →
  21. 2.0.0 14 Nov 2019

    Nothing published for this version

  22. 1.0.3 07 Mar 2019
    Release notes
    • Switched to PointyCastle for crypto and support for more than SHA1 hashing for tokens (amadejkastelic)
    Open source →
  23. 1.0.2 06 Feb 2019
    Release notes
    • Add new TOTP interval parameters (optional)
    Open source →
  24. 1.0.1 07 Aug 2018
    Release notes
    • Cleanup and remove dead code
    Open source →
  25. 1.0.0 07 Aug 2018
    Release notes
    • Dart 2.0 updates
    Open source →
  26. 0.1.0 09 Nov 2013
    Release notes
    • Dart 1.0 Readiness
    Open source →
  27. 0.0.4 05 Jun 2013
    Release notes
    • Fixing crypto library.
    Open source →
  28. 0.0.3 11 Apr 2013
    Release notes
    • Fixing language changes.
    Open source →
  29. 0.0.2 04 Mar 2013
    Release notes
    • No functionality changes, just fixing a bad file state it git and in the package involving the case of the file.
    Open source →
  30. 0.0.1 03 Mar 2013
    Release notes
    • Initial Documented Release
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive