Convert Figma logo to code with AI

Yubico logoyubioath-flutter

Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android

1,040
140
1,040
68

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:

  1. Install the Yubioath app from the App Store (iOS) or Google Play Store (Android).
  2. Ensure you have a compatible YubiKey device.
  3. 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:

  1. Clone the repository: git clone https://github.com/Yubico/yubioath-flutter.git
  2. Install Flutter and set up your development environment.
  3. Navigate to the project directory and run flutter pub get to install dependencies.
  4. 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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

== 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].