github.com/Nitrokey/nitrokey-app ↗
Nitrokey's Application (Win, Linux, Mac)
Open this visualization on its own page →
Contributors
34
Lines of Code
4,112
From
2014-07-12
To
2021-01-26
About Nitrokey/nitrokey-app
Nitrokey App is a cross-platform desktop application for Windows, Linux, and macOS that manages Nitrokey hardware security devices. Built with Qt5 and C++, it provides a graphical interface for configuring and using Nitrokey Pro and Nitrokey Storage devices. The application communicates with Nitrokey devices through libnitrokey, a dedicated hardware communication library, and implements industry-standard one-time password algorithms including HOTP and TOTP compatible with RFC specifications and Google Authenticator.
The application handles credential management including OTP secret storage, password safe functionality protected with 256-bit AES encryption, and device configuration. It features a system tray interface on supported desktop environments and automatically loads device information on demand rather than caching everything upfront. The codebase uses Qt5 for the GUI, CMake for building, and includes comprehensive build support across platforms including automatic Travis CI builds and Docker containers for creating AppImage, Windows, and Snapcraft distributions.
Key dependencies include libnitrokey for USB/HID communication, cppcodec for encoding operations, and the HIDAPI library for hardware interface abstraction. Linux users must configure udev privileges for USB device access. The application is distributed through ready-made packages for Debian and Ubuntu, with the newer 1.x branch offering improved performance, background device communication, and better code maintainability through separation of concerns via libnitrokey.