«Смарт-карта» в основном означает карту процессора с So C, которая включает в себя полный ЦП. Java Карта работает поверх смарт-карты.
Конечно, есть карты на основе файлов , которые содержат полный ISO / IEC 7816-4 / 9/11 файловая система, хотя они обычно также имеют проприетарные части (что отчасти требуется, потому что ISO / IEC 7816-4 не содержит полной спецификации того, что необходимо реализовать, и оставляет много пробелов, которые должны быть заполнены разработчиком. ).
Для карты Java вы в основном должны реализовать те APDU, которые требуются для вашей конкретной c функциональности. Когда-то там был API файловой системы, но он long устарел, к лучшему или худшему.
Нет какой-либо специальной команды c, которая сообщает вам, является ли карта а Java Карточка или нет. Некоторые карты имеют определенный c набор исторических байтов в ATR при доставке клиенту. Тем не менее, для них также могут быть установлены другие значения.
Если вы хотите проверить, является ли карта картой Java: попробуйте и посмотрите, есть ли на карте диспетчер карт, используя SELECT by AID с помощью Open и Global Platform AID . Если им это удастся, то это довольно серьезный намек на то, что это карта Java.
Поскольку каждое приложение DF в Java Card выбирается по имени, вы обычно не обнаружите, что SELECT по DF ID работает в папке root. Если ни один из них не работает до , вы выбираете апплет Java Card (т.е. когда вы находитесь в root), тогда карта может быть a Java Card. Однако есть возможность выбрать апплет по умолчанию, и такой апплет также может реализовать эту функцию.