首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以查询GlobalPlatform智能卡的剩余永久内存?

是否可以查询GlobalPlatform智能卡的剩余永久内存?
EN

Stack Overflow用户
提问于 2011-07-27 05:53:52
回答 2查看 1K关注 0票数 1

我有一个JavaCard,可以调用JCSystem.getAvailableMemory(MEMORY_TYPE_PERSISTENT)并从我的小程序中返回它,但如果它超过32767个字节,我想要一个确切值。

EN

回答 2

Stack Overflow用户

发布于 2014-01-23 18:03:01

带GP 2.2 + ETSI支持的Javac卡

如果您的卡支持Global Platform 2.2和ETSI,则可以使用GET DATA命令。

GP卡规范2.2第11.3节规定

代码语言:javascript
复制
Tag ‘FF21’: Extended Card Resources Information available for Card Content Management, as defined in ETSI TS 102 226.

在ETSI 102.226 8.2.1.7.2节中:

命令执行成功后,GET DATA response data字段应按照GlobalPlatform 4中的定义进行编码。命令消息的参考控制参数P1和P2中引用的TLV编码数据对象的值为:

代码语言:javascript
复制
Length Description                            Value
  1    Number of installed application tag    '81'
  1    Number of installed application length  X
  X    Number of installed application
  1    Free non volatile memory tag           '82'
  1    Free non volatile memory length         Y
  Y    Free non volatile memory
  1    Free volatile memory tag               '83'
  1    Free volatile memory length             Z
  Z    Free volatile memory

此命令响应不限于TLV值,因为它使用的是short格式,这意味着您可以检查大于32767字节的空闲内存

票数 3
EN

Stack Overflow用户

发布于 2011-07-29 19:09:34

通常,不可能使用标准Java card API从卡中获得确切的空闲内存大小。因为大多数Java卡甚至不支持整数,所以您可以从API方法获得的最大值是32767 (有符号短整型的上限)。

如果幸运的话,卡/OS制造商可能会提供一些专有的API方法。我见过恩智浦JCOP卡的一些专有API,但如果空闲内存超过签名短内存的上限,它们中没有一个能够获得。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6837079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档