Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
asdfjkl authored Jun 5, 2022
1 parent 0edf902 commit c3ec499
Showing 1 changed file with 10 additions and 41 deletions.
51 changes: 10 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,24 @@
Ledger U2F Applet
JavaCard U2F Applet
=================

[![Build status](https://travis-ci.org/LedgerHQ/ledger-u2f-javacard.svg?branch=master)](https://travis-ci.org/LedgerHQ/ledger-u2f-javacard) [![Codecov](https://img.shields.io/codecov/c/github/ledgerhq/ledger-u2f-javacard.svg)](https://codecov.io/gh/ledgerhq/ledger-u2f-javacard)

# Overview

This applet is a Java Card implementation of the [FIDO Alliance U2F standard](https://fidoalliance.org/)

It uses no proprietary vendor API and is freely available on [Ledger Unplugged](https://www.ledgerwallet.com/products/6-ledger-unplugged) and for a small fee on other Fidesmo devices through [Fidesmo store](http://www.fidesmo.com/apps/4f97a2e9)

# Building

- Set the environment variable `JC_HOME` to the folder containg the [Java Card Development Kit 3.0.2](http://www.oracle.com/technetwork/java/embedded/javacard/downloads/index.html)
- Run `gradlew convertJavacard`

# Installing

Either load the CAP file using your favorite third party software or refer to [Fidesmo Gradle Plugin](https://github.com/fidesmo/gradle-javacard) to use on the Fidesmo platform
This applet is a Java Card implementation of the [FIDO Alliance U2F standard](https://fidoalliance.org/). It is a fork of the JavaCard applet from [Ledger](https://github.com/LedgerHQ/ledger-u2f-javacard) with the following modifications


The following install parameters are expected :
- offcard key generation
- some countermeasures against electromagnetic side-channel attacks
- works on JavaCard 3.0.1 up to 3.0.5

- 1 byte flag : provide 01 to pass the current [Fido NFC interoperability tests](https://github.com/google/u2f-ref-code/tree/master/u2f-tests), or 00
- 2 bytes length (big endian encoded) : length of the attestation certificate to load, supposed to be using a private key on the P-256 curve
- 32 bytes : private key of the attestation certificate
# Creating Your Own U2F Token using provided CAP File

Before using the applet, the attestation certificate shall be loaded using a proprietary APDU
# Purpose of this Fork

| CLA | INS | P1 | P2 | Data |
| --- | --- | ------------- | ------------ | ----------------------- |
| F0 | 01 | offset (high) | offset (low) | Certificate data chunk |

# Testing on Android

- Download [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2)
- Test on http://u2fdemo.appspot.com or https://demo.yubico.com/u2f from Chrome
- For additional API reference and implementations, check [the reference code](https://github.com/google/u2f-ref-code), the [beta NFC API](https://github.com/google/u2f-ref-code/blob/no-extension/u2f-gae-demo/war/js/u2f-api.js) and [Yubico guide](https://www.yubico.com/applications/fido/)

# Certification
# Building

This implementation has been certified FIDO U2F compliant on December 17, 2015 (U2F100020151217001). See tag [u2f-certif-171215](https://github.com/LedgerHQ/ledger-u2f-javacard/tree/u2f-certif-171215)

# State model
# Installing

![state model diagram](state-model.png)
# Testing

# License

This application is licensed under [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)

# Contact

Please contact [email protected] for any question

0 comments on commit c3ec499

Please sign in to comment.