{"id":21707799,"url":"https://github.com/flightaware/tcl-otp","last_synced_at":"2026-03-19T21:07:15.349Z","repository":{"id":32110400,"uuid":"35682749","full_name":"flightaware/tcl-otp","owner":"flightaware","description":"A Pure TCL library providing the HOTP and TOTP Algorithms","archived":false,"fork":false,"pushed_at":"2015-06-08T01:34:49.000Z","size":104,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-07-07T21:47:13.625Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Tcl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flightaware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-15T15:52:39.000Z","updated_at":"2019-06-29T10:39:05.000Z","dependencies_parsed_at":"2022-09-11T00:12:52.766Z","dependency_job_id":null,"html_url":"https://github.com/flightaware/tcl-otp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flightaware/tcl-otp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-otp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-otp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-otp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-otp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flightaware","download_url":"https://codeload.github.com/flightaware/tcl-otp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-otp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29165874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T14:37:12.680Z","status":"ssl_error","status_checked_at":"2026-02-06T14:36:22.973Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T22:19:18.467Z","updated_at":"2026-02-06T15:07:19.909Z","avatar_url":"https://github.com/flightaware.png","language":"Tcl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tcl OTP \n\nA Pure TCL library providing the [HOTP][1] and [TOTP][2] Algorithms.  \n\n## Exported Functions\n\n```tcl\n\nproc get_hotp {key interval_no {digest sha1} {token_length 6}} \n\n\nproc get_totp {key {interval 30} {digest sha1} {token_length 6}} \n\n\nproc valid_hotp {token key last {trials 1000} {digest sha1} {token_length 6}} \n\n\nproc valid_totp {token key {interval 30} {digest sha1} {token_length 6}} \n```\n\nFor example usage, see the tests/ directory and  the comments above the procs for an explanation of their signatures.  This API is based on the excellent Python library [onetimepass][3].\n\n## Tests\n\nA test suite is included in the `tests/` directory.  The tests are taken from the vectors specified in the RFCs for HOTP and TOTP.\n\n### Limitations\n\n* Since Tcl--as of the time of this writing--does not have a sha512 implementation in the standard library, the HOTP and\nTOTP procs only work with {sha1,sha256}-HMACs.\n\n* The TOTP implementation does not allow specifying a value for T0 as mentioned in the TOTP RFC. \n\n### Security Issues\n\nThe security of these algorithms depends on the quality of the randomness used to key the HMAC, and on the security of the HMAC.  \n\nFor further discussion of these issues see [Randomness Recommendations for Security][4] and [Section 3 of RFC 4868][5].\n\n[1]: https://tools.ietf.org/html/rfc4226\n[2]: https://tools.ietf.org/html/rfc6238\n[3]: https://github.com/tadeck/onetimepass\n[4]: https://tools.ietf.org/html/rfc1750\n[5]: https://www.ietf.org/rfc/rfc4868.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Ftcl-otp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflightaware%2Ftcl-otp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Ftcl-otp/lists"}