{"id":13398414,"url":"https://github.com/paolostivanin/OTPClient","last_synced_at":"2025-03-14T02:31:19.731Z","repository":{"id":41397969,"uuid":"41959250","full_name":"paolostivanin/OTPClient","owner":"paolostivanin","description":"Highly secure and easy to use OTP client written in C/GTK3 that supports both TOTP and HOTP","archived":false,"fork":false,"pushed_at":"2023-12-12T09:38:39.000Z","size":1666,"stargazers_count":403,"open_issues_count":7,"forks_count":40,"subscribers_count":9,"default_branch":"master","last_synced_at":"2023-12-12T10:36:03.961Z","etag":null,"topics":["2fa","2fa-client","2fa-security","2factor","c","gnome","gtk3","hotp","otp","totp"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paolostivanin.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-09-05T11:59:17.000Z","updated_at":"2024-08-07T09:20:37.477Z","dependencies_parsed_at":"2023-02-16T20:16:00.031Z","dependency_job_id":"985f3357-7f5c-4757-90a6-d0ec0b63ced8","html_url":"https://github.com/paolostivanin/OTPClient","commit_stats":{"total_commits":500,"total_committers":22,"mean_commits":"22.727272727272727","dds":"0.18000000000000005","last_synced_commit":"8bb2620cc3f4ca673031148e6c9c656b9e1b01e4"},"previous_names":[],"tags_count":68,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paolostivanin","download_url":"https://codeload.github.com/paolostivanin/OTPClient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243511660,"owners_count":20302595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["2fa","2fa-client","2fa-security","2factor","c","gnome","gtk3","hotp","otp","totp"],"created_at":"2024-07-30T19:00:25.293Z","updated_at":"2025-03-14T02:31:19.719Z","avatar_url":"https://github.com/paolostivanin.png","language":"C","funding_links":[],"categories":["2-Factor Authentication","C","Essentials","Security and Privacy"],"sub_categories":["Categories","2-Factor Authentication","Password Management"],"readme":"# OTPClient\n\u003ca href=\"https://circleci.com/gh/paolostivanin/OTPClient\"\u003e\n  \u003cimg alt=\"CircleCI\" src=\"https://circleci.com/gh/paolostivanin/OTPClient.svg?style=svg\"/\u003e\n\u003c/a\u003e\n\u003ca href=\"https://scan.coverity.com/projects/paolostivanin-otpclient\"\u003e\n  \u003cimg alt=\"Coverity Scan Build Status\"\n       src=\"https://scan.coverity.com/projects/12749/badge.svg\"/\u003e\n\u003c/a\u003e\n\n\nHighly secure and easy to use GTK+ software for two-factor authentication that supports both Time-based One-time Passwords (TOTP) and HMAC-Based One-Time Passwords (HOTP).\n\n## Requirements\n| Name                                               | Min Version |\n|----------------------------------------------------|-------------|\n| GTK+                                               | 3.24        |\n| Glib                                               | 2.68.0      |\n| jansson                                            | 2.12        |\n| libgcrypt                                          | 1.10.1      |\n| libpng                                             | 1.6.30      |\n| [libcotp](https://github.com/paolostivanin/libcotp) | 3.0.0      |\n| zbar                                               | 0.20        |\n| protobuf-c                                         | 1.3.0       |\n| protobuf                                           | 3.6.0       |\n| uuid                                               | 2.34        |\n| libsecret                                          | 0.20        |\n| qrencode                                           | 4.0.2       |\n\n:warning: Please note that the memlock value should be `\u003e= 64 MB`. Any value less than this may cause issues when dealing with tens of tokens (especially when importing from third parties backups).\nSee this [wiki section](https://github.com/paolostivanin/OTPClient/wiki/Secure-Memory-Limitations) for info on how to check the current value and set, if needed, a higher one.\n\n## Features\n- integration with the OS' secret service provider via libsecret\n- support both TOTP and HOTP\n- support setting custom digits (between 4 and 10 inclusive)\n- support setting a custom period (between 10 and 120 seconds inclusive)\n- support SHA1, SHA256 and SHA512 algorithms\n- support for Steam codes (please read [THIS PAGE](https://github.com/paolostivanin/OTPClient/wiki/Steam-Support))\n- import and export encrypted/plain [andOTP](https://github.com/flocke/andOTP) backup\n- import and export encrypted/plain [Aegis](https://github.com/beemdevelopment/Aegis) backup\n- import and export plain [FreeOTPPlus](https://github.com/helloworld1/FreeOTPPlus) backup (key URI format only)\n- import and export encrypted/plain [AuthenticatorPro](https://github.com/jamie-mh/AuthenticatorPro) backup\n- import and export encrypted/plain [2FAS](https://github.com/twofas) backup\n- import of Google's migration QR codes\n- local database is encrypted using AES256-GCM\n  - key is derived using Argon2id with the following default parameters: 4 iterations, 128 MiB memory cost, 4 parallelism, 32 taglen. The first three parameters can be changed by the user.\n  - decrypted file is never saved (and hopefully never swapped) to disk. While the app is running, the decrypted content resides in a \"secure memory\" buffer allocated by Gcrypt\n\n## Testing\n* Before each release, I run PVS Studio and Coverity in order to catch even more bugs.\n* With every commit to master, OTPClient is compiled in CircleCI against different distros\n\n## Protobuf\nThe protobuf files needed to decode Google's otpauth-migration qr codes have been generated with `protoc --c_out=src/ proto/google-migration.proto` \n\n## Wiki\nFor things like roadmap, screenshots, how to use OTPClient, etc, please have a look at the [project's wiki](https://github.com/paolostivanin/OTPClient/wiki). You'll find a lot of useful information there.\n\n## Manual installation\nIf OTPClient hasn't been packaged for your distro ([check here](https://github.com/paolostivanin/OTPClient/wiki/Tested-OS-\u0026-Packages#packages)) and your distro doesn't support Flatpak, then you'll have to manually compile and install OTPClient.\n1. install all the needed libraries listed under [requirements](#requirements)\n2. clone and install OTPClient:\n```\ngit clone https://github.com/paolostivanin/OTPClient.git\ncd OTPClient\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_INSTALL_PREFIX=/usr ..\nmake\nsudo make install\n```\n\n## License\nThis software is released under the GPLv3 license. Please have a look at the [LICENSE](LICENSE) file for more details.\n\n## IDE\nDeveloped using JetBrains CLion \n\u003ca href=\"https://www.jetbrains.com\" style=\"display: inline-block; vertical-align: middle;\"\u003e\n  \u003cimg alt=\"CLion logo\"\n       src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/CLion_icon.svg\"\n       style=\"width: 25px; height: 25px; margin-left: 10px;\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaolostivanin%2FOTPClient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaolostivanin%2FOTPClient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaolostivanin%2FOTPClient/lists"}