int get_nonce(struct idevicerestore_client_t* client, unsigned char** nonce, int* nonce_size) { *nonce = NULL; *nonce_size = 0; switch (client->mode->index) { case MODE_NORMAL: error("ERROR: Can't get nonce in Normal mode\n"); return -1; case MODE_DFU: if (dfu_get_nonce(client, nonce, nonce_size) < 0) { return -1; } break; case MODE_RECOVERY: if (recovery_get_nonce(client, nonce, nonce_size) < 0) { return -1; } break; default: error("ERROR: Device is in an invalid state\n"); return -1; } return 0; }
int get_nonce(struct idevicerestore_client_t* client, unsigned char** nonce, int* nonce_size) { *nonce = NULL; *nonce_size = 0; info("Getting nonce "); switch (client->mode->index) { case MODE_NORMAL: info("in normal mode... "); if (normal_get_nonce(client, nonce, nonce_size) < 0) { info("failed\n"); return -1; } break; case MODE_DFU: info("in dfu mode... "); if (dfu_get_nonce(client, nonce, nonce_size) < 0) { info("failed\n"); return -1; } break; case MODE_RECOVERY: info("in recovery mode... "); if (recovery_get_nonce(client, nonce, nonce_size) < 0) { info("failed\n"); return -1; } break; default: error("ERROR: Device is in an invalid state\n"); return -1; } int i = 0; for (i = 0; i < *nonce_size; i++) { info("%02x ", (*nonce)[i]); } info("\n"); return 0; }