[PYTHON] Mac Edition, die IC-Karten mit PaSoRi RC-S380 / P liest

Was ist PaSoRi RC-S380 / P?

Dieses Ding https://www.sony.co.jp/Products/felica/consumer/products/RC-S380.html

Versuchen Sie, verschiedene IC-Karten damit zu lesen.

Was diesmal zu versuchen

Test Umgebung

Leider unterstützt nfcpy Python 3 noch nicht. (Stand 30. September 2016)

Bibliotheksvorbereitung

Verwenden Sie nfcpy.

$ brew install libusb
$ brew install libusb-compat
$ brew install bzr
$ sudo pip install pyusb libusb1 pyserial
$ bzr branch lp:nfcpy trunk

Führen Sie die Probe aus

$ python examples/tagtool.py show
Traceback (most recent call last):
  File "examples/tagtool.py", line 37, in <module>
    from cli import CommandLineInterface
  File "/Users/ryo/programming/python/trunk/examples/cli.py", line 35, in <module>
    import nfc
  File "/Users/ryo/programming/python/trunk/nfc/__init__.py", line 28, in <module>
    from clf import ContactlessFrontend
  File "/Users/ryo/programming/python/trunk/nfc/clf/__init__.py", line 34, in <module>
    import nfc.llcp
  File "/Users/ryo/programming/python/trunk/nfc/llcp/__init__.py", line 31, in <module>
    from llc import LOGICAL_DATA_LINK, DATA_LINK_CONNECTION
  File "/Users/ryo/programming/python/trunk/nfc/llcp/llc.py", line 41, in <module>
    from . import sec
  File "/Users/ryo/programming/python/trunk/nfc/llcp/sec.py", line 490, in <module>
    OpenSSL = OpenSSLWrapper(libcrypto)
  File "/Users/ryo/programming/python/trunk/nfc/llcp/sec.py", line 183, in __init__
    self.crypto.EC_KEY_set_public_key_affine_coordinates.restype = c_int
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 378, in __getattr__
    func = self.__getitem__(name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 383, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: dlsym(0x7fecdb411890, EC_KEY_set_public_key_affine_coordinates): symbol not found

Ich habe einen Fehler bekommen. Da es bei OpenSSL einen Fehler gibt, dachte ich, dass er behoben werden würde, wenn ich OpenSSL neu installiere, aber wie erwartet war OpenSSL nicht die neueste, also brauen Sie die Installation.

$ brew install openssl
ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/libcrypto.dylib
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/libssl.dylib

Nachdem Sie bestätigt haben, dass OpenSSL neu ist, führen Sie es erneut aus.

$ python examples/tagtool.py show
[nfc.clf] searching for reader on path usb
[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:020:005
** waiting for a tag **
Type3Tag 'FeliCa Standard (RC-S???)' ID=xxxxxxxxxxxxxxxx PMM=xxxxxxxxxxxxxxxx SYS=0003
$ python examples/tagtool.py show
[nfc.clf] searching for reader on path usb
[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:020:005
** waiting for a tag **
Type3Tag 'FeliCa Standard (RC-SA00/1)' ID=xxxxxxxxxxxxxxxx PMM=xxxxxxxxxxxxxxxx SYS=04C7

Die erste Karte ist Suica, die zweite Karte ist Nanaco und der dritte Karten-E-Pass kann nicht gelesen werden, weil die Karte kaputt ist (vielleicht weil ich sie versehentlich gewaschen habe ...)

Lesen Sie hier mehr über Felica http://www.sony.co.jp/Products/felica/business/tech-support/data/code_descriptions_1.2.pdf

Artikel, auf die verwiesen wird

what's Next Es gibt einen Himbeerkuchen, der kostenlos zu sein scheint, also werde ich versuchen, das Anwesenheitsmanagement usw. damit zu erstellen

Recommended Posts

Mac Edition, die IC-Karten mit PaSoRi RC-S380 / P liest
Visualisieren Sie Punkt P, der mit Python funktioniert
Lesen Sie FeliCa mit Pasori (RC-380S) auf dem Mac