-
Notifications
You must be signed in to change notification settings - Fork 46
Add fido-android-ui module for WebAuthn operations with hardware security keys #277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a new fido-android-ui module that provides a high-level Kotlin API for performing FIDO2/WebAuthn operations using hardware security keys. The module includes a complete UI implementation using Jetpack Compose, WebView integration support, and coroutine-based async operations.
Changes:
- New
fido-android-uimodule with FidoClient API, Compose UI screens, and WebView support - USB FIDO device detection improvements to filter by HID usage page
- Updates to testing infrastructure and build configuration
- AndroidDemo app integration examples for both WebView and native app usage
Reviewed changes
Copilot reviewed 94 out of 98 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| fido-android-ui/* | Complete new module with FidoClient, Compose UI, WebView integration, and configuration management |
| android/src/main/java/com/yubico/yubikit/android/transport/usb/* | Enhanced USB FIDO interface detection using HID report descriptors |
| gradle/libs.versions.toml | Added dependencies for Compose, AndroidX libraries, and testing frameworks |
| settings.gradle.kts | Registered fido-android-ui module |
| scripts/spotless.py | Enhanced to format only staged files with Kotlin support |
| AndroidDemo/* | Added FIDO WebView and native app demo fragments |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| int reportDescLength = DEFAULT_REPORT_DESC_SIZE; | ||
| try { | ||
| reportDescLength = getReportDescriptorLength(connection, interfaceId); | ||
| } catch (Exception ignore) { |
Copilot
AI
Jan 30, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable name ignore should be ignored to follow Java naming conventions for intentionally ignored exception variables.
| } catch (Exception ignore) { | |
| } catch (Exception ignored) { |
Summary
Introduces a new
fido-android-uimodule that provides a high-level Kotlin API for performing FIDO2/WebAuthn operations using hardware security keys (YubiKey or other FIDO2-compatible authenticators).Key Features
FidoClienthandles the complete FIDO operation lifecycle including device communication, PIN entry, and user interactionFidoConfigManager@JvmOverloadssupport for Java consumersUsage
Configuration