summaryrefslogtreecommitdiffstats
path: root/src/lockdown.c
AgeCommit message (Collapse)AuthorFilesLines
2024-01-31Move LIBIMOBILEDEVICE_API to public headersGravatar Nikias Bassen1-28/+28
2022-10-04lockdown: Fix error parsing for older iOS versionsGravatar Nikias Bassen1-35/+19
A logical bug did prevent parsing the 'Error' node since the code path is never reached when a 'Result' node is found first. This is mitigated by always checking for the 'Error' node first.
2022-05-02lockdownd: Fix memory leaks in error conditionsGravatar Sami Kortelainen1-0/+3
2022-04-30[clang-tidy] Do not use else after returnGravatar Rosen Penev1-10/+10
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-04-22[clang-tidy] Fix bugprone string compareGravatar Rosen Penev1-1/+1
Found with bugprone-suspicious-string-compare Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-02-09Add support for wireless pairingGravatar Nikias Bassen1-2/+10
2021-09-01Remove common code in favor of new libimobiledevice-glueGravatar Nikias Bassen1-1/+1
2021-07-29lockdown: Replace udid and mux_id members from client struct with idevice_t ↵Gravatar Nikias Bassen1-24/+18
reference
2021-07-29lockdown: Get DeviceClass to make sure OS version dependent code is executed ↵Gravatar Nikias Bassen1-1/+25
correctly The code in lockdownd_client_new_with_handshake would call the function lockdownd_validate_pair based on the OS version being less than 7.0 without taking into account that Watch OS has a different versioning scheme compared to the other device classes. For this and any future version/device specific checks, the code now queries the DeviceClass and stores it in the idevice_private struct.
2021-07-29Handle error cases in relevant code when retrieving pair record failsGravatar Nikias Bassen1-8/+40
2020-09-10debugserver: Fix service startup for iOS 14b4+Gravatar Nikias Bassen1-1/+4
2020-06-10lockdown: Remove unused includesGravatar Nikias Bassen1-9/+0
2019-11-08Add new function lockdown_strerror() to get a readable description of a ↵Gravatar Nikias Bassen1-62/+84
lockdownd_error_t
2019-09-05idevice: Fix handling SSL/TLS version selection for OpenSSL 1.1.0+ and for ↵Gravatar Nikias Bassen1-2/+2
older devices
2019-06-23replace all occurrences of occured by occurredGravatar Yves-Alexis Perez1-1/+1
Do it in all comments and errors messages
2019-02-12lockdown: Make sure to return correct error code when pairing failsGravatar Nikias Bassen1-1/+1
2018-09-29lockdown: Pass along usbmux device id when saving pair recordsGravatar Nikias Bassen1-1/+2
2017-12-08lockdown: Plug small memory leakGravatar Nikias Bassen1-0/+1
Credit to Rudolf Tammekivi (Blefish), see issue #599
2017-08-13lockdown: Don't explicitly validate pairing unless we're dealing with an ↵Gravatar Nikias Bassen1-12/+25
older device On newer iOS version, ValidatePair is not mandatory to gain trusted host status. Starting with iOS 11, the ValidatePair request has been removed from lockdownd and will throw an error. This commit adds a version check so that ValidatePair is only called on devices prior iOS 7.
2017-04-08Propagate lower level errors to callers instead of returning unknownGravatar BALATON Zoltan1-36/+40
error for most failures
2016-08-09lockdown: return LOCKDOWN_E_INVALID_HOST_ID when missing pair recordGravatar Jay Freeman (saurik)1-1/+1
When the check of /var/db/lockdown was removed, lockdownd_do_pair started to always return LOCKDOWN_E_INVALID_CONF instead of usually (but not always...) returning LOCKDOWN_E_INVALID_HOST_ID for devices not currently paired. This change not only breaks some third-party code, but also breaks the other code in this library calling this function (lockdownd_client_new_with_handshake).
2016-07-27lockdown: remove unnecessary check for pair record file during pairingGravatar Jay Freeman (saurik)1-7/+3
During device pairing the code in lockdownd_do_pair() is checking if there is a pair record on disk for the current device, and then requests it from usbmuxd. This additional check is not only unnecessary since usbmuxd can obviously only return a pair record if it exists, but is also causing issues on newer versions of macOS where /var/db/lockdown is mode 700.
2016-04-01Avoid potential NULL pointer dereference (leading to segfault) if functions ↵Gravatar BALATON Zoltan1-1/+1
are called with NULL arguments
2015-07-15lockdown: Add new lockdownd_pair_with_options() functionGravatar Nikias Bassen1-9/+28
2015-07-10lockdown: Add more error codesGravatar Nikias Bassen1-1/+9
2015-05-24lockdown: Remove unneeded plist_free() calls since entire dict is freed laterGravatar Nikias Bassen1-5/+0
2015-01-28Remove trailing whitespace errors from all filesGravatar Martin Szulecki1-1/+1
2015-01-12lockdown: Refactor internal error checking and add more native errors to enumGravatar Martin Szulecki1-82/+123
2014-12-10lockdown: Add new LOCKDOWN_E_SERVICE_LIMIT error to detect service limit statesGravatar Martin Szulecki1-0/+2
2014-10-26lockdown: Fix error in re-pairing when previous record became invalidGravatar BALATON Zoltan1-9/+5
When connecting with an existing pair record failed we attempted to pair again which generated a new host id but then connect after successful pairing tried to use host id from the old record and failed. Make sure we forget the old host id when re-pairing. This also fixes a possible memory leak.
2014-10-05Convert int16_t macro error types into enum to improve debugging/type-checkingGravatar Martin Szulecki1-3/+5
This simple change provides various benefits for developers like compile time errors, better auto-completition in editors and the ability of a debugger to show the constant instead of just the raw value. Thanks to Aaron Burghardt for the proposal.
2014-10-03Avoid exporting non-public symbolsGravatar Martin Szulecki1-27/+26
2014-10-02lockdown: Added lockdownd_start_service_with_escrow_bagGravatar Koby Boyango1-5/+79
Signed-off-by: Martin Szulecki <m.szulecki@libimobiledevice.org>
2014-08-06lockdown: Only set SystemBUID in pair_record_generate() if it actually ↵Gravatar Nikias Bassen1-1/+2
contains a value This will prevent a crash in libplist when plist_new_string() will be called with a NULL pointer.
2014-08-06lockdown: Silence compiler warning about ignored return value from asprintf()Gravatar Nikias Bassen1-8/+10
2014-05-05lockdown: cleanup: remove pointless gotoGravatar Andreas Henriksson1-4/+0
Minor cleanup. Drop useless code. We're already at "leave", so there's no need to (conditionally!) goto it.
2014-05-05lockdown: avoid crashing when getting system buid failsGravatar Andreas Henriksson1-2/+3
When userpref_read_system_buid fails to retrieve the buid, systembuid will be set to NULL. It was then unconditionally passed to plist_new_string - which will crash with a NULL argument. See https://bugs.debian.org/730756 for people reporting this happening in the real world. See https://github.com/libimobiledevice/libimobiledevice/commit/1331f6baa1799e41003aa812c0d1bf36193535ea ("lockdown: Make sure to set SystemBUID in generated pair records") for the commit where this problem was introduced.
2014-03-27Moved Doxygen comments from source files to public headers.Gravatar Aaron Burghardt1-278/+1
Conflicts: include/libimobiledevice/afc.h
2014-03-27lockdown: Return error if getting a lockdown value failed to fix segfaultGravatar Martin Szulecki1-0/+2
https://github.com/libimobiledevice/libimobiledevice/issues/67 The lockdownd_get_value() function is not properly handling an error situation. The code logic always returned success as long as the lockdown response was properly received. Thanks to Aaron Burghardt for spotting this.
2014-03-24lockdown: Prevent libplist assertion by checking result of ↵Gravatar Nikias Bassen1-4/+10
userpref_read_pair_record()
2014-03-22Update copyright in various filesGravatar Martin Szulecki1-0/+2
2014-03-21lockdown: Fix starting unsecure services as needed during trust dialog pairingGravatar Martin Szulecki1-14/+0
2014-03-21lockdown: Fix fetching WiFi address for pair record after trust dialog pairingGravatar Martin Szulecki1-12/+20
2014-03-21lockdown: Correct a few comments within pair generation codeGravatar Martin Szulecki1-1/+2
2014-03-21lockdown: Move HostID generation closer to code setting it in pair recordGravatar Martin Szulecki1-2/+1
2014-03-21lockdown: Read HostID again after pairing to fix first pair workflowGravatar Martin Szulecki1-0/+7
2014-03-21userpref: merge pair_record_generate_from_device_public_key() into ↵Gravatar Nikias Bassen1-15/+1
pair_record_generate_keys_and_certs()
2014-03-21lockdown: Make sure failed pairing validation works with correct error codeGravatar Martin Szulecki1-1/+1
2014-03-21lockdown: Plug memory leak due to missing free of public_keyGravatar Martin Szulecki1-0/+3
2014-03-21lockdown: Make sure to set SystemBUID in generated pair recordsGravatar Martin Szulecki1-1/+2