{"id":13703173,"url":"https://github.com/Yubico/yubikit-android","last_synced_at":"2025-05-05T07:30:38.038Z","repository":{"id":37801196,"uuid":"195424265","full_name":"Yubico/yubikit-android","owner":"Yubico","description":"Yubico Mobile Android SDK - YubiKit","archived":false,"fork":false,"pushed_at":"2025-04-30T11:18:31.000Z","size":4434,"stargazers_count":122,"open_issues_count":5,"forks_count":42,"subscribers_count":35,"default_branch":"main","last_synced_at":"2025-04-30T12:32:09.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yubico.png","metadata":{"files":{"readme":"README.adoc","changelog":"NEWS","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/README.adoc","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-05T14:37:28.000Z","updated_at":"2025-04-17T17:59:36.000Z","dependencies_parsed_at":"2023-10-11T14:45:13.801Z","dependency_job_id":"ce24c624-8b3c-47f8-bebf-659eacfaa9c9","html_url":"https://github.com/Yubico/yubikit-android","commit_stats":null,"previous_names":["yubicolabs/yubikit-android"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fyubikit-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fyubikit-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fyubikit-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fyubikit-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yubico","download_url":"https://codeload.github.com/Yubico/yubikit-android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252458325,"owners_count":21751017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T21:00:51.366Z","updated_at":"2025-05-05T07:30:38.031Z","avatar_url":"https://github.com/Yubico.png","language":"Java","funding_links":[],"categories":["Java","Client Libraries"],"sub_categories":[],"readme":"== Yubico Mobile SDK (YubiKit) for Android\n*YubiKit* is an Android library provided by Yubico to enable YubiKey support in\nAndroid apps. Both USB and NFC-enabled YubiKeys are supported.\n\nNOTE: Version 2.0 breaks compatibility with 1.0. See\nlink:./doc/Migration_1.0-2.0.adoc[the migration guide] for some pointers on\nmigrating.\n\nFor more information on the various concepts and features used in this SDK,\nsee our https://developers.yubico.com/Mobile/Concepts.html[YubiKey Concepts]\noverview.\n\nThe library includes a link:./AndroidDemo/[YubiKit Android Demo] application,\nwhich provides a complete example of integrating and using the features of this\nlibrary in an Android app. While this demo is written in Kotlin, the library\nitself is written in Java, and can be used by both Java and Kotlin.\n\nChanges to this library are documented in the link:./NEWS[NEWS] file.\n\n=== About\nThe SDK is split up into multiple modules. Each module has its own\ndocumentation and can be used independently of the others. All YubiKit modules\ninclude javadoc and additional resources deployed with the library archive.\nRefer to the javadoc documentation detailed about the APIs methods,\nproperties, and parameters. The SDK is versioned as a whole: You should not mix\nYubiKit modules with different version numbers. The modules are:\n\nlink:./core/[Core]::\nThe core module defines the main SDK concepts and provides interfaces for\ninteracting with a YubiKey, as well as common utilities used by the various\nother modules. All other modules depend on this.\n\nlink:./android/[Android]::\nThis module provides concrete implementations for the interfaces in *core*, the\n*YubiKitManager* class which is used to get a reference to a YubiKey, as well as\nvarious reusable UI elements.\n\nlink:./fido/[Fido]::\nThis module adds FIDO2 support. Current implementation supports Webauthn Level 2 and CTAP 2.1 for managing FIDO credentials on YubiKeys.\n\nlink:./management/[Management]::\nThis module provides the ability to read out metadata from a YubiKey, such as\nits serial number, and firmware version. It also allows changing the\nconfiguration of a YubiKey, to enable/disable other applications, etc.\n\nlink:./yubiotp/[YubiOTP]::\nThis module lets you configure the YubiOTP application. This includes\nconfiguring the two \"keyboard slots\", and using the Challenge-Response\nfunctionality.\n\nlink:./openpgp/[OpenPGP]::\nThis module lets you use the OpenPGP smart card application on a YubiKey and execute operations such as OpenPGP PIN management,\nkey import and generation (including RSA4096, ECDSA and Curve25519 on supported YubiKeys), encryption, decryption, signature and signature verification.\n\nlink:./oath/[OATH]::\nThis module lets you configure and use the OATH application on a YubiKey. It can\nstore and use up to 32 OATH (TOTP or HOTP) credentials.\n\nlink:./piv/[PIV]::\nThis module lets you configure and use the PIV application on a YubiKey. It\nsupports importing, generating, and using private keys. Reading and writing\ndata objects such as X.509 certificates, and managing access (PIN, etc).\n\nlink:./support/[Support]::\nThis module contains helper functionality such as getting information about YubiKeys.\n\n=== Getting Started\nA good place to get started is to clone the repository and try out the included\ndemo app. To integrate the SDK into your app, add the desired dependencies to\nyour Gradle configuration, and proceed with the instructions provided with the\nmodules you are using, starting with the link:./android/[Android] module.\n\n\n==== Support\nIf you run into any issues during the development process, please fill out a\ndeveloper https://support.yubico.com/support/tickets/new[support ticket] and\nour team will be happy to assist you.\n\n=== Support for desktop apps\n\nWARNING: This is an experimental version and is not intended for production use.\n\nSince version 2.8.0, the SDK contains the desktop module, which provides concrete implementations\nof the core interfaces (USB and NFC connectivity) for building desktop Java applications.\n\nThere are two related modules:\n\n* testing-desktop: SDK device test suite for desktop platforms\n* DesktopDemo: A sample application demonstrating basic usage\n\n=== FAQ\n\n==== Q1. Does YubiKit work with all versions of Android?\nA1. All YubiKit modules should work on Android API 19+. Yubico typically tests\nand supports n-1 per https://en.wikipedia.org/wiki/Android_version_history.\n\n==== Q2. How can I debug my app on Android when a YubiKey takes up the USB port?\nA2. Set up Android Debug Bridge (adb) debugging over WiFi:\nhttps://developer.android.com/studio/command-line/adb#wireless\n\n==== Q3.  Why is the USB device permissions prompt shown every time the YubiKey is connected?\nA3. This is an Android limitation. Android handles these permissions at the OS\nlevel. The only workaround is to use an intent filter, as described in the\nAndroid Developers Guide\nhttps://developer.android.com/guide/topics/connectivity/usb/host.html#using-intents[USB Host Overview].\nHowever, if you apply this filter to remove the permissions prompt, then you\ncannot prevent your app from launching automatically whenever the YubiKey is\nconnected.\n\n==== Q4. Does the YubiKit support both USB and NFC?\nA4. Yes. The link:./android/[Android module] provides functionality to detect\nand connect to YubiKeys over both USB and NFC.\n\n\n=== Additional Resources\n* Yubico Developers site - https://developers.yubico.com[developers.yubico.com]\n* Android Developers site - https://developer.android.com[developer.android.com]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYubico%2Fyubikit-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYubico%2Fyubikit-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYubico%2Fyubikit-android/lists"}