Принудительно установите драйвер PC / S C на считывателе ACR1252U NF C и войдите в режим эмуляции карты, используя python - PullRequest
1 голос
/ 26 февраля 2020

Цель: позволить ACR1252U NF C войти в режим эмуляции карты, используя python на Ma c

У меня проблема с использованием устройства чтения карт ACS ACR1252U на macOS Catalina 10.15.3 с ПК / S C водитель. Я установил драйвер с веб-сайта ACS .

Используя библиотеку pyscard (http://pyscard.sourceforge.net/), следующий код python работает и возвращает правильный ввод Ответ в режиме эмуляции карты на windows компьютере: Введите формат команды и режима ответа карты в режиме эмуляции

import smartcard

hresult, hcontext = smartcard.scard.SCardEstablishContext( smartcard.scard.SCARD_SCOPE_USER )

hresult, readers = smartcard.scard.SCardListReaders( hcontext, [] )
print(readers)

hresult, hcard, dwActiveProtocol = smartcard.scard.SCardConnect(hcontext, readers[0], smartcard.scard.SCARD_SHARE_DIRECT, 0)

CTL_CODE = smartcard.scard.SCARD_CTL_CODE(3500)

apdu = [0xE0, 0x00, 0x00, 0x40, 0x03, 0x01, 0x00, 0x00]

hresult, response = smartcard.scard.SCardControl( hcard, CTL_CODE, apdu )

Но при Ma c выдает ошибку. Я следовал за этим ответом, чтобы изменить plist-файлы, но все еще получаю ту же ошибку:

python3 nfc.py
['ACS ACR1252 1S CL Reader(1)', 'ACS ACR1252 1S CL Reader(2)']
Traceback (most recent call last):
  File "nfc.py", line 17, in <module>
    hresult, response = smartcard.scard.SCardControl( hcard, CTL_CODE, apdu )
  File "/usr/local/lib/python3.7/site-packages/smartcard/scard/scard.py", line 408, in SCardControl
    return _scard.SCardControl(hcard, dwControlCode, inbuffer)
SystemError: <built-in function SCardControl> returned NULL without setting an error

Я установил libnf c с помощью homebrew, но я не уверен, как скомпилировать его в соответствии с 2 часть ответа.

Любая помощь будет принята с благодарностью.

...