YK_KEY *yk_open_first_key(void) { YK_KEY *yk = _ykusb_open_device(YUBICO_VID, YUBIKEY_PID); int rc = yk_errno; if (yk) { YK_STATUS st; if (!yk_get_status(yk, &st)) { rc = yk_errno; yk_close_key(yk); yk = NULL; } } yk_errno = rc; return yk; }
YK_KEY *yk_open_first_key(void) { int pids[] = {YUBIKEY_PID, NEO_OTP_PID, NEO_OTP_CCID_PID}; YK_KEY *yk = _ykusb_open_device(YUBICO_VID, pids, sizeof(pids)); int rc = yk_errno; if (yk) { YK_STATUS st; if (!yk_get_status(yk, &st)) { rc = yk_errno; yk_close_key(yk); yk = NULL; } } yk_errno = rc; return yk; }
YK_KEY *yk_open_key(int index) { int pids[] = {YUBIKEY_PID, NEO_OTP_PID, NEO_OTP_CCID_PID, NEO_OTP_U2F_PID, NEO_OTP_U2F_CCID_PID, YK4_OTP_PID, YK4_OTP_U2F_PID, YK4_OTP_CCID_PID, YK4_OTP_U2F_CCID_PID, PLUS_U2F_OTP_PID}; YK_KEY *yk = _ykusb_open_device(YUBICO_VID, pids, sizeof(pids) / sizeof(int), index); int rc = yk_errno; if (yk) { YK_STATUS st; if (!yk_get_status(yk, &st)) { rc = yk_errno; yk_close_key(yk); yk = NULL; } } yk_errno = rc; return yk; }