示例#1
0
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;
}
示例#2
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;
}