6JIoHgu
1

Персонализация (файловая система) карт ACOS

17.04.2013, 10:51. Показов 1249. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Итак по порядку. Поставлена задача, персонализировать (создать файловую структуру и перевести в USER Stage) несколько карт семейства ACOS. Алгоритм представлен в этом мануале по карте -> http://www.smartcardreader.ru/... _v1.07.pdf
код пишу на питоне.

Ну а теперь загвоздка =(. на пункте 5 алгоритма начинается сбой.
Суть в том что на предыдущих шагах в 3ий байт 1ой записи Personalization file мы записываем кол-во файлов, которое будет создано на карте (в нашем случае максимальное кол-во файлов 31, это значение и используется в коде ЗЫ другие значения <31 тоже пытался использовать, но никаких результатов это не дало), после ресета карты, на основании записанных данных в User File Management File автоматически создаются записи, в которые записывается информация о пользовательских файлах карты (адреса, особенности доступа и т.д.), кол-во записей равно кол-ву файлов, которое мы записали ранее.

НО! по после записи кол-ва файлов и ресета, необходимые записи не сохдаются, и как следствие не получается создать файловую структуру.

код для персонализации:
1ая часть до ресета:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from iso7816 import ISO7816
 
card = ISO7816()
ret = card.sr_apdu([0x80, 0x20, 0x07, 0x00, 0x08, 0x41, 0x43, 0x4F, 0x53, 0x54, 0x45, 0x53, 0x54 ])
print ret
ret = card.sr_apdu([0x80, 0xA4, 0x00, 0x00, 0x02, 0xFF, 0x01])
print ret
ret = card.sr_apdu([0x80, 0xD2, 0x01, 0x00, 0x01, 0xFF])
print ret
ret = card.sr_apdu([0x80, 0xA4, 0x00, 0x00, 0x02, 0xFF, 0x02])
print ret
ret = card.sr_apdu([0x80, 0xD2, 0x01, 0x00, 0x03, 0x35, 0x00, 0x1F])
print ret
Продолжение алгоритма после ресета:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from iso7816 import ISO7816
 
card = ISO7816()
ret = card.sr_apdu([0x80, 0x20, 0x07, 0x00, 0x08, 0x41, 0x43, 0x4F, 0x53, 0x54, 0x45, 0x53, 0x54 ])
print ret
ret = card.sr_apdu([0x80, 0xA4, 0x00, 0x00, 0x02, 0xFF, 0x04])
print ret
j = 0
for i in xrange(0x20):
    j += 1
    ret = card.sr_apdu([0x80, 0xD2, j, 0x00, 0x06, 0xA0, 0x10, 0x00, 0x00, 0x1f, j])
    print ret
ret = card.sr_apdu([0x80, 0xA4, 0x00, 0x00, 0x02, 0xFF, 0x02])
print ret
ret = card.sr_apdu([0x80, 0xD2, 0x01, 0x01, 0x01, 0x00])
print ret
ret = card.sr_apdu([0x80,0xD2, 0x01, 0x03, 0x01, 0x80])
print ret
теперь соответственно ответы при запуске :

часть первая, до ресета карты

['VERIFY apdu: 80 20 07 00 08 41 43 4F 53 54 45 53 54', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['SELECT FILE apdu: 80 A4 00 00 02 FF 01', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['apdu: 80 D2 01 00 01 FF', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['SELECT FILE apdu: 80 A4 00 00 02 FF 02', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['apdu: 80 D2 01 00 03 35 00 1F', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]


часть вторая, после ресета карты

['VERIFY apdu: 80 20 07 00 08 41 43 4F 53 54 45 53 54', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['SELECT FILE apdu: 80 A4 00 00 02 FF 04', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['apdu: 80 D2 01 00 06 A0 10 00 00 1F 01', 'sw1, sw2: 6A 83 - checking error: wrong parameter(s) P1-P2: record not found: undefined SW2 code: 0x83', (106, 131), []]
* * *
['apdu: 80 D2 1F 00 06 A0 10 00 00 1F 1F', 'sw1, sw2: 6A 83 - checking error: wrong parameter(s) P1-P2: record not found: undefined SW2 code: 0x83', (106, 131), []]
['apdu: 80 D2 20 00 06 A0 10 00 00 1F 20', 'sw1, sw2: 6A 83 - checking error: wrong parameter(s) P1-P2: record not found: undefined SW2 code: 0x83', (106, 131), []]
['SELECT FILE apdu: 80 A4 00 00 02 FF 02', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['apdu: 80 D2 01 01 01 00', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['apdu: 80 D2 01 03 01 80', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]

как видно во второй части, возникает ошибка что запись не найдена.

то что кол-во файлов записанно на предыдущих этапах в нужное место проверяю следующим кодом:
Python
1
2
3
4
5
6
7
from iso7816 import ISO7816
 
card = ISO7816()
ret = card.sr_apdu([0x80, 0xA4, 0x00, 0x00, 0x02, 0xFF, 0x02])
print ret
ret = card.sr_apdu([0x80,0xB2,0x01, 0x00, 0x04 ])
print ret
и получаем ответ:
Ответ

['SELECT FILE apdu: 80 A4 00 00 02 FF 02', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), []]
['READ RECORD apdu: 80 B2 01 00 04', 'sw1, sw2: 90 00 - normal processing: command accepted: no further qualification', (144, 0), [53, 0, 31, 128]]


Ну вот в принципе вся информация по вопросу, если кто может предложить какие идеи или заметит ошибку подскажите плз.

Алексей.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2013, 10:51
Ответы с готовыми решениями:

Файловая система
Товарищи, подскажите, пожалуйста. Есть две отладочная платы: - STM32F4Discovery -...

Файловая система и система управления вводом-выводом в ОС Linux
Дали задание написать вот что: &quot;Разработать программу, которая выводит на экран содержимое...

Файловая система
Хочу сделать вот такой просмотр всех файлов компьютера(как, например, в WinSCP) на Python. Хотел бы...

Файловая система
Здравствуйте! Не могли бы вы подсказать как нужно форматировать логический диск, чтобы его видела...

0
17.04.2013, 10:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2013, 10:51
Помогаю со студенческими работами здесь

Файловая система
Сначала отключился xorg, при перезагрузке выскочила надпись: error unknown filesystem grub...

Файловая система в с++
Для многих задач на олимпиадах по информатике требуется файловая система.Начав изучать с++,я...

Файловая система
Помогите. Я уже копаюсь не первые сутки не могу нормально скомпилировать две части кода и...

файловая система
Дано целое число K&gt;0 и текстовый файл. Создать 2 файла: текстовый, содержащий 1-е K символов...

Файловая система
Дан каталог, в нем 3 любых файла. Нужно вывести список файлов(имя файла, размер), отсортированный...

Файловая система
1. Создать файл (любым способом) текстовый &gt; 10 МБ и &gt; 10 000 строк 2. Прочитать его построчно,...

Файловая система.
Задан файл F, состоящий из записей. Каждая запись содержит название книги, автора и год издания....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru