Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Чтение электронного полиса ОМС  [new]
ShadowMen
Member

Откуда:
Сообщений: 12
Возникла необходимость считать данные со смарт-карты Полис ОМС
Карту подключить и определить смог. Получил атрибуты карты.
Далее затык... Куда копать?
PS Использую обертку WinSCard
30 май 14, 10:31    [16095782]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 23792
ShadowMen
Куда копать?

Копать в сторону "зачем я это сделал и что мне нужно в итоге?"
30 май 14, 10:35    [16095812]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
ShadowMen
Member

Откуда:
Сообщений: 12
wadman
"зачем я это сделал и что мне нужно в итоге?"

Возникла необходимость считать данные со смарт-карты Полис ОМС
30 май 14, 10:38    [16095835]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 23792
ShadowMen
wadman
"зачем я это сделал и что мне нужно в итоге?"

Возникла необходимость считать данные со смарт-карты Полис ОМС

Это понятно. С атрибутами то в чем проблема, раз они прочитаны? Зашифрованы?
30 май 14, 10:41    [16095849]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
ShadowMen
Member

Откуда:
Сообщений: 12
и что дальше делать со строкой ATR?
30 май 14, 10:51    [16095894]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
KIRCOMS
Member

Откуда:
Сообщений: 74
ShadowMen,

а исходник чтения полиса покажите пож-та если это возможно (возникла такая же потребность)
16 июл 14, 10:19    [16310457]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Leo3456
Member

Откуда:
Сообщений: 1
Я занимался этой темой все материалы которые удалось найти есть в статье http://myshinobi.ru/rabota-s-e-lektronny-mi-polisami-oms-smart-kartami-chast-pervaya/. Могу сказать просто командами не отделаетесь...Можно использовать готовые библиотеки они приложены в статье...А параметры вызова функций выдернуть из проекта на C++. Сейчас рабоатю над тем что реализовать это на Delphi.
30 мар 15, 20:35    [17451783]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Belavik
Member

Откуда: ПТ-У
Сообщений: 27693
ShadowMen
и что дальше делать со строкой ATR?

Чтобы прочитать карту - ATR не нужен. Это всего лишь параметр карты - ответ карты на операцию Reset. По этому параметру (в идеальных условиях) можно определить тип карты.
31 мар 15, 14:44    [17454643]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Belavik
Member

Откуда: ПТ-У
Сообщений: 27693
ShadowMen
wadman
"зачем я это сделал и что мне нужно в итоге?"

Возникла необходимость считать данные со смарт-карты Полис ОМС

Что за смарт-карта?
31 мар 15, 14:44    [17454647]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Belavik
Member

Откуда: ПТ-У
Сообщений: 27693
wadman
ShadowMen
пропущено...

Возникла необходимость считать данные со смарт-карты Полис ОМС

Это понятно. С атрибутами то в чем проблема, раз они прочитаны? Зашифрованы?

Всё зависит от типа карты.
31 мар 15, 14:46    [17454656]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Belavik
Member

Откуда: ПТ-У
Сообщений: 27693
Leo3456
Я занимался этой темой все материалы которые удалось найти есть в статье http://myshinobi.ru/rabota-s-e-lektronny-mi-polisami-oms-smart-kartami-chast-pervaya/. Могу сказать просто командами не отделаетесь...Можно использовать готовые библиотеки они приложены в статье...А параметры вызова функций выдернуть из проекта на C++. Сейчас рабоатю над тем что реализовать это на Delphi.

В этих исходниках ничего толкового. В чужой библиотеке метод, на вход которого подается наименование считывателя - на выходе данные. Были б исходники либы, была бы и возможность реализации своего метода чтения данных
31 мар 15, 15:02    [17454777]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Чтение электронного полиса ОМС  [new]
ShadowMen
Member

Откуда:
Сообщений: 12
Всё успешно решено после правильного применения APDU комманд. APDU комманды можно вытащить из примера на C++
31 окт 17, 08:38    [20914203]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Док
Member

Откуда: Казань
Сообщений: 5613
ShadowMen,

можно выложить код сюда? Идущий следом за тобой обязательно задаст вопрос, где взять примеры на С++. Следующим будет, как перевести этот код с "богомерзкого" © Си на дельфи :)
31 окт 17, 09:43    [20914389]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
ShadowMen
Member

Откуда:
Сообщений: 12
Это было в 2015 году... Исходники не сохранились за ненадобностью...
Но могу направить в нужное русло...
Чтение с карты осуществляется с помощью APDU комманд.
1. Подключаемся к карте. Получаем атрибуты карты (talkToMe в помощь)
2. Читаем root. Если всё сделано правильно должен возвратиться ответ с кодом 90

// Пример APDU комманд для чтения
00 a4 04 0c 09 66 6f 6d 73 5f 72 6f 6f 74 //Выбор foms_root
00 a4 04 0c 07 46 4f 4d 53 5f 49 44 //Выбор FOMS_ID
00 a4 02 0c 02 02 01 //Выбор файла 0201
00 b0 00 00 01 //(62)
00 b0 00 01 01 //(81)
00 b0 00 02 01 //(A7)
00 b0 00 03 a7 //Чтение данных
31 окт 17, 13:46    [20915412]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
ShadowMen
// Пример APDU комманд для чтения
00 a4 04 0c 09 66 6f 6d 73 5f 72 6f 6f 74 //Выбор foms_root
00 a4 04 0c 07 46 4f 4d 53 5f 49 44 //Выбор FOMS_ID
00 a4 02 0c 02 02 01 //Выбор файла 0201
00 b0 00 00 01 //(62)
00 b0 00 01 01 //(81)
00 b0 00 02 01 //(A7)
00 b0 00 03 a7 //Чтение данных


доброе время суток
а это точно для смарт-карты с полисом команды?
у меня на каждую из них возвращается 6D00
5 янв 18, 05:38    [21082669]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
заработало, какие-то данные увидел
теперь надо понять что это за данные и как их декодировать

автор
5F 26 10 36 31 35 31 37 31 30 38 38 36 30 30 30 34 36 30 5F 21 12 420 2018 420 A0 420 452 420 45E 420 408 420 490 420 98 420 45C 420 452 5F 22 0C 420 201C 420 452 420 203A 420 98 420 45C 420 452 5F 23 14 420 45C 420 98 420 459 420 45B 420 203A 420 452 420 2022 420 2019 420 45C 420 452 5F 25 01 02 5F 24 04 13 08 19 201A 7F 30 33 5F 31 06 420 A0 420 45B 420 A4 5F 32 27 420 A0 420 455 421 403 421 403 420 451 420 2116 421 403 420 454 420 B0 421 40F 20 420 A4 420 B5 420 491 420 B5 421 402 420 B0 421 2020 420 451 421 40F 5F 29 12 420 A0 420 45B 420 40E 420 45E 420 45B 420 2019 2D 420 45C 2F 420 201D 5F 2A 04 452 00
5 янв 18, 09:04    [21082769]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
ShadowMen
// Пример APDU комманд для чтения
00 b0 00 03 a7 //Чтение данных


данные получилось увидеть, но это только часть того, что на полисе лежит
какими командами остальное увидеть можно?
5 янв 18, 17:13    [21083496]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
mvb
Member

Откуда: Казань
Сообщений: 1367
genok, фонд омс когда-то раздавал pcbcode.dll для дешифровки этих данных, сейчас не знаю.
6 янв 18, 22:48    [21085192]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
mvb
genok, фонд омс когда-то раздавал pcbcode.dll для дешифровки этих данных, сейчас не знаю.


библиотеку эту очень не хотелось бы использовать

так и не могу остальные коды APВDU найти
неужто нет ни у кого?
4 мар 18, 05:33    [21235430]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Dstr1100
Member

Откуда:
Сообщений: 2
Всем привет. Благодаря вашей ветке получилось почти домучать ОМС полис.
Выполняя команды

ShadowMen
// Пример APDU комманд для чтения
00 a4 04 0c 09 66 6f 6d 73 5f 72 6f 6f 74 //Выбор foms_root
00 a4 04 0c 07 46 4f 4d 53 5f 49 44 //Выбор FOMS_ID
00 a4 02 0c 02 02 01 //Выбор файла 0201
00 b0 00 00 01 //(62)
00 b0 00 01 01 //(81)
00 b0 00 02 01 //(A7)
00 b0 00 03 a7 //Чтение данных

получил схожий набор данных как genok. Расшифровать их можно без дополнительных сторонних библиотек. Что бы увидеть результат, можно вставить выходной результат в Notepad++ (выделить весь текс) – Плагины-Converter-Hex to ANSII . А дальше кто на чем пишет (у меня задача на Java).
Между блоками 5F 26 и 5F 21 (Номер полиса)
Между блоками 5F 21 и 5F 22 (Фамилия)
Между блоками 5F 22 и 5F 23 (Имя)
Между блоками 5F 23 и 5F 25 (Отчество)
Между блоками 5F 24 и 5F 31 (Дата рождения в открытом виде ее сразу видно) остальные данные (наверно ОКАТО на двух полисах одинаково)
Между блоками 5F 31 и 5F 32 (Гражданство)
Между блоками 5F 32 и 5F 29 (Гражданин)
Между блоками 5F 29 и 90 00 (Кусок от Места рождения).
Возможно между 5F 25 и 5F 24 пол. (для тестов нет женского полиса только 2 мужских)
Название страховой находится в другом файле (00 a4 02 0c 02 02 01 //Выбор файла 0201). Пробовал 02 02 , 02 00, 03 01 В каком то вывалил информацию о карте. Может кто знает где лежат остальные данные?
19 апр 18, 15:42    [21352347]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
Dstr1100,

там чуть не так
5F 26 - обозначение блока
далее - его длина, её нужно использовать

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

по поводу остальных данных - остальная часть насколько я понял зашифрована
второй файл - это как раз сертификат ФОМСа и еще куча чего-то.
ХЗ как вытащить данные, так и не победил
21 апр 18, 02:07    [21356460]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
Dstr1100,

вот еще про данные было
[url=]http://www.sql.ru/forum/1286879/javascript-delphi[/url]
21 апр 18, 02:47    [21356470]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
Dstr1100
Member

Откуда:
Сообщений: 2
genok,
Спасибо. Допилю.
Остальные зашифрованные данные в каком именно файле (попробую расшифровать)?
23 апр 18, 10:50    [21359935]     Ответить | Цитировать Сообщить модератору
 Re: Чтение электронного полиса ОМС  [new]
genok
Member

Откуда: med-registratura.net
Сообщений: 364
00 a4 02 0c 02 02 02 //Выбор файла 0202

насколько понял, тут
читал кусками его, он большой
25 апр 18, 02:26    [21366385]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить