QString YubiKeyWriter::reportError(bool chalresp = false) { QString errMsg; if (ykp_errno) { qDebug("Yubikey personalization error: %s\n", ykp_strerror(ykp_errno)); emit diagnostics(ykp_strerror(ykp_errno)); switch(ykp_errno) { case YKP_EYUBIKEYVER: case YKP_EOLDYUBIKEY: errMsg = tr(ERR_FEATURE_NOT_SUPPORTED); break; default: errMsg = tr(ERR_PROCESSING); break; } ykp_errno = 0; } else if (yk_errno) { if (yk_errno == YK_EUSBERR) { qDebug("USB error: %s\n", yk_usb_strerror()); emit diagnostics(QString("USB error: %1").arg(yk_usb_strerror())); } else { qDebug("Yubikey core error: %s\n", yk_strerror(yk_errno)); emit diagnostics(yk_strerror(yk_errno)); } switch(yk_errno) { case YK_ENOKEY: errMsg = tr(ERR_KEY_NOT_FOUND); break; case YK_EFIRMWARE: errMsg = tr(ERR_FIRMWARE_NOT_SUPPORTED); break; default: if(chalresp) { errMsg = tr(ERR_PROCESSING_CHALRESP); } else { errMsg = tr(ERR_PROCESSING); } break; } yk_errno = 0; } if(!errMsg.isEmpty()) { emit errorOccurred(errMsg); } return errMsg; }
void _check_success(int rc, YKP_CONFIG *cfg, unsigned char expected[], int caller_line) { struct config_st *ycfg; bool config_matches_expected = false; if (rc != 1) { fprintf(stderr, "TEST FAILED (line %i of %s)\n", caller_line, __FILE__); fprintf(stderr, "Error returned : %i/%i (%s)\n", rc, ykp_errno, ykp_strerror(ykp_errno)); } assert(rc == 1); ycfg = (struct config_st *) ykp_core_config(cfg); /* insert CRC */ ycfg->crc = ~yubikey_crc16 ((unsigned char *) ycfg, offsetof(struct config_st, crc)); ycfg->crc = yk_endian_swap_16(ycfg->crc); config_matches_expected = ! memcmp(expected, ycfg, sizeof(*ycfg)); if (! config_matches_expected) { fprintf(stderr, "TEST FAILED (line %i of %s)\n", caller_line, __FILE__); _yktest_hexdump ("BAD MATCH :\n", ycfg, sizeof(*ycfg), 7); _yktest_hexdump ("EXPECTED :\n", expected, sizeof(*ycfg), 7); } assert(config_matches_expected == true); }
static void report_yk_error() { if (ykp_errno) fprintf(stderr, "Yubikey personalization error: %s\n", ykp_strerror(ykp_errno)); if (yk_errno) { if (yk_errno == YK_EUSBERR) { fprintf(stderr, "USB error: %s\n", yk_usb_strerror()); } else { fprintf(stderr, "Yubikey core error: %s\n", yk_strerror(yk_errno)); } } }