An SDK for supporting security keys and smartcards on Android. Use cases include:
- WebAuthn/FIDO2 passwordless logins
- FIDO U2F Two-Factor Authentication
- SSH Authentication using OpenPGP/PIV cards
- Personal Identity Verification (PIV)
- Full app database encryption using external hardware
- FIDO2/WebAuthn - WebView Bridge
- FIDO2 / WebAuthn
- FIDO U2F
- SSH Authentication with Jsch
- SSH Authentication with SSHJ
- PIV for TLS Client Certificates
- Encrypting Secrets
- Encrypted Database
Caution
If you are using the Jitpack repo, use com.github.cotechde:hwsecurity instead of de.cotech:hwsecurity!
This repository contains all parts of the Hardware Security SDK that have been released as open source.
This includes the following artifacts of the SDK:
| Build Artifact | Min SDK | Rec. SDK |
|---|---|---|
| com.github.cotechde:hwsecurity:hwsecurity | 14 | |
| com.github.cotechde:hwsecurity:hwsecurity-intent-nfc | 14 | |
| com.github.cotechde:hwsecurity:hwsecurity-intent-usb | 14 | |
| com.github.cotechde:hwsecurity:hwsecurity-fido | 14 | 19 |
| com.github.cotechde:hwsecurity:hwsecurity-fido2 | 14 | 19 |
| com.github.cotechde:hwsecurity:hwsecurity-openpgp | 14 | |
| com.github.cotechde:hwsecurity:hwsecurity-piv | 14 | |
| com.github.cotechde:hwsecurity:hwsecurity-ui | 14 | 19 |
| com.github.cotechde:hwsecurity:hwsecurity-ssh | 14 | |
| com.github.cotechde:hwsecurity:hwsecurity-sshj | 14 |
This is the repository for open source projects:
You can use our SDK under the terms of the GNU General Public license version 3 or later.
If you need a different license, write us: support@hwsecurity.dev
We may be willing to release it as Apache v2 under certain conditions.
Some parts of the SDK haven't been released as open source. If you are missing something, please let us know: support@hwsecurity.dev
WARNING: Xamarin hasn't been build for a long time. This part of the SDK has been released on request
Must happen on Windows (Xamarin does not work with Linux)
- Install Visual Studio : https://docs.microsoft.com/de-de/xamarin/android/get-started/installation/windows
- Download nuget.exe and put it in $PATH: https://www.nuget.org/downloads
- Build Java SDK from this repo
- Copy aar files to xamarin folders (core, fido, fido2, ui)
- hwsecurity/core/build/outputs/aar/core-release.aar to xamarin/Hwsecurity/Jars/
- hwsecurity/fido/build/outputs/aar/core-release.aar to xamarin/HwsecurityFido/Jars/
- hwsecurity/fido2/build/outputs/aar/core-release.aar to xamarin/HwsecurityFido2/Jars/
- hwsecurity/ui/build/outputs/aar/core-release.aar to xamarin/HwsecurityUi/Jars/
- Delete all obj and bin folders and then rebuild Visual Studio project with "release" target in Visual Studio
- Run on device to see if it crashes
- Optional: Update AndroidX dependencies in nuspec files
- Package and publish: In xamarin folder: execute with version number:
.\nuget-pack.bat 4.1.0 - Verify using standalone sample