Our Javacard Implementation for making secure transactions within Status and Ethereum
Go to file
Michele Balistreri f05190111c add PUK installation parameter 2017-09-27 16:01:45 +03:00
gradle/wrapper add skeleton app 2017-09-21 15:09:04 +03:00
scripts add PUK installation parameter 2017-09-27 16:01:45 +03:00
src add PUK installation parameter 2017-09-27 16:01:45 +03:00
.gitignore make build work without setting environment variables 2017-09-21 16:29:28 +03:00
APPLICATION.MD simplify the LOAD KEY command to use a single APDU 2017-09-25 11:27:55 +03:00
README.md document the presence of tests 2017-09-25 14:36:28 +03:00
SECURE_CHANNEL.MD document overhead 2017-09-25 10:53:04 +03:00
build.gradle implement secure channel key exchange (open secure channel) 2017-09-26 13:05:59 +03:00
gradlew add skeleton app 2017-09-21 15:09:04 +03:00
gradlew.bat add skeleton app 2017-09-21 15:09:04 +03:00
install_applet.sh implement secure channel key exchange (open secure channel) 2017-09-26 13:05:59 +03:00

README.md

JavaCard Hardware Wallet

Currently just a skeleton for the hardware wallet.

The .gpshell files are meant to be fed to GPShell. The statuswallet_install.gpshell file is actually dependent on the target hw. Currently it assumes that the default VISA AID and keys for the ISD are used, but the version number is 2.

The project is built using Gradle with the Fidesmo Javacard Gradle plugin. You can set the JavaCard HOME not only through the environment but also creating a gradle.properties file with the property "com.fidesmo.gradle.javacard.home" set to the correct path.

Implementation notes

  • This implementation will try to use only features available in JavaCard 2.2.2 for broader compatibility with existing hardware.
  • The class byte of the APDU is not checked since there are no conflicting INS code.
  • Automated tests using JUnit 5 are included. The test require the application to be already installed. The first card terminal found by Java will be used, to please disconnect all card terminals except the one to be used for testing.