otpclient-4.5.0-1.2e>UAY\leq;e=u?i薀eo1bF.0"n,ne9ʀyǝ8L|1P^K#>>R?Rd   D&E Vl 2 `  S l; ( ! T! !(E8L9:FEGEHFIF\XFtYF\F]G^Ih bJcKjdKeKfKlKuKvLH wP0xPyPAzQQRRRHRLCotpclient4.5.01.2Simple GTK+ client for managing TOTP and HOTPHighly 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).i薀reproducible GNOME:Apps / openSUSE_Factoryobs://build.opensuse.org/GNOMEGPL-3.0-or-laterProductivity/Securityhttps://github.com/paolostivanin/otpclientlinuxaarch64en9R+y%P큤AA큤AA큤A큤i薀i薀i薀iiii薀i薀iiii薀i薀iiiii薀iiiii58059684bc163ee95395d6ac1ae98196a08929c4f2a37953823f45adb82975102d0b189a677b1eccae89c6f877068234f8621a52af1af3ff204d1a145b7511ee63550137f5b6d4aae53254e1fb538ac08ae6336d943dcec6b2992b1e164240e6507d2b19a5b9217728393719cd32c0b5fcb5a1a403973c59b081dde1fb25eacfd75b983963a4dc99928b4792f1e22b26328f6d4ef4b7e8b92e0e14fac34ec2d1522d7362ef26815556c22cb8eec582c96bd32ad30ba4324e3cc2f4696da7731a6510506b7b8d46f730c075a070cde80ff7df30aa244c82be449af3211a5a84e55c2c2f8ecd45d99d5ef900589f8159e7abcedbe480e81aeb3e079df908c9d627e7a09f83be5f1b49685c4541bda3b909184ecda0cc1346c1b7a0eedbc2917fd74615c9383a1235ba82e4198e6c29bb0d6348c07f858fe3d5776445202b0fc6b994a7752fa34d268059f9e918a7de66ecfb94603eb54ecefced3b798a6df2712340bcb605d9b0237f4480ee3d562670180d2232df99e3e2828e39c0272ce3e2cdc6a84e774dcfda57ab602c82576458ea52292e800b4e62dd6fcffb1723291712f015316cf07f4894797ce8dbcddcba1d4c8b119085672b39d136567f393fa2db2ff2777800841080afc15002249a688ea3b96293aca971a6252e71fd7bcadf6961136fe94a2c80bcd0772fa611d6d96986ef71550b7c39ee39393e360f314c193347604e9876e32bf3744e39057319445430d935a151c88b9991c4316e26c61b11ace717251be2ab5591b1f063c6fdae33284658c182a7314436d1e65bbc2ee9rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroototpclient-4.5.0-1.2.src.rpmapplication()application(com.github.paolostivanin.OTPClient.desktop)metainfo()metainfo(com.github.paolostivanin.OTPClient.appdata.xml)otpclientotpclient(aarch-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    ld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libayatana-appindicator3.so.1()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libcairo.so.2()(64bit)libcotp.so.4()(64bit)libgcrypt.so.20()(64bit)libgcrypt.so.20(GCRYPT_1.6)(64bit)libgdk-3.so.0()(64bit)libgdk_pixbuf-2.0.so.0()(64bit)libgio-2.0.so.0()(64bit)libglib-2.0.so.0()(64bit)libgobject-2.0.so.0()(64bit)libgtk-3.so.0()(64bit)libjansson.so.4()(64bit)libjansson.so.4(libjansson.so.4)(64bit)libpng16.so.16()(64bit)libpng16.so.16(PNG16_0)(64bit)libprotobuf-c.so.1()(64bit)libprotobuf-c.so.1(LIBPROTOBUF_C_1.0.0)(64bit)libprotobuf-c.so.1(LIBPROTOBUF_C_1.3.0)(64bit)libqrencode.so.4()(64bit)libsecret-1.so.0()(64bit)libuuid.so.1()(64bit)libuuid.so.1(UUID_1.0)(64bit)libzbar.so.0()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsZstd)3.0.4-14.6.0-14.0-15.4.18-14.20.1i@ifiiiO@h@faf'@f~eee @e@e@ee@epeDe9@d@ddp@dd@c1cGPaolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Pablo Herranz Ramírez Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin Paolo Stivanin - Update to 4.5.0: Features * Search-provider trigger keyword (default otp): only desktop search queries whose first whitespace-separated token equals the keyword surface OTP results, so they're no longer drowned under file/app/web runner output. Configurable in Settings → Integration. Empty keyword falls back to legacy unfiltered behaviour. Daemon restart required after a change. Security * KRunner Match subtitle no longer leaks the live OTP code. Any process on the session bus could previously poll Match and read codes without user action; the code is still delivered via the Run notification. * Argon2id header validation: refuse v2 databases whose iter / memcost / parallelism fall outside safe ARGON2ID_MIN/MAX_* bounds (would otherwise enable memory-exhaustion or KDF-weakening DoS on unlock). * Core-dump suppression: prctl(PR_SET_DUMPABLE,0) + RLIMIT_CORE=0 in init_libs() so a crash with secrets in memory cannot leak them to disk. * KDF byte-length fix: gcry_kdf_* was being passed g_utf8_strlen (character count) instead of byte count, weakening keys for non-ASCII passwords. Fixed in db-common.c, common.c (AuthPro), aegis.c, twofas.c, and freeotp.c. Existing v2 databases unlock via a transparent retry path and are silently re-encrypted with the corrected length on the next write. * O_NOFOLLOW everywhere: new path_open_safe_regular_file() helper (open(O_RDONLY | O_NOFOLLOW | O_CLOEXEC) + fstat S_ISREG check) applied to all importers (Aegis, AuthPro, 2FAS, FreeOTP+) and to both database read sites. Subsequent reads run through /proc/self/fd/ so the inode stays bound across the whole operation, closing the symlink-swap TOCTOU window. * chmod 0600 on database backups so a permissive umask cannot leave .bak files group/world-readable. * otpauth:// URI length capped at 4 KB to prevent multi- gigabyte allocations from malformed input. * CLI hard-refuses --password-file with group/world-readable permissions instead of merely warning; recommends chmod 600. * GUI clears the system clipboard on SIGINT / SIGTERM / SIGHUP via g_unix_signal_add and at shutdown. Fixes * 2FAS importer: NULL-deref crashes on missing servicesEncrypted, malformed colon-separated payload, and under-sized AEAD ciphertext; secure-buffer leaks on decrypt and tag-check failure; silent acceptance of unauthenticated plaintext on tag mismatch (now properly rejected). * 2FAS exporter: NULL-deref on missing algo / type fields. * Aegis importer: NULL-deref when header.slots is missing or the password slot lacks key_params. * FreeOTP+ exporter: unconditional g_object_unref(NULL) after a failed g_file_replace; correct byte length passed to write. * AuthPro importer: leaked GFile / GFileInputStream on the plain-backup path (no password).- Update to 4.4.2: * Allow click to copy when searching via desktop provider- Update to 4.4.1: New Features * Add cross-desktop search provider for GNOME Shell and KDE Plasma 6 (KRunner). OTP codes are displayed directly in search results and copied via system notification on activation. Can be toggled in settings. * Add --password-file CLI option to read the password from an external file instead of stdin (thanks @kouta-kun) Security * Harden CLI password input: use read() with gcry_calloc_secure instead of fgets() to prevent password remnants in libc internal buffers. Disable all terminal echo modes and restore state via TCSAFLUSH. * Fix under-allocation of secure password buffer for multibyte UTF-8 passwords (g_utf8_strlen returns character count, not byte count) Bug Fixes * Fix copy-paste bug in Authenticator Pro export: "issuer" key was read instead of "label" when building the Username field * Fix secure-memory leak in get_otpauth_data: g_file_get_contents overwrote a gcrypt secure-buffer pointer with non-secure memory * Fix g_utf8_strdown() memory leak in URI parsing * Fix silent guint8 truncation of period/digits values; now validated with range checks * Add missing g_set_error() on five error paths in Aegis encrypted backup import * Fix salt and key_nonce leak on kdf_derive failure in Aegis export * NULL-guard json_string_value() results across URI parsing, Authenticator Pro, and Aegis modules * Unify hash type to guint32 in database layer (was mixing guint/guint32, potential issue on ILP64 platforms) * Remove duplicate json_object_set() for "secret" key in build_json_obj * Replace VLA stack buffers (salt, iv, tag) with heap allocations in get_data_from_encrypted_backup * Fix search provider: add missing gcrypt initialization, fix memory leaks, eliminate redundant Argon2id+AES256-GCM cycle in result activation * Improve --password-file error handling and terminal detection * Fixed Ctrl+F search not working due to premature key controller destruction. * Fixed GTK-CRITICAL assertions on close caused by accessing the tree view after widget destruction. Refactoring * Modernise application and window layer to GTK idioms: G_DECLARE_FINAL_TYPE, GtkEventControllerKey, configure-event for window-size tracking, proper dispose() for builder ownership * Split monolithic activate() into resolve_db_path(), load_db_with_password(), setup_ui_and_timers() * Extract config-misc.c/h utility module from window code- Update to 4.3.1: * Made countdown colors configurable. * Added support for selecting the countdown display type (numeric value or cake-style). * Wired the validity countdown switch to disable color pickers when “show countdown as seconds” is enabled, and stored those widgets in the settings state for reuse in callbacks. * Added a dedicated handler to update color picker sensitivity whenever the display mode switch changes (including on dialog initialization). * Added persistence for tree view column widths by loading saved widths on startup and saving current widths to the configuration on shutdown. * Renamed the “OTP Value” column header to “OTP” and tagged columns with IDs to support width tracking. * Added polished empty-state screens with direct call-to-action buttons. * Improved consistency and clarity across menus, headers, and dialogs. * Enhanced OTP list readability with resizable columns, ellipsized labels, and monospace formatting. * Replaced the validity text column with a progress bar showing remaining TOTP time. * Switched visual indicators from bar-based to filled pie charts for clearer status at a glance. * Improved CLI usability and feedback. * Refactored the codebase to follow proper GTK coding patterns and lifecycle management. * Removed obsolete option-migration logic. * Added an explicit shutdown event. * Hardened shutdown cleanup to safely handle partially initialized components, avoiding GTK critical warnings while still persisting window state when possible.- Update to 4.2.0: * ADDED: interactive search (ctrl-f) * IMPROVED: search now matches query against type, account label, and issuer uniformly * IMPROVED: Streamlined treeview model population to read JSON directly with safe defaults * IMPROVED: Simplified OTP update flow and tightened reorder/delete safety and cleanup * IMPROVED: Centralized app/db default initialization and early cleanup paths in app.c * IMPROVED: Tightened error handling by clearing config migration errors and freeing the config path * IMPROVED: Made early-exit cleanup safer by avoiding double-freeing the database key * IMPROVED: Added a helper to clear password entries and reset visibility on successful submit * IMPROVED: Cleared old/new password fields before the dialog closes to avoid brief exposure * IMPROVED: Initialized settings defaults when the config load fails and persisted them to otpclient.cfg * IMPROVED: Added warning dialog only when saving fallback defaults fails * IMPROVED: cli: improve robustness and correctness in string and file handling * FIXED: duplicate windows and tray icons on re-activation (#409)- Update to 4.1.0: * ADDED: minimize to tray with ayatana-appindicator3 (#386 thanks a lot @len-foss) * IMPROVED: only show memlock warning dialog when secure memory is unavailable (#397) * IMPROVED: allow creating a database via CLI (#392) * FIX: allow using different databases in flatpak (#372) * CHANGED: dropped andOTP support- Update to 4.0.2: * FIX: importing data on a first run (#376) * FIX: better error handling * IMPROVED: handling of memlock when too low- Update to 4.0.1: * CHANGE: switch from PBKDF2 to Argon2id (#358). This change is completely transparent to the end user, therefore no action is required. * NEW: make Argon2id parameters configurable (#358) * NEW: add support for importing plain Aegis txt * FIX: various issues related to importing Aegis backups (#371) * FIX: improving handling of json files (#369) * FIX: parsing QR codes (#374) * FIX: show db parameters dynamically * FIX: add missing ui file to CMakeLists.txt- Update to 3.7.0: * CHANGE: deleting a row, editing a row and showing the qr code is now done via right click on the target row (#359). * FIX: multiple fixes to QR handling (#364). * FIX: exporting to FreeOTP+ format (#367). * FIX: updated otpclient and otpclient-cli man pages (thanks @fvcr). * FIX: code more readable thanks to macros.- Update to 3.6.0: * NEW: add possibility to import plain/encrypted backups using the CLI. * FIX: make GUI and CLI independent, so that CLI only can be built and installed without GTK being present. * FIX: check file size against memlock before importing a backup. * FIX: code cleanup and internal refactoring.- Update to 3.5.2: * NEW: add possibility to export plain/encrypted Authenticator Pro/2FAS backups using the CLI. * FIX: improve popover layout. * FIX: exporting plaing Aegis via CLI. * FIX: cleanup code.- Update to 3.5.1: * NEW: add back buttons to the various popover menus * FIX: split popovers into their own UI files * FIX: remove upgrade message when upgrading from a version older than 2.6.0- Update to 3.5.0: * NEW: add support for importing and exporting plain/encrypted 2FAS backups (#322) * NEW: add support for importing and exporting plain/encrypted AuthenticatorPro backups (#322) * CHANGE: show warning when exporting a plain backup * CHANGE: remove support for older Glib and GCrypt * FIX: add 2fa keyword to the desktop file (#349) * FIX: remove custom keywords from metadata file (#348) * FIX: returning to a dialog won't crash the widget- Update to 3.4.1: * FIX: FreeOTP+ export (thanks @hubnut)- Update to 3.4.0: * NEW: CLI was completely refactored, and the options have changed. Be sure to check the new options using the help command (-h) * NEW: you can now specify a database when calling the CLI (#340) * FIX: handling errors when path and/or password is incorrect (#336) * FIX: prompt for file again, if needed (#335) * FIX: prevent about dialog from hiding * FIX: use system RNG as source of entropy- Update to 3.3.0: * Set brackground to red when delete mode is entered * Fix base32 encoding/decoding * Requires libcotp >= 3.0- Update to 3.2.1: * FIX: increase secure memory pool to 64 MB, if possible * FIX: parsing of big aegis encrypted json (#309) * FIX: better memory management- Update to 3.2.0: * NEW: add file chooser dialog on export (#305). * FIX: overwrite exported file instead of appending it (#305). * FIX: exported file will be accessible only by the current user (#305). * FIX: multiple issues related to failed first launch (#303). * FIX: couple of issues with secret-service.- Update to 3.1.9: * Fix db corruption when symbols are used (#301). * Fix crash when user changes db multiple times.- Update to 3.1.8: * Fix importing Aegis plain text json (#296).- Update to 3.1.7: * Add new Database info dialog (Hamburger menu -> Database info) * Fix crash when no row is selected (#295) * Fix UI when creating/changing a database * Multiple fixes when creating a new database * Use current db folder when creating/changing database * Fix memory leak in case of error when opening the settings dialog- Update to 3.1.6: * Correctly quit the password dialog on export. This avoid dumping the database in plaintext format if the user presses either the cancel or close button.- Update to 3.1.5: * allow db to be a symlink (fix #289)- Update to 3.1.4: * make auto-lock and secret service mutually exclusive (#279) * fix importing plain AEGIS (#281) * fix importing encrypted AEGIS on some distros (#281) * rename disable_secret_service setting to use_secret_service- Update to 3.1.3: * Fix Aegis import/export when using long pwds. * Fix secret service cleanup * Show the correct error message when import fails * Use g_utf8_strlen instead of strlen * Add libcotp >= 2.0 compatibilityreproducible 1776850560 4.5.0-1.24.5.0-1.2 otpclientotpclient-cliotpclient-search-providercom.github.paolostivanin.OTPClient.desktopcom.github.paolostivanin.OTPClient.KRunner.servicecom.github.paolostivanin.OTPClient.SearchProvider.servicegnome-shellsearch-providerscom.github.paolostivanin.OTPClient.SearchProvider.inicom.github.paolostivanin.OTPClient-symbolic.svgcom.github.paolostivanin.OTPClient.svgkrunnerdbuspluginscom.github.paolostivanin.OTPClient.KRunner.desktopotpclient-cli.1.gzotpclient.1.gzcom.github.paolostivanin.OTPClient.appdata.xmlotpclientadd_popover.uiotpclient.uisecurity_settings.uisettings_popover.uishortcuts.ui/usr/bin//usr/share/applications//usr/share/dbus-1/services//usr/share//usr/share/gnome-shell//usr/share/gnome-shell/search-providers//usr/share/icons/hicolor/scalable/apps//usr/share/krunner//usr/share/krunner/dbusplugins//usr/share/man/man1//usr/share/metainfo//usr/share//usr/share/otpclient/-mbranch-protection=standard -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -gobs://build.opensuse.org/GNOME:Apps/openSUSE_Factory/8ed50e48ec288fd3089ff9405a7193cd-otpclientdrpmzstd19T0aarch64-suse-linux ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=4332c8205622b9f3f9a137df92b594e9232a3c07, for GNU/Linux 4.3.0, strippedELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=3951ec3a16e71662d945bdcdd91db1b5cceab3cd, for GNU/Linux 4.3.0, strippedELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=21408815d2d0718a7d1fdda03fedcaa21c0a11c8, for GNU/Linux 4.3.0, strippedASCII textdirectorySVG Scalable Vector Graphics imagetroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix, original size modulo 2^32 2293)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix, original size modulo 2^32 1946)XML 1.0 document, Unicode text, UTF-8 textXML 1.0 document, ASCII text.=?RRRRRRR RRRRRR R RRRRRR RRRR RRRRRRR RRRRRR RRRR RRRRRRR RRRRR RRRR RRRRPPPPZ6ŋrE=Hutf-87cbf95c42511997d3046e8d600badebe07b6dccdbb77712d7046e476af573cdb247588daa88d11ddee7125f115b06a5e3534bb44fc2de91fc33327c40d38fc09? (/h,DLT3otpclient-4.5.0-1.1A*PN?y-Lt7̭g*""2 > A j|?ieo1b9,BhSȠ(\AQ7 yʉF1u.fkc7ce075dca3fd445d548d8ce3a066e54e5deea3ed50381c361dc21ee73a998083fa8e32b491571c8764fc7e55f277f29f6835dfb75$sJyEH? #;*+}*T k"wo~s{ pKNBZh91AY&SYj{ JݾDġ&CTD X "M @CS!Tdځ 4E$hh} UE'Lbӌ 4@d@8@<@""1@HbJ\@"V!DB U0JB~v_uxRٷ[-Ytm< Ub%n(*cn8 Op)۲Sc{M^+NkK2)~?U1gHjK~FĘ?!&)Jp(ʬl! "(H5\W=+ lF,ck 6=Ŵk_x."wB1%d4`!f, <3aX8p¼ouc8