首页 文章
  • 1 votes
     answers
     views

    当要检索的数据超过256个字节时,卡不会返回状态字

    我正在使用 T=0 协议中的卡片: 我向卡发送命令,请求对数据进行响应 . 我使用的小程序应该用数据 potentially more than 256 bytes 来回答,所以在命令Le中设置为'00' 卡首先回答 61 XX ,其中'XX'是要读取的字节数(从1到256) . 然后我通过发送GET RESPONSE命令检索数据: 00 C0 00 00 XX 期望: 关于I...
  • 3 votes
     answers
     views

    如何在0x6310状态后从JavaCard获取更多数据?

    我正在尝试列出Java卡上的applet /包 . 我使用以下APDU命令来获取列表: 80 F2 E0 00 02 4F 00 00 该命令返回状态字 0x61xx ,因此我发送了 xx 字节的GET RESPONSE命令: 00 C0 00 00 xx 这给了我 xx 数据字节和状态字 0x6310 ("more data available") . 接下来我应该发送什...
  • 1 votes
     answers
     views

    APDU读取文件java卡程序

    我使用netbeans制作了java卡经典applet 当我编程读操作时,我检查APDU中的第一个字节是0x80然后第二个是 0xB0 然后从字节2和3获取我将从文件中读取的偏移量然后取字节数为从字节4读取 将APDU作为默认值 0x80 0xB0 0x00 0x03 0x60 这从当前文件读取60个字节,以偏移号3开头 当我尝试这个命令时,它返回错误 Input data length != L...
  • 0 votes
     answers
     views

    如何在iso14443a初始化和防冲突中编程RATS命令

    我想知道如何更改读取器在初始化阶段发送给卡的请求应答选择命令(RATS)中的一些字节 . 目前我的NFC读卡器acr122u在RATS命令中发送了一个5字节的FSD字节,经过一些研究后我发现FSD值为5意味着终端只接受最大大小为64位的帧大小,我需要发送超过一个apdu . 请有人帮忙
  • 1 votes
     answers
     views

    无法构造VERIFY_PIN_DIRECT控制命令

    我正在编写一个JAVA-app来访问我的OpenPGP-Card V2.0 . 我使用的卡终端是“REINER SCT cyberJack RFID标准”,它只支持OSX下的PC / SC,现在我想实现PC / SC 2.0命令“VERIFY_PIN_DIRECT” . 我尝试了以下控制序列,|之后的字节是APDU字节(我的测试引脚是“140396”): Index: 00 01 02 03 04...
  • 3 votes
     answers
     views

    进程方法没有从主机收到完整的APDU命令?

    主机将以下命令发送到applet以选择EF文件 00 A4 02 00 02 40 01 目的是选择ID为 40 01 的EF文件(在命令的数据字段中指定) . 但是当我调试进程(APDU apdu)方法时,APDU缓冲区只包含5个第一个字节 00 A4 02 00 02 . 数据字段设置为 00 00 . 所以我的applet无法使用EF ID选择EF . 你能告诉我上面的APDU命令有...
  • 4 votes
     answers
     views

    有没有支持扩展APDU的Android手机?

    我正在开发一个Android应用程序,它具有从智能卡读取数据的功能 . 默认情况下,NFC控制器支持APDU命令,单个命令中最大收发长度为261个字节 . 由于需要在卡上读取大量数据,因此读取速度非常慢 .是否有支持扩展APDU的Android手机允许在单个APDU中发送超过261个字节?或者有没有办法通过调用Android API来修改最大收发长度以允许这样做? 我找到了一些话题:link 他们...
  • 3 votes
     answers
     views

    使用Android NFC向Java Card发送超过261个字节

    我想通过NFC(类 IsoDep )向Java Card智能卡发送长度为1699字节的APDU . 我收到了错误 java.io.IOException:收发长度超过支持的最大值 我的手机是三星Galaxy S7 . 我在卡片上的小程序中使用了扩展长度 . 我已经确认该卡支持扩展长度 . 我通过发送一个4000字节的APDU到卡上通过pyapdutool进行了测试 . 我发现当我编写这段代码时...
  • 1 votes
     answers
     views

    如何在Android中阅读智能卡ATR?

    我有一个1443 B型卡,我可以通过发送SELECT命令读取ATR,文件ID为0x2F01,然后发送READBINARY命令 00 B0 00 00 00这是回应:4301F84703F741E07F6608020205F0020205F09000 但为什么命令 00 B0 81 00 00 不起作用?根据ISO / IEC 7816-4,该命令用于读取具有5位P1xP2的EF作为文件短ID(00...
  • 0 votes
     answers
     views

    在javacard apdu上发送一个byte []

    我从主机应用程序发送一个byte []到javacard applet . 但是当我尝试通过命令缓冲区[ISO7816.OFFSET_CDATA]将其作为byte []检索时,我被告知我无法将字节转换为字节[] . 如何通过命令APDU从主机应用程序发送byte []并在另一端(javacard applet)将其检索为byte [] . 看来缓冲区[ISO7816.OFFSET_CDATA]返回...
  • 2 votes
     answers
     views

    javax.smartcardio:如何向Desfire卡发送本机命令?

    我正在创建一个通过PC / SC非接触式读卡器和javax.smartcardio API与Mifare DESFire卡通信的Java应用程序 . 我设法定期发送ISO 7816 APDU(CLA,INS,P1-P2,Lc,Command数据,Le) . 我在Ridrix's Blog上读到DESFire卡(至少我使用的EV1版本)支持APDU和Native命令,其中大多数命令只有1个字节长 ....
  • 0 votes
     answers
     views

    与NFC设备通信 - 安卓设备 - ISO 7816-4

    由于ISO 7816-4标准,Android中是否有可以与NFC设备通信的库?我的意思是准备好实现APDU的命令,并且不需要手动发送字节? 或者也许唯一的方法是从APDU发送到我的设备字节?如果是这样,如何构造适当的APDU并找出字段值(CLA,INS等...)? 我的目的是进入卡上的目录并从卡中读取文件 . 感谢您提前分享您的知识:)
  • 0 votes
     answers
     views

    如何使用C中的单个APDU发送和获取数据?

    我正在使用winscard编写C代码 . 我注意到,如果我用Scardtransmit发送命令,其中只发送数据或仅接收数据,则没有问题 . 我可以发送数据或得到正确的答复 . 但是,当命令发送数据并期望响应时,我总是得到61xx . 我知道错误代码61xx意味着有一个xx字节响应,其中Le不正确,并检查每个可能的Le,包括返回值xx,但没有任何变化 . 例如,让Apdu采用CLA INS P1 P...
  • 3 votes
     answers
     views

    将扩展APDU发送到Javacard

    我有一台ACR38 samrt-card-reader和一些符合GP Spec [02]的Javacard [2.1.1] . 据我所知,有两种APDU, Short-APDU [APDU与 LC 或/和 LE 短于 255 ]和 Extended-APDU [APDU与 LC 或/和 LE 大于 255 ] . 是对的吗? 我们在 T=0 协议中发送Short-APDU并在 T=1 协议中发...
  • 1 votes
     answers
     views

    Javacard - UICC - SMS-PP数据下载信封总是返回9000

    我尝试发送带有APDU的短信(没有23.048 Headers - 我知道它不会假设没有这些 Headers ) . 对于每个SMS(无论我发送的APDU是什么),我都得到了9000响应(即使设置了Le字节也没有附加数据) . 有人可以向我解释一下这种行为吗?
  • 0 votes
     answers
     views

    智能卡对APDU的响应中是否有任何数据字段大小的指示?

    我知道当通过智能卡读卡器发布APDU时,结果的格式如下: [ [data], SW1, SW2 ] 我知道当您发出APDU时,您可以使用 Le 字段指定预期答案的大小,但我想知道数据字段中是否有任何字节(或任何内容)指示其实际大小 . 例如,假设我想要读取主文件: 首先,我发出 SELECT FILE apdu: 00 A4 00 00 例如,返回 61 1b ,其中 1b 是使用 GET ...
  • 1 votes
     answers
     views

    使用smartcardio签名文件

    我发现了一些将APDU命令发送到智能卡的基本示例 . 但是我对签署文件感到有些困惑 . 我可以使用APDU命令从SmartCard获取证书吗? 如果是这样,一旦我检索到了证书,我应该使用哪个API来签署文件? 非常感谢您对此有所了解
  • 3 votes
     answers
     views

    如何只读/写同步智能卡,如存储卡

    我有一个只支持同步接口的IC存储卡(如SLE5532,SLE5542 ......等) 我想知道如何编写一个读取内存内容,验证PSC(PIN)和写入内存的应用程序 . 这种类型的卡不能接受像微处理器卡这样的普通APDU . 在数据表中,它指定要以二进制形式发送的命令(所有命令的长度为3个字节) 我找到了一个专门用于SCM Reader的应用程序(基于MCSCM.dll),但它不能与我的OmniKe...
  • -1 votes
     answers
     views

    使用java commandAPDU读取SLE4442智能卡中的写入数据?

    我想在SLE4442智能卡中读写数据我有ACR38U-i1智能卡读卡器 对于写入,我使用此命令APDU byte[] cmdApduPutCardUid = new byte[]{(byte)0xFF, (byte)0xD0, (byte)0x40,(byte)0x00, (byte)4,(byte)6,(byte)2,(byte)6,(byte)2}; 并为读取数据 byte[] cmdA...
  • -1 votes
     answers
     views

    使用java验证引脚返回6a86

    我有SPR332 pinpad阅读器,我必须在java上编写程序,验证银行卡的引脚 . 这是我的PINverifyStructure: bTimeOut = 0х00 bTimeOut2 = 0х00 bmFormatString = 0x82 bmPINBlockString = 0x47 bmPINLengthFormat = 0x04 wPINMaxExtraDigitMax = 0x0c ...
  • 2 votes
     answers
     views

    使用PINPAD在阅读器上验证比利时EID卡的PIN码

    我在PINPAD阅读器上验证PIN码的所有尝试最终都失败了,这是我的情况: 设置 比利时EID卡; Vasco DIGIPASS 875,蓝牙连接; 使用Vasco SDK的Android应用程序 . 情况 我已经使用APDU命令来选择和读取文件,设置安全环境(MSE:SET),经过大量研究和合并不同文档的不同解决方案后,我可以让读者询问我的PIN码 . 但是使用我的伪APDU命令...
  • 0 votes
     answers
     views

    智能卡:非易失性存储器的状态已更改 - 0x6581

    我'm using HID smart card reader 3121 to read/write smart card using APDU commands. I successfully performed the basic operations (pin verification/ read / write) on some smart cards. However, some of ...
  • 0 votes
     answers
     views

    java.security.cert.CertificateException:无法解析证书:java.io.IOException:空输入

    我的javacard小程序中有一个证书,主机应用程序请求验证来自卡小程序签名的主机应用程序的质询: 主机应用程序计算javacard小程序的挑战,如下所示进行签名 . byte [] card_signature=null; SecureRandom random = SecureRandom . getInstance( "SHA1PRNG" ) ; ...
  • 2 votes
     answers
     views

    尝试选择Applet时收到6E00

    我创建 .cap 文件的this示例代码[简单的Hello World]并通过 JCManager 成功上传到我的javacard上 . 包裹AID: 01 02 01 02 01 02 01 Applet AID: 01 02 01 02 01 02 01 02 This is output of JCManager : Open terminal ... Establish...
  • 1 votes
     answers
     views

    收到SELECT APDU命令后的JCRE行为

    据我所知,当JCRE接收SELECT APDU命令时,首先,它在其注册表中搜索命令指示的AID . 如果未在其注册表中找到AID,则返回 6A82 . 但是如果JCRE找到它,它将调用所选applet的 deselect() 方法,并在收到 True 之后,它将调用所请求的applet的 select() 方法 . 如果从该方法收到 True ,请将该applet标记为已选中 . 我的问题: 1...
  • 2 votes
     answers
     views

    如何将任何APDU命令从当前选定的applet传递到另一个applet?

    Question: 假设有一个Applet的多个实例 . 目前选择了一个Applet实例 . 是否可以将任何APDU命令从选定的Applet传递到另一个Applet实例?我在JavaCard API 3.0.4版中没有找到这样的方法 . Details: 在研究"Expresspay Mobile Specifications v1.2"文件以实施'Application Se...
  • 4 votes
     answers
     views

    直接访问applet而无需选择AID

    通常,当您启动JavaCard智能卡并希望与applet通信时,必须首先使用其AID选择applet . 卡上电时是否有任何方法可以选择“默认小程序”? 我真正想做的是能够在选择卡后立即发送我的应用程序级APDU,而不需要完成应用程序选择过程 . 这可能吗?如果是这样,怎么样?
  • 0 votes
     answers
     views

    如何将数据数组发送到我的Applet并通过Applet进行操作并在响应apdu中返回新数据?

    更新1:我在javacard上安装了我的applet(我在源代码中使用了已经接受的答案在我已经的问题中) . 当我通过OpenSc发送generatedKey命令时,它只返回9000作为响应,而不是发送XORed数据!我使用Javacard 2.2.1版本创建了我的项目,我确信我的卡可以与该版本兼容 . 为什么OpenSc没有收到预期的数据? 我想将一个随机字节数组(包括例如24个元素)发送到我...
  • 2 votes
     answers
     views

    Applet没有收到带有下一次出现的JavaCard SELECT

    我有一个应用程序,RESET Privilege是重置后默认选择的应用程序 . 我的应用程序有一个日志记录机制,可以准确地告诉我对卡的请求是什么 . 根据当前状态,我有几个动态响应 . 我还用卡片 Spy 检查了这种行为 . 所有APDU都正确地转发到我的应用程序,包括那些不属于它的SELECT,并且与卡上的任何其他应用程序都不匹配 . 但是,当接收SELECT DF下一次出现时(A4 04 02...
  • 0 votes
     answers
     views

    如何在javacard applet上签名并将签名返回给宿主应用程序

    我在javacard applet中有以下函数,它应该从宿主应用程序接收一个挑战,签名,然后通过命令响应apdu通信将它返回给主机 . private void sign(APDU apdu) { if(!pin.isValidated())ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED); else{ ...

热门问题