diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/recovery.c | 17 | ||||
-rw-r--r-- | src/recovery.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/recovery.c b/src/recovery.c index dd544c1..51d2d1a 100644 --- a/src/recovery.c +++ b/src/recovery.c @@ -383,6 +383,23 @@ int recovery_get_ecid(struct idevicerestore_client_t* client, uint64_t* ecid) { return 0; } +int recovery_get_nonce(struct idevicerestore_client_t* client, unsigned char** nonce, int* nonce_size) { + irecv_error_t recovery_error = IRECV_E_SUCCESS; + + if(client->recovery == NULL) { + if (recovery_client_new(client) < 0) { + return -1; + } + } + + recovery_error = irecv_get_nonce(client->recovery->client, nonce, nonce_size); + if (recovery_error != IRECV_E_SUCCESS) { + return -1; + } + + return 0; +} + int recovery_get_cpid(struct idevicerestore_client_t* client, uint32_t* cpid) { irecv_error_t recovery_error = IRECV_E_SUCCESS; diff --git a/src/recovery.h b/src/recovery.h index 118ed4f..9018351 100644 --- a/src/recovery.h +++ b/src/recovery.h @@ -51,6 +51,7 @@ int recovery_send_devicetree(struct idevicerestore_client_t* client, plist_t bui int recovery_send_ramdisk(struct idevicerestore_client_t* client, plist_t build_identity); int recovery_send_kernelcache(struct idevicerestore_client_t* client, plist_t build_identity); int recovery_get_ecid(struct idevicerestore_client_t* client, uint64_t* ecid); +int recovery_get_nonce(struct idevicerestore_client_t* client, unsigned char** nonce, int* nonce_size); int recovery_get_cpid(struct idevicerestore_client_t* client, uint32_t* cpid); int recovery_get_bdid(struct idevicerestore_client_t* client, uint32_t* bdid); |