Как хранить данные на javacard? - PullRequest
0 голосов
/ 10 ноября 2011

Я экспериментирую с апплетом для JavaCard - это очень простой серверный SCWS (в основном шаблон от Gemalto Dev Suite). Я хочу, чтобы он хранил некоторые данные на карте - как это сделать? Я нашел только некоторые теоретические материалы о линейных и циклических файлах.

// EDIT

Мне удалось найти что-то вроде этого:

private byte createfile()
    {
        try{
            AdminFileView uiccAdminFileView = AdminFileViewBuilder.getTheUICCAdminFileView(JCSystem.CLEAR_ON_RESET);
            if(uiccAdminFileView == null){
                return 'a';
            }
            uiccAdminFileView.select((short)0x7F60);
            EditHandler editHandler = (EditHandler) HandlerBuilder.buildTLVHandler(HandlerBuilder.EDIT_HANDLER,
                    (short) 50);
            editHandler.clear();
            editHandler.appendArray(CreateEF, (short) 0,(short) CreateEF.length);
            uiccAdminFileView.createFile(editHandler);
            data[0] = (byte) 0x12;
            data[1] = (byte) 0x34;
            data[2] = (byte) 0x56;
            uiccAdminFileView.select((short)0xEE00);
            uiccAdminFileView.updateBinary((short) 0, data, (short)0, (short)3);
        } catch(UICCException e){

            return (byte)e.getReason();
        }
        return 'b';
    }

Но в этот момент он возвращает «a» каждый раз - насколько я знаю, это как-то связано с правами доступа для апплета.

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

Когда-то в Java Card существовал API-интерфейс на основе файлов ISO 7816-4, но он был потоплен очень давно. Теперь вам просто нужно запрограммировать это самостоятельно. Вам нужен хотя бы стандарт ISO 7816-4 (2005), чтобы сделать что-нибудь удаленно совместимое с файловыми картами.

Настоящее "веселье" начинается тогда, когда вам нужно отправить данные файла со смещением более 32 КБ по безопасному каналу обмена сообщениями, следя за выбором файлов и правами доступа. Для любого, кто читает ответ на этот старый вопрос: удачи - и знай, что можно сделать.

0 голосов
/ 22 марта 2012

Похоже, что на ваш вопрос здесь ответили: http://developer.gemalto.com/nc/forums.html?view=single_thread&cat_uid=3&conf_uid=2&thread_uid=154

0 голосов
/ 10 ноября 2011

Для «настоящей» смарт-карты вы создаете / редактируете / удаляете данные либо с помощью чего-то стандартного, называемого командой APDU.Чтобы это работало, на карте должна быть установлена ​​ОС, способная обрабатывать APDU для создания / обновления / чтения файлов и т. Д. Если карта полностью девственная (то есть в ней действительно ничего нет), вы должны использовать картуAPI или прочитайте спецификацию и сделайте все самостоятельно (очень вероятно, вы будете иметь дело со сборкой).Я не знаю, что у вас за карточка, поэтому я не могу дать конкретные инструкции, прочитайте ваше руководство.

...