licel / jcardsim

https://jcardsim.org
222 stars 123 forks source link

Can not start simulator #210

Closed garlett closed 9 months ago

garlett commented 9 months ago

New to jCardSim, tried this guide from OpenSC Smart-Card-Simulation)

BixVReader is installed, it shows on windows hardware manager, safesign token manager, awp manager, openSC tools and powershell [System.IO.Directory]::GetFiles("\.\pipe\");

compilation:

javac -cp jcardsim-3.0.5-SNAPSHOT.jar -Xlint:deprecation IsoApplet3\src\xyz\wendland\javacard\pki\isoapplet\*.java

IsoApplet3\src\xyz\wendland\javacard\pki\isoapplet\IsoApplet.java:235: warning:
[deprecation] ALG_SECURE_RANDOM in RandomData has been deprecated
            randomData = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM);
                                                          ^
IsoApplet3\src\xyz\wendland\javacard\pki\isoapplet\IsoApplet.java:1710: warning:
[deprecation] generateData(byte[],short,short) in RandomData has been deprecated
        randomData.generateData(ram_buf, (short)0, le);
                  ^
2 warnings

but when running: java -cp IsoApplet3\src;jcardsim-3.0.5-SNAPSHOT.jar com.licel.jcardsim.remote.BixVReaderCard jcardsim_isoapplet.cfg

got the this error on 1st try ( after disable and enable BixVReader, or reboot):

Trying to load an instance of com.licel.globalplatform.GpSimulatorRuntime
java.lang.ClassNotFoundException: com.licel.globalplatform.GpSimulatorRuntime
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:421)
        at java.base/java.lang.Class.forName(Class.java:412)
        at com.licel.jcardsim.base.SimulatorSystem.<clinit>(SimulatorSystem.java:59)
        at com.licel.jcardsim.base.Simulator.<init>(Simulator.java:65)
        at com.licel.jcardsim.remote.BixVReaderCard.startThread(BixVReaderCard.java:97)
        at com.licel.jcardsim.remote.BixVReaderCard.<init>(BixVReaderCard.java:38)
        at com.licel.jcardsim.remote.BixVReaderCard.main(BixVReaderCard.java:92)
Failed to load the instance! Will use the default SimulatorRuntime
Exception in thread "main" javacard.framework.SystemException
        at javacard.framework.SystemException.throwIt(Unknown Source)
        at com.licel.jcardsim.base.Simulator.loadApplet(Simulator.java:146)
        at com.licel.jcardsim.base.Simulator.<init>(Simulator.java:114)
        at com.licel.jcardsim.base.Simulator.<init>(Simulator.java:65)
        at com.licel.jcardsim.remote.BixVReaderCard.startThread(BixVReaderCard.java:97)
        at com.licel.jcardsim.remote.BixVReaderCard.<init>(BixVReaderCard.java:38)
        at com.licel.jcardsim.remote.BixVReaderCard.main(BixVReaderCard.java:92)

and this error on retry:

Exception in thread "main" java.io.FileNotFoundException: \\.\pipe\SCardSimulatorDriverEvents0 (Todos os pipes estão ocupados, translation: all pipes are busy)
        at java.base/java.io.RandomAccessFile.open0(Native Method)
        at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:356)
        at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:273)
        at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:223)
        at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:137)
        at com.licel.jcardsim.remote.BixVReaderIPCProtocol.connect(BixVReaderIPCProtocol.java:36)
        at com.licel.jcardsim.remote.BixVReaderCard.<init>(BixVReaderCard.java:37)
        at com.licel.jcardsim.remote.BixVReaderCard.main(BixVReaderCard.java:92)

BixVReader.ini:

[Driver]
NumReaders=1

[Reader0]
RPC_TYPE=0
VENDOR_NAME=Virtual Smart Card Architecture
VENDOR_IFD_TYPE=Virtual PCD
TCP_PORT=35963
DECIVE_UNIT=0

also tested BixVReader.ini :

[Driver]
NumReaders=1

[Reader0]
RPC_TYPE=0
VENDOR_NAME=Fabio Ottavi
VENDOR_IFD_TYPE=Pipe Reader
DECIVE_UNIT=0

jcardsim_isoapplet.cfg:

com.licel.jcardsim.card.applet.0.AID=F276A288BCFBA69D34F31001
com.licel.jcardsim.card.applet.0.Class=net.xyz.wendland.javacard.pki.isoapplet.IsoApplet
com.licel.jcardsim.card.ATR=3B80800101

also tried:

com.licel.jcardsim.card.applet.0.AID=F276A288BCFBA69D34F31001
com.licel.jcardsim.card.applet.0.Class=net.pwendland.javacard.pki.isoapplet.IsoApplet
com.licel.jcardsim.card.ATR=3B80800101

power shell> [System.IO.Directory]::GetFiles("\.\pipe\")

....
\\.\\pipe\\SCardSimulatorDriver0
\\.\\pipe\\SCardSimulatorDriverEvents0

Thank you

garlett commented 9 months ago

wait, I think it was wrong jcardsim_isoapplet.cfg applet class name, will update this soon

garlett commented 9 months ago

solved with

com.licel.jcardsim.card.applet.0.Class=xyz.wendland.javacard.pki.isoapplet.IsoApplet

on file jcardsim_isoapplet.cfg