mirror of
https://github.com/fluxerapp/fluxer.git
synced 2026-09-02 21:04:06 +03:00
23 lines
714 B
Python
23 lines
714 B
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import ctypes
|
|
import sys
|
|
|
|
device_path = sys.argv[1].encode() if len(sys.argv) > 1 else b"/dev/hidraw4"
|
|
pin = sys.argv[2].encode() if len(sys.argv) > 2 else b"123456"
|
|
|
|
lib = ctypes.CDLL("libfido2.so.1")
|
|
lib.fido_init(0)
|
|
lib.fido_dev_new.restype = ctypes.c_void_p
|
|
lib.fido_strerr.restype = ctypes.c_char_p
|
|
|
|
dev = lib.fido_dev_new()
|
|
rc = lib.fido_dev_open(ctypes.c_void_p(dev), device_path)
|
|
if rc != 0:
|
|
print(f"open failed rc={rc} {lib.fido_strerr(rc).decode()}")
|
|
sys.exit(1)
|
|
rc = lib.fido_dev_set_pin(ctypes.c_void_p(dev), pin, None)
|
|
print(f"set_pin rc={rc} {lib.fido_strerr(rc).decode()}")
|
|
lib.fido_dev_close(ctypes.c_void_p(dev))
|
|
sys.exit(0 if rc == 0 else 1)
|