yubioath-flutter
Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android
Top Related Projects
Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android
Open source version of Google Authenticator (except the Android app)
Quick Overview
Yubioath-flutter is an open-source project by Yubico that provides a cross-platform mobile application for managing OATH credentials on YubiKeys. It is built using the Flutter framework, allowing for a single codebase to target both iOS and Android platforms.
Pros
- Cross-platform development using Flutter, reducing development time and maintenance
- Open-source, allowing for community contributions and transparency
- Supports both iOS and Android devices
- Integrates with YubiKeys for secure OATH credential management
Cons
- Limited to YubiKey ecosystem, not a general-purpose OATH application
- Requires a physical YubiKey device for full functionality
- May have a learning curve for users unfamiliar with YubiKeys or OATH
- Dependent on Flutter framework, which may introduce limitations or compatibility issues
Code Examples
As this is a mobile application project rather than a code library, specific code examples are not applicable. However, developers interested in contributing or learning from the project can explore the source code on the GitHub repository.
Getting Started
Since Yubioath-flutter is a mobile application and not a code library, there isn't a traditional "getting started" section for developers to integrate it into their projects. Instead, users can follow these steps to use the application:
- Install the Yubioath app from the App Store (iOS) or Google Play Store (Android).
- Ensure you have a compatible YubiKey device.
- Launch the app and follow the on-screen instructions to set up your YubiKey and manage your OATH credentials.
Developers interested in contributing to the project can follow these steps:
- Clone the repository:
git clone https://github.com/Yubico/yubioath-flutter.git
- Install Flutter and set up your development environment.
- Navigate to the project directory and run
flutter pub get
to install dependencies. - Open the project in your preferred IDE and start exploring or contributing to the codebase.
Competitor Comparisons
Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android
Pros of yubioath-flutter
- Cross-platform development using Flutter framework
- Consistent UI/UX across different devices
- Easier maintenance with a single codebase
Cons of yubioath-flutter
- Potentially larger app size due to Flutter framework
- May have slightly slower performance compared to native apps
- Limited access to platform-specific features
Code Comparison
Both repositories contain the same project, so there isn't a direct code comparison to make. However, here's a sample of how Flutter code might look in the yubioath-flutter project:
class YubiKeyOTP extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Text('YubiKey OTP'),
);
}
}
This Flutter code creates a simple widget for displaying YubiKey OTP information. The project likely contains similar widgets for various YubiKey functionalities, all written in Dart for cross-platform compatibility.
Summary
yubioath-flutter is a Flutter-based implementation of the YubiKey Authenticator app. It offers cross-platform development benefits but may have some trade-offs in terms of app size and performance compared to native implementations. The project aims to provide a consistent user experience across different devices while simplifying development and maintenance through a single codebase.
Open source version of Google Authenticator (except the Android app)
Pros of google-authenticator
- Widely recognized and trusted brand, potentially leading to higher user adoption
- Supports a broader range of authentication methods beyond YubiKeys
- More extensive documentation and community support
Cons of google-authenticator
- Less focused on hardware-based security compared to yubioath-flutter
- May have more complex setup process for users new to two-factor authentication
- Potentially less integration with specific YubiKey features
Code Comparison
yubioath-flutter:
Future<List<Credential>> getCredentials() async {
final yubiKey = await YubiKey.getInstance();
return await yubiKey.oath.calculateAll();
}
google-authenticator:
public class AuthenticatorActivity extends Activity {
private OtpProvider mOtpProvider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mOtpProvider = new OtpProvider(this);
}
}
The code snippets show that yubioath-flutter is specifically designed for YubiKey integration, while google-authenticator provides a more general OTP implementation. yubioath-flutter uses Dart and Flutter for cross-platform development, whereas google-authenticator uses Java for Android development.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
== Yubico Authenticator for Desktop and Android
image:splash.png[]
Manage your YubiKey and access one-time passwords with this full-featured companion app to the YubiKey.
=== Features include
- Display information about your YubiKey such as serial number, firmware version, and supported capabilities
- Manage and access OATH one-time passwords stored securely on your YubiKey
- Configure PIN, fingerprints, and manage passkeys for WebAuthn/FIDO
- Configure PIN/PUK/Management key, and manage private keys and certificates for PIV
- Provision Yubico OTP, static passwords, and other YubiKey slot-based credentials
- Configure enabled features, and factory reset YubiKey data
- Compatible with any USB or NFC-enabled YubiKey
Store your unique credential on a hardware-backed security key and take it wherever you go from mobile to desktop. No more storing sensitive secrets on your mobile phone, leaving your accounts vulnerable to takeovers. With the YubiKey and Yubico Authenticator you can raise the bar for security. No connectivity needed!
Experience security the modern way with the Yubico Authenticator. Visit https://yubico.com to learn more.
=== Supported platforms
Supported - these are platforms we build and test on and commit to supporting.
Best-effort - the app is expected to work, but development is supported through community testing and full functionality cannot be guaranteed.
|=== ||Supported|Best-effort
|Windows |Windows 10 & above, x64 |Windows 10 & above, x64
|macOS |macOS 11 (Big Sur) & above |macOS 10.15 (Catalina)
|Linux |Ubuntu 22.04 & above |Ubuntu 20.04 (or equivalent)
|Android |Android 11 & above |Android 5 (Lollipop) |===
=== Installation Downloads for all supported operating systems are available https://www.yubico.com/products/yubico-authenticator/[here].
==== Linux On Linux platforms you will need pcscd installed and running to be able to communicate with a YubiKey over the SmartCard interface. Additionally, you may need to set permissions for your user to access YubiKeys via the HID interfaces. The relevant permissions are described https://developers.yubico.com/yubikey-manager/Device_Permissions.html[here].
For some configurations running Wayland, copying an OTP to clipboard only works
when the app has focus. If you are unable to reliably copy to clipboard from
the systray icon, you can use a separate binary which take the payload to stdin
by defining the environment variable _YA_TRAY_CLIPBOARD
. Note that this must
be an absolute path to a binary owned by root:root, and should not be
world-writable.
For example: _YA_TRAY_CLIPBOARD=/usr/bin/wl-copy
.
NOTE: Only use a trusted binary, OTPs will be sent to this when copied to clipboard from the systray!
=== Command line interface Looking for a command line option? Try our https://github.com/Yubico/yubikey-manager/[YubiKey Manager CLI] tool.
=== iOS The iOS version of this app is available https://github.com/Yubico/yubioath-ios[here].
=== Localization If you are interested in helping out with translations for any language, you are welcome to join us at https://crowdin.com/project/yubico-authenticator[Crowdin] (no programming skills needed).
=== Build instructions (for developers) Instructions on building and packaging the app is available link:doc/Development.adoc[here].
Top Related Projects
Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android
Open source version of Google Authenticator (except the Android app)
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot