IsoApplet | #Cryptography | A Java Card PKI Applet aiming to be ISO 7816 compliant

 by   philipWendland Java Updated: 8 months ago - v0.6.1 License: GPL-3.0

Download this library from

Build Applications

kandi X-RAY | IsoApplet REVIEW AND RATINGS

Private keys can be generated directly on the smart card or imported from the host computer. The import of private keys is disabled in the default security configuration. The applet targets modern Smartcards with Java Card 2.2.2 or above.

kandi-support
Support

  • IsoApplet has a low active ecosystem.
  • It has 103 star(s) with 55 fork(s).
  • It had no major release in the last 12 months.
  • On average issues are closed in 141 days.
  • It has a neutral sentiment in the developer community.

quality kandi
Quality

  • IsoApplet has 9 bugs (0 blocker, 0 critical, 9 major, 0 minor) and 84 code smells.

security
Security

  • IsoApplet has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • IsoApplet code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.

license
License

  • IsoApplet is licensed under the GPL-3.0 License. This license is Strong Copyleft.
  • Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

build
Reuse

  • IsoApplet releases are available to install and integrate.
  • IsoApplet has no build file. You will be need to create the build yourself to build the component from source.
  • IsoApplet saves you 916 person hours of effort in developing the same functionality from scratch.
  • It has 2091 lines of code, 96 functions and 15 files with 0 % test coverage
  • It has high code complexity. Code complexity directly impacts maintainability of the code.
Top functions reviewed by kandi - BETA

kandi has reviewed IsoApplet and discovered the below as its top functions. This is intended to give you an instant insight into IsoApplet implemented functionality, and help decide if they suit your requirements.

  • Retrieves a file from an existing file .
  • Process the CAPSecurity environment .
  • Write a tag and len
  • Deletes the children for a given fileID .
  • Extract the required ACL requirements .
  • Adds a record to the archive .
  • Gets the singleton instance .
  • Gets the record length .
  • Gets the short file ID .
  • Gets the internal data .

IsoApplet Key Features

A Java Card PKI Applet aiming to be ISO 7816 compliant

IsoApplet examples and code snippets

No Code Snippets are available at this moment for IsoApplet.Refer to component home page for details.

No Code Snippets are available at this moment for IsoApplet.Refer to component home page for details.

COMMUNITY DISCUSSIONS

Top Trending Discussions on IsoApplet
  • How to interact with multiple javacard applications on the same physical smartcard (like yubikey)
  • Smart Card Simulation on Ubuntu (Java Card - ISO7816) - specifying target JCRE
Top Trending Discussions on IsoApplet

QUESTION

How to interact with multiple javacard applications on the same physical smartcard (like yubikey)

Asked 2020-Apr-03 at 08:44

I have installed the popular IsoApplet (https://github.com/philipWendland/IsoApplet) on my 2.2.2 javacard and have been able to use the pkcs11-tool and pkcs15-tool from the OpenSC project to generate private keys on the card and use them to authenticate to servers over SSH.

Separately, I was able to successfully use the challenge-response of my Yubikey 5 (https://www.yubico.com/products/services-software/personalization-tools/challenge-response/) in order to add security to unencrypting a KeepassXC database.

Now, I'd like to add https://github.com/arekinath/YkOtpApplet to the same javacard that has the IsoApplet. How do external applications interact with separate applications on the javacard? Can I have both of these apps on the same javacard? Are the limits just the storage on the card?

I have two cards available:

  • NXP JCOP3 J3H145 Java Card 3.0.4
  • JavaCOS A22 155K Java Card 2.2.2

ANSWER

Answered 2020-Apr-03 at 08:44

Yes, you can have both apps in the same card and the only limit is the permanent storage on the card (unless one of the apps is not compatible with your card, for example if it requires some crypto functions not provided by the card OS).

Each application has an identifier imaginatively named AID, "Application ID", assigned when the application is installed on the card. When an external system wants to interact with a card, the first command (called SELECT) selects the application it wants to talk to, using the AID as a parameter. Any subsequent command then is routed to that app, until the card is reset or a SELECT to a different app is received.

Source https://stackoverflow.com/questions/61002985

QUESTION

Smart Card Simulation on Ubuntu (Java Card - ISO7816) - specifying target JCRE

Asked 2020-Mar-04 at 10:15

I'm trying to simulate the OpenPGP and IsoApplet before building and installing on a real javacard. I'd like my simulation environment to match the actual card as closely as possible.

Here are my card specs from the ATR database. It follows the Java Card 2.2.2 and Global Platform 2.1.1 specifications.

I'm following the instructions on the OpenSC GitHub to simulate a card with vpcsd support. These instructions end with a built jcardsim-3.0.4-SNAPSHOT.jar.

  1. How can I build the jcardsim with support for virtualcard/vpcsd for version 2.2.2?

  2. How do I specify the Java Card version to target when building IsoApplet with ant-javacard? Does my JDK impact what I can choose?

My environment is

Linux 5.3.0-40-generic #32-Ubuntu x86_64 GNU/Linux
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)
javac 1.8.0_242

I'm a little confused by the versioning page of the ant-javacard wiki: https://github.com/martinpaljak/ant-javacard/wiki/Version-compatibility

  1. In what instances would I compile .java files using a JDK and target a different JRE version when getting class files, in order to convert to a specific JCDK version using the converter? I understand using a high JDK for better source code features, and then compiling for a specific JRE, but not when there is the additional step of targeting a JCRE.

ANSWER

Answered 2020-Mar-04 at 10:15

Use targetsdk to indicate the SDK of your target platform (or anything lower than your target platform). ant-javacard sets the target class file version automatically based on the used SDK (the jckit parameter), which should be 3.0.5 at this point.

Source https://stackoverflow.com/questions/60481237

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

VULNERABILITIES

No vulnerabilities reported

INSTALL IsoApplet

Install the CAP-file (IsoApplet.cap) to your Java Card smart card (e.g. with [GlobalPlatformPro](https://github.com/martinpaljak/GlobalPlatformPro)).

SUPPORT

For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .