Bitcoin Forum
December 12, 2024, 03:59:22 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [ANN] Open Source Java Card Hardware Wallet - Yubikey Neo - two factor with NFC  (Read 3330 times)
btchip (OP)
Hero Member
*****
Offline Offline

Activity: 623
Merit: 500

CTO, Ledger


View Profile WWW
November 21, 2013, 12:35:09 AM
 #1

Creating a separate thread for that, as the original BTChip one is dedicated to the custom implementation we design

https://github.com/btchip/btchipJC

This project is an Open Source implementation of the BTChip specification, running on a Java Card (typically a Yubikey Neo)

The physical isolation between the contact and contactless interfaces is used to create a transaction approval mechanism : start a transaction on a computer, tap the dongle on a phone, read the transaction details and a PIN, plug back the dongle into the computer, enter the PIN to approve and sign.

The contactless interface can also be used to perform transactions on a controlled wallet (maximum transaction amount, maximum fees, maximum change)

This is strictly developer material for the time being (no client support), but hopefully will motivate us or someone else to start working on it seriously Cheesy

drazvan
Full Member
***
Offline Offline

Activity: 191
Merit: 100



View Profile WWW
November 21, 2013, 04:07:02 PM
 #2

Hey, that's pretty cool, I like the idea of using the contactless interface for confirmation. I also like the fact that you've implemented RIPEMD in JavaCard, I couldn't find any NXP JCOP-based chips that had it natively implemented. Good work!
btchip (OP)
Hero Member
*****
Offline Offline

Activity: 623
Merit: 500

CTO, Ledger


View Profile WWW
November 21, 2013, 07:01:28 PM
 #3

Thanks. Note that the RIPEMD implementation is pretty horrible and will take approximately 1 second to hash 32 bytes. This might be improved (a bit) by inlining everything.

btchip (OP)
Hero Member
*****
Offline Offline

Activity: 623
Merit: 500

CTO, Ledger


View Profile WWW
November 25, 2013, 01:22:09 PM
 #4

Quick update,  the RIPEMD160 code has been improved significantly (down from 1200 ms to 300 ms)

N[e]wBie
Full Member
***
Offline Offline

Activity: 163
Merit: 100


View Profile
March 09, 2014, 08:37:57 AM
 #5

I have a yubikey neo that I haven't even used yet,  maybe I will mess around with this.

BTC: 1ESZr887vTZqYtDuwwspn1jBaoRU9jMcv1
btchip (OP)
Hero Member
*****
Offline Offline

Activity: 623
Merit: 500

CTO, Ledger


View Profile WWW
March 09, 2014, 11:45:15 PM
 #6

Good, welcome aboard, enjoy your stay  Grin

just be aware that the code is now significantly different from the native implementation following the implementation of HD Wallets (and deterministic signatures on a smaller extent), so client integration cannot be shared between both implementations any more.

Implementing HD Wallets support in Java Card is currently a major pain, first because SHA 512 is not supported, second because there is no public API for big numbers manipulation, and third because it's not possible to use prepared ECC private keys in the public API either. The last two could probably be done with a proprietary API though, and http://www.fi.muni.cz/~xsvenda/bin/ can be a start for the first one.

btchip (OP)
Hero Member
*****
Offline Offline

Activity: 623
Merit: 500

CTO, Ledger


View Profile WWW
June 02, 2015, 08:48:21 PM
 #7

The new shiny HD version is now compatible with Electrum. Highly experimental of course, mostly done to demonstrate the portability of the common API.

There is also a new Eligibility applet available to test the performance of your favorite Java Card. Spoiler, it probably won't be pretty.





GoldSeal
Legendary
*
Offline Offline

Activity: 1862
Merit: 1002



View Profile
March 01, 2016, 06:57:36 AM
 #8

Is it possible to adapt this for use for an alt coin? I realize that it's not just the card, but it has to have a wallet app to interface with as well.

Moving to Puerto Rico...
btchip (OP)
Hero Member
*****
Offline Offline

Activity: 623
Merit: 500

CTO, Ledger


View Profile WWW
March 01, 2016, 09:48:19 AM
 #9

yes absolutely. It should be easy enough to do - the source code already supports different coin versions.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!