Можно ли запросить у смарт-карты GlobalPlatform оставшуюся постоянную память? - PullRequest
0 голосов
/ 27 июля 2011

У меня есть JavaCard, и я могу вызвать JCSystem.getAvailableMemory (MEMORY_TYPE_PERSISTENT) и вернуть его из моего апплета, но я хочу точное значение, если его значение превышает 32767 байт.

Ответы [ 2 ]

2 голосов
/ 23 января 2014

Javacard с GP 2.2 + поддержка ETSI

Если ваша карта поддерживает Global Platform 2.2 и ETSI, вы можете использовать команду GET DATA.

Спецификация GP GP 2.2, раздел 11.3, гласит, что

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 должно быть закодировано, как определено в GlobalPlatform [4]. Значение объекта данных в кодировке TLV, на которое ссылаются параметры контрольного управления P1 и P2 командного сообщения, равно:

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

Ответ этой команды не ограничен значением short, поскольку он использует формат TLV, что означает, что вы можете проверить свободную память, которая превышает 32767 байт

1 голос
/ 29 июля 2011

Как правило, нет возможности получить точный объем свободной памяти с карты с помощью стандартного API Java Card.Поскольку большинство карт Java даже не имеют целочисленной поддержки, максимальное значение, которое вы можете получить с помощью метода API, равно 32767 (верхняя граница короткого знака).

Если вам повезет, возможно, существует какой-то проприетарный APIметод от производителя карты / ОС.Я видел некоторые проприетарные API от карт NXP JCOP, но ни одна из них не способна получить объем свободной памяти, если он превышает верхнюю границу подписанного короткого замыкания.

...