Copy disabled (too large)
Download .txt
Showing preview only (15,603K chars total). Download the full file to get everything.
Repository: rileytestut/AltServer-Windows
Branch: master
Commit: 41fb42bc7805
Files: 947
Total size: 34.2 MB
Directory structure:
gitextract_649kq8sq/
├── .gitignore
├── .gitmodules
├── AltInstaller/
│ └── AltInstaller.vdproj
├── AltServer/
│ ├── AltServer.cpp
│ ├── AltServer.vcxproj
│ ├── AltServer.vcxproj.filters
│ ├── AltServerApp.cpp
│ ├── AltServerApp.h
│ ├── AnisetteDataManager.cpp
│ ├── AnisetteDataManager.h
│ ├── C
│ ├── ClientConnection.cpp
│ ├── ClientConnection.h
│ ├── ConnectionManager.cpp
│ ├── ConnectionManager.hpp
│ ├── DeviceManager.cpp
│ ├── DeviceManager.hpp
│ ├── InstallError.hpp
│ ├── NotificationConnection.cpp
│ ├── NotificationConnection.h
│ ├── Resource.aps
│ ├── Resource.rc
│ ├── Semaphore.h
│ ├── ServerError.cpp
│ ├── ServerError.hpp
│ ├── WiredConnection.cpp
│ ├── WiredConnection.h
│ ├── WirelessConnection.cpp
│ ├── WirelessConnection.h
│ └── resource.h
├── AltServer.sln
├── AltSign/
│ ├── Account.cpp
│ ├── Account.hpp
│ ├── AltSign.vcxproj
│ ├── AltSign.vcxproj.filters
│ ├── AnisetteData.cpp
│ ├── AnisetteData.h
│ ├── AppGroup.cpp
│ ├── AppGroup.hpp
│ ├── AppID.cpp
│ ├── AppID.hpp
│ ├── AppleAPI+Authentication.cpp
│ ├── AppleAPI.cpp
│ ├── AppleAPI.hpp
│ ├── AppleAPISession.cpp
│ ├── AppleAPISession.h
│ ├── Application.cpp
│ ├── Application.hpp
│ ├── Archiver.cpp
│ ├── Archiver.hpp
│ ├── Certificate.cpp
│ ├── Certificate.hpp
│ ├── CertificateRequest.cpp
│ ├── CertificateRequest.hpp
│ ├── Dependencies/
│ │ ├── corecrypto/
│ │ │ ├── cc.h
│ │ │ ├── cc_config.h
│ │ │ ├── cc_debug.h
│ │ │ ├── cc_memory.h
│ │ │ ├── cc_priv.h
│ │ │ ├── cc_runtime_config.h
│ │ │ ├── ccaes.h
│ │ │ ├── ccansikdf.h
│ │ │ ├── ccasn1.h
│ │ │ ├── ccblowfish.h
│ │ │ ├── cccast.h
│ │ │ ├── ccchacha20poly1305.h
│ │ │ ├── ccchacha20poly1305_priv.h
│ │ │ ├── cccmac.h
│ │ │ ├── ccder.h
│ │ │ ├── ccder_decode_eckey.h
│ │ │ ├── ccder_encode_eckey.h
│ │ │ ├── ccder_priv.h
│ │ │ ├── ccder_rsa.h
│ │ │ ├── ccdes.h
│ │ │ ├── ccdh.h
│ │ │ ├── ccdh_gp.h
│ │ │ ├── ccdh_priv.h
│ │ │ ├── ccdigest.h
│ │ │ ├── ccdigest_priv.h
│ │ │ ├── ccdrbg.h
│ │ │ ├── ccdrbg_factory.h
│ │ │ ├── ccdrbg_impl.h
│ │ │ ├── ccec.h
│ │ │ ├── ccec25519.h
│ │ │ ├── ccec25519_priv.h
│ │ │ ├── ccec_priv.h
│ │ │ ├── ccecies.h
│ │ │ ├── ccecies_priv.h
│ │ │ ├── cchkdf.h
│ │ │ ├── cchmac.h
│ │ │ ├── ccmd2.h
│ │ │ ├── ccmd4.h
│ │ │ ├── ccmd5.h
│ │ │ ├── ccmode.h
│ │ │ ├── ccmode_factory.h
│ │ │ ├── ccmode_impl.h
│ │ │ ├── ccmode_siv.h
│ │ │ ├── ccmode_siv_priv.h
│ │ │ ├── ccn.h
│ │ │ ├── ccn_priv.h
│ │ │ ├── ccnistkdf.h
│ │ │ ├── ccpad.h
│ │ │ ├── ccpbkdf2.h
│ │ │ ├── ccperf.h
│ │ │ ├── ccprime.h
│ │ │ ├── ccrc2.h
│ │ │ ├── ccrc4.h
│ │ │ ├── ccripemd.h
│ │ │ ├── ccrng.h
│ │ │ ├── ccrng_drbg.h
│ │ │ ├── ccrng_ecfips_test.h
│ │ │ ├── ccrng_pbkdf2_prng.h
│ │ │ ├── ccrng_priv.h
│ │ │ ├── ccrng_rsafips_test.h
│ │ │ ├── ccrng_sequence.h
│ │ │ ├── ccrng_system.h
│ │ │ ├── ccrng_test.h
│ │ │ ├── ccrsa.h
│ │ │ ├── ccrsa_priv.h
│ │ │ ├── ccsha1.h
│ │ │ ├── ccsha2.h
│ │ │ ├── ccsrp.h
│ │ │ ├── ccsrp_gp.h
│ │ │ ├── cctest.h
│ │ │ ├── ccwrap.h
│ │ │ ├── ccz.h
│ │ │ ├── ccz_priv.h
│ │ │ ├── cczp.h
│ │ │ ├── cczp_priv.h
│ │ │ ├── corecrypto.lib
│ │ │ └── fipspost.h
│ │ ├── minizip/
│ │ │ ├── ChangeLogUnzip
│ │ │ ├── Makefile
│ │ │ ├── crypt.h
│ │ │ ├── ioapi.c
│ │ │ ├── ioapi.h
│ │ │ ├── iowin32.c
│ │ │ ├── iowin32.h
│ │ │ ├── miniunz.c
│ │ │ ├── minizip.c
│ │ │ ├── mztools.c
│ │ │ ├── mztools.h
│ │ │ ├── unzip.c
│ │ │ ├── unzip.h
│ │ │ ├── zip.c
│ │ │ └── zip.h
│ │ ├── mman/
│ │ │ ├── .gitignore
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── UpgradeLog.htm
│ │ │ ├── configure
│ │ │ ├── mman-win32.pro
│ │ │ ├── mman.cpp
│ │ │ ├── mman.h
│ │ │ ├── mman.sln
│ │ │ ├── mman.vcxproj
│ │ │ ├── mman.vcxproj.filters
│ │ │ └── test.c
│ │ └── regex/
│ │ ├── contrib/
│ │ │ └── regex/
│ │ │ └── 2.7/
│ │ │ └── regex-2.7-GnuWin32.README
│ │ ├── include/
│ │ │ └── regex.h
│ │ ├── lib/
│ │ │ ├── libregex.dll.a
│ │ │ ├── libregex.la
│ │ │ ├── regex-bcc.lib
│ │ │ ├── regex.lib
│ │ │ └── regex2.def
│ │ ├── man/
│ │ │ ├── cat3/
│ │ │ │ ├── regcomp.3.txt.lnk
│ │ │ │ ├── regcomp.3p.txt
│ │ │ │ ├── regerror.3.txt.lnk
│ │ │ │ ├── regerror.3p.txt.lnk
│ │ │ │ ├── regex.3.txt
│ │ │ │ ├── regexec.3.txt.lnk
│ │ │ │ ├── regexec.3p.txt.lnk
│ │ │ │ ├── regfree.3.txt.lnk
│ │ │ │ └── regfree.3p.txt.lnk
│ │ │ ├── cat3p/
│ │ │ │ ├── regcomp.3p.txt
│ │ │ │ ├── regerror.3p.txt.lnk
│ │ │ │ ├── regexec.3p.txt.lnk
│ │ │ │ └── regfree.3p.txt.lnk
│ │ │ └── cat7/
│ │ │ └── regex.7.txt
│ │ └── manifest/
│ │ ├── regex-2.7-bin.mft
│ │ └── regex-2.7-bin.ver
│ ├── Device.cpp
│ ├── Device.hpp
│ ├── Error.hpp
│ ├── PrefixHeader.pch
│ ├── ProvisioningProfile.cpp
│ ├── ProvisioningProfile.hpp
│ ├── Signer.cpp
│ ├── Signer.hpp
│ ├── Team.cpp
│ └── Team.hpp
├── AppPackage/
│ ├── AppPackage.wapproj
│ └── Package.appxmanifest
├── Dependencies/
│ ├── Libraries/
│ │ ├── WinSparkle.lib
│ │ ├── WinSparkle.pdb
│ │ ├── libcrypto.def
│ │ ├── libcrypto.lib
│ │ ├── libeay32.def
│ │ ├── libeay32.lib
│ │ ├── libssl.def
│ │ ├── libssl.lib
│ │ ├── ssleay32.def
│ │ └── ssleay32.lib
│ ├── WinSparkle/
│ │ ├── AUTHORS
│ │ ├── COPYING
│ │ ├── COPYING.expat
│ │ ├── NEWS
│ │ ├── README.md
│ │ └── include/
│ │ ├── winsparkle-version.h
│ │ └── winsparkle.h
│ └── corecrypto/
│ ├── cc.h
│ ├── cc_config.h
│ ├── cc_debug.h
│ ├── cc_memory.h
│ ├── cc_priv.h
│ ├── cc_runtime_config.h
│ ├── ccaes.h
│ ├── ccansikdf.h
│ ├── ccasn1.h
│ ├── ccblowfish.h
│ ├── cccast.h
│ ├── ccchacha20poly1305.h
│ ├── ccchacha20poly1305_priv.h
│ ├── cccmac.h
│ ├── ccder.h
│ ├── ccder_decode_eckey.h
│ ├── ccder_encode_eckey.h
│ ├── ccder_priv.h
│ ├── ccder_rsa.h
│ ├── ccdes.h
│ ├── ccdh.h
│ ├── ccdh_gp.h
│ ├── ccdh_priv.h
│ ├── ccdigest.h
│ ├── ccdigest_priv.h
│ ├── ccdrbg.h
│ ├── ccdrbg_factory.h
│ ├── ccdrbg_impl.h
│ ├── ccec.h
│ ├── ccec25519.h
│ ├── ccec25519_priv.h
│ ├── ccec_priv.h
│ ├── ccecies.h
│ ├── ccecies_priv.h
│ ├── cchkdf.h
│ ├── cchmac.h
│ ├── ccmd2.h
│ ├── ccmd4.h
│ ├── ccmd5.h
│ ├── ccmode.h
│ ├── ccmode_factory.h
│ ├── ccmode_impl.h
│ ├── ccmode_siv.h
│ ├── ccmode_siv_priv.h
│ ├── ccn.h
│ ├── ccn_priv.h
│ ├── ccnistkdf.h
│ ├── ccpad.h
│ ├── ccpbkdf2.h
│ ├── ccperf.h
│ ├── ccprime.h
│ ├── ccrc2.h
│ ├── ccrc4.h
│ ├── ccripemd.h
│ ├── ccrng.h
│ ├── ccrng_drbg.h
│ ├── ccrng_ecfips_test.h
│ ├── ccrng_pbkdf2_prng.h
│ ├── ccrng_priv.h
│ ├── ccrng_rsafips_test.h
│ ├── ccrng_sequence.h
│ ├── ccrng_system.h
│ ├── ccrng_test.h
│ ├── ccrsa.h
│ ├── ccrsa_priv.h
│ ├── ccsha1.h
│ ├── ccsha2.h
│ ├── ccsrp.h
│ ├── ccsrp_gp.h
│ ├── cctest.h
│ ├── ccwrap.h
│ ├── ccz.h
│ ├── ccz_priv.h
│ ├── cczp.h
│ ├── cczp_priv.h
│ └── fipspost.h
├── LICENSE
├── README.md
├── UpgradeLog.htm
├── Xcode/
│ └── AltServer-Windows/
│ ├── AltServer-Windows/
│ │ ├── AltServer_Windows.entitlements
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.mm
│ │ ├── Assets.xcassets/
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ ├── Base.lproj/
│ │ │ └── MainMenu.xib
│ │ ├── Info.plist
│ │ ├── Windows/
│ │ │ ├── Connection.cpp
│ │ │ ├── Connection.hpp
│ │ │ ├── ConnectionManager.cpp
│ │ │ ├── ConnectionManager.hpp
│ │ │ ├── DeviceManager.cpp
│ │ │ ├── DeviceManager.hpp
│ │ │ ├── InstallError.hpp
│ │ │ ├── ServerError.cpp
│ │ │ └── ServerError.hpp
│ │ └── main.m
│ ├── AltServer-Windows.xcodeproj/
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata/
│ │ │ └── Riley.xcuserdatad/
│ │ │ ├── UserInterfaceState.xcuserstate
│ │ │ └── xcdebugger/
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ ├── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ └── AltServer-Windows.xcscheme
│ │ └── xcuserdata/
│ │ └── Riley.xcuserdatad/
│ │ ├── xcdebugger/
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes/
│ │ └── xcschememanagement.plist
│ └── AltSign-Windows/
│ ├── Account.cpp
│ ├── Account.hpp
│ ├── AltSign_WindowsPriv.hpp
│ ├── AppID.cpp
│ ├── AppID.hpp
│ ├── AppleAPI.cpp
│ ├── AppleAPI.hpp
│ ├── Application.cpp
│ ├── Application.hpp
│ ├── Archiver.cpp
│ ├── Archiver.hpp
│ ├── Certificate.cpp
│ ├── Certificate.hpp
│ ├── CertificateRequest.cpp
│ ├── CertificateRequest.hpp
│ ├── Dependencies/
│ │ └── minizip/
│ │ ├── ChangeLogUnzip
│ │ ├── Makefile
│ │ ├── crypt.h
│ │ ├── ioapi.c
│ │ ├── ioapi.h
│ │ ├── iowin32.c
│ │ ├── iowin32.h
│ │ ├── miniunz.c
│ │ ├── minizip.c
│ │ ├── mztools.c
│ │ ├── mztools.h
│ │ ├── unzip.c
│ │ ├── unzip.h
│ │ ├── zip.c
│ │ └── zip.h
│ ├── Device.cpp
│ ├── Device.hpp
│ ├── Error.cpp
│ ├── Error.hpp
│ ├── PrefixHeader.pch
│ ├── ProvisioningProfile.cpp
│ ├── ProvisioningProfile.hpp
│ ├── Signer.cpp
│ ├── Signer.hpp
│ ├── Team.cpp
│ └── Team.hpp
├── ldid2/
│ ├── .gitignore
│ ├── .gitmodules
│ ├── COPYING
│ ├── control
│ ├── control.sh
│ ├── deb.sh
│ ├── ios.sh
│ ├── ldid.cpp
│ ├── ldid.hpp
│ ├── libplist/
│ │ ├── .gitignore
│ │ ├── AUTHORS
│ │ ├── COPYING
│ │ ├── COPYING.LESSER
│ │ ├── Makefile.am
│ │ ├── NEWS
│ │ ├── README.md
│ │ ├── autogen.sh
│ │ ├── configure.ac
│ │ ├── cython/
│ │ │ ├── Makefile.am
│ │ │ ├── plist.pxd
│ │ │ ├── plist.pyx
│ │ │ ├── plist_util.c
│ │ │ └── plist_util.h
│ │ ├── doxygen.cfg.in
│ │ ├── fuzz/
│ │ │ ├── Makefile.am
│ │ │ ├── bplist-crashes/
│ │ │ │ ├── clusterfuzz-testcase-4766291097288704
│ │ │ │ ├── clusterfuzz-testcase-4930725262393344
│ │ │ │ ├── clusterfuzz-testcase-5421965105954816
│ │ │ │ ├── clusterfuzz-testcase-5556177727389696
│ │ │ │ ├── clusterfuzz-testcase-6557963011489792
│ │ │ │ ├── clusterfuzz-testcase-6605859144597504
│ │ │ │ ├── crash-0ce4dd483b645bc05ec45a97d285dcf1933ee840
│ │ │ │ ├── crash-0d59cdcb5c3416c2790612b78a631ce9f5622800
│ │ │ │ ├── crash-17d635ab460fef74df1ac7561f1253533a6359c5
│ │ │ │ ├── crash-33a67313fa7864cd627ef92d12017a127d342f28
│ │ │ │ ├── crash-39f1347115f8fe9ac25cdc9332e3fc5cd32c7f7b
│ │ │ │ ├── crash-4bd78175fe01d07c5ee90104fbc68d95dd092210
│ │ │ │ ├── crash-4c5404453bb7425aef9b953a5f6f3f0afcc48392
│ │ │ │ ├── crash-52775e25f6af20af351cd616834e602fc988a032
│ │ │ │ ├── crash-6d1399685b745d3d49fadc91072fabcdde8d16fa
│ │ │ │ ├── crash-94b3725900d63c6258448fd757559c81002de9c9
│ │ │ │ ├── crash-a47195acbabc3f5b2cda9c6ebda42f2afc1cc5af
│ │ │ │ ├── crash-ce852bae6aeeffc4698a93660236f1b995ce966e
│ │ │ │ ├── crash-daddb6e82e3d1ed76e20e4131462f5247a6fb131
│ │ │ │ ├── crash-f21be4ebce7f9c337bf96b93cec7e252f5c75a21
│ │ │ │ └── crash-f779dafccc0164684d1a264976e56037188b40e2
│ │ │ ├── bplist-leaks/
│ │ │ │ ├── leak-96fb453b3ba18d31e164831795a708183b5a0dac
│ │ │ │ ├── leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1
│ │ │ │ └── leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074
│ │ │ ├── bplist.dict
│ │ │ ├── bplist_fuzzer.cc
│ │ │ ├── bplist_fuzzer.options
│ │ │ ├── fuzzers.test
│ │ │ ├── init-fuzzers.sh
│ │ │ ├── test-fuzzers.sh
│ │ │ ├── xplist-crashes/
│ │ │ │ ├── clusterfuzz-testcase-4516959125241856
│ │ │ │ ├── clusterfuzz-testcase-4663876528373760
│ │ │ │ ├── clusterfuzz-testcase-5799076113154048
│ │ │ │ ├── clusterfuzz-testcase-5922404220010496
│ │ │ │ ├── clusterfuzz-testcase-6015098361479168
│ │ │ │ ├── clusterfuzz-testcase-6043836860071936
│ │ │ │ ├── clusterfuzz-testcase-6047509906456576
│ │ │ │ ├── clusterfuzz-testcase-6482601374121984
│ │ │ │ ├── crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17
│ │ │ │ ├── crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1
│ │ │ │ ├── crash-348c909a0b3532977185f551eb5d2ed04e694883
│ │ │ │ ├── crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a
│ │ │ │ ├── crash-80c28b0e2a446665e68927dd4441c10c9a68e64e
│ │ │ │ ├── crash-8acf177da60ecf13c36d0da1b8e25de891980ea6
│ │ │ │ ├── crash-94276cf69a50e78dd6cdf079c208cb80f357cd33
│ │ │ │ ├── crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9
│ │ │ │ ├── crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9
│ │ │ │ ├── crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
│ │ │ │ └── crash-f03c680ee1c4d84c28e731752df77a61e213a24d
│ │ │ ├── xplist-leaks/
│ │ │ │ ├── clusterfuzz-testcase-4634751103139840
│ │ │ │ ├── clusterfuzz-testcase-6056412121661440
│ │ │ │ ├── leak-47b0a9f21d3affab6cfc898e5140bb53265ada07
│ │ │ │ ├── leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7
│ │ │ │ └── leak-53bc466851eda790bd891733da5db0a7482886bf
│ │ │ ├── xplist.dict
│ │ │ ├── xplist_fuzzer.cc
│ │ │ └── xplist_fuzzer.options
│ │ ├── include/
│ │ │ ├── Makefile.am
│ │ │ └── plist/
│ │ │ ├── Array.h
│ │ │ ├── Boolean.h
│ │ │ ├── Data.h
│ │ │ ├── Date.h
│ │ │ ├── Dictionary.h
│ │ │ ├── Integer.h
│ │ │ ├── Key.h
│ │ │ ├── Node.h
│ │ │ ├── Real.h
│ │ │ ├── String.h
│ │ │ ├── Structure.h
│ │ │ ├── Uid.h
│ │ │ ├── plist++.h
│ │ │ └── plist.h
│ │ ├── libcnary/
│ │ │ ├── COPYING
│ │ │ ├── Makefile.am
│ │ │ ├── README
│ │ │ ├── cnary.c
│ │ │ ├── include/
│ │ │ │ ├── node.h
│ │ │ │ ├── node_list.h
│ │ │ │ └── object.h
│ │ │ ├── node.c
│ │ │ └── node_list.c
│ │ ├── m4/
│ │ │ ├── ac_pkg_cython.m4
│ │ │ ├── as-compiler-flag.m4
│ │ │ ├── ax_pthread.m4
│ │ │ ├── ax_python_devel.m4
│ │ │ └── cython_python.m4
│ │ ├── src/
│ │ │ ├── Array.cpp
│ │ │ ├── Boolean.cpp
│ │ │ ├── Data.cpp
│ │ │ ├── Date.cpp
│ │ │ ├── Dictionary.cpp
│ │ │ ├── Integer.cpp
│ │ │ ├── Key.cpp
│ │ │ ├── Makefile.am
│ │ │ ├── Node.cpp
│ │ │ ├── Real.cpp
│ │ │ ├── String.cpp
│ │ │ ├── Structure.cpp
│ │ │ ├── Uid.cpp
│ │ │ ├── base64.c
│ │ │ ├── base64.h
│ │ │ ├── bplist.c
│ │ │ ├── bytearray.c
│ │ │ ├── bytearray.h
│ │ │ ├── hashtable.c
│ │ │ ├── hashtable.h
│ │ │ ├── libplist++.pc.in
│ │ │ ├── libplist.pc.in
│ │ │ ├── plist.c
│ │ │ ├── plist.h
│ │ │ ├── ptrarray.c
│ │ │ ├── ptrarray.h
│ │ │ ├── strbuf.h
│ │ │ ├── time64.c
│ │ │ ├── time64.h
│ │ │ ├── time64_limits.h
│ │ │ └── xplist.c
│ │ ├── test/
│ │ │ ├── Makefile.am
│ │ │ ├── amp.test
│ │ │ ├── bigarray.test
│ │ │ ├── cdata.test
│ │ │ ├── data/
│ │ │ │ ├── 1.plist
│ │ │ │ ├── 2.plist
│ │ │ │ ├── 3.plist
│ │ │ │ ├── 4.plist
│ │ │ │ ├── 5.plist
│ │ │ │ ├── 6.plist
│ │ │ │ ├── 7.plist
│ │ │ │ ├── amp.plist
│ │ │ │ ├── cdata.plist
│ │ │ │ ├── dictref1byte.bplist
│ │ │ │ ├── dictref2bytes.bplist
│ │ │ │ ├── dictref3bytes.bplist
│ │ │ │ ├── dictref4bytes.bplist
│ │ │ │ ├── dictref5bytes.bplist
│ │ │ │ ├── dictref6bytes.bplist
│ │ │ │ ├── dictref7bytes.bplist
│ │ │ │ ├── dictref8bytes.bplist
│ │ │ │ ├── empty_keys.plist
│ │ │ │ ├── entities.plist
│ │ │ │ ├── hex.plist
│ │ │ │ ├── invalid_tag.plist
│ │ │ │ ├── malformed_dict.bplist
│ │ │ │ ├── off1byte.bplist
│ │ │ │ ├── off2bytes.bplist
│ │ │ │ ├── off3bytes.bplist
│ │ │ │ ├── off4bytes.bplist
│ │ │ │ ├── off5bytes.bplist
│ │ │ │ ├── off6bytes.bplist
│ │ │ │ ├── off7bytes.bplist
│ │ │ │ ├── off8bytes.bplist
│ │ │ │ ├── offxml.plist
│ │ │ │ ├── order.bplist
│ │ │ │ ├── order.plist
│ │ │ │ ├── recursion.bplist
│ │ │ │ ├── signed.bplist
│ │ │ │ ├── signed.plist
│ │ │ │ ├── signedunsigned.bplist
│ │ │ │ ├── signedunsigned.plist
│ │ │ │ ├── unsigned.bplist
│ │ │ │ └── unsigned.plist
│ │ │ ├── dates.test
│ │ │ ├── empty.test
│ │ │ ├── empty_keys.test
│ │ │ ├── entities.test
│ │ │ ├── hex.test
│ │ │ ├── huge.test
│ │ │ ├── invalid_tag.test
│ │ │ ├── large.test
│ │ │ ├── malformed_dict.test
│ │ │ ├── medium.test
│ │ │ ├── offsetsize.test
│ │ │ ├── order.test
│ │ │ ├── plist_cmp.c
│ │ │ ├── plist_test.c
│ │ │ ├── recursion.test
│ │ │ ├── refsize.test
│ │ │ ├── signedunsigned1.test
│ │ │ ├── signedunsigned2.test
│ │ │ ├── signedunsigned3.test
│ │ │ ├── small.test
│ │ │ ├── timezone1.test
│ │ │ └── timezone2.test
│ │ └── tools/
│ │ ├── Makefile.am
│ │ └── plistutil.c
│ ├── lookup2.c
│ ├── make.sh
│ ├── plist.sh
│ ├── sha1.h
│ └── version.sh
├── libimobiledevice/
│ ├── .gitignore
│ ├── AUTHORS
│ ├── COPYING
│ ├── COPYING.LESSER
│ ├── Makefile.am
│ ├── NEWS
│ ├── README
│ ├── autogen.sh
│ ├── common/
│ │ ├── Makefile.am
│ │ ├── debug.c
│ │ ├── debug.h
│ │ ├── socket.c
│ │ ├── socket.h
│ │ ├── thread.c
│ │ ├── thread.h
│ │ ├── userpref.c
│ │ ├── userpref.h
│ │ ├── utils.c
│ │ └── utils.h
│ ├── configure.ac
│ ├── cython/
│ │ ├── Makefile.am
│ │ ├── afc.pxi
│ │ ├── debugserver.pxi
│ │ ├── diagnostics_relay.pxi
│ │ ├── file_relay.pxi
│ │ ├── heartbeat.pxi
│ │ ├── house_arrest.pxi
│ │ ├── imobiledevice.pxd
│ │ ├── imobiledevice.pyx
│ │ ├── installation_proxy.pxi
│ │ ├── lockdown.pxi
│ │ ├── misagent.pxi
│ │ ├── mobile_image_mounter.pxi
│ │ ├── mobilebackup.pxi
│ │ ├── mobilebackup2.pxi
│ │ ├── mobilesync.pxi
│ │ ├── notification_proxy.pxi
│ │ ├── restore.pxi
│ │ ├── sbservices.pxi
│ │ ├── screenshotr.pxi
│ │ └── webinspector.pxi
│ ├── docs/
│ │ ├── Makefile.am
│ │ ├── idevice_id.1
│ │ ├── idevicebackup.1
│ │ ├── idevicebackup2.1
│ │ ├── idevicecrashreport.1
│ │ ├── idevicedate.1
│ │ ├── idevicedebug.1
│ │ ├── idevicedebugserverproxy.1
│ │ ├── idevicediagnostics.1
│ │ ├── ideviceenterrecovery.1
│ │ ├── ideviceimagemounter.1
│ │ ├── ideviceinfo.1
│ │ ├── idevicename.1
│ │ ├── idevicenotificationproxy.1
│ │ ├── idevicepair.1
│ │ ├── ideviceprovision.1
│ │ ├── idevicescreenshot.1
│ │ └── idevicesyslog.1
│ ├── include/
│ │ ├── Makefile.am
│ │ ├── asprintf.h
│ │ ├── endianness.h
│ │ └── libimobiledevice/
│ │ ├── afc.h
│ │ ├── debugserver.h
│ │ ├── diagnostics_relay.h
│ │ ├── file_relay.h
│ │ ├── heartbeat.h
│ │ ├── house_arrest.h
│ │ ├── installation_proxy.h
│ │ ├── libimobiledevice.h
│ │ ├── lockdown.h
│ │ ├── misagent.h
│ │ ├── mobile_image_mounter.h
│ │ ├── mobileactivation.h
│ │ ├── mobilebackup.h
│ │ ├── mobilebackup2.h
│ │ ├── mobilesync.h
│ │ ├── notification_proxy.h
│ │ ├── property_list_service.h
│ │ ├── restore.h
│ │ ├── sbservices.h
│ │ ├── screenshotr.h
│ │ ├── service.h
│ │ ├── syslog_relay.h
│ │ └── webinspector.h
│ ├── src/
│ │ ├── Makefile.am
│ │ ├── afc.c
│ │ ├── afc.h
│ │ ├── debugserver.c
│ │ ├── debugserver.h
│ │ ├── device_link_service.c
│ │ ├── device_link_service.h
│ │ ├── diagnostics_relay.c
│ │ ├── diagnostics_relay.h
│ │ ├── file_relay.c
│ │ ├── file_relay.h
│ │ ├── heartbeat.c
│ │ ├── heartbeat.h
│ │ ├── house_arrest.c
│ │ ├── house_arrest.h
│ │ ├── idevice.c
│ │ ├── idevice.h
│ │ ├── installation_proxy.c
│ │ ├── installation_proxy.h
│ │ ├── lockdown.c
│ │ ├── lockdown.h
│ │ ├── misagent.c
│ │ ├── misagent.h
│ │ ├── mobile_image_mounter.c
│ │ ├── mobile_image_mounter.h
│ │ ├── mobileactivation.c
│ │ ├── mobileactivation.h
│ │ ├── mobilebackup.c
│ │ ├── mobilebackup.h
│ │ ├── mobilebackup2.c
│ │ ├── mobilebackup2.h
│ │ ├── mobilesync.c
│ │ ├── mobilesync.h
│ │ ├── notification_proxy.c
│ │ ├── notification_proxy.h
│ │ ├── property_list_service.c
│ │ ├── property_list_service.h
│ │ ├── restore.c
│ │ ├── restore.h
│ │ ├── sbservices.c
│ │ ├── sbservices.h
│ │ ├── screenshotr.c
│ │ ├── screenshotr.h
│ │ ├── service.c
│ │ ├── service.h
│ │ ├── syslog_relay.c
│ │ ├── syslog_relay.h
│ │ ├── webinspector.c
│ │ └── webinspector.h
│ └── tools/
│ ├── Makefile.am
│ ├── idevice_id.c
│ ├── idevicebackup.c
│ ├── idevicebackup2.c
│ ├── idevicecrashreport.c
│ ├── idevicedate.c
│ ├── idevicedebug.c
│ ├── idevicedebugserverproxy.c
│ ├── idevicediagnostics.c
│ ├── ideviceenterrecovery.c
│ ├── ideviceimagemounter.c
│ ├── ideviceinfo.c
│ ├── idevicename.c
│ ├── idevicenotificationproxy.c
│ ├── idevicepair.c
│ ├── ideviceprovision.c
│ ├── idevicescreenshot.c
│ └── idevicesyslog.c
├── libplist/
│ ├── .gitignore
│ ├── AUTHORS
│ ├── COPYING
│ ├── COPYING.LESSER
│ ├── Makefile.am
│ ├── NEWS
│ ├── README.md
│ ├── autogen.sh
│ ├── configure.ac
│ ├── cython/
│ │ ├── Makefile.am
│ │ ├── plist.pxd
│ │ ├── plist.pyx
│ │ ├── plist_util.c
│ │ └── plist_util.h
│ ├── doxygen.cfg.in
│ ├── fuzz/
│ │ ├── Makefile.am
│ │ ├── bplist-crashes/
│ │ │ ├── clusterfuzz-testcase-4766291097288704
│ │ │ ├── clusterfuzz-testcase-4930725262393344
│ │ │ ├── clusterfuzz-testcase-5421965105954816
│ │ │ ├── clusterfuzz-testcase-5556177727389696
│ │ │ ├── clusterfuzz-testcase-6557963011489792
│ │ │ ├── clusterfuzz-testcase-6605859144597504
│ │ │ ├── crash-0ce4dd483b645bc05ec45a97d285dcf1933ee840
│ │ │ ├── crash-0d59cdcb5c3416c2790612b78a631ce9f5622800
│ │ │ ├── crash-17d635ab460fef74df1ac7561f1253533a6359c5
│ │ │ ├── crash-33a67313fa7864cd627ef92d12017a127d342f28
│ │ │ ├── crash-39f1347115f8fe9ac25cdc9332e3fc5cd32c7f7b
│ │ │ ├── crash-4bd78175fe01d07c5ee90104fbc68d95dd092210
│ │ │ ├── crash-4c5404453bb7425aef9b953a5f6f3f0afcc48392
│ │ │ ├── crash-52775e25f6af20af351cd616834e602fc988a032
│ │ │ ├── crash-6d1399685b745d3d49fadc91072fabcdde8d16fa
│ │ │ ├── crash-94b3725900d63c6258448fd757559c81002de9c9
│ │ │ ├── crash-a47195acbabc3f5b2cda9c6ebda42f2afc1cc5af
│ │ │ ├── crash-ce852bae6aeeffc4698a93660236f1b995ce966e
│ │ │ ├── crash-daddb6e82e3d1ed76e20e4131462f5247a6fb131
│ │ │ ├── crash-f21be4ebce7f9c337bf96b93cec7e252f5c75a21
│ │ │ └── crash-f779dafccc0164684d1a264976e56037188b40e2
│ │ ├── bplist-leaks/
│ │ │ ├── leak-96fb453b3ba18d31e164831795a708183b5a0dac
│ │ │ ├── leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1
│ │ │ └── leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074
│ │ ├── bplist.dict
│ │ ├── bplist_fuzzer.cc
│ │ ├── bplist_fuzzer.options
│ │ ├── fuzzers.test
│ │ ├── init-fuzzers.sh
│ │ ├── test-fuzzers.sh
│ │ ├── xplist-crashes/
│ │ │ ├── clusterfuzz-testcase-4516959125241856
│ │ │ ├── clusterfuzz-testcase-4663876528373760
│ │ │ ├── clusterfuzz-testcase-5799076113154048
│ │ │ ├── clusterfuzz-testcase-5922404220010496
│ │ │ ├── clusterfuzz-testcase-6015098361479168
│ │ │ ├── clusterfuzz-testcase-6043836860071936
│ │ │ ├── clusterfuzz-testcase-6047509906456576
│ │ │ ├── clusterfuzz-testcase-6482601374121984
│ │ │ ├── crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17
│ │ │ ├── crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1
│ │ │ ├── crash-348c909a0b3532977185f551eb5d2ed04e694883
│ │ │ ├── crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a
│ │ │ ├── crash-80c28b0e2a446665e68927dd4441c10c9a68e64e
│ │ │ ├── crash-8acf177da60ecf13c36d0da1b8e25de891980ea6
│ │ │ ├── crash-94276cf69a50e78dd6cdf079c208cb80f357cd33
│ │ │ ├── crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9
│ │ │ ├── crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9
│ │ │ ├── crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
│ │ │ └── crash-f03c680ee1c4d84c28e731752df77a61e213a24d
│ │ ├── xplist-leaks/
│ │ │ ├── clusterfuzz-testcase-4634751103139840
│ │ │ ├── clusterfuzz-testcase-6056412121661440
│ │ │ ├── leak-47b0a9f21d3affab6cfc898e5140bb53265ada07
│ │ │ ├── leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7
│ │ │ └── leak-53bc466851eda790bd891733da5db0a7482886bf
│ │ ├── xplist.dict
│ │ ├── xplist_fuzzer.cc
│ │ └── xplist_fuzzer.options
│ ├── include/
│ │ ├── Makefile.am
│ │ └── plist/
│ │ ├── Array.h
│ │ ├── Boolean.h
│ │ ├── Data.h
│ │ ├── Date.h
│ │ ├── Dictionary.h
│ │ ├── Integer.h
│ │ ├── Key.h
│ │ ├── Node.h
│ │ ├── Real.h
│ │ ├── String.h
│ │ ├── Structure.h
│ │ ├── Uid.h
│ │ ├── plist++.h
│ │ └── plist.h
│ ├── libcnary/
│ │ ├── COPYING
│ │ ├── Makefile.am
│ │ ├── README
│ │ ├── cnary.c
│ │ ├── include/
│ │ │ ├── node.h
│ │ │ ├── node_list.h
│ │ │ └── object.h
│ │ ├── node.c
│ │ └── node_list.c
│ ├── m4/
│ │ ├── ac_pkg_cython.m4
│ │ ├── as-compiler-flag.m4
│ │ ├── ax_pthread.m4
│ │ ├── ax_python_devel.m4
│ │ └── cython_python.m4
│ ├── src/
│ │ ├── Array.cpp
│ │ ├── Boolean.cpp
│ │ ├── Data.cpp
│ │ ├── Date.cpp
│ │ ├── Dictionary.cpp
│ │ ├── Integer.cpp
│ │ ├── Key.cpp
│ │ ├── Makefile.am
│ │ ├── Node.cpp
│ │ ├── Real.cpp
│ │ ├── String.cpp
│ │ ├── Structure.cpp
│ │ ├── Uid.cpp
│ │ ├── base64.c
│ │ ├── base64.h
│ │ ├── bplist.c
│ │ ├── bytearray.c
│ │ ├── bytearray.h
│ │ ├── hashtable.c
│ │ ├── hashtable.h
│ │ ├── libplist++.pc.in
│ │ ├── libplist.pc.in
│ │ ├── plist.c
│ │ ├── plist.h
│ │ ├── ptrarray.c
│ │ ├── ptrarray.h
│ │ ├── strbuf.h
│ │ ├── time64.c
│ │ ├── time64.h
│ │ ├── time64_limits.h
│ │ └── xplist.c
│ ├── test/
│ │ ├── Makefile.am
│ │ ├── amp.test
│ │ ├── bigarray.test
│ │ ├── cdata.test
│ │ ├── data/
│ │ │ ├── 1.plist
│ │ │ ├── 2.plist
│ │ │ ├── 3.plist
│ │ │ ├── 4.plist
│ │ │ ├── 5.plist
│ │ │ ├── 6.plist
│ │ │ ├── 7.plist
│ │ │ ├── amp.plist
│ │ │ ├── cdata.plist
│ │ │ ├── dictref1byte.bplist
│ │ │ ├── dictref2bytes.bplist
│ │ │ ├── dictref3bytes.bplist
│ │ │ ├── dictref4bytes.bplist
│ │ │ ├── dictref5bytes.bplist
│ │ │ ├── dictref6bytes.bplist
│ │ │ ├── dictref7bytes.bplist
│ │ │ ├── dictref8bytes.bplist
│ │ │ ├── empty_keys.plist
│ │ │ ├── entities.plist
│ │ │ ├── hex.plist
│ │ │ ├── invalid_tag.plist
│ │ │ ├── malformed_dict.bplist
│ │ │ ├── off1byte.bplist
│ │ │ ├── off2bytes.bplist
│ │ │ ├── off3bytes.bplist
│ │ │ ├── off4bytes.bplist
│ │ │ ├── off5bytes.bplist
│ │ │ ├── off6bytes.bplist
│ │ │ ├── off7bytes.bplist
│ │ │ ├── off8bytes.bplist
│ │ │ ├── offxml.plist
│ │ │ ├── order.bplist
│ │ │ ├── order.plist
│ │ │ ├── recursion.bplist
│ │ │ ├── signed.bplist
│ │ │ ├── signed.plist
│ │ │ ├── signedunsigned.bplist
│ │ │ ├── signedunsigned.plist
│ │ │ ├── unsigned.bplist
│ │ │ └── unsigned.plist
│ │ ├── dates.test
│ │ ├── empty.test
│ │ ├── empty_keys.test
│ │ ├── entities.test
│ │ ├── hex.test
│ │ ├── huge.test
│ │ ├── invalid_tag.test
│ │ ├── large.test
│ │ ├── malformed_dict.test
│ │ ├── medium.test
│ │ ├── offsetsize.test
│ │ ├── order.test
│ │ ├── plist_cmp.c
│ │ ├── plist_test.c
│ │ ├── recursion.test
│ │ ├── refsize.test
│ │ ├── signedunsigned1.test
│ │ ├── signedunsigned2.test
│ │ ├── signedunsigned3.test
│ │ ├── small.test
│ │ ├── timezone1.test
│ │ └── timezone2.test
│ └── tools/
│ ├── Makefile.am
│ └── plistutil.c
├── libusbmuxd/
│ ├── .gitignore
│ ├── AUTHORS
│ ├── COPYING
│ ├── Makefile.am
│ ├── NEWS
│ ├── README
│ ├── autogen.sh
│ ├── common/
│ │ ├── Makefile.am
│ │ ├── collection.c
│ │ ├── collection.h
│ │ ├── socket.c
│ │ ├── socket.h
│ │ ├── thread.c
│ │ └── thread.h
│ ├── configure.ac
│ ├── include/
│ │ ├── Makefile.am
│ │ ├── usbmuxd-proto.h
│ │ └── usbmuxd.h
│ ├── src/
│ │ ├── Makefile.am
│ │ └── libusbmuxd.c
│ └── tools/
│ ├── Makefile.am
│ └── iproxy.c
└── setup.bat
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Visual Studio 2017 auto generated files
Generated\ Files/
# macOS
.DS_Store
================================================
FILE: .gitmodules
================================================
[submodule "Dependencies/libimobiledevice-vs"]
path = Dependencies/libimobiledevice-vs
url = https://github.com/libimobiledevice-win32/libimobiledevice-vs.git
[submodule "Dependencies/dirent"]
path = Dependencies/dirent
url = https://github.com/tronkko/dirent.git
================================================
FILE: AltInstaller/AltInstaller.vdproj
================================================
"DeployProject"
{
"VSVersion" = "3:800"
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
"IsWebType" = "8:FALSE"
"ProjectName" = "8:AltInstaller"
"LanguageId" = "3:1033"
"CodePage" = "3:1252"
"UILanguageId" = "3:1033"
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_0091362E6DF34FB487F2DDDBF9511B8A"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_0DE5D8AC558647B6B4D6777F7E176A11"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_0E63979C83194B72B58D8F281CA04715"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_1077986979AD4BB5A11A3BEDCC927662"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_165DBCDE130C4ABA902297C3B8579353"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_298CF908FC834127A8A368CBFCBBB43F"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_2B1F642F958747EE82E1FBDE9764796D"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_2B38B7CDFB9440C3B587C1365C650D41"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_3C6A3F8A47B34453905639DFB90B25A9"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_59FDF69B97424684A9D54FDB6D285E21"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_613B1EF2158141869050FCD09ADB08D8"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_6430A1C630534501B9D664CCE920BA8D"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_72EDF092881E4339B5EC5651EDF8E994"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_74BA39709E2A4F9E8670B64DA032A30F"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_7CAE30F5044C460588CD6F7B04E9C35A"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_A6A7A5AFCE374AD7B7EB76319CB455C4"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_A93DADFDFBF44BCF8B4749BEC9BC3D1C"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_C2D893D27E0141A5906D480D3CE9C707"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_C781D3A1BFB344ACBE7581DD55D2E7D4"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_D035E44DCD8B4E26B59E7D56300FE3ED"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_F0243BDD2B7B4146B4D35EB788193F20"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
}
"Configurations"
{
"Debug"
{
"DisplayName" = "8:Debug"
"IsDebugOnly" = "11:TRUE"
"IsReleaseOnly" = "11:FALSE"
"OutputFilename" = "8:Debug\\AltInstaller.msi"
"PackageFilesAs" = "3:2"
"PackageFileSize" = "3:-2147483648"
"CabType" = "3:1"
"Compression" = "3:3"
"SignOutput" = "11:FALSE"
"CertificateFile" = "8:"
"PrivateKeyFile" = "8:"
"TimeStampServer" = "8:"
"InstallerBootstrapper" = "3:2"
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
{
"Enabled" = "11:TRUE"
"PromptEnabled" = "11:TRUE"
"PrerequisitesLocation" = "2:1"
"Url" = "8:"
"ComponentsUrl" = "8:"
"Items"
{
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1"
{
"Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)"
"ProductCode" = "8:.NETFramework,Version=v4.6.1"
}
}
}
}
"Release"
{
"DisplayName" = "8:Release"
"IsDebugOnly" = "11:FALSE"
"IsReleaseOnly" = "11:TRUE"
"OutputFilename" = "8:Release\\AltInstaller.msi"
"PackageFilesAs" = "3:2"
"PackageFileSize" = "3:-2147483648"
"CabType" = "3:1"
"Compression" = "3:2"
"SignOutput" = "11:FALSE"
"CertificateFile" = "8:"
"PrivateKeyFile" = "8:"
"TimeStampServer" = "8:"
"InstallerBootstrapper" = "3:2"
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
{
"Enabled" = "11:TRUE"
"PromptEnabled" = "11:TRUE"
"PrerequisitesLocation" = "2:1"
"Url" = "8:"
"ComponentsUrl" = "8:"
"Items"
{
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1"
{
"Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)"
"ProductCode" = "8:.NETFramework,Version=v4.6.1"
}
}
}
}
}
"Deployable"
{
"CustomAction"
{
}
"DefaultFeature"
{
"Name" = "8:DefaultFeature"
"Title" = "8:"
"Description" = "8:"
}
"ExternalPersistence"
{
"LaunchCondition"
{
}
}
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0091362E6DF34FB487F2DDDBF9511B8A"
{
"SourcePath" = "8:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Redist\\MSVC\\14.22.27821\\x86\\Microsoft.VC142.CRT\\vcruntime140.dll"
"TargetName" = "8:vcruntime140.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0E63979C83194B72B58D8F281CA04715"
{
"SourcePath" = "8:..\\Release\\zlib1.dll"
"TargetName" = "8:zlib1.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1077986979AD4BB5A11A3BEDCC927662"
{
"SourcePath" = "8:..\\Release\\brotlidec.dll"
"TargetName" = "8:brotlidec.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_165DBCDE130C4ABA902297C3B8579353"
{
"SourcePath" = "8:..\\Dependencies\\Libraries\\libcrypto-1_1.dll"
"TargetName" = "8:libcrypto-1_1.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_298CF908FC834127A8A368CBFCBBB43F"
{
"SourcePath" = "8:..\\Dependencies\\Libraries\\ssleay32.dll"
"TargetName" = "8:ssleay32.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2B1F642F958747EE82E1FBDE9764796D"
{
"SourcePath" = "8:..\\AltSign\\Dependencies\\regex\\bin\\regex2.dll"
"TargetName" = "8:regex2.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3C6A3F8A47B34453905639DFB90B25A9"
{
"SourcePath" = "8:..\\Dependencies\\WinSparkle\\Release\\WinSparkle.dll"
"TargetName" = "8:WinSparkle.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_59FDF69B97424684A9D54FDB6D285E21"
{
"SourcePath" = "8:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Redist\\MSVC\\14.22.27821\\x86\\Microsoft.VC142.CRT\\msvcp140.dll"
"TargetName" = "8:msvcp140.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_613B1EF2158141869050FCD09ADB08D8"
{
"SourcePath" = "8:..\\Release\\brotlicommon.dll"
"TargetName" = "8:brotlicommon.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6430A1C630534501B9D664CCE920BA8D"
{
"SourcePath" = "8:..\\AltServer\\MenuBarIcon.png"
"TargetName" = "8:MenuBarIcon.png"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_74BA39709E2A4F9E8670B64DA032A30F"
{
"SourcePath" = "8:..\\Release\\boost_date_time-vc142-mt-x32-1_70.dll"
"TargetName" = "8:boost_date_time-vc142-mt-x32-1_70.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A6A7A5AFCE374AD7B7EB76319CB455C4"
{
"SourcePath" = "8:..\\Dependencies\\Libraries\\libeay32.dll"
"TargetName" = "8:libeay32.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A93DADFDFBF44BCF8B4749BEC9BC3D1C"
{
"SourcePath" = "8:..\\AltServer\\MenuBarIcon.ico"
"TargetName" = "8:MenuBarIcon.ico"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C2D893D27E0141A5906D480D3CE9C707"
{
"SourcePath" = "8:..\\Dependencies\\Libraries\\libssl-1_1.dll"
"TargetName" = "8:libssl-1_1.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C781D3A1BFB344ACBE7581DD55D2E7D4"
{
"SourcePath" = "8:..\\Release\\cpprest_2_10.dll"
"TargetName" = "8:cpprest_2_10.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D035E44DCD8B4E26B59E7D56300FE3ED"
{
"SourcePath" = "8:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Redist\\MSVC\\14.22.27821\\x86\\Microsoft.VC142.CRT\\concrt140.dll"
"TargetName" = "8:concrt140.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F0243BDD2B7B4146B4D35EB788193F20"
{
"SourcePath" = "8:..\\Release\\brotlienc.dll"
"TargetName" = "8:brotlienc.dll"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
}
"FileType"
{
}
"Folder"
{
"{1525181F-901A-416C-8A58-119130FE478E}:_16909F6DE9D5487F8B941FAA4B746D3C"
{
"Name" = "8:#1919"
"AlwaysCreate" = "11:FALSE"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Property" = "8:ProgramMenuFolder"
"Folders"
{
}
}
"{1525181F-901A-416C-8A58-119130FE478E}:_39B2D5C3B7E043B99170A1C5C6F46C2B"
{
"Name" = "8:#1916"
"AlwaysCreate" = "11:FALSE"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Property" = "8:DesktopFolder"
"Folders"
{
}
}
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
{
"DefaultLocation" = "8:[ProgramFilesFolder][ProductName]"
"Name" = "8:#1925"
"AlwaysCreate" = "11:FALSE"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Property" = "8:TARGETDIR"
"Folders"
{
}
}
}
"LaunchCondition"
{
}
"Locator"
{
}
"MsiBootstrapper"
{
"LangId" = "3:1033"
"RequiresElevation" = "11:FALSE"
}
"Product"
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:AltServer"
"ProductCode" = "8:{57623C01-177C-437B-B0FA-7EE039F21AD9}"
"PackageCode" = "8:{AD614FCA-2088-4BE8-80E4-8BBC75F92964}"
"UpgradeCode" = "8:{7D1A38CC-208D-4D3C-8D8B-BDFEC732880A}"
"AspNetVersion" = "8:4.0.30319.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:FALSE"
"InstallAllUsers" = "11:FALSE"
"ProductVersion" = "8:1.5.04"
"Manufacturer" = "8:Riley Testut"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
"Title" = "8:AltInstaller"
"Subject" = "8:"
"ARPCONTACT" = "8:Riley Testut"
"Keywords" = "8:"
"ARPCOMMENTS" = "8:"
"ARPURLINFOABOUT" = "8:"
"ARPPRODUCTICON" = "8:"
"ARPIconIndex" = "3:0"
"SearchPath" = "8:"
"UseSystemSearchPath" = "11:TRUE"
"TargetPlatform" = "3:0"
"PreBuildEvent" = "8:"
"PostBuildEvent" = "8:"
"RunPostBuildEvent" = "3:0"
}
"Registry"
{
"HKLM"
{
"Keys"
{
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_DE1BFEF969D84797AFCE0C01A3D6150F"
{
"Name" = "8:Software"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_A9C1399F6DD340A4ABD92E5EDC72D886"
{
"Name" = "8:[Manufacturer]"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
}
"Values"
{
}
}
}
"Values"
{
}
}
}
}
"HKCU"
{
"Keys"
{
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9AD6CF5209014616BC10DCD1B19C4307"
{
"Name" = "8:Software"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_EB12061BA2204C1EA05F44F15FB0B527"
{
"Name" = "8:[Manufacturer]"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
}
"Values"
{
}
}
}
"Values"
{
}
}
}
}
"HKCR"
{
"Keys"
{
}
}
"HKU"
{
"Keys"
{
}
}
"HKPU"
{
"Keys"
{
}
}
}
"Sequences"
{
}
"Shortcut"
{
"{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_B214B7859DDE4E998E509350859DFB0C"
{
"Name" = "8:AltServer"
"Arguments" = "8:"
"Description" = "8:"
"ShowCmd" = "3:1"
"IconIndex" = "3:0"
"Transitive" = "11:FALSE"
"Target" = "8:_2B38B7CDFB9440C3B587C1365C650D41"
"Folder" = "8:_16909F6DE9D5487F8B941FAA4B746D3C"
"WorkingFolder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Icon" = "8:"
"Feature" = "8:"
}
}
"UserInterface"
{
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_119A3062A85B4D178BFBA566AC47C594"
{
"Name" = "8:#1902"
"Sequence" = "3:2"
"Attributes" = "3:3"
"Dialogs"
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_05572B4CA5AB4075B7BAC9B022025F1A"
{
"Sequence" = "3:100"
"DisplayName" = "8:Finished"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_11FF5768D2334552BA5045BE01F8DEA2"
{
"Name" = "8:#1901"
"Sequence" = "3:2"
"Attributes" = "3:2"
"Dialogs"
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4ABB1D221E054F07B5A7E1A38076104E"
{
"Sequence" = "3:100"
"DisplayName" = "8:Progress"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"ShowProgress"
{
"Name" = "8:ShowProgress"
"DisplayName" = "8:#1009"
"Description" = "8:#1109"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_4E01CE0F59CC4C6D9F18E8F13CBE2FD6"
{
"Name" = "8:#1900"
"Sequence" = "3:2"
"Attributes" = "3:1"
"Dialogs"
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_38E1808F77044738B0ED60CD93D5DC1B"
{
"Sequence" = "3:100"
"DisplayName" = "8:Welcome"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"CopyrightWarning"
{
"Name" = "8:CopyrightWarning"
"DisplayName" = "8:#1002"
"Description" = "8:#1102"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1202"
"DefaultValue" = "8:#1202"
"UsePlugInResources" = "11:TRUE"
}
"Welcome"
{
"Name" = "8:Welcome"
"DisplayName" = "8:#1003"
"Description" = "8:#1103"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1203"
"DefaultValue" = "8:#1203"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_83F3F8204C7B41E881481507274EE165"
{
"Sequence" = "3:300"
"DisplayName" = "8:Confirm Installation"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8877CE09C22040C6AE6168B8CE1F1A0F"
{
"Sequence" = "3:200"
"DisplayName" = "8:Installation Folder"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_69B04701DDFD45538213FDB55D1B0D2D"
{
"Name" = "8:#1900"
"Sequence" = "3:1"
"Attributes" = "3:1"
"Dialogs"
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1A1F50A767EE440EA0124B7155384929"
{
"Sequence" = "3:300"
"DisplayName" = "8:Confirm Installation"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C101386DA1114B209F6293BC12E6BA68"
{
"Sequence" = "3:100"
"DisplayName" = "8:Welcome"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"CopyrightWarning"
{
"Name" = "8:CopyrightWarning"
"DisplayName" = "8:#1002"
"Description" = "8:#1102"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1202"
"DefaultValue" = "8:#1202"
"UsePlugInResources" = "11:TRUE"
}
"Welcome"
{
"Name" = "8:Welcome"
"DisplayName" = "8:#1003"
"Description" = "8:#1103"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1203"
"DefaultValue" = "8:#1203"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CE332154CDD344D7B90A94268912CCE8"
{
"Sequence" = "3:200"
"DisplayName" = "8:Installation Folder"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"InstallAllUsersVisible"
{
"Name" = "8:InstallAllUsersVisible"
"DisplayName" = "8:#1059"
"Description" = "8:#1159"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_9FF9847D95A14AE28E2A66B52BAFE36D"
{
"UseDynamicProperties" = "11:FALSE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
}
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BA8287267BD2458BB6554FCC3C0FFCBF"
{
"Name" = "8:#1902"
"Sequence" = "3:1"
"Attributes" = "3:3"
"Dialogs"
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_58ABA31586D947CF85167CE7359F1F13"
{
"Sequence" = "3:100"
"DisplayName" = "8:Finished"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"UpdateText"
{
"Name" = "8:UpdateText"
"DisplayName" = "8:#1058"
"Description" = "8:#1158"
"Type" = "3:15"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1258"
"DefaultValue" = "8:#1258"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_CDF57BD5620845DDB808E6030859B4B2"
{
"UseDynamicProperties" = "11:FALSE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
}
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_CF5184FAB72D437BBEF41E8DF48F76CA"
{
"Name" = "8:#1901"
"Sequence" = "3:1"
"Attributes" = "3:2"
"Dialogs"
{
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_17FE5309C81B4528AEB1BDFEAAF03C5E"
{
"Sequence" = "3:100"
"DisplayName" = "8:Progress"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"ShowProgress"
{
"Name" = "8:ShowProgress"
"DisplayName" = "8:#1009"
"Description" = "8:#1109"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
}
"MergeModule"
{
}
"ProjectOutput"
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_04ECD423A3B648EEBB55959990D7C12E"
{
"SourcePath" = "8:..\\Release\\ldid.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectGuid" = "8:{147D42DB-4B88-4B3F-8548-6E11FB51C589}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0DE5D8AC558647B6B4D6777F7E176A11"
{
"SourcePath" = "8:..\\Win32\\Release\\imobiledevice.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectGuid" = "8:{EE16E7F2-AC27-4E30-AB22-B02A9C2380B4}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2B38B7CDFB9440C3B587C1365C650D41"
{
"SourcePath" = "8:..\\Release\\AltServer.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectGuid" = "8:{469259AB-0F25-4B5E-B15C-591001FB9448}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_443899488D404F5ABCBEF6ACCA4B7C13"
{
"SourcePath" = "8:"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectGuid" = "8:{3DD5EA43-D078-46FE-B5C2-BB6213F936CD}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_72EDF092881E4339B5EC5651EDF8E994"
{
"SourcePath" = "8:..\\Win32\\Release\\usbmuxd.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectGuid" = "8:{527AE686-CD0E-4BC2-9B0F-4BC4CF9621E0}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7CAE30F5044C460588CD6F7B04E9C35A"
{
"SourcePath" = "8:..\\Win32\\Release\\plist.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_D74A5D2E5C8C477EA2DDD2BED7A4FA38"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectGuid" = "8:{75352A45-BCB8-4774-8C66-3AF9EA6B6B42}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
}
}
}
================================================
FILE: AltServer/AltServer.cpp
================================================
// HelloWindowsDesktop.cpp
// compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c
#include <windows.h>
#include <windowsx.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include <CommCtrl.h>
#include <ShObjIdl.h>
#include <strsafe.h>
#include "resource.h"
#include <fstream>
#include <iterator>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <codecvt>
#include <combaseapi.h>
#pragma comment( lib, "gdiplus.lib" )
#include <gdiplus.h>
// AltSign
#include "DeviceManager.hpp"
#include "Error.hpp"
#include "AltServerApp.h"
#include <pplx/pplxtasks.h>
#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
extern std::string StringFromWideString(std::wstring wideString);
extern std::wstring WideStringFromString(std::string string);
#define odslog(msg) { std::stringstream ss; ss << msg << std::endl; OutputDebugStringA(ss.str().c_str()); }
std::string make_uuid()
{
GUID guid;
CoCreateGuid(&guid);
std::ostringstream os;
os << std::hex << std::setw(8) << std::setfill('0') << guid.Data1;
os << '-';
os << std::hex << std::setw(4) << std::setfill('0') << guid.Data2;
os << '-';
os << std::hex << std::setw(4) << std::setfill('0') << guid.Data3;
os << '-';
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[0]);
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[1]);
os << '-';
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[2]);
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[3]);
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[4]);
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[5]);
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[6]);
os << std::hex << std::setw(2) << std::setfill('0') << static_cast<short>(guid.Data4[7]);
std::string s(os.str());
return s;
}
std::string temporary_directory()
{
wchar_t rawTempDirectory[1024];
int length = GetTempPath(1024, rawTempDirectory);
std::wstring wideString(rawTempDirectory);
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv1;
std::string tempDirectory = conv1.to_bytes(wideString);
return tempDirectory;
}
std::vector<unsigned char> readFile(const char* filename)
{
// open the file:
std::ifstream file(filename, std::ios::binary);
// Stop eating new lines in binary mode!!!
file.unsetf(std::ios::skipws);
// get its size:
std::streampos fileSize;
file.seekg(0, std::ios::end);
fileSize = file.tellg();
file.seekg(0, std::ios::beg);
// reserve capacity
std::vector<unsigned char> vec;
vec.reserve(fileSize);
// read the data:
vec.insert(vec.begin(),
std::istream_iterator<unsigned char>(file),
std::istream_iterator<unsigned char>());
return vec;
}
// Global variables
// The main window class name.
static TCHAR szWindowClass[] = _T("DesktopApp");
// The string that appears in the application's title bar.
static TCHAR szTitle[] = _T("Windows Desktop Guided Tour Application");
HINSTANCE hInst;
// Forward declarations of functions included in this code module:
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK LoginDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
std::optional<std::string> _ipaFilepath;
int CALLBACK WinMain(
_In_ HINSTANCE hInstance,
_In_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nCmdShow
)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION);
if (!RegisterClassEx(&wcex))
{
MessageBox(NULL,
_T("Call to RegisterClassEx failed!"),
_T("Windows Desktop Guided Tour"),
NULL);
return 1;
}
// Store instance handle in our global variable
hInst = hInstance;
// The parameters to CreateWindow explained:
// szWindowClass: the name of the application
// szTitle: the text that appears in the title bar
// WS_OVERLAPPEDWINDOW: the type of window to create
// CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)
// 500, 100: initial size (width, length)
// NULL: the parent of this window
// NULL: this application does not have a menu bar
// hInstance: the first parameter from WinMain
// NULL: not used in this application
/*HWND hWnd = CreateWindow(
szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
500, 100,
NULL,
NULL,
hInstance,
NULL
);*/
HWND hWnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
300,
HWND_MESSAGE,
NULL,
hInstance,
NULL
);
if (!hWnd)
{
MessageBox(NULL,
_T("Call to CreateWindow failed!"),
_T("Windows Desktop Guided Tour"),
NULL);
return 1;
}
// The parameters to ShowWindow explained:
// hWnd: the value returned from CreateWindow
// nCmdShow: the fourth parameter from WinMain
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
AltServerApp::instance()->Start(hWnd, hInst);
// Main message loop:
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
#define ID_MENU_LAUNCH_AT_LOGIN 104
#define ID_MENU_CLOSE 103
#define ID_MENU_CHECK_FOR_UPDATES 105
#define NO_DEVICES 200
#define FIRST_DEVICE 201
std::shared_ptr<Device> _selectedDevice;
// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// PURPOSE: Processes messages for the main window.
//
// WM_PAINT - Paint the main window
// WM_DESTROY - post a quit message and return
static HMENU hPopupMenu = NULL;
std::optional<std::string> OpenFile()
{
std::optional<std::string> filepath = std::nullopt;
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (!SUCCEEDED(hr))
{
return filepath;
}
IFileOpenDialog* pFileOpen;
hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL, IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen));
if (SUCCEEDED(hr))
{
COMDLG_FILTERSPEC rgSpec[] = {
{ L"iOS Applications", L"*.ipa"},
};
pFileOpen->SetFileTypes(ARRAYSIZE(rgSpec), rgSpec);
hr = pFileOpen->Show(NULL);
if (SUCCEEDED(hr))
{
IShellItem* pItem;
hr = pFileOpen->GetResult(&pItem);
if (SUCCEEDED(hr))
{
PWSTR pszFilePath;
hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
if (SUCCEEDED(hr))
{
filepath = StringFromWideString(pszFilePath);
CoTaskMemFree(pszFilePath);
}
pItem->Release();
}
}
pFileOpen->Release();
}
CoUninitialize();
return filepath;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
TCHAR greeting[] = _T("Click to Log In.");
switch (message)
{
case (WM_USER + 1):
{
switch (lParam)
{
case WM_LBUTTONUP:
{
// Get the position of the cursor
POINT pCursor;
GetCursorPos(&pCursor);
bool isSideloadingIPA = GetKeyState(VK_SHIFT) & 0x8000; // Must check high-order bits for pressed down/up value.
HMENU installMenu = CreatePopupMenu();
auto devices = DeviceManager::instance()->availableDevices();
if (devices.size() == 0)
{
AppendMenu(installMenu, MF_STRING | MF_GRAYED | MF_DISABLED, NO_DEVICES, L"No Connected Devices");
}
else
{
for (int i = 0; i < devices.size(); i++)
{
auto device = devices[i];
auto name = WideStringFromString(device->name());
AppendMenu(installMenu, MF_STRING, FIRST_DEVICE + i, name.c_str());
}
}
hPopupMenu = CreatePopupMenu();
if (AltServerApp::instance()->automaticallyLaunchAtLogin())
{
AppendMenu(hPopupMenu, MF_STRING | MF_CHECKED, ID_MENU_LAUNCH_AT_LOGIN, L"Automatically Launch at Startup");
}
else
{
AppendMenu(hPopupMenu, MF_STRING, ID_MENU_LAUNCH_AT_LOGIN, L"Automatically Launch at Startup");
}
const wchar_t* installTitle = isSideloadingIPA ? L"Sideload .ipa" : L"Install AltStore";
AppendMenu(hPopupMenu, MF_STRING | MF_POPUP, (UINT)installMenu, installTitle);
AppendMenu(hPopupMenu, MF_STRING, ID_MENU_CHECK_FOR_UPDATES, L"Check for Updates...");
AppendMenu(hPopupMenu, MF_STRING, ID_MENU_CLOSE, L"Close");
// Popup the menu with cursor position as the coordinates to pop it up
SetForegroundWindow(hWnd);
int id = TrackPopupMenu(hPopupMenu, TPM_LEFTBUTTON | TPM_RIGHTALIGN | TPM_RETURNCMD, pCursor.x, pCursor.y, 0, hWnd, NULL);
PostMessage(hWnd, WM_NULL, 0, 0);
if (id == ID_MENU_CLOSE)
{
PostMessage(hWnd, WM_CLOSE, 0, 0);
}
else if (id == ID_MENU_LAUNCH_AT_LOGIN)
{
auto launchAtLogin = AltServerApp::instance()->automaticallyLaunchAtLogin();
AltServerApp::instance()->setAutomaticallyLaunchAtLogin(!launchAtLogin);
}
else if (id == ID_MENU_CHECK_FOR_UPDATES)
{
AltServerApp::instance()->CheckForUpdates();
}
else if (id == NO_DEVICES)
{
// Ignore
}
else if (id >= FIRST_DEVICE)
{
int index = id - FIRST_DEVICE;
auto device = devices[index];
_selectedDevice = device;
if (isSideloadingIPA)
{
_ipaFilepath = OpenFile();
if (!_ipaFilepath.has_value())
{
break;
}
}
else
{
_ipaFilepath = std::nullopt;
}
// Show Auth dialog.
int result = DialogBox(NULL, MAKEINTRESOURCE(ID_LOGIN), hWnd, LoginDlgProc);
}
}
default: break;
}
break;
}
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// Here your application is laid out.
// For this introduction, we just print out "Hello, Windows desktop!"
// in the top left corner.
TextOut(hdc,
5, 5,
greeting, _tcslen(greeting));
// End application-specific layout section.
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
AltServerApp::instance()->Stop();
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
}
BOOL CALLBACK LoginDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
HWND appleIDTextField = GetDlgItem(hwnd, IDC_EDIT1);
HWND passwordTextField = GetDlgItem(hwnd, IDC_EDIT2);
HWND installButton = GetDlgItem(hwnd, IDOK);
switch (Message)
{
case WM_INITDIALOG:
{
Edit_SetCueBannerText(appleIDTextField, _T("Apple ID"));
Edit_SetCueBannerText(passwordTextField, _T("Password"));
Button_Enable(installButton, false);
break;
}
case WM_CTLCOLORSTATIC:
{
if (GetDlgCtrlID((HWND)lParam) == IDC_DESCRIPTION)
{
HBRUSH success = (HBRUSH)GetStockObject(HOLLOW_BRUSH);
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)success;
}
break;
}
case WM_COMMAND:
switch (HIWORD(wParam))
{
case EN_CHANGE:
{
/*PostMessage(hWnd, WM_CLOSE, 0, 0);
break;*/
int appleIDLength = Edit_GetTextLength(appleIDTextField);
int passwordLength = Edit_GetTextLength(passwordTextField);
if (appleIDLength == 0 || passwordLength == 0)
{
Button_Enable(installButton, false);
}
else
{
Button_Enable(installButton, true);
}
break;
}
}
switch (LOWORD(wParam))
{
case IDOK:
{
wchar_t appleID[512];
wchar_t password[512];
Edit_GetText(appleIDTextField, appleID, 512);
Edit_GetText(passwordTextField, password, 512);
auto task = AltServerApp::instance()->InstallApplication(_ipaFilepath, _selectedDevice, StringFromWideString(appleID), StringFromWideString(password));
EndDialog(hwnd, IDOK);
try
{
task.get();
}
catch (Error& error)
{
odslog("Error: " << error.domain() << " (" << error.code() << ").")
}
catch (std::exception& exception)
{
odslog("Exception: " << exception.what());
}
odslog("Finished!");
break;
}
case IDCANCEL:
EndDialog(hwnd, IDCANCEL);
break;
}
default:
return FALSE;
}
return TRUE;
}
================================================
FILE: AltServer/AltServer.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{469259AB-0F25-4B5E-B15C-591001FB9448}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>AltServer</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;CORECRYPTO_DONOT_USE_TRANSPARENT_UNION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)..\AltSign;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libplist\include;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libimobiledevice\include;C:\Program Files\Bonjour SDK\Include;$(ProjectDir)..\Dependencies\WinSparkle\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Ws2_32.lib;dnssd.lib;plist.lib;regex.lib;ldid.lib;corecrypto.lib;WinSparkle.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;C:\Program Files\Bonjour SDK\Lib\Win32;C:\Users\User\Documents\vcpkg\packages\cpprestsdk_x86-windows\lib;$(SolutionDir)AltSign\Dependencies\regex\lib;$(SolutionDir)$(Configuration)\;$(SolutionDir)Dependencies\Libraries;$(SolutionDir)AltSign\Dependencies\corecrypto;$(SolutionDir)Dependencies\WinSparkle\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<Manifest>
<EnableDpiAwareness>true</EnableDpiAwareness>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;CORECRYPTO_DONOT_USE_TRANSPARENT_UNION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)..\AltSign;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libplist\include;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libimobiledevice\include;C:\Program Files\Bonjour SDK\Include;$(ProjectDir)..\Dependencies\WinSparkle\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Ws2_32.lib;dnssd.lib;plist.lib;regex.lib;ldid.lib;corecrypto.lib;WinSparkle.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;C:\Program Files\Bonjour SDK\Lib\Win32;C:\Users\User\Documents\vcpkg\packages\cpprestsdk_x86-windows\lib;$(SolutionDir)AltSign\Dependencies\regex\lib;$(SolutionDir)$(Configuration)\;$(SolutionDir)Dependencies\Libraries;$(SolutionDir)AltSign\Dependencies\corecrypto;$(SolutionDir)Dependencies\WinSparkle\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<Manifest>
<EnableDpiAwareness>true</EnableDpiAwareness>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;CORECRYPTO_DONOT_USE_TRANSPARENT_UNION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>$(ProjectDir)..\AltSign;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libplist\include;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libimobiledevice\include;C:\Program Files\Bonjour SDK\Include;$(ProjectDir)..\Dependencies\WinSparkle\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;C:\Program Files\Bonjour SDK\Lib\Win32;C:\Users\User\Documents\vcpkg\packages\cpprestsdk_x86-windows\lib;$(SolutionDir)AltSign\Dependencies\regex\lib;$(SolutionDir)$(Configuration)\;$(SolutionDir)Dependencies\Libraries;$(SolutionDir)AltSign\Dependencies\corecrypto;$(SolutionDir)Dependencies\WinSparkle\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Ws2_32.lib;dnssd.lib;plist.lib;regex.lib;ldid.lib;corecrypto.lib;WinSparkle.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<Manifest>
<EnableDpiAwareness>true</EnableDpiAwareness>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>$(ProjectDir)..\AltSign;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libplist\include;$(ProjectDir)..\Dependencies\libimobiledevice-vs\libimobiledevice\include;C:\Program Files\Bonjour SDK\Include;$(ProjectDir)..\Dependencies\WinSparkle\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;C:\Program Files\Bonjour SDK\Lib\Win32;C:\Users\User\Documents\vcpkg\packages\cpprestsdk_x86-windows\lib;$(SolutionDir)AltSign\Dependencies\regex\lib;$(SolutionDir)$(Configuration)\;$(SolutionDir)Dependencies\Libraries;$(SolutionDir)AltSign\Dependencies\corecrypto;$(SolutionDir)Dependencies\WinSparkle\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Ws2_32.lib;dnssd.lib;plist.lib;regex.lib;ldid.lib;corecrypto.lib;WinSparkle.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="AltServer.cpp" />
<ClCompile Include="AltServerApp.cpp" />
<ClCompile Include="AnisetteDataManager.cpp" />
<ClCompile Include="ClientConnection.cpp" />
<ClCompile Include="ConnectionManager.cpp" />
<ClCompile Include="DeviceManager.cpp" />
<ClCompile Include="NotificationConnection.cpp" />
<ClCompile Include="ServerError.cpp" />
<ClCompile Include="WiredConnection.cpp" />
<ClCompile Include="WirelessConnection.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="AltServerApp.h" />
<ClInclude Include="AnisetteDataManager.h" />
<ClInclude Include="ClientConnection.h" />
<ClInclude Include="ConnectionManager.hpp" />
<ClInclude Include="DeviceManager.hpp" />
<ClInclude Include="InstallError.hpp" />
<ClInclude Include="NotificationConnection.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="Semaphore.h" />
<ClInclude Include="ServerError.hpp" />
<ClInclude Include="WiredConnection.h" />
<ClInclude Include="WirelessConnection.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Resource.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="..\..\..\..\Pictures\AltServerIcon Icons\ICO files\AltServerIcon_win7.ico" />
<Image Include="..\..\menubaricon_dark.ico" />
<Image Include="..\Resources\Icon.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AltSign\AltSign.vcxproj">
<Project>{3dd5ea43-d078-46fe-b5c2-bb6213f936cd}</Project>
</ProjectReference>
<ProjectReference Include="..\Dependencies\libimobiledevice-vs\imobiledevice.vcxproj">
<Project>{ee16e7f2-ac27-4e30-ab22-b02a9c2380b4}</Project>
</ProjectReference>
<ProjectReference Include="..\Dependencies\libimobiledevice-vs\libplist.vcxproj">
<Project>{75352a45-bcb8-4774-8c66-3af9ea6b6b42}</Project>
</ProjectReference>
<ProjectReference Include="..\Dependencies\libimobiledevice-vs\libusbmuxd.vcxproj">
<Project>{527ae686-cd0e-4bc2-9b0f-4bc4cf9621e0}</Project>
</ProjectReference>
<ProjectReference Include="..\ldid\ldid.vcxproj">
<Project>{147d42db-4b88-4b3f-8548-6e11fb51c589}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: AltServer/AltServer.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="AltServer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DeviceManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="AltServerApp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ConnectionManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="AnisetteDataManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="NotificationConnection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="WiredConnection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ClientConnection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="WirelessConnection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ServerError.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DeviceManager.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ServerError.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="AltServerApp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ConnectionManager.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="InstallError.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="AnisetteDataManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="NotificationConnection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="WiredConnection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ClientConnection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="WirelessConnection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Semaphore.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Resource.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\menubaricon_dark.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\..\..\..\Pictures\AltServerIcon Icons\ICO files\AltServerIcon_win7.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="..\Resources\Icon.ico">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
</Project>
================================================
FILE: AltServer/AltServerApp.cpp
================================================
//
// AltServerApp.cpp
// AltServer-Windows
//
// Created by Riley Testut on 8/30/19.
// Copyright (c) 2019 Riley Testut. All rights reserved.
//
#include "AltServerApp.h"
#include <windows.h>
#include <windowsx.h>
#include <strsafe.h>
#include "AppleAPI.hpp"
#include "ConnectionManager.hpp"
#include "InstallError.hpp"
#include "Signer.hpp"
#include "DeviceManager.hpp"
#include "Archiver.hpp"
#include "ServerError.hpp"
#include "AnisetteDataManager.h"
#include <cpprest/http_client.h>
#include <cpprest/filestream.h>
#include <filesystem>
#include <regex>
#include <plist/plist.h>
#include <WS2tcpip.h>
#include <ShlObj_core.h>
#pragma comment( lib, "gdiplus.lib" )
#include <gdiplus.h>
#include <strsafe.h>
#include "resource.h"
#include <winsparkle.h>
#define odslog(msg) { std::stringstream ss; ss << msg << std::endl; OutputDebugStringA(ss.str().c_str()); }
using namespace utility; // Common utilities like string conversions
using namespace web; // Common features like URIs.
using namespace web::http; // Common HTTP functionality
using namespace web::http::client; // HTTP client features
using namespace concurrency::streams; // Asynchronous streams
namespace fs = std::filesystem;
extern std::string temporary_directory();
extern std::string make_uuid();
extern std::vector<unsigned char> readFile(const char* filename);
extern std::string StringFromWideString(std::wstring wideString);
extern std::wstring WideStringFromString(std::string string);
const char* REGISTRY_ROOT_KEY = "SOFTWARE\\RileyTestut\\AltServer";
const char* DID_LAUNCH_KEY = "Launched";
const char* LAUNCH_AT_STARTUP_KEY = "LaunchAtStartup";
const char* PRESENTED_RUNNING_NOTIFICATION_KEY = "PresentedRunningNotification";
const char* SERVER_ID_KEY = "ServerID";
const char* REPROVISIONED_DEVICE_KEY = "ReprovisionedDevice";
const char* APPLE_FOLDER_KEY = "AppleFolder";
const char* STARTUP_ITEMS_KEY = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
std::string _verificationCode;
HKEY OpenRegistryKey()
{
HKEY hKey;
LONG nError = RegOpenKeyExA(HKEY_CURRENT_USER, REGISTRY_ROOT_KEY, NULL, KEY_ALL_ACCESS, &hKey);
if (nError == ERROR_FILE_NOT_FOUND)
{
nError = RegCreateKeyExA(HKEY_CURRENT_USER, REGISTRY_ROOT_KEY, NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL);
}
if (nError)
{
odslog("Error finding/creating registry value. " << nError);
}
return hKey;
}
void SetRegistryBoolValue(const char *lpValue, bool data)
{
int32_t value = data ? 1 : 0;
HKEY rootKey = OpenRegistryKey();
LONG nError = RegSetValueExA(rootKey, lpValue, NULL, REG_DWORD, (BYTE *)&value, sizeof(int32_t));
if (nError)
{
odslog("Error setting registry value. " << nError);
}
RegCloseKey(rootKey);
}
void SetRegistryStringValue(const char* lpValue, std::string string)
{
HKEY rootKey = OpenRegistryKey();
LONG nError = RegSetValueExA(rootKey, lpValue, NULL, REG_SZ, (const BYTE *)string.c_str(), string.size() + 1);
if (nError)
{
odslog("Error setting registry value. " << nError);
}
RegCloseKey(rootKey);
}
bool GetRegistryBoolValue(const char *lpValue)
{
HKEY rootKey = OpenRegistryKey();
int32_t data;
DWORD size = sizeof(int32_t);
DWORD type = REG_DWORD;
LONG nError = RegQueryValueExA(rootKey, lpValue, NULL, &type, (BYTE *)& data, &size);
if (nError == ERROR_FILE_NOT_FOUND)
{
data = 0;
}
else if (nError)
{
odslog("Could not get registry value. " << nError);
}
RegCloseKey(rootKey);
return (bool)data;
}
std::string GetRegistryStringValue(const char* lpValue)
{
HKEY rootKey = OpenRegistryKey();
char value[1024];
DWORD length = sizeof(value);
DWORD type = REG_SZ;
LONG nError = RegQueryValueExA(rootKey, lpValue, NULL, &type, (LPBYTE)& value, &length);
if (nError == ERROR_FILE_NOT_FOUND)
{
value[0] = 0;
}
else if (nError)
{
odslog("Could not get registry value. " << nError);
}
RegCloseKey(rootKey);
std::string string(value);
return string;
}
// Observes all exceptions that occurred in all tasks in the given range.
template<class T, class InIt>
void observe_all_exceptions(InIt first, InIt last)
{
std::for_each(first, last, [](concurrency::task<T> t)
{
t.then([](concurrency::task<T> previousTask)
{
try
{
previousTask.get();
}
catch (const std::exception&)
{
// Swallow the exception.
}
});
});
}
BOOL CALLBACK InstallDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Message)
{
case WM_INITDIALOG:
{
std::map<std::string, std::wstring>* parameters = (std::map<std::string, std::wstring>*)lParam;
std::wstring title = (*parameters)["title"];
std::wstring message = (*parameters)["message"];
SetWindowText(hwnd, title.c_str());
HWND descriptionText = GetDlgItem(hwnd, IDC_DESCRIPTION);
SetWindowText(descriptionText, message.c_str());
HWND downloadButton = GetDlgItem(hwnd, IDOK);
PostMessage(hwnd, WM_NEXTDLGCTL, (WPARAM)downloadButton, TRUE);
return TRUE;
}
case WM_CTLCOLORSTATIC:
{
if (GetDlgCtrlID((HWND)lParam) == IDC_DESCRIPTION)
{
HBRUSH success = (HBRUSH)GetStockObject(HOLLOW_BRUSH);
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)success;
}
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
case ID_FOLDER:
EndDialog(hwnd, LOWORD(wParam));
return TRUE;
}
}
default: break;
}
return FALSE;
}
BOOL CALLBACK TwoFactorDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
HWND verificationCodeTextField = GetDlgItem(hwnd, IDC_EDIT1);
HWND submitButton = GetDlgItem(hwnd, IDOK);
switch (Message)
{
case WM_INITDIALOG:
{
Edit_SetCueBannerText(verificationCodeTextField, L"123456");
Button_Enable(submitButton, false);
break;
}
case WM_CTLCOLORSTATIC:
{
if (GetDlgCtrlID((HWND)lParam) == IDC_DESCRIPTION)
{
HBRUSH success = (HBRUSH)GetStockObject(HOLLOW_BRUSH);
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)success;
}
break;
}
case WM_COMMAND:
switch (HIWORD(wParam))
{
case EN_CHANGE:
{
/*PostMessage(hWnd, WM_CLOSE, 0, 0);
break;*/
int codeLength = Edit_GetTextLength(verificationCodeTextField);
if (codeLength == 6)
{
Button_Enable(submitButton, true);
}
else
{
Button_Enable(submitButton, false);
}
break;
}
}
switch (LOWORD(wParam))
{
case IDOK:
{
wchar_t verificationCode[512];
Edit_GetText(verificationCodeTextField, verificationCode, 512);
odslog("Verification Code:" << verificationCode);
_verificationCode = StringFromWideString(verificationCode);
EndDialog(hwnd, IDOK);
break;
}
case IDCANCEL:
EndDialog(hwnd, IDCANCEL);
break;
}
default:
return FALSE;
}
return TRUE;
}
AltServerApp* AltServerApp::_instance = nullptr;
AltServerApp* AltServerApp::instance()
{
if (_instance == 0)
{
_instance = new AltServerApp();
}
return _instance;
}
AltServerApp::AltServerApp() : _appGroupSemaphore(1)
{
}
AltServerApp::~AltServerApp()
{
}
static int CALLBACK BrowseFolderCallback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
if (uMsg == BFFM_INITIALIZED)
{
std::string tmp = (const char*)lpData;
odslog("Browser Path:" << tmp);
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
}
return 0;
}
std::string AltServerApp::BrowseForFolder(std::wstring title, std::string folderPath)
{
BROWSEINFO browseInfo = { 0 };
browseInfo.lpszTitle = title.c_str();
browseInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON;
browseInfo.lpfn = BrowseFolderCallback;
browseInfo.lParam = (LPARAM)folderPath.c_str();
LPITEMIDLIST pidList = SHBrowseForFolder(&browseInfo);
if (pidList == 0)
{
return "";
}
TCHAR path[MAX_PATH];
SHGetPathFromIDList(pidList, path);
IMalloc* imalloc = NULL;
if (SUCCEEDED(SHGetMalloc(&imalloc)))
{
imalloc->Free(pidList);
imalloc->Release();
}
return StringFromWideString(path);
}
void AltServerApp::Start(HWND windowHandle, HINSTANCE instanceHandle)
{
_windowHandle = windowHandle;
_instanceHandle = instanceHandle;
win_sparkle_set_appcast_url("https://altstore.io/altserver/sparkle-windows.xml");
win_sparkle_init();
bool didLaunch = GetRegistryBoolValue(DID_LAUNCH_KEY);
if (!didLaunch)
{
// First launch.
// Automatically launch at login.
this->setAutomaticallyLaunchAtLogin(true);
auto serverID = make_uuid();
this->setServerID(serverID);
SetRegistryBoolValue(DID_LAUNCH_KEY, true);
}
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
ConnectionManager::instance()->Start();
try
{
this->CheckDependencies();
AnisetteDataManager::instance()->LoadDependencies();
#if SPOOF_MAC
if (!this->CheckiCloudDependencies())
{
this->ShowAlert("iCloud Not Installed", "iCloud must be installed from Apple's website (not the Microsoft Store) in order to use AltStore.");
}
#endif
}
catch (AnisetteError &error)
{
this->HandleAnisetteError(error);
}
catch (LocalizedError& error)
{
this->ShowAlert("Failed to Start AltServer", error.localizedDescription());
}
catch (std::exception& exception)
{
this->ShowAlert("Failed to Start AltServer", exception.what());
}
if (!this->presentedRunningNotification())
{
this->ShowNotification("AltServer Running", "AltServer will continue to run in the background listening for AltStore.");
this->setPresentedRunningNotification(true);
}
else
{
// Make AltServer appear in notification area.
this->ShowNotification("", "");
}
DeviceManager::instance()->Start();
}
void AltServerApp::Stop()
{
win_sparkle_cleanup();
}
void AltServerApp::CheckForUpdates()
{
win_sparkle_check_update_with_ui();
}
pplx::task<std::shared_ptr<Application>> AltServerApp::InstallApplication(std::optional<std::string> filepath, std::shared_ptr<Device> installDevice, std::string appleID, std::string password)
{
return this->_InstallApplication(filepath, installDevice, appleID, password)
.then([=](pplx::task<std::shared_ptr<Application>> task) -> pplx::task<std::shared_ptr<Application>> {
try
{
auto application = task.get();
return pplx::create_task([application]() {
return application;
});
}
catch (APIError& error)
{
if ((APIErrorCode)error.code() == APIErrorCode::InvalidAnisetteData)
{
// Our attempt to re-provision the device as a Mac failed, so reset provisioning and try one more time.
// This appears to happen when iCloud is running simultaneously, and just happens to provision device at same time as AltServer.
AnisetteDataManager::instance()->ResetProvisioning();
this->ShowNotification("Registering PC with Apple...", "This may take a few seconds.");
// Provisioning device can fail if attempted too soon after previous attempt.
// As a hack around this, we wait a bit before trying again.
// 10-11 seconds appears to be too short, so wait for 12 seconds instead.
Sleep(12000);
return this->_InstallApplication(filepath, installDevice, appleID, password);
}
else
{
throw;
}
}
})
.then([=](pplx::task<std::shared_ptr<Application>> task) -> std::shared_ptr<Application> {
try
{
auto application = task.get();
std::stringstream ss;
ss << application->name() << " was successfully installed on " << installDevice->name() << ".";
this->ShowNotification("Installation Succeeded", ss.str());
return application;
}
catch (InstallError& error)
{
if ((InstallErrorCode)error.code() == InstallErrorCode::Cancelled)
{
// Ignore
}
else
{
this->ShowAlert("Installation Failed", error.localizedDescription());
throw;
}
}
catch (APIError& error)
{
if ((APIErrorCode)error.code() == APIErrorCode::InvalidAnisetteData)
{
AnisetteDataManager::instance()->ResetProvisioning();
}
this->ShowAlert("Installation Failed", error.localizedDescription());
throw;
}
catch (AnisetteError& error)
{
this->HandleAnisetteError(error);
throw;
}
catch (Error& error)
{
this->ShowAlert("Installation Failed", error.localizedDescription());
throw;
}
catch (std::exception& exception)
{
odslog("Exception:" << exception.what());
this->ShowAlert("Installation Failed", exception.what());
throw;
}
});
}
pplx::task<std::shared_ptr<Application>> AltServerApp::_InstallApplication(std::optional<std::string> filepath, std::shared_ptr<Device> installDevice, std::string appleID, std::string password)
{
fs::path destinationDirectoryPath(temporary_directory());
destinationDirectoryPath.append(make_uuid());
auto account = std::make_shared<Account>();
auto app = std::make_shared<Application>();
auto team = std::make_shared<Team>();
auto device = std::make_shared<Device>();
auto appID = std::make_shared<AppID>();
auto certificate = std::make_shared<Certificate>();
auto profile = std::make_shared<ProvisioningProfile>();
auto session = std::make_shared<AppleAPISession>();
return pplx::create_task([=]() {
auto anisetteData = AnisetteDataManager::instance()->FetchAnisetteData();
return this->Authenticate(appleID, password, anisetteData);
})
.then([=](std::pair<std::shared_ptr<Account>, std::shared_ptr<AppleAPISession>> pair)
{
*account = *(pair.first);
*session = *(pair.second);
odslog("Fetching team...");
return this->FetchTeam(account, session);
})
.then([=](std::shared_ptr<Team> tempTeam)
{
odslog("Registering device...");
*team = *tempTeam;
return this->RegisterDevice(installDevice, team, session);
})
.then([=](std::shared_ptr<Device> tempDevice)
{
odslog("Fetching certificate...");
*device = *tempDevice;
return this->FetchCertificate(team, session);
})
.then([=](std::shared_ptr<Certificate> tempCertificate)
{
*certificate = *tempCertificate;
if (filepath.has_value())
{
odslog("Importing app...");
return pplx::create_task([filepath] {
return fs::path(*filepath);
});
}
else
{
odslog("Downloading app...");
// Show alert before downloading AltStore.
this->ShowInstallationNotification("AltStore", device->name());
return this->DownloadApp();
}
})
.then([=](fs::path downloadedAppPath)
{
odslog("Downloaded app!");
fs::create_directory(destinationDirectoryPath);
auto appBundlePath = UnzipAppBundle(downloadedAppPath.string(), destinationDirectoryPath.string());
auto app = std::make_shared<Application>(appBundlePath);
if (filepath.has_value())
{
// Show alert after "downloading" local .ipa.
this->ShowInstallationNotification(app->name(), device->name());
}
else
{
// Remove downloaded app.
try
{
fs::remove(downloadedAppPath);
}
catch (std::exception& e)
{
odslog("Failed to remove downloaded .ipa." << e.what());
}
}
return app;
})
.then([=](std::shared_ptr<Application> tempApp)
{
*app = *tempApp;
return this->PrepareAllProvisioningProfiles(app, device, team, session);
})
.then([=](std::map<std::string, std::shared_ptr<ProvisioningProfile>> profiles)
{
return this->InstallApp(app, device, team, certificate, profiles);
})
.then([=](pplx::task<std::shared_ptr<Application>> task)
{
if (fs::exists(destinationDirectoryPath))
{
fs::remove_all(destinationDirectoryPath);
}
try
{
auto application = task.get();
return application;
}
catch (LocalizedError& error)
{
if (error.code() == -22421)
{
// Don't know what API call returns this error code, so assume any LocalizedError with -22421 error code
// means invalid anisette data, then throw the correct APIError.
throw APIError(APIErrorCode::InvalidAnisetteData);
}
else if (error.code() == -29004)
{
// Same with -29004, "Environment Mismatch"
throw APIError(APIErrorCode::InvalidAnisetteData);
}
else
{
throw;
}
}
});
}
pplx::task<fs::path> AltServerApp::DownloadApp()
{
fs::path temporaryPath(temporary_directory());
temporaryPath.append(make_uuid());
auto outputFile = std::make_shared<ostream>();
// Open stream to output file.
auto task = fstream::open_ostream(WideStringFromString(temporaryPath.string()))
.then([=](ostream file)
{
*outputFile = file;
uri_builder builder(L"https://cdn.altstore.io/file/altstore/altstore.ipa");
http_client client(builder.to_uri());
return client.request(methods::GET);
})
.then([=](http_response response)
{
printf("Received download response status code:%u\n", response.status_code());
// Write response body into the file.
return response.body().read_to_end(outputFile->streambuf());
})
.then([=](size_t)
{
outputFile->close();
return temporaryPath;
});
return task;
}
pplx::task<std::pair<std::shared_ptr<Account>, std::shared_ptr<AppleAPISession>>> AltServerApp::Authenticate(std::string appleID, std::string password, std::shared_ptr<AnisetteData> anisetteData)
{
auto verificationHandler = [=](void)->pplx::task<std::optional<std::string>> {
return pplx::create_task([=]() -> std::optional<std::string> {
int result = DialogBox(NULL, MAKEINTRESOURCE(ID_TWOFACTOR), NULL, TwoFactorDlgProc);
if (result == IDCANCEL)
{
return std::nullopt;
}
auto verificationCode = std::make_optional<std::string>(_verificationCode);
_verificationCode = "";
return verificationCode;
});
};
return pplx::create_task([=]() {
if (anisetteData == NULL)
{
throw ServerError(ServerErrorCode::InvalidAnisetteData);
}
return AppleAPI::getInstance()->Authenticate(appleID, password, anisetteData, verificationHandler);
});
}
pplx::task<std::shared_ptr<Team>> AltServerApp::FetchTeam(std::shared_ptr<Account> account, std::shared_ptr<AppleAPISession> session)
{
auto task = AppleAPI::getInstance()->FetchTeams(account, session)
.then([](std::vector<std::shared_ptr<Team>> teams) {
for (auto& team : teams)
{
if (team->type() == Team::Type::Individual)
{
return team;
}
}
for (auto& team : teams)
{
if (team->type() == Team::Type::Free)
{
return team;
}
}
for (auto& team : teams)
{
return team;
}
throw InstallError(InstallErrorCode::NoTeam);
});
return task;
}
pplx::task<std::shared_ptr<Certificate>> AltServerApp::FetchCertificate(std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session)
{
auto task = AppleAPI::getInstance()->FetchCertificates(team, session)
.then([this, team, session](std::vector<std::shared_ptr<Certificate>> certificates)
{
auto certificatesDirectoryPath = this->certificatesDirectoryPath();
auto cachedCertificatePath = certificatesDirectoryPath.append(team->identifier() + ".p12");
std::shared_ptr<Certificate> preferredCertificate = nullptr;
for (auto& certificate : certificates)
{
if (!certificate->machineName().has_value())
{
continue;
}
std::string prefix("AltStore");
if (certificate->machineName()->size() < prefix.size())
{
// Machine name doesn't begin with "AltStore", so ignore.
continue;
}
else
{
auto result = std::mismatch(prefix.begin(), prefix.end(), certificate->machineName()->begin());
if (result.first != prefix.end())
{
// Machine name doesn't begin with "AltStore", so ignore.
continue;
}
}
if (fs::exists(cachedCertificatePath) && certificate->machineIdentifier().has_value())
{
try
{
auto data = readFile(cachedCertificatePath.string().c_str());
auto cachedCertificate = std::make_shared<Certificate>(data, *certificate->machineIdentifier());
// Manually set machineIdentifier so we can encrypt + embed certificate if needed.
cachedCertificate->setMachineIdentifier(*certificate->machineIdentifier());
return pplx::create_task([cachedCertificate] {
return cachedCertificate;
});
}
catch(std::exception &e)
{
// Ignore cached certificate errors.
odslog("Failed to load cached certificate:" << cachedCertificatePath << ". " << e.what())
}
}
preferredCertificate = certificate;
// Machine name starts with AltStore.
auto alertResult = MessageBox(NULL,
L"Please use the same AltServer you previously used with this Apple ID, or else apps installed with other AltServers will stop working.\n\nAre you sure you want to continue?",
L"Installing AltStore with Multiple AltServers Not Supported",
MB_OKCANCEL);
if (alertResult == IDCANCEL)
{
throw InstallError(InstallErrorCode::Cancelled);
}
break;
}
if (certificates.size() != 0)
{
auto certificate = (preferredCertificate != nullptr) ? preferredCertificate : certificates[0];
return AppleAPI::getInstance()->RevokeCertificate(certificate, team, session).then([this, team, session](bool success)
{
return this->FetchCertificate(team, session);
});
}
else
{
std::string machineName = "AltStore";
return AppleAPI::getInstance()->AddCertificate(machineName, team, session)
.then([team, session, cachedCertificatePath](std::shared_ptr<Certificate> addedCertificate)
{
auto privateKey = addedCertificate->privateKey();
if (privateKey == std::nullopt)
{
throw InstallError(InstallErrorCode::MissingPrivateKey);
}
return AppleAPI::getInstance()->FetchCertificates(team, session)
.then([privateKey, addedCertificate, cachedCertificatePath](std::vector<std::shared_ptr<Certificate>> certificates)
{
std::shared_ptr<Certificate> certificate = nullptr;
for (auto tempCertificate : certificates)
{
if (tempCertificate->serialNumber() == addedCertificate->serialNumber())
{
certificate = tempCertificate;
break;
}
}
if (certificate == nullptr)
{
throw InstallError(InstallErrorCode::MissingCertificate);
}
certificate->setPrivateKey(privateKey);
try
{
if (certificate->machineIdentifier().has_value())
{
auto machineIdentifier = certificate->machineIdentifier();
auto encryptedData = certificate->encryptedP12Data(*machineIdentifier);
if (encryptedData.has_value())
{
std::ofstream fout(cachedCertificatePath.string(), std::ios::out | std::ios::binary);
fout.write((const char*)encryptedData->data(), encryptedData->size());
fout.close();
}
}
}
catch (std::exception& e)
{
// Ignore caching certificate errors.
odslog("Failed to cache certificate:" << cachedCertificatePath << ". " << e.what())
}
return certificate;
});
});
}
});
return task;
}
pplx::task<std::map<std::string, std::shared_ptr<ProvisioningProfile>>> AltServerApp::PrepareAllProvisioningProfiles(
std::shared_ptr<Application> application,
std::shared_ptr<Device> device,
std::shared_ptr<Team> team,
std::shared_ptr<AppleAPISession> session)
{
return this->PrepareProvisioningProfile(application, std::nullopt, device, team, session)
.then([=](std::shared_ptr<ProvisioningProfile> profile) {
std::vector<pplx::task<std::pair<std::string, std::shared_ptr<ProvisioningProfile>>>> tasks;
auto task = pplx::create_task([application, profile]() -> std::pair<std::string, std::shared_ptr<ProvisioningProfile>> {
return std::make_pair(application->bundleIdentifier(), profile);
});
tasks.push_back(task);
for (auto appExtension : application->appExtensions())
{
auto task = this->PrepareProvisioningProfile(appExtension, application, device, team, session)
.then([appExtension](std::shared_ptr<ProvisioningProfile> profile) {
return std::make_pair(appExtension->bundleIdentifier(), profile);
});
tasks.push_back(task);
}
return pplx::when_all(tasks.begin(), tasks.end())
.then([tasks](pplx::task<std::vector<std::pair<std::string, std::shared_ptr<ProvisioningProfile>>>> task) {
try
{
auto pairs = task.get();
std::map<std::string, std::shared_ptr<ProvisioningProfile>> profiles;
for (auto& pair : pairs)
{
profiles[pair.first] = pair.second;
}
observe_all_exceptions<std::pair<std::string, std::shared_ptr<ProvisioningProfile>>>(tasks.begin(), tasks.end());
return profiles;
}
catch (std::exception& e)
{
observe_all_exceptions<std::pair<std::string, std::shared_ptr<ProvisioningProfile>>>(tasks.begin(), tasks.end());
throw;
}
});
});
}
pplx::task<std::shared_ptr<ProvisioningProfile>> AltServerApp::PrepareProvisioningProfile(
std::shared_ptr<Application> app,
std::optional<std::shared_ptr<Application>> parentApp,
std::shared_ptr<Device> device,
std::shared_ptr<Team> team,
std::shared_ptr<AppleAPISession> session)
{
std::string preferredName;
std::string parentBundleID;
if (parentApp.has_value())
{
parentBundleID = (*parentApp)->bundleIdentifier();
preferredName = (*parentApp)->name() + " " + app->name();
}
else
{
parentBundleID = app->bundleIdentifier();
preferredName = app->name();
}
std::string updatedParentBundleID;
if (app->isAltStoreApp())
{
std::stringstream ss;
ss << "com." << team->identifier() << "." << parentBundleID;
updatedParentBundleID = ss.str();
}
else
{
updatedParentBundleID = parentBundleID + "." + team->identifier();
}
std::string bundleID = std::regex_replace(app->bundleIdentifier(), std::regex(parentBundleID), updatedParentBundleID);
return this->RegisterAppID(preferredName, bundleID, team, session)
.then([=](std::shared_ptr<AppID> appID)
{
return this->UpdateAppIDFeatures(appID, app, team, session);
})
.then([=](std::shared_ptr<AppID> appID)
{
return this->UpdateAppIDAppGroups(appID, app, team, session);
})
.then([=](std::shared_ptr<AppID> appID)
{
return this->FetchProvisioningProfile(appID, device, team, session);
})
.then([=](std::shared_ptr<ProvisioningProfile> profile)
{
return profile;
});
}
pplx::task<std::shared_ptr<AppID>> AltServerApp::RegisterAppID(std::string appName, std::string bundleID, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session)
{
auto task = AppleAPI::getInstance()->FetchAppIDs(team, session)
.then([bundleID, appName, team, session](std::vector<std::shared_ptr<AppID>> appIDs)
{
std::shared_ptr<AppID> appID = nullptr;
for (auto tempAppID : appIDs)
{
if (tempAppID->bundleIdentifier() == bundleID)
{
appID = tempAppID;
break;
}
}
if (appID != nullptr)
{
return pplx::task<std::shared_ptr<AppID>>([appID]()
{
return appID;
});
}
else
{
return AppleAPI::getInstance()->AddAppID(appName, bundleID, team, session);
}
});
return task;
}
pplx::task<std::shared_ptr<AppID>> AltServerApp::UpdateAppIDFeatures(std::shared_ptr<AppID> appID, std::shared_ptr<Application> app, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session)
{
//TODO: Add support for additional features besides app groups.
std::map<std::string, plist_t> altstoreFeatures = appID->features();
auto boolNode = plist_new_bool(true);
altstoreFeatures[AppIDFeatureAppGroups] = boolNode;
//TODO: Only update features if needed.
std::shared_ptr<AppID> copiedAppID = std::make_shared<AppID>(*appID);
copiedAppID->setFeatures(altstoreFeatures);
plist_free(boolNode);
return AppleAPI::getInstance()->UpdateAppID(copiedAppID, team, session);
}
pplx::task<std::shared_ptr<AppID>> AltServerApp::UpdateAppIDAppGroups(std::shared_ptr<AppID> appID, std::shared_ptr<Application> app, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session)
{
return pplx::create_task([=]() -> pplx::task<std::shared_ptr<AppID>> {
auto applicationGroupsNode = app->entitlements()["com.apple.security.application-groups"];
std::vector<std::string> applicationGroups;
if (applicationGroupsNode != nullptr)
{
for (int i = 0; i < plist_array_get_size(applicationGroupsNode); i++)
{
auto groupNode = plist_array_get_item(applicationGroupsNode, i);
char* groupName = nullptr;
plist_get_string_val(groupNode, &groupName);
applicationGroups.push_back(groupName);
}
}
if (applicationGroups.size() == 0)
{
auto appGroupsNode = appID->features()["APG3427HIY"]; // App group feature ID
if (appGroupsNode != nullptr)
{
uint8_t isAppGroupsEnabled = 0;
plist_get_bool_val(appGroupsNode, &isAppGroupsEnabled);
if (!isAppGroupsEnabled)
{
// No app groups, and we haven't enabled the feature already, so don't continue.
return pplx::create_task([appID]() {
return appID;
});
}
}
}
this->_appGroupSemaphore.wait();
return AppleAPI::getInstance()->FetchAppGroups(team, session)
.then([=](std::vector<std::shared_ptr<AppGroup>> fetchedGroups) {
std::vector<pplx::task<std::shared_ptr<AppGroup>>> tasks;
for (auto groupIdentifier : applicationGroups)
{
std::string adjustedGroupIdentifier = groupIdentifier + "." + team->identifier();
std::optional<std::shared_ptr<AppGroup>> matchingGroup;
for (auto group : fetchedGroups)
{
if (group->groupIdentifier() == adjustedGroupIdentifier)
{
matchingGroup = group;
break;
}
}
if (matchingGroup.has_value())
{
auto task = pplx::create_task([matchingGroup]() { return *matchingGroup; });
tasks.push_back(task);
}
else
{
std::string name = std::regex_replace("AltStore " + groupIdentifier, std::regex("\\."), " ");
auto task = AppleAPI::getInstance()->AddAppGroup(name, adjustedGroupIdentifier, team, session);
tasks.push_back(task);
}
}
return pplx::when_all(tasks.begin(), tasks.end()).then([=](pplx::task<std::vector<std::shared_ptr<AppGroup>>> task) {
try
{
auto groups = task.get();
observe_all_exceptions<std::shared_ptr<AppGroup>>(tasks.begin(), tasks.end());
return groups;
}
catch (std::exception& e)
{
observe_all_exceptions<std::shared_ptr<AppGroup>>(tasks.begin(), tasks.end());
throw;
}
});
})
.then([=](std::vector<std::shared_ptr<AppGroup>> groups) {
return AppleAPI::getInstance()->AssignAppIDToGroups(appID, groups, team, session);
})
.then([appID](bool result) {
return appID;
})
.then([this](pplx::task<std::shared_ptr<AppID>> task) {
this->_appGroupSemaphore.notify();
auto appID = task.get();
return appID;
});
});
}
pplx::task<std::shared_ptr<Device>> AltServerApp::RegisterDevice(std::shared_ptr<Device> device, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session)
{
auto task = AppleAPI::getInstance()->FetchDevices(team, device->type(), session)
.then([device, team, session](std::vector<std::shared_ptr<Device>> devices)
{
std::shared_ptr<Device> matchingDevice = nullptr;
for (auto tempDevice : devices)
{
if (tempDevice->identifier() == device->identifier())
{
matchingDevice = tempDevice;
break;
}
}
if (matchingDevice != nullptr)
{
return pplx::task<std::shared_ptr<Device>>([matchingDevice]()
{
return matchingDevice;
});
}
else
{
return AppleAPI::getInstance()->RegisterDevice(device->name(), device->identifier(), device->type(), team, session);
}
});
return task;
}
pplx::task<std::shared_ptr<ProvisioningProfile>> AltServerApp::FetchProvisioningProfile(std::shared_ptr<AppID> appID, std::shared_ptr<Device> device, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session)
{
return AppleAPI::getInstance()->FetchProvisioningProfile(appID, device->type(), team, session);
}
pplx::task<std::shared_ptr<Application>> AltServerApp::InstallApp(std::shared_ptr<Application> app,
std::shared_ptr<Device> device,
std::shared_ptr<Team> team,
std::shared_ptr<Certificate> certificate,
std::map<std::string, std::shared_ptr<ProvisioningProfile>> profilesByBundleID)
{
auto prepareInfoPlist = [profilesByBundleID](std::shared_ptr<Application> app, plist_t additionalValues){
auto profile = profilesByBundleID.at(app->bundleIdentifier());
fs::path infoPlistPath(app->path());
infoPlistPath.append("Info.plist");
auto data = readFile(infoPlistPath.string().c_str());
plist_t plist = nullptr;
plist_from_memory((const char*)data.data(), (int)data.size(), &plist);
if (plist == nullptr)
{
throw InstallError(InstallErrorCode::MissingInfoPlist);
}
plist_dict_set_item(plist, "CFBundleIdentifier", plist_new_string(profile->bundleIdentifier().c_str()));
plist_dict_set_item(plist, "ALTBundleIdentifier", plist_new_string(app->bundleIdentifier().c_str()));
if (additionalValues != NULL)
{
plist_dict_merge(&plist, additionalValues);
}
plist_t entitlements = profile->entitlements();
if (entitlements != nullptr)
{
plist_t appGroups = plist_copy(plist_dict_get_item(entitlements, "com.apple.security.application-groups"));
plist_dict_set_item(plist, "ALTAppGroups", appGroups);
}
char* plistXML = nullptr;
uint32_t length = 0;
plist_to_xml(plist, &plistXML, &length);
std::ofstream fout(infoPlistPath.string(), std::ios::out | std::ios::binary);
fout.write(plistXML, length);
fout.close();
};
return pplx::task<std::shared_ptr<Application>>([=]() {
fs::path infoPlistPath(app->path());
infoPlistPath.append("Info.plist");
auto data = readFile(infoPlistPath.string().c_str());
plist_t plist = nullptr;
plist_from_memory((const char *)data.data(), (int)data.size(), &plist);
if (plist == nullptr)
{
throw InstallError(InstallErrorCode::MissingInfoPlist);
}
plist_t additionalValues = plist_new_dict();
std::string openAppURLScheme = "altstore-" + app->bundleIdentifier();
plist_t allURLSchemes = plist_dict_get_item(plist, "CFBundleURLTypes");
if (allURLSchemes == nullptr)
{
allURLSchemes = plist_new_array();
}
else
{
allURLSchemes = plist_copy(allURLSchemes);
}
plist_t altstoreURLScheme = plist_new_dict();
plist_dict_set_item(altstoreURLScheme, "CFBundleTypeRole", plist_new_string("Editor"));
plist_dict_set_item(altstoreURLScheme, "CFBundleURLName", plist_new_string(app->bundleIdentifier().c_str()));
plist_t schemesNode = plist_new_array();
plist_array_append_item(schemesNode, plist_new_string(openAppURLScheme.c_str()));
plist_dict_set_item(altstoreURLScheme, "CFBundleURLSchemes", schemesNode);
plist_array_append_item(allURLSchemes, altstoreURLScheme);
plist_dict_set_item(additionalValues, "CFBundleURLTypes", allURLSchemes);
if (app->isAltStoreApp())
{
plist_dict_set_item(additionalValues, "ALTDeviceID", plist_new_string(device->identifier().c_str()));
auto serverID = this->serverID();
plist_dict_set_item(additionalValues, "ALTServerID", plist_new_string(serverID.c_str()));
auto machineIdentifier = certificate->machineIdentifier();
if (machineIdentifier.has_value())
{
auto encryptedData = certificate->encryptedP12Data(*machineIdentifier);
if (encryptedData.has_value())
{
plist_dict_set_item(additionalValues, "ALTCertificateID", plist_new_string(certificate->serialNumber().c_str()));
// Embed encrypted certificate in app bundle.
fs::path certificatePath(app->path());
certificatePath.append("ALTCertificate.p12");
std::ofstream fout(certificatePath.string(), std::ios::out | std::ios::binary);
fout.write((const char*)encryptedData->data(), encryptedData->size());
fout.close();
}
}
}
prepareInfoPlist(app, additionalValues);
for (auto appExtension : app->appExtensions())
{
prepareInfoPlist(appExtension, NULL);
}
std::vector<std::shared_ptr<ProvisioningProfile>> profiles;
std::set<std::string> profileIdentifiers;
for (auto pair : profilesByBundleID)
{
profiles.push_back(pair.second);
profileIdentifiers.insert(pair.second->bundleIdentifier());
}
Signer signer(team, certificate);
signer.SignApp(app->path(), profiles);
std::optional<std::set<std::string>> activeProfiles = std::nullopt;
if (team->type() == Team::Type::Free && app->isAltStoreApp())
{
activeProfiles = profileIdentifiers;
}
return DeviceManager::instance()->InstallApp(app->path(), device->identifier(), activeProfiles, [](double progress) {
odslog("Installation Progress: " << progress);
})
.then([app] {
return app;
});
});
}
void AltServerApp::ShowNotification(std::string title, std::string message)
{
HICON icon = (HICON)LoadImage(this->instanceHandle(), MAKEINTRESOURCE(IMG_MENUBAR), IMAGE_ICON, 0, 0, LR_MONOCHROME);
NOTIFYICONDATA niData;
ZeroMemory(&niData, sizeof(NOTIFYICONDATA));
niData.uVersion = NOTIFYICON_VERSION_4;
niData.cbSize = sizeof(NOTIFYICONDATA);
niData.uID = 10456;
niData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_INFO | NIF_TIP | NIF_GUID;
niData.hWnd = this->windowHandle();
niData.hIcon = icon;
niData.uCallbackMessage = WM_USER + 1;
niData.uTimeout = 3000;
niData.dwInfoFlags = NIIF_INFO;
StringCchCopy(niData.szInfoTitle, ARRAYSIZE(niData.szInfoTitle), WideStringFromString(title).c_str());
StringCchCopy(niData.szInfo, ARRAYSIZE(niData.szInfo), WideStringFromString(message).c_str());
if (!_presentedNotification)
{
Shell_NotifyIcon(NIM_ADD, &niData);
}
else
{
Shell_NotifyIcon(NIM_MODIFY, &niData);
}
_presentedNotification = true;
}
void AltServerApp::ShowAlert(std::string title, std::string message)
{
MessageBoxW(NULL, WideStringFromString(message).c_str(), WideStringFromString(title).c_str(), MB_OK);
}
void AltServerApp::ShowInstallationNotification(std::string appName, std::string deviceName)
{
std::stringstream ssTitle;
ssTitle << "Installing " << appName << " to " << deviceName << "...";
std::stringstream ssMessage;
ssMessage << "This may take a few seconds.";
this->ShowNotification(ssTitle.str(), ssMessage.str());
}
bool AltServerApp::CheckDependencies()
{
wchar_t* programFilesCommonDirectory;
SHGetKnownFolderPath(FOLDERID_ProgramFilesCommon, 0, NULL, &programFilesCommonDirectory);
fs::path deviceDriverDirectoryPath(programFilesCommonDirectory);
deviceDriverDirectoryPath.append("Apple").append("Mobile Device Support");
if (!fs::exists(deviceDriverDirectoryPath))
{
return false;
}
wchar_t* programFilesDirectory;
SHGetKnownFolderPath(FOLDERID_ProgramFiles, 0, NULL, &programFilesDirectory);
fs::path bonjourDirectoryPath(programFilesDirectory);
bonjourDirectoryPath.append("Bonjour");
if (!fs::exists(bonjourDirectoryPath))
{
return false;
}
return true;
}
bool AltServerApp::CheckiCloudDependencies()
{
wchar_t* programFilesCommonDirectory;
SHGetKnownFolderPath(FOLDERID_ProgramFilesCommon, 0, NULL, &programFilesCommonDirectory);
fs::path deviceDriverDirectoryPath(programFilesCommonDirectory);
deviceDriverDirectoryPath.append("Apple").append("Internet Services");
fs::path aosKitPath(deviceDriverDirectoryPath);
aosKitPath.append("AOSKit.dll");
if (!fs::exists(aosKitPath))
{
return false;
}
return true;
}
void AltServerApp::HandleAnisetteError(AnisetteError& error)
{
switch ((AnisetteErrorCode)error.code())
{
case AnisetteErrorCode::iTunesNotInstalled:
case AnisetteErrorCode::iCloudNotInstalled:
{
wchar_t* title = NULL;
wchar_t *message = NULL;
std::string downloadURL;
switch ((AnisetteErrorCode)error.code())
{
case AnisetteErrorCode::iTunesNotInstalled:
{
title = (wchar_t *)L"iTunes Not Found";
message = (wchar_t*)LR"(Download the latest version of iTunes from apple.com (not the Microsoft Store) in order to continue using AltServer.
If you already have iTunes installed, please locate the "Apple" folder that was installed with iTunes. This can normally be found at:
)";
BOOL is64Bit = false;
if (GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process2") != NULL)
{
USHORT pProcessMachine = 0;
USHORT pNativeMachine = 0;
if (IsWow64Process2(GetCurrentProcess(), &pProcessMachine, &pNativeMachine) != 0 && pProcessMachine != IMAGE_FILE_MACHINE_UNKNOWN)
{
is64Bit = true;
}
else
{
is64Bit = false;
}
}
else if (GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process") != NULL)
{
IsWow64Process(GetCurrentProcess(), &is64Bit);
}
else
{
is64Bit = false;
}
if (is64Bit)
{
// 64-bit
downloadURL = "https://www.apple.com/itunes/download/win64";
}
else
{
// 32-bit
downloadURL = "https://www.apple.com/itunes/download/win32";
}
break;
}
case AnisetteErrorCode::iCloudNotInstalled:
title = (wchar_t*)L"iCloud Not Found";
message = (wchar_t*)LR"(Download the latest version of iCloud from apple.com (not the Microsoft Store) in order to continue using AltServer.
If you already have iCloud installed, please locate the "Apple" folder that was installed with iCloud. This can normally be found at:
)";
downloadURL = "https://secure-appldnld.apple.com/windows/061-91601-20200323-974a39d0-41fc-4761-b571-318b7d9205ed/iCloudSetup.exe";
break;
}
std::wstring completeMessage(message);
completeMessage += WideStringFromString(this->defaultAppleFolderPath());
std::map<std::string, std::wstring> parameters = { {"title", title}, {"message", completeMessage} };
int result = DialogBoxParam(NULL, MAKEINTRESOURCE(ID_ICLOUD_MISSING_64), NULL, InstallDlgProc, (LPARAM)¶meters);
if (result == IDOK)
{
ShellExecuteA(NULL, "open", downloadURL.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
else if (result == ID_FOLDER)
{
std::string folderPath = this->BrowseForFolder(L"Choose the 'Apple' folder that contains both 'Apple Application Support' and 'Internet Services'. This can normally be found at: " + WideStringFromString(this->defaultAppleFolderPath()), this->appleFolderPath());
if (folderPath.size() == 0)
{
return;
}
odslog("Chose Apple folder: " << folderPath);
this->setAppleFolderPath(folderPath);
}
break;
}
case AnisetteErrorCode::MissingApplicationSupportFolder:
case AnisetteErrorCode::MissingAOSKit:
case AnisetteErrorCode::MissingFoundation:
case AnisetteErrorCode::MissingObjc:
{
std::wstring message = L"Please locate the 'Apple' folder installed with iTunes to continue using AltServer.\n\nThis can normally be found at:\n";
message += WideStringFromString(this->defaultAppleFolderPath());
int result = MessageBoxW(NULL, message.c_str(), WideStringFromString(error.localizedDescription()).c_str(), MB_OKCANCEL);
if (result != IDOK)
{
return;
}
std::string folderPath = this->BrowseForFolder(L"Choose the 'Apple' folder that contains both 'Apple Application Support' and 'Internet Services'. This can normally be found at: " + WideStringFromString(this->defaultAppleFolderPath()), this->appleFolderPath());
if (folderPath.size() == 0)
{
return;
}
odslog("Chose Apple folder: " << folderPath);
this->setAppleFolderPath(folderPath);
break;
}
case AnisetteErrorCode::InvalidiTunesInstallation:
{
this->ShowAlert("Invalid iTunes Installation", error.localizedDescription());
break;
}
}
}
HWND AltServerApp::windowHandle() const
{
return _windowHandle;
}
HINSTANCE AltServerApp::instanceHandle() const
{
return _instanceHandle;
}
bool AltServerApp::automaticallyLaunchAtLogin() const
{
auto value = GetRegistryBoolValue(LAUNCH_AT_STARTUP_KEY);
return value;
}
void AltServerApp::setAutomaticallyLaunchAtLogin(bool launch)
{
SetRegistryBoolValue(LAUNCH_AT_STARTUP_KEY, launch);
HKEY hKey;
long result = RegOpenKeyExA(HKEY_CURRENT_USER, STARTUP_ITEMS_KEY, 0, KEY_WRITE, &hKey);
if (result != ERROR_SUCCESS)
{
return;
}
if (launch)
{
char executablePath[MAX_PATH + 1];
GetModuleFileNameA(NULL, executablePath, MAX_PATH + 1);
int length = strlen((const char*)executablePath);
result = RegSetValueExA(hKey, "AltServer", 0, REG_SZ, (const BYTE*)executablePath, length + 1); // Must include NULL-character in size.
}
else
{
RegDeleteValueA(hKey, "AltServer");
}
RegCloseKey(hKey);
}
std::string AltServerApp::serverID() const
{
auto serverID = GetRegistryStringValue(SERVER_ID_KEY);
return serverID;
}
void AltServerApp::setServerID(std::string serverID)
{
SetRegistryStringValue(SERVER_ID_KEY, serverID);
}
bool AltServerApp::presentedRunningNotification() const
{
auto presentedRunningNotification = GetRegistryBoolValue(PRESENTED_RUNNING_NOTIFICATION_KEY);
return presentedRunningNotification;
}
void AltServerApp::setPresentedRunningNotification(bool presentedRunningNotification)
{
SetRegistryBoolValue(PRESENTED_RUNNING_NOTIFICATION_KEY, presentedRunningNotification);
}
bool AltServerApp::reprovisionedDevice() const
{
auto reprovisionedDevice = GetRegistryBoolValue(REPROVISIONED_DEVICE_KEY);
return reprovisionedDevice;
}
void AltServerApp::setReprovisionedDevice(bool reprovisionedDevice)
{
SetRegistryBoolValue(REPROVISIONED_DEVICE_KEY, reprovisionedDevice);
}
std::string AltServerApp::defaultAppleFolderPath() const
{
wchar_t* programFilesCommonDirectory;
SHGetKnownFolderPath(FOLDERID_ProgramFilesCommon, 0, NULL, &programFilesCommonDirectory);
fs::path appleDirectoryPath(programFilesCommonDirectory);
appleDirectoryPath.append("Apple");
return appleDirectoryPath.string();
}
std::string AltServerApp::appleFolderPath() const
{
auto appleFolderPath = GetRegistryStringValue(APPLE_FOLDER_KEY);
if (appleFolderPath.size() != 0)
{
return appleFolderPath;
}
return this->defaultAppleFolderPath();
}
void AltServerApp::setAppleFolderPath(std::string appleFolderPath)
{
SetRegistryStringValue(APPLE_FOLDER_KEY, appleFolderPath);
}
std::string AltServerApp::internetServicesFolderPath() const
{
fs::path internetServicesDirectoryPath(this->appleFolderPath());
internetServicesDirectoryPath.append("Internet Services");
return internetServicesDirectoryPath.string();
}
std::string AltServerApp::applicationSupportFolderPath() const
{
fs::path applicationSupportDirectoryPath(this->appleFolderPath());
applicationSupportDirectoryPath.append("Apple Application Support");
return applicationSupportDirectoryPath.string();
}
fs::path AltServerApp::appDataDirectoryPath() const
{
wchar_t* programDataDirectory;
SHGetKnownFolderPath(FOLDERID_ProgramData, 0, NULL, &programDataDirectory);
fs::path altserverDirectoryPath(programDataDirectory);
altserverDirectoryPath.append("AltServer");
if (!fs::exists(altserverDirectoryPath))
{
fs::create_directory(altserverDirectoryPath);
}
return altserverDirectoryPath;
}
fs::path AltServerApp::certificatesDirectoryPath() const
{
auto appDataPath = this->appDataDirectoryPath();
auto certificatesDirectoryPath = appDataPath.append("Certificates");
if (!fs::exists(certificatesDirectoryPath))
{
fs::create_directory(certificatesDirectoryPath);
}
return certificatesDirectoryPath;
}
================================================
FILE: AltServer/AltServerApp.h
================================================
//
// AltServerApp.hpp
// AltServer-Windows
//
// Created by Riley Testut on 8/30/19.
// Copyright (c) 2019 Riley Testut. All rights reserved.
//
#pragma once
#include <string>
#include "Account.hpp"
#include "AppID.hpp"
#include "Application.hpp"
#include "Certificate.hpp"
#include "Device.hpp"
#include "ProvisioningProfile.hpp"
#include "Team.hpp"
#include "AppleAPISession.h"
#include "AnisetteDataManager.h"
#include "Semaphore.h"
#include <pplx/pplxtasks.h>
#ifdef _WIN32
#include <filesystem>
#undef _WINSOCKAPI_
#define _WINSOCKAPI_ /* prevents <winsock.h> inclusion by <windows.h> */
#include <windows.h>
namespace fs = std::filesystem;
#else
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
#endif
class AltServerApp
{
public:
static AltServerApp *instance();
void Start(HWND windowHandle, HINSTANCE instanceHandle);
void Stop();
void CheckForUpdates();
pplx::task<std::shared_ptr<Application>> InstallApplication(std::optional<std::string> filepath, std::shared_ptr<Device> device, std::string appleID, std::string password);
void ShowNotification(std::string title, std::string message);
void ShowAlert(std::string title, std::string message);
HWND windowHandle() const;
HINSTANCE instanceHandle() const;
bool automaticallyLaunchAtLogin() const;
void setAutomaticallyLaunchAtLogin(bool launch);
std::string serverID() const;
void setServerID(std::string serverID);
bool reprovisionedDevice() const;
void setReprovisionedDevice(bool reprovisionedDevice);
std::string appleFolderPath() const;
std::string internetServicesFolderPath() const;
std::string applicationSupportFolderPath() const;
private:
AltServerApp();
~AltServerApp();
static AltServerApp *_instance;
pplx::task<std::shared_ptr<Application>> _InstallApplication(std::optional<std::string> filepath, std::shared_ptr<Device> installDevice, std::string appleID, std::string password);
bool CheckDependencies();
bool CheckiCloudDependencies();
std::string BrowseForFolder(std::wstring title, std::string folderPath);
bool _presentedNotification;
HWND _windowHandle;
HINSTANCE _instanceHandle;
Semaphore _appGroupSemaphore;
bool presentedRunningNotification() const;
void setPresentedRunningNotification(bool presentedRunningNotification);
void setAppleFolderPath(std::string appleFolderPath);
std::string defaultAppleFolderPath() const;
fs::path appDataDirectoryPath() const;
fs::path certificatesDirectoryPath() const;
void HandleAnisetteError(AnisetteError& error);
pplx::task<fs::path> DownloadApp();
void ShowInstallationNotification(std::string appName, std::string deviceName);
pplx::task<std::pair<std::shared_ptr<Account>, std::shared_ptr<AppleAPISession>>> Authenticate(std::string appleID, std::string password, std::shared_ptr<AnisetteData> anisetteData);
pplx::task<std::shared_ptr<Team>> FetchTeam(std::shared_ptr<Account> account, std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<Certificate>> FetchCertificate(std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session);
pplx::task<std::map<std::string, std::shared_ptr<ProvisioningProfile>>> PrepareAllProvisioningProfiles(
std::shared_ptr<Application> application,
std::shared_ptr<Device> device,
std::shared_ptr<Team> team,
std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<ProvisioningProfile>> PrepareProvisioningProfile(
std::shared_ptr<Application> application,
std::optional<std::shared_ptr<Application>> parentApp,
std::shared_ptr<Device> device,
std::shared_ptr<Team> team,
std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<AppID>> RegisterAppID(std::string appName, std::string identifier, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<AppID>> UpdateAppIDFeatures(std::shared_ptr<AppID> appID, std::shared_ptr<Application> app, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<AppID>> UpdateAppIDAppGroups(std::shared_ptr<AppID> appID, std::shared_ptr<Application> app, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<Device>> RegisterDevice(std::shared_ptr<Device> device, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<ProvisioningProfile>> FetchProvisioningProfile(std::shared_ptr<AppID> appID, std::shared_ptr<Device> device, std::shared_ptr<Team> team, std::shared_ptr<AppleAPISession> session);
pplx::task<std::shared_ptr<Application>> InstallApp(std::shared_ptr<Application> app,
std::shared_ptr<Device> device,
std::shared_ptr<Team> team,
std::shared_ptr<Certificate> certificate,
std::map<std::string, std::shared_ptr<ProvisioningProfile>> profiles);
};
================================================
FILE: AltServer/AnisetteDataManager.cpp
================================================
#include "AnisetteDataManager.h"
#include <WinSock2.h>
#include <sstream>
#include <Psapi.h>
#include <filesystem>
#include <ShlObj_core.h>
#include "Error.hpp"
#include "ServerError.hpp"
#include <set>
#include "AnisetteData.h"
#include "AltServerApp.h"
//#define SPOOF_MAC 1
#define id void*
#define SEL void*
typedef id(__cdecl* GETCLASSFUNC)(const char *name);
typedef id(__cdecl* REGISTERSELFUNC)(const char *name);
typedef id(__cdecl* SENDMSGFUNC)(id self, void *_cmd);
typedef id(__cdecl* SENDMSGFUNC_OBJ)(id self, void* _cmd, id parameter1);
typedef id(__cdecl* SENDMSGFUNC_INT)(id self, void* _cmd, int parameter1);
typedef id*(__cdecl* COPYMETHODLISTFUNC)(id cls, unsigned int* outCount);
typedef id(__cdecl* GETMETHODNAMEFUNC)(id method);
typedef const char*(__cdecl* GETSELNAMEFUNC)(SEL sel);
typedef id(__cdecl* GETOBJCCLASSFUNC)(id obj);
typedef id(__cdecl* GETOBJECTFUNC)();
typedef id(__cdecl* CLIENTINFOFUNC)(id obj);
typedef id(__cdecl* COPYANISETTEDATAFUNC)(void *, int, void *);
#define odslog(msg) { std::stringstream ss; ss << msg << std::endl; OutputDebugStringA(ss.str().c_str()); }
extern std::string StringFromWideString(std::wstring wideString);
namespace fs = std::filesystem;
GETCLASSFUNC objc_getClass;
REGISTERSELFUNC sel_registerName;
SENDMSGFUNC objc_msgSend;
COPYMETHODLISTFUNC class_copyMethodList;
GETMETHODNAMEFUNC method_getName;
GETSELNAMEFUNC sel_getName;
GETOBJCCLASSFUNC object_getClass;
GETOBJECTFUNC GetDeviceID;
GETOBJECTFUNC GetLocalUserID;
CLIENTINFOFUNC GetClientInfo;
COPYANISETTEDATAFUNC CopyAnisetteData;
class ObjcObject
{
public:
id isa;
std::string description() const
{
id descriptionSEL = sel_registerName("description");
id descriptionNSString = objc_msgSend((void*)this, descriptionSEL);
id cDescriptionSEL = sel_registerName("UTF8String");
const char* cDescription = ((const char* (*)(id, SEL))objc_msgSend)(descriptionNSString, cDescriptionSEL);
std::string description(cDescription);
return description;
}
};
id __cdecl ALTClientInfoReplacementFunction(void*)
{
ObjcObject* NSString = (ObjcObject*)objc_getClass("NSString");
id stringInit = sel_registerName("stringWithUTF8String:");
ObjcObject* clientInfo = (ObjcObject*)((id(*)(id, SEL, const char*))objc_msgSend)(NSString, stringInit, "<MacBookPro15,1> <Mac OS X;10.15.2;19C57> <com.apple.AuthKit/1 (com.apple.dt.Xcode/3594.4.19)>");
odslog("Swizzled Client Info: " << clientInfo->description());
return clientInfo;
}
id __cdecl ALTDeviceIDReplacementFunction()
{
ObjcObject* NSString = (ObjcObject*)objc_getClass("NSString");
id stringInit = sel_registerName("stringWithUTF8String:");
auto deviceIDString = AltServerApp::instance()->serverID();
ObjcObject* deviceID = (ObjcObject*)((id(*)(id, SEL, const char*))objc_msgSend)(NSString, stringInit, deviceIDString.c_str());
odslog("Swizzled Device ID: " << deviceID->description());
return deviceID;
}
void convert_filetime(struct timeval* out_tv, const FILETIME* filetime)
{
// Microseconds between 1601-01-01 00:00:00 UTC and 1970-01-01 00:00:00 UTC
static const uint64_t EPOCH_DIFFERENCE_MICROS = 11644473600000000ull;
// First convert 100-ns intervals to microseconds, then adjust for the
// epoch difference
uint64_t total_us = (((uint64_t)filetime->dwHighDateTime << 32) | (uint64_t)filetime->dwLowDateTime) / 10;
total_us -= EPOCH_DIFFERENCE_MICROS;
// Convert to (seconds, microseconds)
out_tv->tv_sec = (time_t)(total_us / 1000000);
out_tv->tv_usec = (long)(total_us % 1000000);
}
AnisetteDataManager* AnisetteDataManager::_instance = nullptr;
AnisetteDataManager* AnisetteDataManager::instance()
{
if (_instance == 0)
{
_instance = new AnisetteDataManager();
}
return _instance;
}
AnisetteDataManager::AnisetteDataManager() : loadedDependencies(false)
{
}
AnisetteDataManager::~AnisetteDataManager()
{
}
#define JUMP_INSTRUCTION_SIZE 5 // 0x86 jump instruction is 5 bytes total (opcode + 4 byte address).
bool AnisetteDataManager::LoadiCloudDependencies()
{
wchar_t* programFilesCommonDirectory;
SHGetKnownFolderPath(FOLDERID_ProgramFilesCommon, 0, NULL, &programFilesCommonDirectory);
fs::path appleDirectoryPath(programFilesCommonDirectory);
appleDirectoryPath.append("Apple");
fs::path internetServicesDirectoryPath(appleDirectoryPath);
internetServicesDirectoryPath.append("Internet Services");
fs::path iCloudMainPath(internetServicesDirectoryPath);
iCloudMainPath.append("iCloud_main.dll");
HINSTANCE iCloudMain = LoadLibrary(iCloudMainPath.c_str());
if (iCloudMain == NULL)
{
return false;
}
// Retrieve known exported function address to provide reference point for accessing private functions.
uintptr_t exportedFunctionAddress = (uintptr_t)GetProcAddress(iCloudMain, "PL_FreeArenaPool");
size_t exportedFunctionDisassembledOffset = 0x1aa2a0;
/* Reprovision Anisette Function */
size_t anisetteFunctionDisassembledOffset = 0x241ee0;
size_t difference = anisetteFunctionDisassembledOffset - 0x1aa2a0;
CopyAnisetteData = (COPYANISETTEDATAFUNC)(exportedFunctionAddress + difference);
if (CopyAnisetteData == NULL)
{
return false;
}
/* Anisette Data Functions */
size_t clientInfoFunctionDisassembledOffset = 0x23e730;
size_t clientInfoFunctionRelativeOffset = clientInfoFunctionDisassembledOffset - exportedFunctionDisassembledOffset;
GetClientInfo = (CLIENTINFOFUNC)(exportedFunctionAddress + clientInfoFunctionRelativeOffset);
size_t deviceIDFunctionDisassembledOffset = 0x23d8b0;
size_t deviceIDFunctionRelativeOffset = deviceIDFunctionDisassembledOffset - exportedFunctionDisassembledOffset;
GetDeviceID = (GETOBJECTFUNC)(exportedFunctionAddress + deviceIDFunctionRelativeOffset);
size_t localUserIDFunctionDisassembledOffset = 0x23db30;
size_t localUserIDFunctionRelativeOffset = localUserIDFunctionDisassembledOffset - exportedFunctionDisassembledOffset;
GetLocalUserID = (GETOBJECTFUNC)(exportedFunctionAddress + localUserIDFunctionRelativeOffset);
if (GetClientInfo == NULL || GetDeviceID == NULL || GetLocalUserID == NULL)
{
return false;
}
{
/** Client Info Swizzling */
int64_t* targetFunction = (int64_t*)GetClientInfo;
int64_t* replacementFunction = (int64_t*)& ALTClientInfoReplacementFunction;
SYSTEM_INFO system;
GetSystemInfo(&system);
int pageSize = system.dwAllocationGranularity;
uintptr_t startAddress = (uintptr_t)targetFunction;
uintptr_t endAddress = startAddress + 1;
uintptr_t pageStart = startAddress & -pageSize;
// Mark page containing the target function implementation as writable so we can inject our own instruction.
DWORD permissions = 0;
BOOL value = VirtualProtect((LPVOID)pageStart, endAddress - pageStart, PAGE_EXECUTE_READWRITE, &permissions);
if (!value)
{
return false;
}
int32_t jumpOffset = (int64_t)replacementFunction - ((int64_t)targetFunction + JUMP_INSTRUCTION_SIZE); // Add jumpInstructionSize because offset is relative to _next_ instruction.
// Construct jump instruction.
// Jump doesn't return execution to target function afterwards, allowing us to completely replace the implementation.
char instruction[5];
instruction[0] = '\xE9'; // E9 = "Jump near (relative)" opcode
((int32_t*)(instruction + 1))[0] = jumpOffset; // Next 4 bytes = jump offset
// Replace first instruction in target target function with our unconditional jump to replacement function.
char* functionImplementation = (char*)targetFunction;
for (int i = 0; i < JUMP_INSTRUCTION_SIZE; i++)
{
functionImplementation[i] = instruction[i];
}
}
{
/** Device ID Swizzling */
int64_t* targetFunction = (int64_t*)GetDeviceID;
int64_t* replacementFunction = (int64_t*)& ALTDeviceIDReplacementFunction;
SYSTEM_INFO system;
GetSystemInfo(&system);
int pageSize = system.dwAllocationGranularity;
uintptr_t startAddress = (uintptr_t)targetFunction;
uintptr_t endAddress = startAddress + 1;
uintptr_t pageStart = startAddress & -pageSize;
// Mark page containing the target function implementation as writable so we can inject our own instruction.
DWORD permissions = 0;
BOOL value = VirtualProtect((LPVOID)pageStart, endAddress - pageStart, PAGE_EXECUTE_READWRITE, &permissions);
if (!value)
{
return false;
}
int32_t jumpOffset = (int64_t)replacementFunction - ((int64_t)targetFunction + JUMP_INSTRUCTION_SIZE); // Add jumpInstructionSize because offset is relative to _next_ instruction.
// Construct jump instruction.
// Jump doesn't return execution to target function afterwards, allowing us to completely replace the implementation.
char instruction[5];
instruction[0] = '\xE9'; // E9 = "Jump near (relative)" opcode
((int32_t*)(instruction + 1))[0] = jumpOffset; // Next 4 bytes = jump offset
// Replace first instruction in target target function with our unconditional jump to replacement function.
char* functionImplementation = (char*)targetFunction;
for (int i = 0; i < JUMP_INSTRUCTION_SIZE; i++)
{
functionImplementation[i] = instruction[i];
}
}
}
bool AnisetteDataManager::LoadDependencies()
{
fs::path appleFolderPath(AltServerApp::instance()->appleFolderPath());
if (!fs::exists(appleFolderPath))
{
throw AnisetteError(AnisetteErrorCode::iTunesNotInstalled);
}
fs::path internetServicesDirectoryPath(AltServerApp::instance()->internetServicesFolderPath());
if (!fs::exists(internetServicesDirectoryPath))
{
throw AnisetteError(AnisetteErrorCode::iCloudNotInstalled);
}
fs::path aosKitPath(internetServicesDirectoryPath);
aosKitPath.append("AOSKit.dll");
if (!fs::exists(aosKitPath))
{
throw AnisetteError(AnisetteErrorCode::MissingAOSKit);
}
fs::path applicationSupportDirectoryPath(AltServerApp::instance()->applicationSupportFolderPath());
if (!fs::exists(applicationSupportDirectoryPath))
{
throw AnisetteError(AnisetteErrorCode::MissingApplicationSupportFolder);
}
fs::path objcPath(applicationSupportDirectoryPath);
objcPath.append("objc.dll");
if (!fs::exists(objcPath))
{
throw AnisetteError(AnisetteErrorCode::MissingObjc);
}
fs::path foundationPath(applicationSupportDirectoryPath);
foundationPath.append("Foundation.dll");
if (!fs::exists(foundationPath))
{
throw AnisetteError(AnisetteErrorCode::MissingFoundation);
}
BOOL result = SetCurrentDirectory(applicationSupportDirectoryPath.c_str());
DWORD dwError = GetLastError();
HINSTANCE objcLibrary = LoadLibrary(objcPath.c_str());
HINSTANCE foundationLibrary = LoadLibrary(foundationPath.c_str());
HINSTANCE AOSKit = LoadLibrary(aosKitPath.c_str());
dwError = GetLastError();
if (objcLibrary == NULL || AOSKit == NULL || foundationLibrary == NULL)
{
char buffer[256];
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buffer, 256, NULL);
auto error = AnisetteError(AnisetteErrorCode::InvalidiTunesInstallation);
error.setLocalizedDescription(buffer);
throw error;
}
/* Objective-C runtime functions */
objc_getClass = (GETCLASSFUNC)GetProcAddress(objcLibrary, "objc_getClass");
sel_registerName = (REGISTERSELFUNC)GetProcAddress(objcLibrary, "sel_registerName");
objc_msgSend = (SENDMSGFUNC)GetProcAddress(objcLibrary, "objc_msgSend");
class_copyMethodList = (COPYMETHODLISTFUNC)GetProcAddress(objcLibrary, "class_copyMethodList");
method_getName = (GETMETHODNAMEFUNC)GetProcAddress(objcLibrary, "method_getName");
sel_getName = (GETSELNAMEFUNC)GetProcAddress(objcLibrary, "sel_getName");
object_getClass = (GETOBJCCLASSFUNC)GetProcAddress(objcLibrary, "object_getClass");
if (objc_getClass == NULL)
{
throw AnisetteError(AnisetteErrorCode::InvalidiTunesInstallation);
}
#if SPOOF_MAC
if (!this->LoadiCloudDependencies())
{
return false;
}
#endif
this->loadedDependencies = true;
return true;
}
std::shared_ptr<AnisetteData> AnisetteDataManager::FetchAnisetteData()
{
if (!this->loadedDependencies)
{
this->LoadDependencies();
}
#if SPOOF_MAC
if (GetClientInfo == NULL || GetDeviceID == NULL || GetLocalUserID == NULL)
{
return NULL;
}
#endif
std::shared_ptr<AnisetteData> anisetteData = NULL;
this->ReprovisionDevice([&anisetteData]() {
// Device is temporarily provisioned as a Mac, so access anisette data now.
ObjcObject* NSString = (ObjcObject*)objc_getClass("NSString");
id stringInit = sel_registerName("stringWithUTF8String:");
/* One-Time Pasword */
ObjcObject* dsidString = (ObjcObject*)((id(*)(id, SEL, const char*))objc_msgSend)(NSString, stringInit, "-2");
ObjcObject* machineIDKey = (ObjcObject*)((id(*)(id, SEL, const char*))objc_msgSend)(NSString, stringInit, "X-Apple-MD-M");
ObjcObject* otpKey = (ObjcObject*)((id(*)(id, SEL, const char*))objc_msgSend)(NSString, stringInit, "X-Apple-MD");
ObjcObject* AOSUtilities = (ObjcObject*)objc_getClass("AOSUtilities");
ObjcObject* headers = (ObjcObject*)((id(*)(id, SEL, id))objc_msgSend)(AOSUtilities, sel_registerName("retrieveOTPHeadersForDSID:"), dsidString);
ObjcObject* machineID = (ObjcObject*)((id(*)(id, SEL, id))objc_msgSend)(headers, sel_registerName("objectForKey:"), machineIDKey);
ObjcObject* otp = (ObjcObject*)((id(*)(id, SEL, id))objc_msgSend)(headers, sel_registerName("objectForKey:"), otpKey);
if (otp == NULL || machineID == NULL)
{
return;
}
odslog("OTP: " << otp->description() << " MachineID: " << machineID->description());
/* Device Hardware */
ObjcObject* deviceDescription = (ObjcObject*)ALTClientInfoReplacementFunction(NULL);
ObjcObject* deviceID = (ObjcObject*)ALTDeviceIDReplacementFunction();
if (deviceDescription == NULL || deviceID == NULL)
{
return;
}
#if SPOOF_MAC
ObjcObject* localUserID = (ObjcObject*)GetLocalUserID();
#else
std::string description = deviceID->description();
std::vector<unsigned char> deviceIDData(description.begin(), description.end());
auto encodedDeviceID = StringFromWideString(utility::conversions::to_base64(deviceIDData));
ObjcObject* localUserID = (ObjcObject*)((id(*)(id, SEL, const char*))objc_msgSend)(NSString, stringInit, encodedDeviceID.c_str());
#endif
std::string deviceSerialNumber = "C02LKHBBFD57";
if (localUserID == NULL)
{
return;
}
FILETIME systemTime;
GetSystemTimeAsFileTime(&systemTime);
TIMEVAL date;
convert_filetime(&date, &systemTime);
anisetteData = std::make_shared<AnisetteData>(
machineID->description(),
otp->description(),
localUserID->description(),
17106176,
deviceID->description(),
deviceSerialNumber,
deviceDescription->description(),
date,
"en_US",
"PST");
odslog(*anisetteData);
});
return anisetteData;
}
bool AnisetteDataManager::ReprovisionDevice(std::function<void(void)> provisionCallback)
{
#if !SPOOF_MAC
provisionCallback();
return true;
#else
std::string adiDirectoryPath = "C:\\ProgramData\\Apple Computer\\iTunes\\adi";
/* Start Provisioning */
// Move iCloud's ADI files (so we don't mess with them).
for (const auto& entry : fs::directory_iterator(adiDirectoryPath))
{
if (entry.path().extension() == ".pb")
{
fs::path backupPath = entry.path();
backupPath += ".icloud";
fs::rename(entry.path(), backupPath);
}
}
// Copy existing AltServer .pb files into original location to reuse the MID.
for (const auto& entry : fs::directory_iterator(adiDirectoryPath))
{
if (entry.path().extension() == ".altserver")
{
fs::path path = entry.path();
path.replace_extension();
fs::rename(entry.path(), path);
}
}
auto cleanUp = [adiDirectoryPath]() {
/* Finish Provisioning */
// Backup AltServer ADI files.
for (const auto& entry : fs::directory_iterator(adiDirectoryPath))
{
// Backup AltStore file
if (entry.path().extension() == ".pb")
{
fs::path backupPath = entry.path();
backupPath += ".altserver";
fs::rename(entry.path(), backupPath);
}
}
// Copy iCloud ADI files back to original location.
for (const auto& entry : fs::directory_iterator(adiDirectoryPath))
{
if (entry.path().extension() == ".icloud")
{
// Move backup file to original location
fs::path path = entry.path();
path.replace_extension();
fs::rename(entry.path(), path);
odslog("Copying iCloud file from: " << entry.path().string() << " to: " << path.string());
}
}
};
// Calling CopyAnisetteData implicitly generates new anisette data,
// using the new client info string we injected.
ObjcObject* error = NULL;
ObjcObject* anisetteDictionary = (ObjcObject*)CopyAnisetteData(NULL, 0x1, &error);
try
{
if (anisetteDictionary == NULL)
{
odslog("Reprovision Error:" << ((ObjcObject*)error)->description());
ObjcObject* localizedDescription = (ObjcObject*)((id(*)(id, SEL))objc_msgSend)(error, sel_registerName("localizedDescription"));
if (localizedDescription)
{
int errorCode = ((int(*)(id, SEL))objc_msgSend)(error, sel_registerName("code"));
throw LocalizedError(errorCode, localizedDescription->description());
}
else
{
throw ServerError(ServerErrorCode::InvalidAnisetteData);
}
}
odslog("Reprovisioned Anisette:" << anisetteDictionary->description());
AltServerApp::instance()->setReprovisionedDevice(true);
// Call callback while machine is provisioned for AltServer.
provisionCallback();
}
catch (std::exception &exception)
{
cleanUp();
throw;
}
cleanUp();
return true;
#endif
}
bool AnisetteDataManager::ResetProvisioning()
{
std::string adiDirectoryPath = "C:\\ProgramData\\Apple Computer\\iTunes\\adi";
// Remove existing AltServer .pb files so we can create new ones next time we provision this device.
for (const auto& entry : fs::directory_iterator(adiDirectoryPath))
{
if (entry.path().extension() == ".altserver")
{
fs::remove(entry.path());
}
}
return true;
}
================================================
FILE: AltServer/AnisetteDataManager.h
================================================
#pragma once
#include <memory>
#include <functional>
#include "Error.hpp"
class AnisetteData;
enum class AnisetteErrorCode
{
iTunesNotInstalled,
iCloudNotInstalled,
MissingApplicationSupportFolder,
MissingAOSKit,
MissingObjc,
MissingFoundation,
InvalidiTunesInstallation,
};
class AnisetteError : public Error
{
public:
AnisetteError(AnisetteErrorCode code) : Error((int)code)
{
}
virtual std::string domain() const
{
return "com.rileytestut.AltServer.AnisetteError";
}
virtual std::string localizedDescription() const
{
if (this->_localizedDescription.size() > 0)
{
return this->_localizedDescription;
}
switch ((AnisetteErrorCode)this->code())
{
case AnisetteErrorCode::iTunesNotInstalled: return "iTunes Not Found";
case AnisetteErrorCode::iCloudNotInstalled: return "iCloud Not Found";
case AnisetteErrorCode::MissingApplicationSupportFolder: return "Missing 'Application Support' in 'Apple' Folder.";
case AnisetteErrorCode::MissingAOSKit: return "Missing 'AOSKit.dll' in 'Internet Services' Folder.";
case AnisetteErrorCode::MissingFoundation: return "Missing 'Foundation.dll' in 'Apple Application Support' Folder.";
case AnisetteErrorCode::MissingObjc: return "Missing 'objc.dll' in 'Apple Application Support' Folder.";
case AnisetteErrorCode::InvalidiTunesInstallation: return "Invalid iTunes installation.";
}
return "";
}
void setLocalizedDescription(std::string localizedDescription)
{
_localizedDescription = localizedDescription;
}
private:
std::string _localizedDescription;
};
class AnisetteDataManager
{
public:
static AnisetteDataManager* instance();
std::shared_ptr<AnisetteData> FetchAnisetteData();
bool LoadDependencies();
bool ResetProvisioning();
private:
AnisetteDataManager();
~AnisetteDataManager();
static AnisetteDataManager* _instance;
bool ReprovisionDevice(std::function<void(void)> provisionCallback);
bool LoadiCloudDependencies();
bool loadedDependencies;
};
================================================
FILE: AltServer/ClientConnection.cpp
================================================
#include "ClientConnection.h"
#include <limits.h>
#include <stddef.h>
#include <WinSock2.h>
#include <filesystem>
#include "DeviceManager.hpp"
#include "AnisetteDataManager.h"
#include "AnisetteData.h"
#include "ServerError.hpp"
#define odslog(msg) { std::stringstream ss; ss << msg << std::endl; OutputDebugStringA(ss.str().c_str()); }
extern std::string make_uuid();
extern std::string temporary_directory();
using namespace web;
namespace fs = std::filesystem;
std::string StringFromWideString(std::wstring wideString)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string string = converter.to_bytes(wideString);
return string;
}
std::wstring WideStringFromString(std::string string)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring wideString = converter.from_bytes(string);
return wideString;
}
ClientConnection::ClientConnection()
{
}
ClientConnection::~ClientConnection()
{
this->Disconnect();
}
void ClientConnection::Disconnect()
{
}
pplx::task<void> ClientConnection::ProcessAppRequest()
{
auto task = this->ReceiveRequest().then([this](web::json::value request) {
auto identifier = StringFromWideString(request[L"identifier"].as_string());
if (identifier == "PrepareAppRequest")
{
return this->ProcessPrepareAppRequest(request);
}
else if (identifier == "AnisetteDataRequest")
{
return this->ProcessAnisetteDataRequest(request);
}
else if (identifier == "InstallProvisioningProfilesRequest")
{
return this->ProcessInstallProfilesRequest(request);
}
else if (identifier == "RemoveProvisioningProfilesRequest")
{
return this->ProcessRemoveProfilesRequest(request);
}
else if (identifier == "RemoveAppRequest")
{
return this->ProcessRemoveAppRequest(request);
}
else
{
throw ServerError(ServerErrorCode::UnknownRequest);
}
}).then([this](pplx::task<void> task) {
try
{
task.get();
}
catch (std::exception& e)
{
auto errorResponse = this->ErrorResponse(e);
this->SendResponse(errorResponse);
throw;
}
});
return task;
}
pplx::task<void> ClientConnection::ProcessPrepareAppRequest(web::json::value request)
{
utility::string_t* filepath = new utility::string_t;
std::string udid = StringFromWideString(request[L"udid"].as_string());
return this->ReceiveApp(request).then([this, filepath](std::string path) {
*filepath = WideStringFromString(path);
return this->ReceiveRequest();
})
.then([this, filepath, udid](web::json::value request) {
std::optional<std::set<std::string>> activeProfiles = std::nullopt;
if (request.has_array_field(L"activeProfiles"))
{
activeProfiles = std::set<std::string>();
auto array = request[L"activeProfiles"].as_array();
for (auto& value : array)
{
auto bundleIdentifier = value.as_string();
activeProfiles->insert(StringFromWideString(bundleIdentifier));
}
}
return this->InstallApp(StringFromWideString(*filepath), udid, activeProfiles);
})
.then([this, filepath, udid](pplx::task<void> task) {
if (filepath->size() > 0)
{
try
{
fs::remove(fs::path(*filepath));
}
catch (std::exception& e)
{
odslog("Failed to remove received .ipa." << e.what());
}
}
delete filepath;
try
{
task.get();
auto response = json::value::object();
response[L"version"] = json::value::number(1);
response[L"identifier"] = json::value::string(L"InstallationProgressResponse");
response[L"progress"] = json::value::number(1.0);
return this->SendResponse(response);
}
catch (std::exception& exception)
{
throw;
}
});
}
pplx::task<void> ClientConnection::ProcessAnisetteDataRequest(web::json::value request)
{
return pplx::create_task([this, &request]() {
auto anisetteData = AnisetteDataManager::instance()->FetchAnisetteData();
if (!anisetteData)
{
throw ServerError(ServerErrorCode::InvalidAnisetteData);
}
auto response = json::value::object();
response[L"version"] = json::value::number(1);
response[L"identifier"] = json::value::string(L"AnisetteDataResponse");
response[L"anisetteData"] = anisetteData->json();
return this->SendResponse(response);
});
}
pplx::task<std::string> ClientConnection::ReceiveApp(web::json::value request)
{
auto appSize = request[L"contentSize"].as_integer();
std::cout << "Receiving app (" << appSize << " bytes)..." << std::endl;
return this->ReceiveData(appSize).then([this](std::vector<unsigned char> data) {
fs::path filepath = fs::path(temporary_directory()).append(make_uuid() + ".ipa");
std::ofstream file(filepath.string(), std::ios::out | std::ios::binary);
copy(data.cbegin(), data.cend(), std::ostreambuf_iterator<char>(file));
return filepath.string();
});
}
pplx::task<void> ClientConnection::InstallApp(std::string filepath, std::string udid, std::optional<std::set<std::string>> activeProfiles)
{
return pplx::create_task([this, filepath, udid, activeProfiles]() {
try {
auto isSending = std::make_shared<bool>();
return DeviceManager::instance()->InstallApp(filepath, udid, activeProfiles, [this, isSending](double progress) {
if (*isSending)
{
return;
}
*isSending = true;
auto response = json::value::object();
response[L"version"] = json::value::number(1);
response[L"identifier"] = json::value::string(L"InstallationProgressResponse");
response[L"progress"] = json::value::number(progress);
this->SendResponse(response).then([isSending](pplx::task<void> task) {
*isSending = false;
});
});
}
catch (Error& error)
{
std::cout << error << std::endl;
throw error;
}
catch (std::exception& e)
{
std::cout << "Exception: " << e.what() << std::endl;
throw e;
}
std::cout << "Installed app!" << std::endl;
});
}
pplx::task<void> ClientConnection::ProcessInstallProfilesRequest(web::json::value request)
{
std::string udid = StringFromWideString(request[L"udid"].as_string());
std::vector<std::shared_ptr<ProvisioningProfile>> provisioningProfiles;
auto array = request[L"provisioningProfiles"].as_array();
for (auto& value : array)
{
auto encodedData = value.as_string();
auto data = utility::conversions::from_base64(encodedData);
auto profile = std::make_shared<ProvisioningProfile>(data);
if (profile != nullptr)
{
provisioningProfiles.push_back(profile);
}
}
std::optional<std::set<std::string>> activeProfiles = std::nullopt;
if (request.has_array_field(L"activeProfiles"))
{
activeProfiles = std::set<std::string>();
auto array = request[L"activeProfiles"].as_array();
for (auto& value : array)
{
auto bundleIdentifier = value.as_string();
activeProfiles->insert(StringFromWideString(bundleIdentifier));
}
}
return DeviceManager::instance()->InstallProvisioningProfiles(provisioningProfiles, udid, activeProfiles)
.then([=](pplx::task<void> task) {
try
{
task.get();
auto response = json::value::object();
response[L"version"] = json::value::number(1);
response[L"identifier"] = json::value::string(L"InstallProvisioningProfilesResponse");
return this->SendResponse(response);
}
catch (std::exception& exception)
{
throw;
}
});
}
pplx::task<void> ClientConnection::ProcessRemoveProfilesRequest(web::json::value request)
{
std::string udid = StringFromWideString(request[L"udid"].as_string());
std::set<std::string> bundleIdentifiers;
auto array = request[L"bundleIdentifiers"].as_array();
for (auto& value : array)
{
auto bundleIdentifier = StringFromWideString(value.as_string());
bundleIdentifiers.insert(bundleIdentifier);
}
return DeviceManager::instance()->RemoveProvisioningProfiles(bundleIdentifiers, udid)
.then([=](pplx::task<void> task) {
try
{
task.get();
auto response = json::value::object();
response[L"version"] = json::value::number(1);
response[L"identifier"] = json::value::string(L"RemoveProvisioningProfilesResponse");
return this->SendResponse(response);
}
catch (std::exception& exception)
{
throw;
}
});
}
pplx::task<void> ClientConnection::ProcessRemoveAppRequest(web::json::value request)
{
std::string udid = StringFromWideString(request[L"udid"].as_string());
auto bundleIdentifier = StringFromWideString(request[L"bundleIdentifier"].as_string());
return DeviceManager::instance()->RemoveApp(bundleIdentifier, udid)
.then([=](pplx::task<void> task) {
try
{
task.get();
auto response = json::value::object();
response[L"version"] = json::value::number(1);
response[L"identifier"] = json::value::string(L"RemoveAppResponse");
return this->SendResponse(response);
}
catch (std::exception& exception)
{
throw;
}
});
}
web::json::value ClientConnection::ErrorResponse(std::exception& exception)
{
auto response = json::value::object();
response[L"version"] = json::value::number(2);
response[L"identifier"] = json::value::string(L"ErrorResponse");
auto errorObject = json::value::object();
try
{
Error& error = dynamic_cast<Error&>(exception);
response[L"errorCode"] = json::value::number(error.code());
errorObject[L"errorCode"] = json::value::number(error.code());
if (!error.userInfo().empty())
{
auto userInfo = json::value::object();
for (auto& pair : error.userInfo())
{
userInfo[WideStringFromString(pair.first)] = json::value(WideStringFromString(pair.second));
}
errorObject[L"userInfo"] = userInfo;
}
}
catch (std::bad_cast)
{
response[L"errorCode"] = json::value::number((int)ServerErrorCode::Unknown);
errorObject[L"errorCode"] = json::value::number((int)ServerErrorCode::Unknown);
auto userInfo = json::value::object();
if (std::string(exception.what()) == "vector<T> too long")
{
userInfo[L"NSLocalizedFailureReason"] = json::value::string(L"Windows Defender Blocked Installation");
userInfo[L"NSLocalizedRecoverySuggestion"] = json::value::string(L"Disable Windows real-time protection on your computer then try again.");
}
else
{
userInfo[L"NSLocalizedDescription"] = json::value::string(WideStringFromString(exception.what()));
userInfo[L"NSLocalizedFailureReason"] = json::value::string(WideStringFromString(exception.what()));
}
errorObject[L"userInfo"] = userInfo;
}
response[L"serverError"] = errorObject;
return response;
}
pplx::task<void> ClientConnection::SendResponse(web::json::value json)
{
auto serializedJSON = json.serialize();
std::vector<unsigned char> responseData(serializedJSON.begin(), serializedJSON.end());
int32_t size = (int32_t)responseData.size();
std::vector<unsigned char> responseSizeData;
if (responseSizeData.size() < sizeof(size))
{
responseSizeData.resize(sizeof(size));
}
std::memcpy(responseSizeData.data(), &size, sizeof(size));
std::cout << "Represented Value: " << *((int32_t*)responseSizeData.data()) << std::endl;
auto task = this->SendData(responseSizeData)
.then([this, responseData]() mutable {
return this->SendData(responseData);
})
.then([](pplx::task<void> task) {
try
{
task.get();
}
catch (Error& error)
{
odslog("Failed to send response. " << error.localizedDescription());
}
catch (std::exception& exception)
{
odslog("Failed to send response. " << exception.what());
}
});
return task;
}
pplx::task<web::json::value> ClientConnection::ReceiveRequest()
{
int size = sizeof(uint32_t);
std::cout << "Receiving request size..." << std::endl;
auto task = this->ReceiveData(size)
.then([this](std::vector<unsigned char> data) {
int expectedBytes = *((int32_t*)data.data());
std::cout << "Receiving " << expectedBytes << " bytes..." << std::endl;
return this->ReceiveData(expectedBytes);
})
.then([](std::vector<unsigned char> data) {
std::wstring jsonString(data.begin(), data.end());
auto request = web::json::value::parse(jsonString);
return request;
});
return task;
}
================================================
FILE: AltServer/ClientConnection.h
================================================
#pragma once
#include "Device.hpp"
#include <pplx/pplxtasks.h>
#include <cpprest/json.h>
#include <libimobiledevice/libimobiledevice.h>
#include <libimobiledevice/notification_proxy.h>
#include <memory>
#include <set>
class ClientConnection
{
public:
ClientConnection();
virtual ~ClientConnection();
virtual void Disconnect();
pplx::task<void> ProcessAppRequest();
pplx::task<void> ProcessPrepareAppRequest(web::json::value request);
pplx::task<void> ProcessAnisetteDataRequest(web::json::value request);
pplx::task<void> ProcessInstallProfilesRequest(web::json::value request);
pplx::task<void> ProcessRemoveProfilesRequest(web::json::value request);
pplx::task<void> ProcessRemoveAppRequest(web::json::value request);
pplx::task<void> SendResponse(web::json::value json);
pplx::task<web::json::value> ReceiveRequest();
virtual pplx::task<void> SendData(std::vector<unsigned char>& data) = 0;
virtual pplx::task<std::vector<unsigned char>> ReceiveData(int size) = 0;
private:
pplx::task<std::string> ReceiveApp(web::json::value request);
pplx::task<void> InstallApp(std::string filepath, std::string udid, std::optional<std::set<std::string>> activeProfiles);
web::json::value ErrorResponse(std::exception& exception);
};
================================================
FILE: AltServer/ConnectionManager.cpp
================================================
//
// ConnectionManager.cpp
// AltServer-Windows
//
// Created by Riley Testut on 8/13/19.
// Copyright © 2019 Riley Testut. All rights reserved.
//
#include "ConnectionManager.hpp"
#include <iostream>
#include <thread>
//#include <netinet/in.h>
#include <stddef.h>
/*
#include <arpa/inet.h>
#include <sys/time.h>
#include <sys/socket.h>
*/
#include <WinSock2.h>
#include <WS2tcpip.h>
#include "dns_sd.h"
#include "AltServerApp.h"
#include "WirelessConnection.h"
#include "DeviceManager.hpp"
#include "Error.hpp"
#include <memory>
#define WIRED_SERVER_CONNECTION_AVAILABLE_REQUEST "io.altstore.Request.WiredServerConnectionAvailable"
#define WIRED_SERVER_CONNECTION_AVAILABLE_RESPONSE "io.altstore.Response.WiredServerConnectionAvailable"
#define WIRED_SERVER_CONNECTION_START_REQUEST "io.altstore.Request.WiredServerConnectionStart"
#define odslog(msg) { std::wstringstream ss; ss << msg << std::endl; OutputDebugStringW(ss.str().c_str()); }
void DNSSD_API ConnectionManagerBonjourRegistrationFinished(DNSServiceRef service, DNSServiceFlags flags, DNSServiceErrorType errorCode, const char *name, const char *regtype, const char *domain, void *context)
{
std::cout << "Registered service: " << name << " (Error: " << errorCode << ")" << std::endl;
}
void ConnectionManagerConnectedDevice(std::shared_ptr<Device> device)
{
ConnectionManager::instance()->StartNotificationConnection(device);
}
void ConnectionManagerDisconnectedDevice(std::shared_ptr<Device> device)
{
ConnectionManager::instance()->StopNotificationConnection(device);
}
ConnectionManager* ConnectionManager::_instance = nullptr;
ConnectionManager* ConnectionManager::instance()
{
if (_instance == 0)
{
_instance = new ConnectionManager();
}
return _instance;
}
ConnectionManager::ConnectionManager()
{
DeviceManager::instance()->setConnectedDeviceCallback(ConnectionManagerConnectedDevice);
DeviceManager::instance()->setDisconnectedDeviceCallback(ConnectionManagerDisconnectedDevice);
}
void ConnectionManager::Start()
{
WSADATA wsaData;
int iResult;
// Initialize Winsock
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0) {
printf("WSAStartup failed: %d\n", iResult);
return;
}
auto listenFunction = [](void) {
ConnectionManager::instance()->Listen();
};
_listeningThread = std::thread(listenFunction);
}
void ConnectionManager::Disconnect(std::shared_ptr<ClientConnection> connection)
{
connection->Disconnect();
_connections.erase(connection);
}
void ConnectionManager::StartAdvertising(int socketPort)
{
DNSServiceRef service = NULL;
uint16_t port = htons(socketPort);
auto serverID = AltServerApp::instance()->serverID();
std::string txtValue("serverID=" + serverID);
char size = txtValue.size();
std::vector<char> txtData;
txtData.reserve(size + 1);
txtData.push_back(size);
for (auto& byte : txtValue)
{
txtData.push_back(byte);
}
DNSServiceErrorType registrationResult = DNSServiceRegister(&service, 0, 0, NULL, "_altserver._tcp", NULL, NULL, port, txtData.size(), txtData.data(), ConnectionManagerBonjourRegistrationFinished, NULL);
if (registrationResult != kDNSServiceErr_NoError)
{
std::cout << "Bonjour Registration Error: " << registrationResult << std::endl;
return;
}
int dnssd_socket = DNSServiceRefSockFD(service);
if (dnssd_socket == -1)
{
std::cout << "Failed to retrieve mDNSResponder socket." << std::endl;
}
this->_mDNSResponderSocket = dnssd_socket;
}
void ConnectionManager::Listen()
{
int socket4 = socket(AF_INET, SOCK_STREAM, 0);
if (socket4 == 0)
{
std::cout << "Failed to create socket." << std::endl;
return;
}
struct sockaddr_in address4;
memset(&address4, 0, sizeof(address4));
//address4.sin_len = sizeof(address4);
address4.sin_family = AF_INET;
address4.sin_port = 0; // Choose for us.
address4.sin_addr.s_addr = INADDR_ANY;
if (bind(socket4, (struct sockaddr *)&address4, sizeof(address4)) < 0)
{
std::cout << "Failed to bind socket." << std::endl;
return;
}
if (listen(socket4, 0) != 0)
{
std::cout << "Failed to prepare listening socket." << std::endl;
}
struct sockaddr_in sin;
socklen_t len = sizeof(sin);
if (getsockname(socket4, (struct sockaddr *)&sin, &len) == -1)
{
std::cout << "Failed to get socket name." << std::endl;
}
int port4 = ntohs(sin.sin_port);
this->StartAdvertising(port4);
fd_set input_set;
fd_set copy_set;
while (true)
{
struct timeval tv;
tv.tv_sec = 1; /* 1 second timeout */
tv.tv_usec = 0; /* no microseconds. */
/* Selection */
FD_ZERO(&input_set ); /* Empty the FD Set */
FD_SET(socket4, &input_set); /* Listen to the input descriptor */
FD_ZERO(©_set ); /* Empty the FD Set */
FD_SET(socket4, ©_set); /* Listen to the input descriptor */
int ready_for_reading = select(socket4 + 1, &input_set, ©_set, NULL, &tv);
/* Selection handling */
if (ready_for_reading > 0)
{
struct sockaddr_in clientAddress;
memset(&clientAddress, 0, sizeof(clientAddress));
int addrlen = sizeof(clientAddress);
int other_socket = accept(socket4, (SOCKADDR*)&clientAddress, &addrlen);
char *ipaddress = inet_ntoa(((struct sockaddr_in)clientAddress).sin_addr);
int port2 = ntohs(((struct sockaddr_in)clientAddress).sin_port);
int error = WSAGetLastError();
odslog("Other Socket:" << other_socket << ". Port: " << port2 << ". Error: " << error);
std::shared_ptr<ClientConnection> clientConnection(new WirelessConnection(other_socket));
this->HandleRequest(clientConnection);
}
else if (ready_for_reading == -1)
{
/* Handle the error */
std::cout << "Uh-oh" << std::endl;
}
else
{
// Do nothing
}
}
}
void ConnectionManager::StartNotificationConnection(std::shared_ptr<Device> device)
{
odslog("Starting notification connection to device: " << device->name().c_str());
DeviceManager::instance()->StartNotificationConnection(device)
.then([=](pplx::task<std::shared_ptr<NotificationConnection>> task) {
std::vector<std::string> notifications = { WIRED_SERVER_CONNECTION_AVAILABLE_REQUEST, WIRED_SERVER_CONNECTION_START_REQUEST };
try
{
auto connection = task.get();
connection->StartListening(notifications);
connection->setReceivedNotificationHandler([=](std::string notification) {
this->HandleNotification(notification, connection);
});
this->_notificationConnections[device->identifier()] = connection;
}
catch (Error& e)
{
odslog("Failed to start notification connection. " << e.localizedDescription().c_str());
}
catch (std::exception& e)
{
odslog("Failed to start notification connection. " << e.what());
}
});
}
void ConnectionManager::StopNotificationConnection(std::shared_ptr<Device> device)
{
if (this->notificationConnections().count(device->identifier()) == 0)
{
return;
}
auto connection = this->notificationConnections()[device->identifier()];
connection->Disconnect();
this->_notificationConnections.erase(device->identifier());
}
void ConnectionManager::HandleNotification(std::string notification, std::shared_ptr<NotificationConnection> connection)
{
if (notification == WIRED_SERVER_CONNECTION_AVAILABLE_REQUEST)
{
try
{
connection->SendNotification(WIRED_SERVER_CONNECTION_AVAILABLE_RESPONSE);
odslog("Sent wired server connection available response!");
}
catch (Error& e)
{
odslog("Error sending wired server connection response. " << e.localizedDescription().c_str());
}
catch (std::exception& e)
{
odslog("Error sending wired server connection response. " << e.what());
}
}
else if (notification == WIRED_SERVER_CONNECTION_START_REQUEST)
{
DeviceManager::instance()->StartWiredConnection(connection->device())
.then([=](pplx::task<std::shared_ptr<WiredConnection>> task) {
try
{
auto wiredConnection = task.get();
auto connection = std::dynamic_pointer_cast<ClientConnection>(wiredConnection);
odslog("Started wired server connection!");
this->HandleRequest(wiredConnection);
}
catch (Error& e)
{
odslog("Error starting wired server connection. " << e.localizedDescription().c_str());
}
catch (std::exception& e)
{
odslog("Error starting wired server connection. " << e.what());
}
});
}
}
void ConnectionManager::HandleRequest(std::shared_ptr<ClientConnection> clientConnection)
{
this->_connections.insert(clientConnection);
clientConnection->ProcessAppRequest().then([=](pplx::task<void> task) {
try
{
task.get();
odslog("Finished handling request!");
}
catch (Error& e)
{
odslog("Failed to handle request:" << e.localizedDescription().c_str());
}
catch (std::exception& e)
{
odslog("Failed to handle request:" << e.what());
}
this->Disconnect(clientConnection);
});
}
int ConnectionManager::mDNSResponderSocket() const
{
return _mDNSResponderSocket;
}
std::set<std::shared_ptr<ClientConnection>> ConnectionManager::connections() const
{
return _connections;
}
std::map<std::string, std::shared_ptr<NotificationConnection>> ConnectionManager::notificationConnections() const
{
return _notificationConnections;
}
================================================
FILE: AltServer/ConnectionManager.hpp
================================================
//
// ConnectionManager.hpp
// AltServer-Windows
//
// Created by Riley Testut on 8/13/19.
// Copyright © 2019 Riley Testut. All rights reserved.
//
#ifndef ConnectionManager_hpp
#define ConnectionManager_hpp
#include <vector>
#include <set>
#include <thread>
#include <map>
#include "ClientConnection.h"
#include "NotificationConnection.h"
class ConnectionManager
{
public:
static ConnectionManager* instance();
void Start();
void Disconnect(std::shared_ptr<ClientConnection> connection);
private:
ConnectionManager();
~ConnectionManager();
static ConnectionManager* _instance;
std::thread _listeningThread;
int _mDNSResponderSocket;
std::set<std::shared_ptr<ClientConnection>> _connections;
std::map<std::string, std::shared_ptr<NotificationConnection>> _notificationConnections;
int mDNSResponderSocket() const;
std::set<std::shared_ptr<ClientConnection>> connections() const;
std::map<std::string, std::shared_ptr<NotificationConnection>> notificationConnections() const;
void Listen();
void StartAdvertising(int port);
void StartNotificationConnection(std::shared_ptr<Device> device);
void StopNotificationConnection(std::shared_ptr<Device> device);
void HandleRequest(std::shared_ptr<ClientConnection> connection);
void HandleNotification(std::string notification, std::shared_ptr<NotificationConnection> connection);
friend void ConnectionManagerConnectedDevice(std::shared_ptr<Device> device);
friend void ConnectionManagerDisconnectedDevice(std::shared_ptr<Device> device);
};
#endif /* ConnectionManager_hpp */
================================================
FILE: AltServer/DeviceManager.cpp
================================================
//
// DeviceManager.cpp
// AltServer-Windows
//
// Created by Riley Testut on 8/13/19.
// Copyright © 2019 Riley Testut. All rights reserved.
//
#include "DeviceManager.hpp"
#include <libimobiledevice/libimobiledevice.h>
#include <libimobiledevice/lockdown.h>
#include <libimobiledevice/installation_proxy.h>
#include <libimobiledevice/notification_proxy.h>
#include <libimobiledevice/afc.h>
#include <libimobiledevice/misagent.h>
#include <filesystem>
#include <iostream>
#include <fstream>
#include <sstream>
#include <condition_variable>
#include "Archiver.hpp"
#include "ServerError.hpp"
#include "ProvisioningProfile.hpp"
#include "Application.hpp"
#include <WinSock2.h>
#define DEVICE_LISTENING_SOCKET 28151
#define odslog(msg) { std::wstringstream ss; ss << msg << std::endl; OutputDebugStringW(ss.str().c_str()); }
extern std::string StringFromWideString(std::wstring wideString);
extern std::wstring WideStringFromString(std::string string);
void DeviceManagerUpdateStatus(plist_t command, plist_t status, void *udid);
void DeviceManagerUpdateAppDeletionStatus(plist_t command, plist_t status, void* udid);
void DeviceDidChangeConnectionStatus(const idevice_event_t* event, void* user_data);
namespace fs = std::filesystem;
extern std::string make_uuid();
extern std::string temporary_directory();
extern std::vector<unsigned char> readFile(const char* filename);
/// Returns a version of 'str' where every occurrence of
/// 'find' is substituted by 'replace'.
/// - Inspired by James Kanze.
/// - http://stackoverflow.com/questions/20406744/
std::string replace_all(
const std::string& str, // where to work
const std::string& find, // substitute 'find'
const std::string& replace // by 'replace'
) {
using namespace std;
string result;
size_t find_len = find.size();
size_t pos, from = 0;
while (string::npos != (pos = str.find(find, from))) {
result.append(str, from, pos - from);
result.append(replace);
from = pos + find_len;
}
result.append(str, from, string::npos);
return result;
}
DeviceManager* DeviceManager::_instance = nullptr;
DeviceManager* DeviceManager::instance()
{
if (_instance == 0)
{
_instance = new DeviceManager();
}
return _instance;
}
DeviceManager::DeviceManager()
{
}
void DeviceManager::Start()
{
idevice_event_subscribe(DeviceDidChangeConnectionStatus, NULL);
}
pplx::task<void> DeviceManager::InstallApp(std::string appFilepath, std::string deviceUDID, std::optional<std::set<std::string>> activeProfiles, std::function<void(double)> progressCompletionHandler)
{
return pplx::task<void>([=] {
// Enforce only one installation at a time.
this->_mutex.lock();
auto UUID = make_uuid();
char* uuidString = (char*)malloc(UUID.size() + 1);
strncpy(uuidString, (const char*)UUID.c_str(), UUID.size());
uuidString[UUID.size()] = '\0';
idevice_t device = nullptr;
lockdownd_client_t client = NULL;
instproxy_client_t ipc = NULL;
afc_client_t afc = NULL;
misagent_client_t mis = NULL;
lockdownd_service_descriptor_t service = NULL;
fs::path temporaryDirectory(temporary_directory());
temporaryDirectory.append(make_uuid());
fs::create_directory(temporaryDirectory);
auto installedProfiles = std::make_shared<std::vector<std::shared_ptr<ProvisioningProfile>>>();
auto cachedProfiles = std::make_shared<std::map<std::string, std::shared_ptr<ProvisioningProfile>>>();
auto finish = [this, installedProfiles, cachedProfiles, activeProfiles, temporaryDirectory, &uuidString]
(idevice_t device, lockdownd_client_t client, instproxy_client_t ipc, afc_client_t afc, misagent_client_t mis, lockdownd_service_descriptor_t service)
{
auto cleanUp = [=]() {
instproxy_client_free(ipc);
afc_client_free(afc);
lockdownd_client_free(client);
misagent_client_free(mis);
idevice_free(device);
lockdownd_service_descriptor_free(service);
free(uuidString);
this->_mutex.unlock();
fs::remove_all(temporaryDirectory);
};
try
{
if (activeProfiles.has_value())
{
// Remove installed provisioning profiles if they're not active.
for (auto& installedProfile : *installedProfiles)
{
if (std::count(activeProfiles->begin(), activeProfiles->end(), installedProfile->bundleIdentifier()) == 0)
{
this->RemoveProvisioningProfile(installedProfile, mis);
}
}
}
for (auto& pair : *cachedProfiles)
{
BOOL reinstall = true;
for (auto& installedProfile : *installedProfiles)
{
if (installedProfile->bundleIdentifier() == pair.second->bundleIdentifier())
{
// Don't reinstall cached profile because it was installed with app.
reinstall = false;
break;
}
}
if (reinstall)
{
this->InstallProvisioningProfile(pair.second, mis);
}
}
}
catch (std::exception& exception)
{
cleanUp();
throw;
}
// Clean up outside scope so if an exception is thrown, we don't
// catch it ourselves again.
cleanUp();
};
try
{
fs::path filepath(appFilepath);
auto extension = filepath.extension().string();
std::transform(extension.begin(), extension.end(), extension.begin(), [](unsigned char c) {
return std::tolower(c);
});
fs::path appBundlePath;
if (extension == ".app")
{
appBundlePath = filepath;
}
else if (extension == ".ipa")
{
std::cout << "Unzipping .ipa..." << std::endl;
appBundlePath = UnzipAppBundle(filepath.string(), temporaryDirectory.string());
}
else
{
throw SignError(SignErrorCode::InvalidApp);
}
std::shared_ptr<Application> application = std::make_shared<Application>(appBundlePath.string());
if (application == NULL)
{
throw SignError(SignErrorCode::InvalidApp);
}
if (application->provisioningProfile())
{
installedProfiles->push_back(application->provisioningProfile());
}
for (auto& appExtension : application->appExtensions())
{
if (appExtension->provisioningProfile())
{
installedProfiles->push_back(appExtension->provisioningProfile());
}
}
/* Find Device */
if (idevice_new(&device, deviceUDID.c_str()) != IDEVICE_E_SUCCESS)
{
throw ServerError(ServerErrorCode::DeviceNotFound);
}
/* Connect to Device */
if (lockdownd_client_new_with_handshake(device, &client, "altserver") != LOCKDOWN_E_SUCCESS)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
/* Connect to Installation Proxy */
if ((lockdownd_start_service(client, "com.apple.mobile.installation_proxy", &service) != LOCKDOWN_E_SUCCESS) || service == NULL)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
if (instproxy_client_new(device, service, &ipc) != INSTPROXY_E_SUCCESS)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
if (service)
{
lockdownd_service_descriptor_free(service);
service = NULL;
}
/* Connect to Misagent */
// Must connect now, since if we take too long writing files to device, connecting may fail later when managing profiles.
if (lockdownd_start_service(client, "com.apple.misagent", &service) != LOCKDOWN_E_SUCCESS || service == NULL)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
if (misagent_client_new(device, service, &mis) != MISAGENT_E_SUCCESS)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
/* Connect to AFC service */
if ((lockdownd_start_service(client, "com.apple.afc", &service) != LOCKDOWN_E_SUCCESS) || service == NULL)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
if (afc_client_new(device, service, &afc) != AFC_E_SUCCESS)
{
throw ServerError(ServerErrorCode::ConnectionFailed);
}
fs::path stagingPath("PublicStaging");
/* Prepare for installation */
char** files = NULL;
if (afc_get_file_info(afc, (const char*)stagingPath.c_str(), &files) != AFC_E_SUCCESS)
{
if (afc_make_directory(afc, (const char*)stagingPath.c_str()) != AFC_E_SUCCESS)
{
throw ServerError(ServerErrorCode::DeviceWriteFailed);
}
}
if (files)
{
int i = 0;
while (files[i])
{
free(files[i]);
i++;
}
free(files);
}
std::cout << "Writing to device..." << std::endl;
plist_t options = instproxy_client_options_new();
instproxy_client_options_add(options, "PackageType", "Developer", NULL);
fs::path destinationPath = stagingPath.append(appBundlePath.filename().string());
int numberOfFiles = 0;
for (auto& item : fs::recursive_directory_iterator(appBundlePath))
{
if (item.is_regular_file())
{
numberOfFiles++;
}
}
int writtenFiles = 0;
try
{
this->WriteDirectory(afc, appBundlePath.string(), destinationPath.string(), [&writtenFiles, numberOfFiles, progressCompletionHandler](std::string filepath) {
writtenFiles++;
double progress = (double)writtenFiles / (double)numberOfFiles;
double weightedProgress = progress * 0.75;
progressCompletionHandler(weightedProgress);
});
}
catch (ServerError& e)
{
if (application->bundleIdentifier().find("science.xnu.undecimus") != std::string::npos)
{
auto userInfo = e.userInfo();
userInfo["NSLocalizedRecoverySuggestion"] = "Make sure Windows real-time protection is disabled on your computer then try again.";
throw ServerError((ServerErrorCode)e.code(), userInfo);
}
else
{
throw;
}
}
catch (std::exception& exception)
{
if (application->bundleIdentifier().find("science.xnu.undecimus") != std::string::npos)
{
std::map<std::string, std::string> userInfo = {
{ "NSLocalizedDescription", exception.what() },
{ "NSLocalizedRecoverySuggestion", "Make sure Windows real-time protection is disabled on your computer then try again." }
};
if (std::string(exception.what()) == std::string("vector<T> too long"))
{
userInfo["NSLocalizedFailureReason"] = "Windows Defender Blocked Installation";
}
else
{
userInfo["NSLocalizedFailureReason"] = exception.what();
}
throw ServerError(ServerErrorCode::Unknown, userInfo);
}
else
{
throw;
}
}
std::cout << "Finished writing to device." << std::endl;
if (service)
{
lockdownd_service_descriptor_free(service);
service = NULL;
}
/* Provisioning Profiles */
bool shouldManageProfiles = (activeProfiles.has_value() || (application->provisioningProfile() != NULL && application->provisioningProfile()->isFreeProvisioningProfile()));
if (shouldManageProfiles)
{
// Free developer account was used to sign this app, so we need to remove all
// provisioning profiles in order to remain under sideloaded app limit.
auto removedProfiles = this->RemoveAllFreeProvisioningProfilesExcludingBundleIdentifiers({}, mis);
for (auto& pair : removedProfiles)
{
if (activeProfiles.has_value())
{
if (activeProfiles->count(pair.first) > 0)
{
// Only cache active profiles to reinstall afterwards.
(*cachedProfiles)[pair.first] = pair.second;
}
}
else
{
// Cache all profiles to reinstall afterwards if we didn't provide activeProfiles.
(*cachedProfiles)[pair.first] = pair.second;
}
}
}
lockdownd_client_free(client);
client = NULL;
std::mutex waitingMutex;
std::condition_variable cv;
std::optional<ServerError> serverError = std::nullopt;
std::optional<LocalizedError> localizedError = std::nullopt;
bool didBeginInstalling = false;
bool didFinishInstalling = false;
this->_installationProgressHandlers[UUID] = [device, client, ipc, afc, mis, service, finish, progressCompletionHandler,
&waitingMutex, &cv, &didBeginInstalling, &didFinishInstalling, &serverError, &localizedError](double progress, int resultCode, char *name, char *description) {
double weightedProgress = progress * 0.25;
double adjustedProgress = weightedProgress + 0.75;
if (progress == 0 && didBeginInstalling)
{
if (resultCode != 0 || name != NULL)
{
if (resultCode == -402620383)
{
std::map<std::string, std::string> userInfo = {
{ "NSLocalizedRecoverySuggestion", "Make sure 'Offload Unused Apps' is disabled in Settings > iTunes & App Stores, then install or delete all offloaded apps." }
};
serverError = std::make_optional<ServerError>(ServerErrorCode::MaximumFreeAppLimitReached, userInfo);
}
else
{
s
gitextract_649kq8sq/ ├── .gitignore ├── .gitmodules ├── AltInstaller/ │ └── AltInstaller.vdproj ├── AltServer/ │ ├── AltServer.cpp │ ├── AltServer.vcxproj │ ├── AltServer.vcxproj.filters │ ├── AltServerApp.cpp │ ├── AltServerApp.h │ ├── AnisetteDataManager.cpp │ ├── AnisetteDataManager.h │ ├── C │ ├── ClientConnection.cpp │ ├── ClientConnection.h │ ├── ConnectionManager.cpp │ ├── ConnectionManager.hpp │ ├── DeviceManager.cpp │ ├── DeviceManager.hpp │ ├── InstallError.hpp │ ├── NotificationConnection.cpp │ ├── NotificationConnection.h │ ├── Resource.aps │ ├── Resource.rc │ ├── Semaphore.h │ ├── ServerError.cpp │ ├── ServerError.hpp │ ├── WiredConnection.cpp │ ├── WiredConnection.h │ ├── WirelessConnection.cpp │ ├── WirelessConnection.h │ └── resource.h ├── AltServer.sln ├── AltSign/ │ ├── Account.cpp │ ├── Account.hpp │ ├── AltSign.vcxproj │ ├── AltSign.vcxproj.filters │ ├── AnisetteData.cpp │ ├── AnisetteData.h │ ├── AppGroup.cpp │ ├── AppGroup.hpp │ ├── AppID.cpp │ ├── AppID.hpp │ ├── AppleAPI+Authentication.cpp │ ├── AppleAPI.cpp │ ├── AppleAPI.hpp │ ├── AppleAPISession.cpp │ ├── AppleAPISession.h │ ├── Application.cpp │ ├── Application.hpp │ ├── Archiver.cpp │ ├── Archiver.hpp │ ├── Certificate.cpp │ ├── Certificate.hpp │ ├── CertificateRequest.cpp │ ├── CertificateRequest.hpp │ ├── Dependencies/ │ │ ├── corecrypto/ │ │ │ ├── cc.h │ │ │ ├── cc_config.h │ │ │ ├── cc_debug.h │ │ │ ├── cc_memory.h │ │ │ ├── cc_priv.h │ │ │ ├── cc_runtime_config.h │ │ │ ├── ccaes.h │ │ │ ├── ccansikdf.h │ │ │ ├── ccasn1.h │ │ │ ├── ccblowfish.h │ │ │ ├── cccast.h │ │ │ ├── ccchacha20poly1305.h │ │ │ ├── ccchacha20poly1305_priv.h │ │ │ ├── cccmac.h │ │ │ ├── ccder.h │ │ │ ├── ccder_decode_eckey.h │ │ │ ├── ccder_encode_eckey.h │ │ │ ├── ccder_priv.h │ │ │ ├── ccder_rsa.h │ │ │ ├── ccdes.h │ │ │ ├── ccdh.h │ │ │ ├── ccdh_gp.h │ │ │ ├── ccdh_priv.h │ │ │ ├── ccdigest.h │ │ │ ├── ccdigest_priv.h │ │ │ ├── ccdrbg.h │ │ │ ├── ccdrbg_factory.h │ │ │ ├── ccdrbg_impl.h │ │ │ ├── ccec.h │ │ │ ├── ccec25519.h │ │ │ ├── ccec25519_priv.h │ │ │ ├── ccec_priv.h │ │ │ ├── ccecies.h │ │ │ ├── ccecies_priv.h │ │ │ ├── cchkdf.h │ │ │ ├── cchmac.h │ │ │ ├── ccmd2.h │ │ │ ├── ccmd4.h │ │ │ ├── ccmd5.h │ │ │ ├── ccmode.h │ │ │ ├── ccmode_factory.h │ │ │ ├── ccmode_impl.h │ │ │ ├── ccmode_siv.h │ │ │ ├── ccmode_siv_priv.h │ │ │ ├── ccn.h │ │ │ ├── ccn_priv.h │ │ │ ├── ccnistkdf.h │ │ │ ├── ccpad.h │ │ │ ├── ccpbkdf2.h │ │ │ ├── ccperf.h │ │ │ ├── ccprime.h │ │ │ ├── ccrc2.h │ │ │ ├── ccrc4.h │ │ │ ├── ccripemd.h │ │ │ ├── ccrng.h │ │ │ ├── ccrng_drbg.h │ │ │ ├── ccrng_ecfips_test.h │ │ │ ├── ccrng_pbkdf2_prng.h │ │ │ ├── ccrng_priv.h │ │ │ ├── ccrng_rsafips_test.h │ │ │ ├── ccrng_sequence.h │ │ │ ├── ccrng_system.h │ │ │ ├── ccrng_test.h │ │ │ ├── ccrsa.h │ │ │ ├── ccrsa_priv.h │ │ │ ├── ccsha1.h │ │ │ ├── ccsha2.h │ │ │ ├── ccsrp.h │ │ │ ├── ccsrp_gp.h │ │ │ ├── cctest.h │ │ │ ├── ccwrap.h │ │ │ ├── ccz.h │ │ │ ├── ccz_priv.h │ │ │ ├── cczp.h │ │ │ ├── cczp_priv.h │ │ │ ├── corecrypto.lib │ │ │ └── fipspost.h │ │ ├── minizip/ │ │ │ ├── ChangeLogUnzip │ │ │ ├── Makefile │ │ │ ├── crypt.h │ │ │ ├── ioapi.c │ │ │ ├── ioapi.h │ │ │ ├── iowin32.c │ │ │ ├── iowin32.h │ │ │ ├── miniunz.c │ │ │ ├── minizip.c │ │ │ ├── mztools.c │ │ │ ├── mztools.h │ │ │ ├── unzip.c │ │ │ ├── unzip.h │ │ │ ├── zip.c │ │ │ └── zip.h │ │ ├── mman/ │ │ │ ├── .gitignore │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── UpgradeLog.htm │ │ │ ├── configure │ │ │ ├── mman-win32.pro │ │ │ ├── mman.cpp │ │ │ ├── mman.h │ │ │ ├── mman.sln │ │ │ ├── mman.vcxproj │ │ │ ├── mman.vcxproj.filters │ │ │ └── test.c │ │ └── regex/ │ │ ├── contrib/ │ │ │ └── regex/ │ │ │ └── 2.7/ │ │ │ └── regex-2.7-GnuWin32.README │ │ ├── include/ │ │ │ └── regex.h │ │ ├── lib/ │ │ │ ├── libregex.dll.a │ │ │ ├── libregex.la │ │ │ ├── regex-bcc.lib │ │ │ ├── regex.lib │ │ │ └── regex2.def │ │ ├── man/ │ │ │ ├── cat3/ │ │ │ │ ├── regcomp.3.txt.lnk │ │ │ │ ├── regcomp.3p.txt │ │ │ │ ├── regerror.3.txt.lnk │ │ │ │ ├── regerror.3p.txt.lnk │ │ │ │ ├── regex.3.txt │ │ │ │ ├── regexec.3.txt.lnk │ │ │ │ ├── regexec.3p.txt.lnk │ │ │ │ ├── regfree.3.txt.lnk │ │ │ │ └── regfree.3p.txt.lnk │ │ │ ├── cat3p/ │ │ │ │ ├── regcomp.3p.txt │ │ │ │ ├── regerror.3p.txt.lnk │ │ │ │ ├── regexec.3p.txt.lnk │ │ │ │ └── regfree.3p.txt.lnk │ │ │ └── cat7/ │ │ │ └── regex.7.txt │ │ └── manifest/ │ │ ├── regex-2.7-bin.mft │ │ └── regex-2.7-bin.ver │ ├── Device.cpp │ ├── Device.hpp │ ├── Error.hpp │ ├── PrefixHeader.pch │ ├── ProvisioningProfile.cpp │ ├── ProvisioningProfile.hpp │ ├── Signer.cpp │ ├── Signer.hpp │ ├── Team.cpp │ └── Team.hpp ├── AppPackage/ │ ├── AppPackage.wapproj │ └── Package.appxmanifest ├── Dependencies/ │ ├── Libraries/ │ │ ├── WinSparkle.lib │ │ ├── WinSparkle.pdb │ │ ├── libcrypto.def │ │ ├── libcrypto.lib │ │ ├── libeay32.def │ │ ├── libeay32.lib │ │ ├── libssl.def │ │ ├── libssl.lib │ │ ├── ssleay32.def │ │ └── ssleay32.lib │ ├── WinSparkle/ │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── COPYING.expat │ │ ├── NEWS │ │ ├── README.md │ │ └── include/ │ │ ├── winsparkle-version.h │ │ └── winsparkle.h │ └── corecrypto/ │ ├── cc.h │ ├── cc_config.h │ ├── cc_debug.h │ ├── cc_memory.h │ ├── cc_priv.h │ ├── cc_runtime_config.h │ ├── ccaes.h │ ├── ccansikdf.h │ ├── ccasn1.h │ ├── ccblowfish.h │ ├── cccast.h │ ├── ccchacha20poly1305.h │ ├── ccchacha20poly1305_priv.h │ ├── cccmac.h │ ├── ccder.h │ ├── ccder_decode_eckey.h │ ├── ccder_encode_eckey.h │ ├── ccder_priv.h │ ├── ccder_rsa.h │ ├── ccdes.h │ ├── ccdh.h │ ├── ccdh_gp.h │ ├── ccdh_priv.h │ ├── ccdigest.h │ ├── ccdigest_priv.h │ ├── ccdrbg.h │ ├── ccdrbg_factory.h │ ├── ccdrbg_impl.h │ ├── ccec.h │ ├── ccec25519.h │ ├── ccec25519_priv.h │ ├── ccec_priv.h │ ├── ccecies.h │ ├── ccecies_priv.h │ ├── cchkdf.h │ ├── cchmac.h │ ├── ccmd2.h │ ├── ccmd4.h │ ├── ccmd5.h │ ├── ccmode.h │ ├── ccmode_factory.h │ ├── ccmode_impl.h │ ├── ccmode_siv.h │ ├── ccmode_siv_priv.h │ ├── ccn.h │ ├── ccn_priv.h │ ├── ccnistkdf.h │ ├── ccpad.h │ ├── ccpbkdf2.h │ ├── ccperf.h │ ├── ccprime.h │ ├── ccrc2.h │ ├── ccrc4.h │ ├── ccripemd.h │ ├── ccrng.h │ ├── ccrng_drbg.h │ ├── ccrng_ecfips_test.h │ ├── ccrng_pbkdf2_prng.h │ ├── ccrng_priv.h │ ├── ccrng_rsafips_test.h │ ├── ccrng_sequence.h │ ├── ccrng_system.h │ ├── ccrng_test.h │ ├── ccrsa.h │ ├── ccrsa_priv.h │ ├── ccsha1.h │ ├── ccsha2.h │ ├── ccsrp.h │ ├── ccsrp_gp.h │ ├── cctest.h │ ├── ccwrap.h │ ├── ccz.h │ ├── ccz_priv.h │ ├── cczp.h │ ├── cczp_priv.h │ └── fipspost.h ├── LICENSE ├── README.md ├── UpgradeLog.htm ├── Xcode/ │ └── AltServer-Windows/ │ ├── AltServer-Windows/ │ │ ├── AltServer_Windows.entitlements │ │ ├── AppDelegate.h │ │ ├── AppDelegate.mm │ │ ├── Assets.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Info.plist │ │ ├── Windows/ │ │ │ ├── Connection.cpp │ │ │ ├── Connection.hpp │ │ │ ├── ConnectionManager.cpp │ │ │ ├── ConnectionManager.hpp │ │ │ ├── DeviceManager.cpp │ │ │ ├── DeviceManager.hpp │ │ │ ├── InstallError.hpp │ │ │ ├── ServerError.cpp │ │ │ └── ServerError.hpp │ │ └── main.m │ ├── AltServer-Windows.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata/ │ │ │ └── Riley.xcuserdatad/ │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── xcdebugger/ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ ├── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ └── AltServer-Windows.xcscheme │ │ └── xcuserdata/ │ │ └── Riley.xcuserdatad/ │ │ ├── xcdebugger/ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes/ │ │ └── xcschememanagement.plist │ └── AltSign-Windows/ │ ├── Account.cpp │ ├── Account.hpp │ ├── AltSign_WindowsPriv.hpp │ ├── AppID.cpp │ ├── AppID.hpp │ ├── AppleAPI.cpp │ ├── AppleAPI.hpp │ ├── Application.cpp │ ├── Application.hpp │ ├── Archiver.cpp │ ├── Archiver.hpp │ ├── Certificate.cpp │ ├── Certificate.hpp │ ├── CertificateRequest.cpp │ ├── CertificateRequest.hpp │ ├── Dependencies/ │ │ └── minizip/ │ │ ├── ChangeLogUnzip │ │ ├── Makefile │ │ ├── crypt.h │ │ ├── ioapi.c │ │ ├── ioapi.h │ │ ├── iowin32.c │ │ ├── iowin32.h │ │ ├── miniunz.c │ │ ├── minizip.c │ │ ├── mztools.c │ │ ├── mztools.h │ │ ├── unzip.c │ │ ├── unzip.h │ │ ├── zip.c │ │ └── zip.h │ ├── Device.cpp │ ├── Device.hpp │ ├── Error.cpp │ ├── Error.hpp │ ├── PrefixHeader.pch │ ├── ProvisioningProfile.cpp │ ├── ProvisioningProfile.hpp │ ├── Signer.cpp │ ├── Signer.hpp │ ├── Team.cpp │ └── Team.hpp ├── ldid2/ │ ├── .gitignore │ ├── .gitmodules │ ├── COPYING │ ├── control │ ├── control.sh │ ├── deb.sh │ ├── ios.sh │ ├── ldid.cpp │ ├── ldid.hpp │ ├── libplist/ │ │ ├── .gitignore │ │ ├── AUTHORS │ │ ├── COPYING │ │ ├── COPYING.LESSER │ │ ├── Makefile.am │ │ ├── NEWS │ │ ├── README.md │ │ ├── autogen.sh │ │ ├── configure.ac │ │ ├── cython/ │ │ │ ├── Makefile.am │ │ │ ├── plist.pxd │ │ │ ├── plist.pyx │ │ │ ├── plist_util.c │ │ │ └── plist_util.h │ │ ├── doxygen.cfg.in │ │ ├── fuzz/ │ │ │ ├── Makefile.am │ │ │ ├── bplist-crashes/ │ │ │ │ ├── clusterfuzz-testcase-4766291097288704 │ │ │ │ ├── clusterfuzz-testcase-4930725262393344 │ │ │ │ ├── clusterfuzz-testcase-5421965105954816 │ │ │ │ ├── clusterfuzz-testcase-5556177727389696 │ │ │ │ ├── clusterfuzz-testcase-6557963011489792 │ │ │ │ ├── clusterfuzz-testcase-6605859144597504 │ │ │ │ ├── crash-0ce4dd483b645bc05ec45a97d285dcf1933ee840 │ │ │ │ ├── crash-0d59cdcb5c3416c2790612b78a631ce9f5622800 │ │ │ │ ├── crash-17d635ab460fef74df1ac7561f1253533a6359c5 │ │ │ │ ├── crash-33a67313fa7864cd627ef92d12017a127d342f28 │ │ │ │ ├── crash-39f1347115f8fe9ac25cdc9332e3fc5cd32c7f7b │ │ │ │ ├── crash-4bd78175fe01d07c5ee90104fbc68d95dd092210 │ │ │ │ ├── crash-4c5404453bb7425aef9b953a5f6f3f0afcc48392 │ │ │ │ ├── crash-52775e25f6af20af351cd616834e602fc988a032 │ │ │ │ ├── crash-6d1399685b745d3d49fadc91072fabcdde8d16fa │ │ │ │ ├── crash-94b3725900d63c6258448fd757559c81002de9c9 │ │ │ │ ├── crash-a47195acbabc3f5b2cda9c6ebda42f2afc1cc5af │ │ │ │ ├── crash-ce852bae6aeeffc4698a93660236f1b995ce966e │ │ │ │ ├── crash-daddb6e82e3d1ed76e20e4131462f5247a6fb131 │ │ │ │ ├── crash-f21be4ebce7f9c337bf96b93cec7e252f5c75a21 │ │ │ │ └── crash-f779dafccc0164684d1a264976e56037188b40e2 │ │ │ ├── bplist-leaks/ │ │ │ │ ├── leak-96fb453b3ba18d31e164831795a708183b5a0dac │ │ │ │ ├── leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1 │ │ │ │ └── leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074 │ │ │ ├── bplist.dict │ │ │ ├── bplist_fuzzer.cc │ │ │ ├── bplist_fuzzer.options │ │ │ ├── fuzzers.test │ │ │ ├── init-fuzzers.sh │ │ │ ├── test-fuzzers.sh │ │ │ ├── xplist-crashes/ │ │ │ │ ├── clusterfuzz-testcase-4516959125241856 │ │ │ │ ├── clusterfuzz-testcase-4663876528373760 │ │ │ │ ├── clusterfuzz-testcase-5799076113154048 │ │ │ │ ├── clusterfuzz-testcase-5922404220010496 │ │ │ │ ├── clusterfuzz-testcase-6015098361479168 │ │ │ │ ├── clusterfuzz-testcase-6043836860071936 │ │ │ │ ├── clusterfuzz-testcase-6047509906456576 │ │ │ │ ├── clusterfuzz-testcase-6482601374121984 │ │ │ │ ├── crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17 │ │ │ │ ├── crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1 │ │ │ │ ├── crash-348c909a0b3532977185f551eb5d2ed04e694883 │ │ │ │ ├── crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a │ │ │ │ ├── crash-80c28b0e2a446665e68927dd4441c10c9a68e64e │ │ │ │ ├── crash-8acf177da60ecf13c36d0da1b8e25de891980ea6 │ │ │ │ ├── crash-94276cf69a50e78dd6cdf079c208cb80f357cd33 │ │ │ │ ├── crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9 │ │ │ │ ├── crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9 │ │ │ │ ├── crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ │ │ └── crash-f03c680ee1c4d84c28e731752df77a61e213a24d │ │ │ ├── xplist-leaks/ │ │ │ │ ├── clusterfuzz-testcase-4634751103139840 │ │ │ │ ├── clusterfuzz-testcase-6056412121661440 │ │ │ │ ├── leak-47b0a9f21d3affab6cfc898e5140bb53265ada07 │ │ │ │ ├── leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7 │ │ │ │ └── leak-53bc466851eda790bd891733da5db0a7482886bf │ │ │ ├── xplist.dict │ │ │ ├── xplist_fuzzer.cc │ │ │ └── xplist_fuzzer.options │ │ ├── include/ │ │ │ ├── Makefile.am │ │ │ └── plist/ │ │ │ ├── Array.h │ │ │ ├── Boolean.h │ │ │ ├── Data.h │ │ │ ├── Date.h │ │ │ ├── Dictionary.h │ │ │ ├── Integer.h │ │ │ ├── Key.h │ │ │ ├── Node.h │ │ │ ├── Real.h │ │ │ ├── String.h │ │ │ ├── Structure.h │ │ │ ├── Uid.h │ │ │ ├── plist++.h │ │ │ └── plist.h │ │ ├── libcnary/ │ │ │ ├── COPYING │ │ │ ├── Makefile.am │ │ │ ├── README │ │ │ ├── cnary.c │ │ │ ├── include/ │ │ │ │ ├── node.h │ │ │ │ ├── node_list.h │ │ │ │ └── object.h │ │ │ ├── node.c │ │ │ └── node_list.c │ │ ├── m4/ │ │ │ ├── ac_pkg_cython.m4 │ │ │ ├── as-compiler-flag.m4 │ │ │ ├── ax_pthread.m4 │ │ │ ├── ax_python_devel.m4 │ │ │ └── cython_python.m4 │ │ ├── src/ │ │ │ ├── Array.cpp │ │ │ ├── Boolean.cpp │ │ │ ├── Data.cpp │ │ │ ├── Date.cpp │ │ │ ├── Dictionary.cpp │ │ │ ├── Integer.cpp │ │ │ ├── Key.cpp │ │ │ ├── Makefile.am │ │ │ ├── Node.cpp │ │ │ ├── Real.cpp │ │ │ ├── String.cpp │ │ │ ├── Structure.cpp │ │ │ ├── Uid.cpp │ │ │ ├── base64.c │ │ │ ├── base64.h │ │ │ ├── bplist.c │ │ │ ├── bytearray.c │ │ │ ├── bytearray.h │ │ │ ├── hashtable.c │ │ │ ├── hashtable.h │ │ │ ├── libplist++.pc.in │ │ │ ├── libplist.pc.in │ │ │ ├── plist.c │ │ │ ├── plist.h │ │ │ ├── ptrarray.c │ │ │ ├── ptrarray.h │ │ │ ├── strbuf.h │ │ │ ├── time64.c │ │ │ ├── time64.h │ │ │ ├── time64_limits.h │ │ │ └── xplist.c │ │ ├── test/ │ │ │ ├── Makefile.am │ │ │ ├── amp.test │ │ │ ├── bigarray.test │ │ │ ├── cdata.test │ │ │ ├── data/ │ │ │ │ ├── 1.plist │ │ │ │ ├── 2.plist │ │ │ │ ├── 3.plist │ │ │ │ ├── 4.plist │ │ │ │ ├── 5.plist │ │ │ │ ├── 6.plist │ │ │ │ ├── 7.plist │ │ │ │ ├── amp.plist │ │ │ │ ├── cdata.plist │ │ │ │ ├── dictref1byte.bplist │ │ │ │ ├── dictref2bytes.bplist │ │ │ │ ├── dictref3bytes.bplist │ │ │ │ ├── dictref4bytes.bplist │ │ │ │ ├── dictref5bytes.bplist │ │ │ │ ├── dictref6bytes.bplist │ │ │ │ ├── dictref7bytes.bplist │ │ │ │ ├── dictref8bytes.bplist │ │ │ │ ├── empty_keys.plist │ │ │ │ ├── entities.plist │ │ │ │ ├── hex.plist │ │ │ │ ├── invalid_tag.plist │ │ │ │ ├── malformed_dict.bplist │ │ │ │ ├── off1byte.bplist │ │ │ │ ├── off2bytes.bplist │ │ │ │ ├── off3bytes.bplist │ │ │ │ ├── off4bytes.bplist │ │ │ │ ├── off5bytes.bplist │ │ │ │ ├── off6bytes.bplist │ │ │ │ ├── off7bytes.bplist │ │ │ │ ├── off8bytes.bplist │ │ │ │ ├── offxml.plist │ │ │ │ ├── order.bplist │ │ │ │ ├── order.plist │ │ │ │ ├── recursion.bplist │ │ │ │ ├── signed.bplist │ │ │ │ ├── signed.plist │ │ │ │ ├── signedunsigned.bplist │ │ │ │ ├── signedunsigned.plist │ │ │ │ ├── unsigned.bplist │ │ │ │ └── unsigned.plist │ │ │ ├── dates.test │ │ │ ├── empty.test │ │ │ ├── empty_keys.test │ │ │ ├── entities.test │ │ │ ├── hex.test │ │ │ ├── huge.test │ │ │ ├── invalid_tag.test │ │ │ ├── large.test │ │ │ ├── malformed_dict.test │ │ │ ├── medium.test │ │ │ ├── offsetsize.test │ │ │ ├── order.test │ │ │ ├── plist_cmp.c │ │ │ ├── plist_test.c │ │ │ ├── recursion.test │ │ │ ├── refsize.test │ │ │ ├── signedunsigned1.test │ │ │ ├── signedunsigned2.test │ │ │ ├── signedunsigned3.test │ │ │ ├── small.test │ │ │ ├── timezone1.test │ │ │ └── timezone2.test │ │ └── tools/ │ │ ├── Makefile.am │ │ └── plistutil.c │ ├── lookup2.c │ ├── make.sh │ ├── plist.sh │ ├── sha1.h │ └── version.sh ├── libimobiledevice/ │ ├── .gitignore │ ├── AUTHORS │ ├── COPYING │ ├── COPYING.LESSER │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── autogen.sh │ ├── common/ │ │ ├── Makefile.am │ │ ├── debug.c │ │ ├── debug.h │ │ ├── socket.c │ │ ├── socket.h │ │ ├── thread.c │ │ ├── thread.h │ │ ├── userpref.c │ │ ├── userpref.h │ │ ├── utils.c │ │ └── utils.h │ ├── configure.ac │ ├── cython/ │ │ ├── Makefile.am │ │ ├── afc.pxi │ │ ├── debugserver.pxi │ │ ├── diagnostics_relay.pxi │ │ ├── file_relay.pxi │ │ ├── heartbeat.pxi │ │ ├── house_arrest.pxi │ │ ├── imobiledevice.pxd │ │ ├── imobiledevice.pyx │ │ ├── installation_proxy.pxi │ │ ├── lockdown.pxi │ │ ├── misagent.pxi │ │ ├── mobile_image_mounter.pxi │ │ ├── mobilebackup.pxi │ │ ├── mobilebackup2.pxi │ │ ├── mobilesync.pxi │ │ ├── notification_proxy.pxi │ │ ├── restore.pxi │ │ ├── sbservices.pxi │ │ ├── screenshotr.pxi │ │ └── webinspector.pxi │ ├── docs/ │ │ ├── Makefile.am │ │ ├── idevice_id.1 │ │ ├── idevicebackup.1 │ │ ├── idevicebackup2.1 │ │ ├── idevicecrashreport.1 │ │ ├── idevicedate.1 │ │ ├── idevicedebug.1 │ │ ├── idevicedebugserverproxy.1 │ │ ├── idevicediagnostics.1 │ │ ├── ideviceenterrecovery.1 │ │ ├── ideviceimagemounter.1 │ │ ├── ideviceinfo.1 │ │ ├── idevicename.1 │ │ ├── idevicenotificationproxy.1 │ │ ├── idevicepair.1 │ │ ├── ideviceprovision.1 │ │ ├── idevicescreenshot.1 │ │ └── idevicesyslog.1 │ ├── include/ │ │ ├── Makefile.am │ │ ├── asprintf.h │ │ ├── endianness.h │ │ └── libimobiledevice/ │ │ ├── afc.h │ │ ├── debugserver.h │ │ ├── diagnostics_relay.h │ │ ├── file_relay.h │ │ ├── heartbeat.h │ │ ├── house_arrest.h │ │ ├── installation_proxy.h │ │ ├── libimobiledevice.h │ │ ├── lockdown.h │ │ ├── misagent.h │ │ ├── mobile_image_mounter.h │ │ ├── mobileactivation.h │ │ ├── mobilebackup.h │ │ ├── mobilebackup2.h │ │ ├── mobilesync.h │ │ ├── notification_proxy.h │ │ ├── property_list_service.h │ │ ├── restore.h │ │ ├── sbservices.h │ │ ├── screenshotr.h │ │ ├── service.h │ │ ├── syslog_relay.h │ │ └── webinspector.h │ ├── src/ │ │ ├── Makefile.am │ │ ├── afc.c │ │ ├── afc.h │ │ ├── debugserver.c │ │ ├── debugserver.h │ │ ├── device_link_service.c │ │ ├── device_link_service.h │ │ ├── diagnostics_relay.c │ │ ├── diagnostics_relay.h │ │ ├── file_relay.c │ │ ├── file_relay.h │ │ ├── heartbeat.c │ │ ├── heartbeat.h │ │ ├── house_arrest.c │ │ ├── house_arrest.h │ │ ├── idevice.c │ │ ├── idevice.h │ │ ├── installation_proxy.c │ │ ├── installation_proxy.h │ │ ├── lockdown.c │ │ ├── lockdown.h │ │ ├── misagent.c │ │ ├── misagent.h │ │ ├── mobile_image_mounter.c │ │ ├── mobile_image_mounter.h │ │ ├── mobileactivation.c │ │ ├── mobileactivation.h │ │ ├── mobilebackup.c │ │ ├── mobilebackup.h │ │ ├── mobilebackup2.c │ │ ├── mobilebackup2.h │ │ ├── mobilesync.c │ │ ├── mobilesync.h │ │ ├── notification_proxy.c │ │ ├── notification_proxy.h │ │ ├── property_list_service.c │ │ ├── property_list_service.h │ │ ├── restore.c │ │ ├── restore.h │ │ ├── sbservices.c │ │ ├── sbservices.h │ │ ├── screenshotr.c │ │ ├── screenshotr.h │ │ ├── service.c │ │ ├── service.h │ │ ├── syslog_relay.c │ │ ├── syslog_relay.h │ │ ├── webinspector.c │ │ └── webinspector.h │ └── tools/ │ ├── Makefile.am │ ├── idevice_id.c │ ├── idevicebackup.c │ ├── idevicebackup2.c │ ├── idevicecrashreport.c │ ├── idevicedate.c │ ├── idevicedebug.c │ ├── idevicedebugserverproxy.c │ ├── idevicediagnostics.c │ ├── ideviceenterrecovery.c │ ├── ideviceimagemounter.c │ ├── ideviceinfo.c │ ├── idevicename.c │ ├── idevicenotificationproxy.c │ ├── idevicepair.c │ ├── ideviceprovision.c │ ├── idevicescreenshot.c │ └── idevicesyslog.c ├── libplist/ │ ├── .gitignore │ ├── AUTHORS │ ├── COPYING │ ├── COPYING.LESSER │ ├── Makefile.am │ ├── NEWS │ ├── README.md │ ├── autogen.sh │ ├── configure.ac │ ├── cython/ │ │ ├── Makefile.am │ │ ├── plist.pxd │ │ ├── plist.pyx │ │ ├── plist_util.c │ │ └── plist_util.h │ ├── doxygen.cfg.in │ ├── fuzz/ │ │ ├── Makefile.am │ │ ├── bplist-crashes/ │ │ │ ├── clusterfuzz-testcase-4766291097288704 │ │ │ ├── clusterfuzz-testcase-4930725262393344 │ │ │ ├── clusterfuzz-testcase-5421965105954816 │ │ │ ├── clusterfuzz-testcase-5556177727389696 │ │ │ ├── clusterfuzz-testcase-6557963011489792 │ │ │ ├── clusterfuzz-testcase-6605859144597504 │ │ │ ├── crash-0ce4dd483b645bc05ec45a97d285dcf1933ee840 │ │ │ ├── crash-0d59cdcb5c3416c2790612b78a631ce9f5622800 │ │ │ ├── crash-17d635ab460fef74df1ac7561f1253533a6359c5 │ │ │ ├── crash-33a67313fa7864cd627ef92d12017a127d342f28 │ │ │ ├── crash-39f1347115f8fe9ac25cdc9332e3fc5cd32c7f7b │ │ │ ├── crash-4bd78175fe01d07c5ee90104fbc68d95dd092210 │ │ │ ├── crash-4c5404453bb7425aef9b953a5f6f3f0afcc48392 │ │ │ ├── crash-52775e25f6af20af351cd616834e602fc988a032 │ │ │ ├── crash-6d1399685b745d3d49fadc91072fabcdde8d16fa │ │ │ ├── crash-94b3725900d63c6258448fd757559c81002de9c9 │ │ │ ├── crash-a47195acbabc3f5b2cda9c6ebda42f2afc1cc5af │ │ │ ├── crash-ce852bae6aeeffc4698a93660236f1b995ce966e │ │ │ ├── crash-daddb6e82e3d1ed76e20e4131462f5247a6fb131 │ │ │ ├── crash-f21be4ebce7f9c337bf96b93cec7e252f5c75a21 │ │ │ └── crash-f779dafccc0164684d1a264976e56037188b40e2 │ │ ├── bplist-leaks/ │ │ │ ├── leak-96fb453b3ba18d31e164831795a708183b5a0dac │ │ │ ├── leak-acb3c00a83d7635638a476a4e70fc1f1caa1a5b1 │ │ │ └── leak-fe2cd4b1f67e0c9b21e6225a4fb4ca19eab80074 │ │ ├── bplist.dict │ │ ├── bplist_fuzzer.cc │ │ ├── bplist_fuzzer.options │ │ ├── fuzzers.test │ │ ├── init-fuzzers.sh │ │ ├── test-fuzzers.sh │ │ ├── xplist-crashes/ │ │ │ ├── clusterfuzz-testcase-4516959125241856 │ │ │ ├── clusterfuzz-testcase-4663876528373760 │ │ │ ├── clusterfuzz-testcase-5799076113154048 │ │ │ ├── clusterfuzz-testcase-5922404220010496 │ │ │ ├── clusterfuzz-testcase-6015098361479168 │ │ │ ├── clusterfuzz-testcase-6043836860071936 │ │ │ ├── clusterfuzz-testcase-6047509906456576 │ │ │ ├── clusterfuzz-testcase-6482601374121984 │ │ │ ├── crash-09788d7acb46b4b177422f9c4ee54556a3ad1f17 │ │ │ ├── crash-155c60d5c4b2778110fb4a633caa7d64eb9b99c1 │ │ │ ├── crash-348c909a0b3532977185f551eb5d2ed04e694883 │ │ │ ├── crash-7bc172e27a2b1d4fcaf031f59d1f08fb83081e4a │ │ │ ├── crash-80c28b0e2a446665e68927dd4441c10c9a68e64e │ │ │ ├── crash-8acf177da60ecf13c36d0da1b8e25de891980ea6 │ │ │ ├── crash-94276cf69a50e78dd6cdf079c208cb80f357cd33 │ │ │ ├── crash-9ddb891a0ec42401eb4629e6b99e01aef7909eb9 │ │ │ ├── crash-a8b44e1f5be4f75f00a937016ec5405bce77a0f9 │ │ │ ├── crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ │ └── crash-f03c680ee1c4d84c28e731752df77a61e213a24d │ │ ├── xplist-leaks/ │ │ │ ├── clusterfuzz-testcase-4634751103139840 │ │ │ ├── clusterfuzz-testcase-6056412121661440 │ │ │ ├── leak-47b0a9f21d3affab6cfc898e5140bb53265ada07 │ │ │ ├── leak-4c81aae70b20d9b9408b78d40999a54205bdcfb7 │ │ │ └── leak-53bc466851eda790bd891733da5db0a7482886bf │ │ ├── xplist.dict │ │ ├── xplist_fuzzer.cc │ │ └── xplist_fuzzer.options │ ├── include/ │ │ ├── Makefile.am │ │ └── plist/ │ │ ├── Array.h │ │ ├── Boolean.h │ │ ├── Data.h │ │ ├── Date.h │ │ ├── Dictionary.h │ │ ├── Integer.h │ │ ├── Key.h │ │ ├── Node.h │ │ ├── Real.h │ │ ├── String.h │ │ ├── Structure.h │ │ ├── Uid.h │ │ ├── plist++.h │ │ └── plist.h │ ├── libcnary/ │ │ ├── COPYING │ │ ├── Makefile.am │ │ ├── README │ │ ├── cnary.c │ │ ├── include/ │ │ │ ├── node.h │ │ │ ├── node_list.h │ │ │ └── object.h │ │ ├── node.c │ │ └── node_list.c │ ├── m4/ │ │ ├── ac_pkg_cython.m4 │ │ ├── as-compiler-flag.m4 │ │ ├── ax_pthread.m4 │ │ ├── ax_python_devel.m4 │ │ └── cython_python.m4 │ ├── src/ │ │ ├── Array.cpp │ │ ├── Boolean.cpp │ │ ├── Data.cpp │ │ ├── Date.cpp │ │ ├── Dictionary.cpp │ │ ├── Integer.cpp │ │ ├── Key.cpp │ │ ├── Makefile.am │ │ ├── Node.cpp │ │ ├── Real.cpp │ │ ├── String.cpp │ │ ├── Structure.cpp │ │ ├── Uid.cpp │ │ ├── base64.c │ │ ├── base64.h │ │ ├── bplist.c │ │ ├── bytearray.c │ │ ├── bytearray.h │ │ ├── hashtable.c │ │ ├── hashtable.h │ │ ├── libplist++.pc.in │ │ ├── libplist.pc.in │ │ ├── plist.c │ │ ├── plist.h │ │ ├── ptrarray.c │ │ ├── ptrarray.h │ │ ├── strbuf.h │ │ ├── time64.c │ │ ├── time64.h │ │ ├── time64_limits.h │ │ └── xplist.c │ ├── test/ │ │ ├── Makefile.am │ │ ├── amp.test │ │ ├── bigarray.test │ │ ├── cdata.test │ │ ├── data/ │ │ │ ├── 1.plist │ │ │ ├── 2.plist │ │ │ ├── 3.plist │ │ │ ├── 4.plist │ │ │ ├── 5.plist │ │ │ ├── 6.plist │ │ │ ├── 7.plist │ │ │ ├── amp.plist │ │ │ ├── cdata.plist │ │ │ ├── dictref1byte.bplist │ │ │ ├── dictref2bytes.bplist │ │ │ ├── dictref3bytes.bplist │ │ │ ├── dictref4bytes.bplist │ │ │ ├── dictref5bytes.bplist │ │ │ ├── dictref6bytes.bplist │ │ │ ├── dictref7bytes.bplist │ │ │ ├── dictref8bytes.bplist │ │ │ ├── empty_keys.plist │ │ │ ├── entities.plist │ │ │ ├── hex.plist │ │ │ ├── invalid_tag.plist │ │ │ ├── malformed_dict.bplist │ │ │ ├── off1byte.bplist │ │ │ ├── off2bytes.bplist │ │ │ ├── off3bytes.bplist │ │ │ ├── off4bytes.bplist │ │ │ ├── off5bytes.bplist │ │ │ ├── off6bytes.bplist │ │ │ ├── off7bytes.bplist │ │ │ ├── off8bytes.bplist │ │ │ ├── offxml.plist │ │ │ ├── order.bplist │ │ │ ├── order.plist │ │ │ ├── recursion.bplist │ │ │ ├── signed.bplist │ │ │ ├── signed.plist │ │ │ ├── signedunsigned.bplist │ │ │ ├── signedunsigned.plist │ │ │ ├── unsigned.bplist │ │ │ └── unsigned.plist │ │ ├── dates.test │ │ ├── empty.test │ │ ├── empty_keys.test │ │ ├── entities.test │ │ ├── hex.test │ │ ├── huge.test │ │ ├── invalid_tag.test │ │ ├── large.test │ │ ├── malformed_dict.test │ │ ├── medium.test │ │ ├── offsetsize.test │ │ ├── order.test │ │ ├── plist_cmp.c │ │ ├── plist_test.c │ │ ├── recursion.test │ │ ├── refsize.test │ │ ├── signedunsigned1.test │ │ ├── signedunsigned2.test │ │ ├── signedunsigned3.test │ │ ├── small.test │ │ ├── timezone1.test │ │ └── timezone2.test │ └── tools/ │ ├── Makefile.am │ └── plistutil.c ├── libusbmuxd/ │ ├── .gitignore │ ├── AUTHORS │ ├── COPYING │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── autogen.sh │ ├── common/ │ │ ├── Makefile.am │ │ ├── collection.c │ │ ├── collection.h │ │ ├── socket.c │ │ ├── socket.h │ │ ├── thread.c │ │ └── thread.h │ ├── configure.ac │ ├── include/ │ │ ├── Makefile.am │ │ ├── usbmuxd-proto.h │ │ └── usbmuxd.h │ ├── src/ │ │ ├── Makefile.am │ │ └── libusbmuxd.c │ └── tools/ │ ├── Makefile.am │ └── iproxy.c └── setup.bat
Showing preview only (301K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3755 symbols across 436 files)
FILE: AltServer/AltServer.cpp
function make_uuid (line 45) | std::string make_uuid()
function temporary_directory (line 71) | std::string temporary_directory()
function readFile (line 85) | std::vector<unsigned char> readFile(const char* filename)
function WinMain (line 128) | int CALLBACK WinMain(
function OpenFile (line 247) | std::optional<std::string> OpenFile()
function LRESULT (line 294) | LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM ...
function BOOL (line 429) | BOOL CALLBACK LoginDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARA...
FILE: AltServer/AltServerApp.cpp
function HKEY (line 72) | HKEY OpenRegistryKey()
function SetRegistryBoolValue (line 90) | void SetRegistryBoolValue(const char *lpValue, bool data)
function SetRegistryStringValue (line 105) | void SetRegistryStringValue(const char* lpValue, std::string string)
function GetRegistryBoolValue (line 118) | bool GetRegistryBoolValue(const char *lpValue)
function GetRegistryStringValue (line 141) | std::string GetRegistryStringValue(const char* lpValue)
function observe_all_exceptions (line 168) | void observe_all_exceptions(InIt first, InIt last)
function BOOL (line 186) | BOOL CALLBACK InstallDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPA...
function BOOL (line 238) | BOOL CALLBACK TwoFactorDlgProc(HWND hwnd, UINT Message, WPARAM wParam, L...
function AltServerApp (line 316) | AltServerApp* AltServerApp::instance()
function BrowseFolderCallback (line 334) | static int CALLBACK BrowseFolderCallback(HWND hwnd, UINT uMsg, LPARAM lP...
function HWND (line 1571) | HWND AltServerApp::windowHandle() const
function HINSTANCE (line 1576) | HINSTANCE AltServerApp::instanceHandle() const
FILE: AltServer/AltServerApp.h
function class (line 39) | class AltServerApp
FILE: AltServer/AnisetteDataManager.cpp
class ObjcObject (line 54) | class ObjcObject
method description (line 59) | std::string description() const
function id (line 73) | id __cdecl ALTClientInfoReplacementFunction(void*)
function id (line 85) | id __cdecl ALTDeviceIDReplacementFunction()
function convert_filetime (line 99) | void convert_filetime(struct timeval* out_tv, const FILETIME* filetime)
function AnisetteDataManager (line 116) | AnisetteDataManager* AnisetteDataManager::instance()
FILE: AltServer/AnisetteDataManager.h
function AnisetteErrorCode (line 10) | enum class AnisetteErrorCode
FILE: AltServer/ClientConnection.cpp
function StringFromWideString (line 24) | std::string StringFromWideString(std::wstring wideString)
function WideStringFromString (line 32) | std::wstring WideStringFromString(std::string string)
FILE: AltServer/ClientConnection.h
function class (line 14) | class ClientConnection
FILE: AltServer/ConnectionManager.cpp
function ConnectionManagerBonjourRegistrationFinished (line 42) | void DNSSD_API ConnectionManagerBonjourRegistrationFinished(DNSServiceRe...
function ConnectionManagerConnectedDevice (line 47) | void ConnectionManagerConnectedDevice(std::shared_ptr<Device> device)
function ConnectionManagerDisconnectedDevice (line 52) | void ConnectionManagerDisconnectedDevice(std::shared_ptr<Device> device)
function ConnectionManager (line 59) | ConnectionManager* ConnectionManager::instance()
type sockaddr_in (line 145) | struct sockaddr_in
type sockaddr (line 152) | struct sockaddr
type sockaddr_in (line 163) | struct sockaddr_in
type sockaddr (line 166) | struct sockaddr
type timeval (line 179) | struct timeval
type sockaddr_in (line 197) | struct sockaddr_in
type sockaddr_in (line 204) | struct sockaddr_in
type sockaddr_in (line 205) | struct sockaddr_in
FILE: AltServer/ConnectionManager.hpp
class ConnectionManager (line 20) | class ConnectionManager
FILE: AltServer/DeviceManager.cpp
function replace_all (line 53) | std::string replace_all(
function DeviceManager (line 73) | DeviceManager* DeviceManager::instance()
function DeviceManagerUpdateStatus (line 1317) | void DeviceManagerUpdateStatus(plist_t command, plist_t status, void *uuid)
function DeviceManagerUpdateAppDeletionStatus (line 1338) | void DeviceManagerUpdateAppDeletionStatus(plist_t command, plist_t statu...
function DeviceDidChangeConnectionStatus (line 1379) | void DeviceDidChangeConnectionStatus(const idevice_event_t* event, void*...
FILE: AltServer/DeviceManager.hpp
class DeviceManager (line 27) | class DeviceManager
FILE: AltServer/InstallError.hpp
type InstallErrorCode (line 14) | enum class InstallErrorCode
class InstallError (line 23) | class InstallError: public Error
method InstallError (line 26) | InstallError(InstallErrorCode code) : Error((int)code)
method domain (line 30) | virtual std::string domain() const
method localizedDescription (line 35) | virtual std::string localizedDescription() const
FILE: AltServer/NotificationConnection.cpp
function ALTDeviceReceivedNotification (line 9) | void ALTDeviceReceivedNotification(const char* notification, void* user_...
function np_client_t (line 86) | np_client_t NotificationConnection::client() const
FILE: AltServer/NotificationConnection.h
function class (line 11) | class NotificationConnection
FILE: AltServer/Semaphore.h
function class (line 14) | class Semaphore {
FILE: AltServer/ServerError.hpp
type ServerErrorCode (line 18) | enum class ServerErrorCode
class ServerError (line 48) | class ServerError: public Error
method ServerError (line 51) | ServerError(ServerErrorCode code) : Error((int)code)
method ServerError (line 55) | ServerError(ServerErrorCode code, std::map<std::string, std::string> u...
method domain (line 59) | virtual std::string domain() const
method localizedDescription (line 64) | virtual std::string localizedDescription() const
FILE: AltServer/WiredConnection.cpp
function idevice_connection_t (line 70) | idevice_connection_t WiredConnection::connection() const
FILE: AltServer/WiredConnection.h
function class (line 11) | class WiredConnection: public ClientConnection
FILE: AltServer/WirelessConnection.cpp
type timeval (line 51) | struct timeval
type timeval (line 90) | struct timeval
FILE: AltServer/WirelessConnection.h
function class (line 5) | class WirelessConnection: public ClientConnection
FILE: AltSign/Account.hpp
class Account (line 21) | class Account
FILE: AltSign/AnisetteData.cpp
type timeval (line 31) | struct timeval
type tm (line 68) | struct tm
function TIMEVAL (line 121) | TIMEVAL AnisetteData::date() const
type tm (line 139) | struct tm
FILE: AltSign/AnisetteData.h
function class (line 23) | class AnisetteData
FILE: AltSign/AppGroup.hpp
class AppGroup (line 18) | class AppGroup
FILE: AltSign/AppID.cpp
function AppID (line 37) | AppID& AppID::operator=(const AppID& appID)
FILE: AltSign/AppID.hpp
class AppID (line 23) | class AppID
FILE: AltSign/AppleAPI+Authentication.cpp
type ccrng_state (line 42) | struct ccrng_state
function DataFromBytes (line 44) | std::vector<unsigned char> DataFromBytes(const char* bytes, size_t count)
function ALTDigestUpdateString (line 56) | void ALTDigestUpdateString(const struct ccdigest_info* di_info, struct c...
function ALTDigestUpdateData (line 61) | void ALTDigestUpdateData(const struct ccdigest_info* di_info, struct ccd...
function ALTPBKDF2SRP (line 68) | std::optional<std::vector<unsigned char>> ALTPBKDF2SRP(const struct ccdi...
function ALTCreateSessionKey (line 103) | std::vector<unsigned char> ALTCreateSessionKey(ccsrp_ctx_t srp_ctx, cons...
function ALTDecryptDataCBC (line 120) | std::optional<std::vector<unsigned char>> ALTDecryptDataCBC(ccsrp_ctx_t ...
function ALTDecryptDataGCM (line 152) | std::optional<std::vector<unsigned char>> ALTDecryptDataGCM(std::vector<...
function ALTCreateAppTokensChecksum (line 193) | std::vector<unsigned char> ALTCreateAppTokensChecksum(std::vector<unsign...
type tm (line 233) | struct tm
type ccdigest_info (line 262) | struct ccdigest_info
type ccdigest_ctx (line 263) | struct ccdigest_ctx
type ccdigest_ctx (line 263) | struct ccdigest_ctx
type ccdigest_info (line 266) | struct ccdigest_info
type tm (line 371) | struct tm
type tm (line 611) | struct tm
type tm (line 754) | struct tm
FILE: AltSign/AppleAPI.cpp
function decompress (line 55) | bool decompress(const uint8_t* input, size_t input_size, std::vector<uin...
function AppleAPI (line 102) | AppleAPI* AppleAPI::getInstance()
type tm (line 800) | struct tm
type tm (line 916) | struct tm
FILE: AltSign/AppleAPI.hpp
class AppleAPI (line 31) | class AppleAPI
method T (line 111) | T ProcessAnyResponse(plist_t plist, std::string errorCodeKey, std::vec...
method T (line 208) | T ProcessResponse(plist_t plist, std::function<T(plist_t)> parseHandle...
method T (line 214) | T ProcessTwoFactorResponse(plist_t plist, std::function<T(plist_t)> pa...
method T (line 220) | T ProcessServicesResponse(web::json::value json, std::function<T(web::...
FILE: AltSign/AppleAPISession.h
function class (line 20) | class AppleAPISession
FILE: AltSign/Application.cpp
function Application (line 48) | Application& Application::operator=(const Application& app)
FILE: AltSign/Application.hpp
class Application (line 24) | class Application
FILE: AltSign/Archiver.cpp
function endsWith (line 50) | static bool endsWith(const std::string& str, const std::string& suffix)
function startsWith (line 55) | static bool startsWith(const std::string& str, const std::string& prefix)
function UnzipAppBundle (line 66) | std::string UnzipAppBundle(std::string filepath, std::string outputDirec...
function WriteFileToZipFile (line 247) | void WriteFileToZipFile(zipFile *zipFile, fs::path filepath, fs::path re...
function ZipAppBundle (line 304) | std::string ZipAppBundle(std::string filepath)
FILE: AltSign/Certificate.cpp
function is_base64 (line 28) | static inline bool is_base64(unsigned char c) {
function base64_decode (line 32) | std::vector<unsigned char> base64_decode(std::string const& encoded_stri...
FILE: AltSign/Certificate.hpp
class Certificate (line 22) | class Certificate
FILE: AltSign/CertificateRequest.hpp
class CertificateRequest (line 18) | class CertificateRequest
FILE: AltSign/Dependencies/corecrypto/cc.h
function cc_xor (line 132) | void cc_xor(size_t size, void *r, const void *s, const void *t) {
FILE: AltSign/Dependencies/corecrypto/cc_memory.h
function CC_INLINE (line 77) | CC_INLINE void cc_alloc_debug(CC_UNUSED void *p) {
function CC_INLINE (line 85) | CC_INLINE void cc_free_debug(CC_UNUSED void *p) {
function CC_INLINE (line 134) | CC_INLINE void *cc_malloc(size_t s)
function CC_INLINE (line 138) | CC_INLINE void cc_free(void *p,size_t size)
function CC_INLINE (line 144) | CC_INLINE void *cc_malloc(size_t s)
function CC_INLINE (line 148) | CC_INLINE void cc_free(void *p,size_t size CC_UNUSED)
FILE: AltSign/Dependencies/corecrypto/cc_priv.h
function CC_INLINE (line 268) | CC_INLINE uint32_t CC_ROL(uint32_t word, int i)
function CC_INLINE (line 276) | CC_INLINE uint32_t CC_ROR(uint32_t word, int i)
function CC_INLINE (line 306) | CC_INLINE uint32_t CC_ROL(uint32_t word, int i)
function CC_INLINE (line 311) | CC_INLINE uint32_t CC_ROR(uint32_t word, int i)
function CC_INLINE (line 326) | CC_INLINE uint64_t CC_ROL64(uint64_t word, int i)
function CC_INLINE (line 334) | CC_INLINE uint64_t CC_ROR64(uint64_t word, int i)
function CC_INLINE (line 366) | CC_INLINE uint64_t CC_ROL64(uint64_t word, int i)
function CC_INLINE (line 371) | CC_INLINE uint64_t CC_ROR64(uint64_t word, int i)
function CC_INLINE (line 384) | CC_INLINE uint32_t CC_BSWAP(uint32_t x)
FILE: AltSign/Dependencies/corecrypto/ccaes.h
type ccmode_ecb (line 77) | struct ccmode_ecb
type ccmode_ecb (line 78) | struct ccmode_ecb
type ccmode_cbc (line 80) | struct ccmode_cbc
type ccmode_cbc (line 81) | struct ccmode_cbc
type ccmode_ecb (line 84) | struct ccmode_ecb
type ccmode_ecb (line 85) | struct ccmode_ecb
type ccmode_cbc (line 87) | struct ccmode_cbc
type ccmode_cbc (line 88) | struct ccmode_cbc
type ccmode_xts (line 90) | struct ccmode_xts
type ccmode_xts (line 91) | struct ccmode_xts
type ccmode_cfb (line 93) | struct ccmode_cfb
type ccmode_cfb (line 94) | struct ccmode_cfb
type ccmode_ofb (line 96) | struct ccmode_ofb
type ccmode_cbc (line 101) | struct ccmode_cbc
type ccmode_cbc (line 102) | struct ccmode_cbc
type ccmode_ctr (line 104) | struct ccmode_ctr
type ccmode_cbc (line 106) | struct ccmode_cbc
type ccmode_cbc (line 107) | struct ccmode_cbc
type ccmode_ctr (line 109) | struct ccmode_ctr
type ccmode_ecb (line 117) | struct ccmode_ecb
type ccmode_ecb (line 118) | struct ccmode_ecb
type ccmode_ecb (line 120) | struct ccmode_ecb
type ccmode_ecb (line 121) | struct ccmode_ecb
type ccmode_cbc (line 126) | struct ccmode_cbc
type ccmode_cbc (line 127) | struct ccmode_cbc
type ccmode_cbc (line 129) | struct ccmode_cbc
type ccmode_cbc (line 130) | struct ccmode_cbc
type ccmode_xts (line 135) | struct ccmode_xts
type ccmode_xts (line 136) | struct ccmode_xts
type ccmode_xts (line 138) | struct ccmode_xts
type ccmode_xts (line 139) | struct ccmode_xts
type ccmode_cbc (line 143) | struct ccmode_cbc
type ccmode_cbc (line 144) | struct ccmode_cbc
type ccmode_ecb (line 146) | struct ccmode_ecb
type ccmode_ecb (line 147) | struct ccmode_ecb
type ccmode_ecb (line 149) | struct ccmode_ecb
type ccmode_ecb (line 153) | struct ccmode_ecb
type ccmode_cbc (line 154) | struct ccmode_cbc
type ccmode_cfb (line 155) | struct ccmode_cfb
type ccmode_cfb8 (line 156) | struct ccmode_cfb8
type ccmode_xts (line 157) | struct ccmode_xts
type ccmode_gcm (line 158) | struct ccmode_gcm
type ccmode_ccm (line 159) | struct ccmode_ccm
type ccmode_ecb (line 161) | struct ccmode_ecb
type ccmode_cbc (line 162) | struct ccmode_cbc
type ccmode_cfb (line 163) | struct ccmode_cfb
type ccmode_cfb8 (line 164) | struct ccmode_cfb8
type ccmode_xts (line 165) | struct ccmode_xts
type ccmode_gcm (line 166) | struct ccmode_gcm
type ccmode_ccm (line 167) | struct ccmode_ccm
type ccmode_ctr (line 169) | struct ccmode_ctr
type ccmode_ofb (line 170) | struct ccmode_ofb
type ccmode_siv (line 172) | struct ccmode_siv
type ccmode_siv (line 173) | struct ccmode_siv
FILE: AltSign/Dependencies/corecrypto/ccansikdf.h
type ccdigest_info (line 84) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccasn1.h
type ccoid_t (line 126) | typedef union {
function ccoid_size (line 140) | size_t ccoid_size(ccoid_t oid) {
function ccoid_equal (line 145) | bool ccoid_equal(ccoid_t oid1, ccoid_t oid2) {
FILE: AltSign/Dependencies/corecrypto/ccblowfish.h
type ccmode_ecb (line 74) | struct ccmode_ecb
type ccmode_ecb (line 75) | struct ccmode_ecb
type ccmode_ecb (line 79) | struct ccmode_ecb
type ccmode_ecb (line 80) | struct ccmode_ecb
type ccmode_cbc (line 82) | struct ccmode_cbc
type ccmode_cbc (line 83) | struct ccmode_cbc
type ccmode_cfb (line 85) | struct ccmode_cfb
type ccmode_cfb (line 86) | struct ccmode_cfb
type ccmode_cfb8 (line 88) | struct ccmode_cfb8
type ccmode_cfb8 (line 89) | struct ccmode_cfb8
type ccmode_ctr (line 91) | struct ccmode_ctr
type ccmode_ofb (line 93) | struct ccmode_ofb
FILE: AltSign/Dependencies/corecrypto/cccast.h
type ccmode_ecb (line 75) | struct ccmode_ecb
type ccmode_ecb (line 76) | struct ccmode_ecb
type ccmode_cbc (line 78) | struct ccmode_cbc
type ccmode_cbc (line 79) | struct ccmode_cbc
type ccmode_cfb (line 81) | struct ccmode_cfb
type ccmode_cfb (line 82) | struct ccmode_cfb
type ccmode_cfb8 (line 84) | struct ccmode_cfb8
type ccmode_cfb8 (line 85) | struct ccmode_cfb8
type ccmode_ctr (line 87) | struct ccmode_ctr
type ccmode_ofb (line 89) | struct ccmode_ofb
type ccmode_ecb (line 92) | struct ccmode_ecb
type ccmode_ecb (line 93) | struct ccmode_ecb
FILE: AltSign/Dependencies/corecrypto/ccchacha20poly1305.h
type ccchacha20_ctx (line 77) | typedef struct {
type ccpoly1305_ctx (line 85) | typedef struct {
type ccchacha20poly1305_ctx (line 153) | typedef struct {
type ccchacha20poly1305_info (line 163) | struct ccchacha20poly1305_info {
type ccchacha20poly1305_info (line 167) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 169) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 185) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 196) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 212) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 213) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 230) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 248) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 262) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 280) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 294) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 324) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 350) | struct ccchacha20poly1305_info
FILE: AltSign/Dependencies/corecrypto/cccmac.h
type cccmac_ctx (line 75) | struct cccmac_ctx {
type cccmac_ctx_hdr (line 79) | struct cccmac_ctx_hdr {
type cccmac_ctx_t (line 90) | typedef union {
type cccmac_ctx (line 98) | struct cccmac_ctx {
type cccmac_ctx (line 108) | struct cccmac_ctx
type ccmode_cbc (line 168) | struct ccmode_cbc
type ccmode_cbc (line 189) | struct ccmode_cbc
type ccmode_cbc (line 216) | struct ccmode_cbc
FILE: AltSign/Dependencies/corecrypto/ccder.h
type ccder_tag (line 73) | typedef unsigned long ccder_tag;
type ccder_tag (line 75) | typedef uint8_t ccder_tag;
FILE: AltSign/Dependencies/corecrypto/ccder_rsa.h
function CC_INLINE (line 71) | CC_INLINE uint8_t *
FILE: AltSign/Dependencies/corecrypto/ccdes.h
type ccmode_ecb (line 73) | struct ccmode_ecb
type ccmode_ecb (line 74) | struct ccmode_ecb
type ccmode_ecb (line 76) | struct ccmode_ecb
type ccmode_ecb (line 77) | struct ccmode_ecb
type ccmode_ecb (line 78) | struct ccmode_ecb
type ccmode_ecb (line 80) | struct ccmode_ecb
type ccmode_ecb (line 81) | struct ccmode_ecb
type ccmode_cbc (line 83) | struct ccmode_cbc
type ccmode_cbc (line 84) | struct ccmode_cbc
type ccmode_cfb (line 86) | struct ccmode_cfb
type ccmode_cfb (line 87) | struct ccmode_cfb
type ccmode_cfb8 (line 89) | struct ccmode_cfb8
type ccmode_cfb8 (line 90) | struct ccmode_cfb8
type ccmode_ctr (line 92) | struct ccmode_ctr
type ccmode_ofb (line 94) | struct ccmode_ofb
type ccmode_ecb (line 97) | struct ccmode_ecb
type ccmode_ecb (line 98) | struct ccmode_ecb
type ccmode_cbc (line 100) | struct ccmode_cbc
type ccmode_cbc (line 101) | struct ccmode_cbc
type ccmode_cfb (line 103) | struct ccmode_cfb
type ccmode_cfb (line 104) | struct ccmode_cfb
type ccmode_cfb8 (line 106) | struct ccmode_cfb8
type ccmode_cfb8 (line 107) | struct ccmode_cfb8
type ccmode_ctr (line 109) | struct ccmode_ctr
type ccmode_ofb (line 111) | struct ccmode_ofb
FILE: AltSign/Dependencies/corecrypto/ccdh.h
type ccdh_gp_t (line 89) | typedef union {
type ccdh_const_gp_t (line 96) | typedef union {
type ccdh_ctx_header (line 104) | struct ccdh_ctx_header {
type ccdh_ctx_body (line 109) | struct ccdh_ctx_body {
type ccdh_ctx_public (line 114) | struct ccdh_ctx_public {
type ccdh_full_ctx (line 120) | struct ccdh_full_ctx {
type ccdh_pub_ctx (line 125) | struct ccdh_pub_ctx {
type ccdh_full_ctx_t (line 132) | typedef union {
type ccdh_pub_ctx_t (line 139) | typedef union {
type ccdh_gp (line 150) | struct ccdh_gp {
type ccdh_gp (line 156) | struct ccdh_gp
type ccdh_gp (line 160) | struct ccdh_gp
type ccdh_full_ctx (line 163) | struct ccdh_full_ctx {
type ccdh_pub_ctx (line 170) | struct ccdh_pub_ctx {
type ccdh_full_ctx (line 180) | struct ccdh_full_ctx
type ccdh_pub_ctx (line 181) | struct ccdh_pub_ctx
function cczp_const_t (line 230) | static inline cczp_const_t ccdh_gp_zp(ccdh_const_gp_t gp) { return gp.zp;}
function cczp_const_t (line 240) | static inline cczp_const_t ccdh_gp_zp(ccdh_const_gp_t gp) { return (cczp...
function CC_INLINE (line 288) | CC_INLINE
function cc_size (line 306) | cc_size ccdh_gp_n(ccdh_const_gp_t gp) {
function cc_unit (line 311) | const cc_unit *ccdh_gp_prime(ccdh_const_gp_t gp) {
function cc_unit (line 316) | const cc_unit *ccdh_gp_recip(ccdh_const_gp_t gp) {
function cc_unit (line 321) | const cc_unit ccdh_gp_options(ccdh_const_gp_t gp) {
function cc_unit (line 326) | const cc_unit *ccdh_gp_g(ccdh_const_gp_t gp) {
function cc_unit (line 331) | const cc_unit *ccdh_gp_order(ccdh_const_gp_t gp) {
function cc_size (line 336) | cc_size ccdh_gp_l(ccdh_const_gp_t gp) {
function ccdh_ccn_size (line 341) | size_t ccdh_ccn_size(ccdh_const_gp_t gp) {
function cc_size (line 357) | cc_size ccdh_gp_n(ccdh_const_gp_t gp) {
function cc_unit (line 362) | const cc_unit *ccdh_gp_prime(ccdh_const_gp_t gp) {
function cc_unit (line 367) | const cc_unit *ccdh_gp_recip(ccdh_const_gp_t gp) {
function cc_unit (line 372) | const cc_unit ccdh_gp_options(ccdh_const_gp_t gp) {
function cc_unit (line 377) | const cc_unit *ccdh_gp_g(ccdh_const_gp_t gp) {
function cc_unit (line 382) | const cc_unit *ccdh_gp_order(ccdh_const_gp_t gp) {
function cc_size (line 387) | cc_size ccdh_gp_l(ccdh_const_gp_t gp) {
function ccdh_ccn_size (line 393) | size_t ccdh_ccn_size(ccdh_const_gp_t gp) {
type ccrng_state (line 446) | struct ccrng_state
type ccrng_state (line 466) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccdh_priv.h
type ccrng_state (line 83) | struct ccrng_state
type ccrng_state (line 87) | struct ccrng_state
type ccrng_state (line 101) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccdigest.h
type ccdigest_ctx (line 74) | struct ccdigest_ctx {
type ccdigest_ctx_t (line 83) | typedef union {
type ccdigest_state (line 87) | struct ccdigest_state {
type ccdigest_state_t (line 96) | typedef union {
type ccdigest_ctx (line 102) | struct ccdigest_ctx {
type ccdigest_ctx (line 111) | struct ccdigest_ctx
type ccdigest_state (line 113) | struct ccdigest_state {
type ccdigest_state (line 122) | struct ccdigest_state
type ccdigest_info (line 126) | struct ccdigest_info {
type ccdigest_info (line 200) | struct ccdigest_info
type ccdigest_info (line 201) | struct ccdigest_info
function CC_INLINE (line 204) | CC_INLINE
type ccdigest_info (line 210) | struct ccdigest_info
type ccdigest_info (line 214) | struct ccdigest_info
type ccdigest_info (line 217) | struct ccdigest_info
type ccdigest_vector (line 220) | struct ccdigest_vector {
type ccdigest_info (line 226) | struct ccdigest_info
type ccdigest_vector (line 226) | struct ccdigest_vector
type ccdigest_info (line 227) | struct ccdigest_info
type ccdigest_vector (line 227) | struct ccdigest_vector
FILE: AltSign/Dependencies/corecrypto/ccdigest_priv.h
type ccdigest_info (line 71) | struct ccdigest_info
type ccdigest_info (line 73) | struct ccdigest_info
type ccdigest_info (line 75) | struct ccdigest_info
type ccdigest_info (line 79) | struct ccdigest_info
type ccdigest_info (line 85) | struct ccdigest_info
type ccdigest_info (line 88) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccdrbg.h
function CC_INLINE (line 109) | CC_INLINE int ccdrbg_init(const struct ccdrbg_info *info,
function CC_INLINE (line 121) | CC_INLINE int ccdrbg_reseed(const struct ccdrbg_info *info,
function CC_INLINE (line 130) | CC_INLINE int ccdrbg_generate(const struct ccdrbg_info *info,
function CC_INLINE (line 138) | CC_INLINE void ccdrbg_done(const struct ccdrbg_info *info,
function CC_INLINE (line 144) | CC_INLINE size_t ccdrbg_context_size(const struct ccdrbg_info *info)
type ccdrbg_nistctr_custom (line 154) | struct ccdrbg_nistctr_custom {
type ccdrbg_info (line 161) | struct ccdrbg_info
type ccdrbg_nistctr_custom (line 161) | struct ccdrbg_nistctr_custom
type ccdrbg_info (line 167) | struct ccdrbg_info
type ccdrbg_nisthmac_custom (line 169) | struct ccdrbg_nisthmac_custom {
type ccdrbg_info (line 174) | struct ccdrbg_info
type ccdrbg_nisthmac_custom (line 174) | struct ccdrbg_nisthmac_custom
type ccdrbg_info (line 181) | struct ccdrbg_info
type ccdrbg_info (line 189) | struct ccdrbg_info
FILE: AltSign/Dependencies/corecrypto/ccdrbg_impl.h
type ccdrbg_state (line 69) | struct ccdrbg_state
type ccdrbg_info (line 71) | struct ccdrbg_info {
FILE: AltSign/Dependencies/corecrypto/ccec.h
type ccec_projective_point (line 78) | struct ccec_projective_point {
type ccec_projective_point (line 81) | typedef struct ccec_projective_point ccec_projective_point;
type ccec_cp (line 83) | struct ccec_cp {
type ccec_point_hdr (line 88) | struct ccec_point_hdr {
type ccec_projective_point_t (line 92) | typedef union {
type ccec_const_projective_point_t (line 97) | typedef union {
type ccec_const_cp_t (line 109) | typedef union {
type ccec_affine_point (line 115) | struct ccec_affine_point {
type ccec_affine_point (line 118) | typedef struct ccec_affine_point ccec_affine_point;
type ccec_projective_point (line 119) | typedef ccec_projective_point* ccec_projective_point_t;
type ccec_affine_point (line 120) | typedef ccec_affine_point* ccec_affine_point_t;
type ccec_affine_point (line 122) | struct ccec_affine_point
type ccec_projective_point (line 123) | struct ccec_projective_point
type ccec_cp (line 125) | struct ccec_cp
type ccec_full_ctx (line 130) | struct ccec_full_ctx {
type ccec_pub_ctx (line 136) | struct ccec_pub_ctx {
type ccec_full_ctx_t (line 144) | typedef union {
type ccec_full_ctx (line 154) | typedef struct ccec_full_ctx ccec_full_ctx;
type ccec_full_ctx_t (line 156) | typedef ccec_full_ctx_t ccec_pub_ctx_t;
type ccec_pub_ctx (line 157) | typedef struct ccec_pub_ctx ccec_pub_ctx;
type ccec_full_ctx (line 159) | struct ccec_full_ctx
type ccec_pub_ctx (line 160) | struct ccec_pub_ctx
function CC_INLINE (line 161) | CC_INLINE
function CC_INLINE (line 195) | CC_INLINE void ccec_ctx_init(ccec_const_cp_t cp, ccec_full_ctx_t key) {(...
function CC_INLINE (line 201) | CC_INLINE cc_size ccec_cp_n(ccec_const_cp_t cp) { return cp.zp->n; }
function cc_size (line 218) | cc_size ccec_cp_n(ccec_const_cp_t cp) { return cp->n; }
function cczp_const_t (line 219) | cczp_const_t ccec_cp_zp(ccec_const_cp_t cp){ return (cczp_const_t)cp; }
function CC_INLINE (line 249) | CC_INLINE
function CC_INLINE (line 254) | CC_INLINE
function ccec_ccn_size (line 262) | size_t ccec_ccn_size(ccec_const_cp_t cp) {
type ccec_rfc6637_curve (line 280) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 281) | struct ccec_rfc6637_wrap
type ccec_rfc6637_unwrap (line 282) | struct ccec_rfc6637_unwrap
type ccec_rfc6637_wrap (line 284) | struct ccec_rfc6637_wrap
type ccec_rfc6637_wrap (line 285) | struct ccec_rfc6637_wrap
type ccec_rfc6637_unwrap (line 286) | struct ccec_rfc6637_unwrap
type ccec_rfc6637_unwrap (line 287) | struct ccec_rfc6637_unwrap
type ccec_rfc6637_curve (line 288) | struct ccec_rfc6637_curve
type ccec_rfc6637_curve (line 289) | struct ccec_rfc6637_curve
type ccrng_state (line 307) | struct ccrng_state
type ccrng_state (line 322) | struct ccrng_state
type ccrng_state (line 336) | struct ccrng_state
type ccrng_state (line 352) | struct ccrng_state
type ccrng_state (line 392) | struct ccrng_state
function ccec_sign_max_size (line 414) | size_t ccec_sign_max_size(ccec_const_cp_t cp) {
type ccrng_state (line 424) | struct ccrng_state
type ccrng_state (line 439) | struct ccrng_state
type ccrng_state (line 486) | struct ccrng_state
type ccec_rfc6637_curve (line 542) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 543) | struct ccec_rfc6637_wrap
type ccrng_state (line 545) | struct ccrng_state
type ccrng_state (line 578) | struct ccrng_state
type ccec_rfc6637_curve (line 628) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 629) | struct ccec_rfc6637_wrap
type ccrng_state (line 631) | struct ccrng_state
type ccec_rfc6637_curve (line 661) | struct ccec_rfc6637_curve
type ccec_rfc6637_unwrap (line 662) | struct ccec_rfc6637_unwrap
function ccec_export_pub_size (line 676) | size_t ccec_export_pub_size(ccec_pub_ctx_t key) {
function ccec_x963_export_size (line 690) | size_t ccec_x963_export_size(const int fullkey, ccec_pub_ctx_t key){
function ccec_compact_export_size (line 721) | size_t ccec_compact_export_size(const int fullkey, ccec_pub_ctx_t key){
type ccrng_state (line 884) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccec25519.h
type ccec25519key (line 73) | typedef ccec25519key ccec25519secretkey;
type ccec25519key (line 74) | typedef ccec25519key ccec25519pubkey;
type ccec25519key (line 75) | typedef ccec25519key ccec25519base;
function CC_INLINE (line 102) | CC_INLINE void cccurve25519_make_priv(struct ccrng_state *rng,
function CC_INLINE (line 118) | CC_INLINE void cccurve25519_make_pub(ccec25519pubkey pk,
function CC_INLINE (line 132) | CC_INLINE void cccurve25519_make_key_pair(struct ccrng_state *rng,
type ccdigest_info (line 149) | struct ccdigest_info
type ccrng_state (line 150) | struct ccrng_state
type ccdigest_info (line 165) | struct ccdigest_info
type ccdigest_info (line 184) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccec25519_priv.h
type ccdigest_info (line 82) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccec_priv.h
type ccrng_state (line 148) | struct ccrng_state
type ccrng_state (line 170) | struct ccrng_state
type ccrng_state (line 223) | struct ccrng_state
type ccrng_state (line 255) | struct ccrng_state
type ccrng_state (line 334) | struct ccrng_state
type ccrng_state (line 350) | struct ccrng_state
type ccrng_state (line 365) | struct ccrng_state
type ccrng_state (line 387) | struct ccrng_state
type ccrng_state (line 401) | struct ccrng_state
type ccrng_state (line 434) | struct ccrng_state
type ccec_rfc6637 (line 452) | struct ccec_rfc6637 {
type ccec_rfc6637_curve (line 460) | struct ccec_rfc6637_curve {
type ccec_rfc6637 (line 465) | struct ccec_rfc6637
type ccec_rfc6637 (line 466) | struct ccec_rfc6637
type ccdigest_info (line 469) | struct ccdigest_info
type ccec_rfc6637_curve (line 470) | struct ccec_rfc6637_curve
type ccec_rfc6637 (line 471) | struct ccec_rfc6637
type ccec_rfc6637_curve (line 488) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 489) | struct ccec_rfc6637_wrap
type ccrng_state (line 491) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccecies.h
type ccecies_gcm (line 94) | struct ccecies_gcm {
type ccdigest_info (line 107) | struct ccdigest_info
type ccrng_state (line 108) | struct ccrng_state
type ccmode_gcm (line 109) | struct ccmode_gcm
type ccdigest_info (line 142) | struct ccdigest_info
type ccmode_gcm (line 143) | struct ccmode_gcm
FILE: AltSign/Dependencies/corecrypto/cchkdf.h
type ccdigest_info (line 87) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/cchmac.h
type cchmac_ctx (line 72) | struct cchmac_ctx {
type cchmac_ctx_t (line 77) | typedef union {
type cchmac_ctx (line 82) | struct cchmac_ctx
type ccdigest_info (line 134) | struct ccdigest_info
type ccdigest_info (line 136) | struct ccdigest_info
type ccdigest_info (line 138) | struct ccdigest_info
type ccdigest_info (line 141) | struct ccdigest_info
type cchmac_test_input (line 147) | struct cchmac_test_input {
type cchmac_test_input (line 157) | struct cchmac_test_input
type cchmac_test_input (line 158) | struct cchmac_test_input
FILE: AltSign/Dependencies/corecrypto/ccmd2.h
type ccdigest_info (line 76) | struct ccdigest_info
type ccdigest_info (line 81) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccmd4.h
type ccdigest_info (line 77) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccmd5.h
type ccdigest_info (line 77) | struct ccdigest_info
type ccdigest_info (line 80) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccmode.h
function CC_INLINE (line 79) | CC_INLINE size_t ccecb_context_size(const struct ccmode_ecb *mode)
function CC_INLINE (line 84) | CC_INLINE size_t ccecb_block_size(const struct ccmode_ecb *mode)
function CC_INLINE (line 89) | CC_INLINE int ccecb_init(const struct ccmode_ecb *mode, ccecb_ctx *ctx,
function CC_INLINE (line 95) | CC_INLINE int ccecb_update(const struct ccmode_ecb *mode, const ccecb_ct...
function CC_INLINE (line 101) | CC_INLINE int ccecb_one_shot(const struct ccmode_ecb *mode,
function CC_INLINE (line 133) | CC_INLINE size_t cccbc_context_size(const struct ccmode_cbc *mode)
function CC_INLINE (line 138) | CC_INLINE size_t cccbc_block_size(const struct ccmode_cbc *mode)
function CC_INLINE (line 143) | CC_INLINE int cccbc_init(const struct ccmode_cbc *mode, cccbc_ctx *ctx,
function CC_INLINE (line 149) | CC_INLINE int cccbc_set_iv(const struct ccmode_cbc *mode, cccbc_iv *iv_ctx,
function CC_INLINE (line 159) | CC_INLINE int cccbc_update(const struct ccmode_cbc *mode, cccbc_ctx *ctx,
type ccmode_cbc (line 166) | struct ccmode_cbc
function CC_INLINE (line 178) | CC_INLINE size_t cccfb_context_size(const struct ccmode_cfb *mode)
function CC_INLINE (line 183) | CC_INLINE size_t cccfb_block_size(const struct ccmode_cfb *mode)
function CC_INLINE (line 188) | CC_INLINE int cccfb_init(const struct ccmode_cfb *mode, cccfb_ctx *ctx,
function CC_INLINE (line 195) | CC_INLINE int cccfb_update(const struct ccmode_cfb *mode, cccfb_ctx *ctx,
function CC_INLINE (line 201) | CC_INLINE int cccfb_one_shot(const struct ccmode_cfb *mode,
function CC_INLINE (line 220) | CC_INLINE size_t cccfb8_context_size(const struct ccmode_cfb8 *mode)
function CC_INLINE (line 225) | CC_INLINE size_t cccfb8_block_size(const struct ccmode_cfb8 *mode)
function CC_INLINE (line 230) | CC_INLINE int cccfb8_init(const struct ccmode_cfb8 *mode, cccfb8_ctx *ctx,
function CC_INLINE (line 236) | CC_INLINE int cccfb8_update(const struct ccmode_cfb8 *mode, cccfb8_ctx ...
function CC_INLINE (line 242) | CC_INLINE int cccfb8_one_shot(const struct ccmode_cfb8 *mode,
function CC_INLINE (line 265) | CC_INLINE size_t ccctr_context_size(const struct ccmode_ctr *mode)
function CC_INLINE (line 270) | CC_INLINE size_t ccctr_block_size(const struct ccmode_ctr *mode)
function CC_INLINE (line 275) | CC_INLINE int ccctr_init(const struct ccmode_ctr *mode, ccctr_ctx *ctx,
function CC_INLINE (line 281) | CC_INLINE int ccctr_update(const struct ccmode_ctr *mode, ccctr_ctx *ctx,
function CC_INLINE (line 287) | CC_INLINE int ccctr_one_shot(const struct ccmode_ctr *mode,
function CC_INLINE (line 308) | CC_INLINE size_t ccofb_context_size(const struct ccmode_ofb *mode)
function CC_INLINE (line 313) | CC_INLINE size_t ccofb_block_size(const struct ccmode_ofb *mode)
function CC_INLINE (line 318) | CC_INLINE int ccofb_init(const struct ccmode_ofb *mode, ccofb_ctx *ctx,
function CC_INLINE (line 324) | CC_INLINE int ccofb_update(const struct ccmode_ofb *mode, ccofb_ctx *ctx,
function CC_INLINE (line 330) | CC_INLINE int ccofb_one_shot(const struct ccmode_ofb *mode,
function CC_INLINE (line 367) | CC_INLINE size_t ccxts_context_size(const struct ccmode_xts *mode)
function CC_INLINE (line 372) | CC_INLINE size_t ccxts_block_size(const struct ccmode_xts *mode)
function CC_INLINE (line 391) | CC_INLINE int ccxts_init(const struct ccmode_xts *mode, ccxts_ctx *ctx,
function CC_INLINE (line 409) | CC_INLINE int ccxts_set_tweak(const struct ccmode_xts *mode, ccxts_ctx *...
function CC_INLINE (line 428) | CC_INLINE void *ccxts_update(const struct ccmode_xts *mode, ccxts_ctx *ctx,
type ccmode_xts (line 451) | struct ccmode_xts
function CC_INLINE (line 474) | CC_INLINE size_t ccgcm_context_size(const struct ccmode_gcm *mode)
function CC_INLINE (line 479) | CC_INLINE size_t ccgcm_block_size(const struct ccmode_gcm *mode)
function CC_INLINE (line 517) | CC_INLINE int ccgcm_init(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
type ccmode_gcm (line 558) | struct ccmode_gcm
function CC_INLINE (line 585) | CC_INLINE int ccgcm_set_iv(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
type ccmode_gcm (line 608) | struct ccmode_gcm
type ccmode_gcm (line 629) | struct ccmode_gcm
function CC_INLINE (line 647) | CC_INLINE int ccgcm_aad(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 658) | CC_INLINE int ccgcm_gmac(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 680) | CC_INLINE int ccgcm_update(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 705) | CC_INLINE int ccgcm_finalize(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 722) | CC_INLINE int ccgcm_reset(const struct ccmode_gcm *mode, ccgcm_ctx *ctx)
type ccmode_gcm (line 763) | struct ccmode_gcm
type ccmode_gcm (line 796) | struct ccmode_gcm
function CC_INLINE (line 814) | CC_INLINE size_t ccccm_context_size(const struct ccmode_ccm *mode)
function CC_INLINE (line 819) | CC_INLINE size_t ccccm_block_size(const struct ccmode_ccm *mode)
function CC_INLINE (line 824) | CC_INLINE int ccccm_init(const struct ccmode_ccm *mode, ccccm_ctx *ctx,
function CC_INLINE (line 830) | CC_INLINE int ccccm_set_iv(const struct ccmode_ccm *mode, ccccm_ctx *ctx...
function CC_INLINE (line 837) | CC_INLINE int ccccm_cbcmac(const struct ccmode_ccm *mode, ccccm_ctx *ctx...
function CC_INLINE (line 843) | CC_INLINE int ccccm_update(const struct ccmode_ccm *mode, ccccm_ctx *ctx...
function CC_INLINE (line 849) | CC_INLINE int ccccm_finalize(const struct ccmode_ccm *mode, ccccm_ctx *c...
function CC_INLINE (line 855) | CC_INLINE int ccccm_reset(const struct ccmode_ccm *mode, ccccm_ctx *ctx,...
function CC_INLINE (line 861) | CC_INLINE int ccccm_one_shot(const struct ccmode_ccm *mode,
function CC_INLINE (line 891) | CC_INLINE size_t ccomac_context_size(const struct ccmode_omac *mode)
function CC_INLINE (line 896) | CC_INLINE size_t ccomac_block_size(const struct ccmode_omac *mode)
function CC_INLINE (line 901) | CC_INLINE int ccomac_init(const struct ccmode_omac *mode, ccomac_ctx *ctx,
function CC_INLINE (line 907) | CC_INLINE int ccomac_update(const struct ccmode_omac *mode, ccomac_ctx *...
function CC_INLINE (line 913) | CC_INLINE int ccomac_one_shot(const struct ccmode_omac *mode,
FILE: AltSign/Dependencies/corecrypto/ccmode_factory.h
type ccmode_cbc (line 144) | struct ccmode_cbc
function cc3des_mode_encrypt_init (line 147) | void cc3des_mode_encrypt_init(void *ctx) {
type ccmode_cbc (line 152) | struct ccmode_cbc
type ccmode_cbc (line 157) | struct ccmode_cbc
type ccmode_cbc (line 164) | struct ccmode_cbc
type ccmode_cbc (line 172) | struct ccmode_cbc
type _ccmode_cbc_key (line 179) | struct _ccmode_cbc_key {
type ccmode_cbc (line 206) | struct ccmode_cbc
type ccmode_ecb (line 207) | struct ccmode_ecb
type ccmode_cbc (line 213) | struct ccmode_cbc
type ccmode_ecb (line 214) | struct ccmode_ecb
type ccmode_cfb (line 217) | struct ccmode_cfb
type _ccmode_cfb_key (line 224) | struct _ccmode_cfb_key {
type ccmode_cfb (line 252) | struct ccmode_cfb
type ccmode_ecb (line 253) | struct ccmode_ecb
type ccmode_cfb (line 259) | struct ccmode_cfb
type ccmode_ecb (line 260) | struct ccmode_ecb
type ccmode_cfb8 (line 262) | struct ccmode_cfb8
type _ccmode_cfb8_key (line 269) | struct _ccmode_cfb8_key {
type ccmode_cfb8 (line 296) | struct ccmode_cfb8
type ccmode_ecb (line 297) | struct ccmode_ecb
type ccmode_cfb8 (line 303) | struct ccmode_cfb8
type ccmode_ecb (line 304) | struct ccmode_ecb
type ccmode_ctr (line 306) | struct ccmode_ctr
type ccmode_ctr (line 308) | struct ccmode_ctr
type _ccmode_ctr_key (line 312) | struct _ccmode_ctr_key {
type ccmode_ctr (line 333) | struct ccmode_ctr
type ccmode_ecb (line 334) | struct ccmode_ecb
type ccmode_gcm (line 340) | struct ccmode_gcm
type _ccmode_gcm_key (line 368) | struct _ccmode_gcm_key {
type ccmode_gcm (line 402) | struct ccmode_gcm
type ccmode_ecb (line 403) | struct ccmode_ecb
type ccmode_gcm (line 409) | struct ccmode_gcm
type ccmode_ecb (line 410) | struct ccmode_ecb
type ccmode_ccm (line 414) | struct ccmode_ccm
type _ccmode_ccm_key (line 431) | struct _ccmode_ccm_key {
type _ccmode_ccm_nonce (line 436) | struct _ccmode_ccm_nonce {
type ccmode_ccm (line 483) | struct ccmode_ccm
type ccmode_ecb (line 484) | struct ccmode_ecb
type ccmode_ccm (line 490) | struct ccmode_ccm
type ccmode_ecb (line 491) | struct ccmode_ecb
type ccmode_ofb (line 494) | struct ccmode_ofb
type _ccmode_ofb_key (line 500) | struct _ccmode_ofb_key {
type ccmode_ofb (line 519) | struct ccmode_ofb
type ccmode_ecb (line 520) | struct ccmode_ecb
type ccmode_omac (line 532) | struct ccmode_omac
type _ccmode_omac_key (line 536) | struct _ccmode_omac_key {
type ccmode_omac (line 564) | struct ccmode_omac
type ccmode_ecb (line 565) | struct ccmode_ecb
type ccmode_omac (line 571) | struct ccmode_omac
type ccmode_ecb (line 572) | struct ccmode_ecb
type ccmode_xts (line 576) | struct ccmode_xts
type ccmode_xts (line 579) | struct ccmode_xts
type _ccmode_xts_key (line 588) | struct _ccmode_xts_key {
type _ccmode_xts_tweak (line 594) | struct _ccmode_xts_tweak {
type ccmode_xts (line 634) | struct ccmode_xts
type ccmode_ecb (line 635) | struct ccmode_ecb
type ccmode_ecb (line 636) | struct ccmode_ecb
type ccmode_xts (line 642) | struct ccmode_xts
type ccmode_ecb (line 643) | struct ccmode_ecb
type ccmode_ecb (line 644) | struct ccmode_ecb
FILE: AltSign/Dependencies/corecrypto/ccmode_impl.h
type ccmode_ecb (line 75) | struct ccmode_ecb {
type ccmode_cbc (line 118) | struct ccmode_cbc {
type ccmode_cfb (line 132) | struct ccmode_cfb {
type ccmode_cfb8 (line 144) | struct ccmode_cfb8 {
type ccmode_ctr (line 156) | struct ccmode_ctr {
type ccmode_ofb (line 170) | struct ccmode_ofb {
type ccmode_xts (line 183) | struct ccmode_xts {
type ccmode_gcm (line 217) | struct ccmode_gcm {
type ccmode_ccm (line 235) | struct ccmode_ccm {
type ccmode_omac (line 254) | struct ccmode_omac {
FILE: AltSign/Dependencies/corecrypto/ccmode_siv.h
type ccmode_siv (line 82) | struct ccmode_siv {
function CC_INLINE (line 100) | CC_INLINE size_t ccsiv_context_size(const struct ccmode_siv *mode)
function CC_INLINE (line 105) | CC_INLINE size_t ccsiv_block_size(const struct ccmode_siv *mode)
function CC_INLINE (line 110) | CC_INLINE size_t ccsiv_ciphertext_size(const struct ccmode_siv *mode,
function CC_INLINE (line 116) | CC_INLINE size_t ccsiv_plaintext_size(const struct ccmode_siv *mode,
function CC_INLINE (line 126) | CC_INLINE int ccsiv_init(const struct ccmode_siv *mode, ccsiv_ctx *ctx,
function CC_INLINE (line 133) | CC_INLINE int ccsiv_set_nonce(const struct ccmode_siv *mode, ccsiv_ctx *...
function CC_INLINE (line 141) | CC_INLINE int ccsiv_aad(const struct ccmode_siv *mode, ccsiv_ctx *ctx,
function CC_INLINE (line 149) | CC_INLINE int ccsiv_crypt(const struct ccmode_siv *mode, ccsiv_ctx *ctx,
function CC_INLINE (line 157) | CC_INLINE int ccsiv_reset(const struct ccmode_siv *mode, ccsiv_ctx *ctx)
function CC_INLINE (line 163) | CC_INLINE int ccsiv_one_shot(const struct ccmode_siv *mode,
type ccmode_siv (line 183) | struct ccmode_siv
type ccmode_cbc (line 184) | struct ccmode_cbc
type ccmode_ctr (line 185) | struct ccmode_ctr
type ccmode_siv (line 187) | struct ccmode_siv
type ccmode_cbc (line 188) | struct ccmode_cbc
type ccmode_ctr (line 189) | struct ccmode_ctr
FILE: AltSign/Dependencies/corecrypto/ccmode_siv_priv.h
type _ccmode_siv_ctx (line 80) | struct _ccmode_siv_ctx {
type ccmode_siv (line 89) | struct ccmode_siv
FILE: AltSign/Dependencies/corecrypto/ccn.h
type cc_byte (line 72) | typedef uint8_t cc_byte;
type cc_size (line 73) | typedef size_t cc_size;
type cc_unit (line 76) | typedef uint64_t cc_unit;
type cc_int (line 77) | typedef int64_t cc_int;
type cc_dunit (line 81) | typedef unsigned cc_dunit __attribute__((mode(TI)));
type cc_dint (line 82) | typedef signed cc_dint __attribute__((mode(TI)));
type cc_dunit (line 84) | typedef struct cc_dunit {
type cc_dint (line 89) | typedef struct cc_dint {
type cc_unit (line 96) | typedef uint32_t cc_unit;
type cc_dunit (line 97) | typedef uint64_t cc_dunit;
type cc_dint (line 98) | typedef int64_t cc_dint;
type cc_int (line 99) | typedef int32_t cc_int;
type cc_unit (line 104) | typedef uint16_t cc_unit;
type cc_dunit (line 105) | typedef uint32_t cc_dunit;
type cc_unit (line 110) | typedef uint8_t cc_unit;
type cc_dunit (line 111) | typedef uint16_t cc_dunit;
type cc_unit (line 120) | typedef cc_unit *ccn_t;
type cc_unit (line 121) | typedef cc_unit *ccnp1_t;
type cc_unit (line 122) | typedef cc_unit *cc2n_t;
type cc_unit (line 123) | typedef cc_unit *cc2np2_t;
type cc_unit (line 124) | typedef const cc_unit *ccn_in_t;
type cc_unit (line 125) | typedef const cc_unit *ccnp1_in_t;
type cc_unit (line 126) | typedef const cc_unit *cc2n_in_t;
type cc_unit (line 127) | typedef const cc_unit *cc2np2_in_t;
type cc_ws (line 132) | typedef struct {
function CC_PURE (line 384) | CC_PURE CC_NONNULL((2, 3))
function cc_unit (line 417) | cc_unit ccn_subn(cc_size n, cc_unit *r, const cc_unit *s,
function cc_unit (line 438) | cc_unit ccn_addn(cc_size n, cc_unit *r, const cc_unit *s,
function CC_INLINE (line 517) | CC_INLINE CC_NONNULL((2, 4))
function ccn_zero (line 584) | void ccn_zero(cc_size n, cc_unit *r) {
function ccn_clear (line 589) | void ccn_clear(cc_size n, cc_unit *r) {
function ccn_seti (line 597) | void ccn_seti(cc_size n, cc_unit *r, cc_unit v) {
function CC_INLINE (line 603) | CC_INLINE CC_NONNULL((2, 4))
function ccn_xor (line 659) | void ccn_xor(cc_size n, cc_unit *r, const cc_unit *s, const cc_unit *t) {
type ccrng_state (line 672) | struct ccrng_state
type ccrng_state (line 676) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccn_priv.h
function CC_INLINE (line 137) | CC_INLINE cc_size clz64_win( uint64_t value )
function CC_INLINE (line 145) | CC_INLINE cc_size clz32_win( uint32_t value )
function cc_size (line 162) | cc_size cc_clz_nonzero(cc_unit data) {
FILE: AltSign/Dependencies/corecrypto/ccnistkdf.h
type ccdigest_info (line 96) | struct ccdigest_info
type ccdigest_info (line 102) | struct ccdigest_info
type ccdigest_info (line 133) | struct ccdigest_info
type ccdigest_info (line 168) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccpad.h
type ccmode_cbc (line 75) | struct ccmode_cbc
type ccmode_cbc (line 79) | struct ccmode_cbc
type ccmode_cbc (line 82) | struct ccmode_cbc
type ccmode_cbc (line 86) | struct ccmode_cbc
type ccmode_cbc (line 89) | struct ccmode_cbc
type ccmode_cbc (line 93) | struct ccmode_cbc
type ccmode_cbc (line 100) | struct ccmode_cbc
type ccmode_cbc (line 104) | struct ccmode_cbc
type ccmode_ecb (line 110) | struct ccmode_ecb
type ccmode_ecb (line 113) | struct ccmode_ecb
type ccmode_xts (line 120) | struct ccmode_xts
type ccmode_xts (line 124) | struct ccmode_xts
FILE: AltSign/Dependencies/corecrypto/ccpbkdf2.h
type ccdigest_info (line 90) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccperf.h
type ccrng_state (line 75) | struct ccrng_state
type ccperf_test (line 78) | struct ccperf_test {
type ccperf_size_kind (line 84) | enum ccperf_size_kind {
type ccperf_family (line 91) | struct ccperf_family {
type ccperf_family (line 153) | struct ccperf_family
type ccperf_family (line 154) | struct ccperf_family
type ccperf_family (line 155) | struct ccperf_family
type ccperf_family (line 156) | struct ccperf_family
type ccperf_family (line 157) | struct ccperf_family
type ccperf_family (line 158) | struct ccperf_family
type ccperf_family (line 159) | struct ccperf_family
type ccperf_family (line 160) | struct ccperf_family
type ccperf_family (line 161) | struct ccperf_family
type ccperf_family (line 162) | struct ccperf_family
type ccperf_family (line 163) | struct ccperf_family
type ccperf_family (line 164) | struct ccperf_family
type ccperf_family (line 165) | struct ccperf_family
type ccperf_family (line 166) | struct ccperf_family
type ccperf_family (line 167) | struct ccperf_family
type ccperf_family (line 168) | struct ccperf_family
type ccperf_family (line 169) | struct ccperf_family
type ccperf_family (line 170) | struct ccperf_family
type ccperf_family (line 171) | struct ccperf_family
type ccperf_family (line 172) | struct ccperf_family
type ccperf_family (line 173) | struct ccperf_family
type ccperf_family (line 174) | struct ccperf_family
type ccperf_family (line 175) | struct ccperf_family
type ccperf_family (line 176) | struct ccperf_family
type ccperf_family (line 177) | struct ccperf_family
type ccperf_family (line 178) | struct ccperf_family
type ccperf_family (line 179) | struct ccperf_family
type ccperf_family (line 180) | struct ccperf_family
type ccperf_family (line 181) | struct ccperf_family
type ccperf_family (line 182) | struct ccperf_family
type ccperf_family (line 183) | struct ccperf_family
type ccperf_family (line 184) | struct ccperf_family
type ccperf_family (line 185) | struct ccperf_family
type ccperf_family (line 186) | struct ccperf_family
type ccperf_family (line 187) | struct ccperf_family
type ccperf_family (line 188) | struct ccperf_family
type ccperf_family (line 189) | struct ccperf_family
type ccperf_family (line 190) | struct ccperf_family
type ccperf_family (line 191) | struct ccperf_family
type ccperf_family (line 192) | struct ccperf_family
type ccperf_family (line 193) | struct ccperf_family
type ccperf_family (line 194) | struct ccperf_family
type ccperf_family (line 195) | struct ccperf_family
type ccperf_family (line 196) | struct ccperf_family
type ccperf_family (line 197) | struct ccperf_family
type ccperf_family (line 198) | struct ccperf_family
type ccperf_family (line 199) | struct ccperf_family
type ccperf_family (line 200) | struct ccperf_family
type ccperf_family (line 201) | struct ccperf_family
type ccperf_family (line 202) | struct ccperf_family
type ccperf_family (line 203) | struct ccperf_family
type ccperf_family (line 204) | struct ccperf_family
type ccperf_family (line 205) | struct ccperf_family
type ccperf_family (line 206) | struct ccperf_family
type ccperf_family (line 207) | struct ccperf_family
type ccperf_family (line 208) | struct ccperf_family
type ccperf_family (line 209) | struct ccperf_family
type ccperf_family (line 210) | struct ccperf_family
type ccperf_family (line 211) | struct ccperf_family
type ccperf_family (line 212) | struct ccperf_family
type ccperf_family (line 213) | struct ccperf_family
type ccperf_family (line 214) | struct ccperf_family
type ccperf_family (line 215) | struct ccperf_family
type ccperf_family (line 216) | struct ccperf_family
type ccperf_family (line 220) | struct ccperf_family
type ccperf_family (line 222) | struct ccperf_family
type ccperf_family (line 223) | struct ccperf_family
FILE: AltSign/Dependencies/corecrypto/ccprime.h
type ccrng_state (line 78) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccrc2.h
type ccmode_ecb (line 72) | struct ccmode_ecb
type ccmode_ecb (line 73) | struct ccmode_ecb
type ccmode_ecb (line 75) | struct ccmode_ecb
type ccmode_ecb (line 76) | struct ccmode_ecb
type ccmode_cbc (line 78) | struct ccmode_cbc
type ccmode_cbc (line 79) | struct ccmode_cbc
type ccmode_cfb (line 81) | struct ccmode_cfb
type ccmode_cfb (line 82) | struct ccmode_cfb
type ccmode_cfb8 (line 84) | struct ccmode_cfb8
type ccmode_cfb8 (line 85) | struct ccmode_cfb8
type ccmode_ctr (line 87) | struct ccmode_ctr
type ccmode_ofb (line 89) | struct ccmode_ofb
FILE: AltSign/Dependencies/corecrypto/ccrc4.h
type ccrc4_info (line 77) | struct ccrc4_info {
type ccrc4_info (line 84) | struct ccrc4_info
type ccrc4_info (line 86) | struct ccrc4_info
type ccrc4_vector (line 88) | struct ccrc4_vector {
type ccrc4_info (line 96) | struct ccrc4_info
type ccrc4_vector (line 96) | struct ccrc4_vector
FILE: AltSign/Dependencies/corecrypto/ccripemd.h
type ccdigest_info (line 84) | struct ccdigest_info
type ccdigest_info (line 85) | struct ccdigest_info
type ccdigest_info (line 86) | struct ccdigest_info
type ccdigest_info (line 87) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccrng.h
type ccrng_state (line 86) | struct ccrng_state {
type ccrng_state (line 109) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccrng_drbg.h
type ccrng_drbg_state (line 71) | struct ccrng_drbg_state {
type ccrng_drbg_state (line 79) | struct ccrng_drbg_state
type ccdrbg_info (line 80) | struct ccdrbg_info
type ccdrbg_state (line 81) | struct ccdrbg_state
type ccrng_drbg_state (line 85) | struct ccrng_drbg_state
type ccrng_drbg_state (line 90) | struct ccrng_drbg_state
FILE: AltSign/Dependencies/corecrypto/ccrng_ecfips_test.h
type ccrng_ecfips_test_state (line 74) | struct ccrng_ecfips_test_state {
type ccrng_ecfips_test_state (line 80) | struct ccrng_ecfips_test_state
FILE: AltSign/Dependencies/corecrypto/ccrng_pbkdf2_prng.h
type ccrng_pbkdf2_prng_state (line 79) | struct ccrng_pbkdf2_prng_state {
type ccrng_pbkdf2_prng_state (line 86) | struct ccrng_pbkdf2_prng_state
FILE: AltSign/Dependencies/corecrypto/ccrng_rsafips_test.h
type ccrng_rsafips_test_state (line 71) | struct ccrng_rsafips_test_state {
type ccrng_rsafips_test_state (line 84) | struct ccrng_rsafips_test_state
FILE: AltSign/Dependencies/corecrypto/ccrng_sequence.h
type ccrng_sequence_state (line 71) | struct ccrng_sequence_state {
type ccrng_sequence_state (line 77) | struct ccrng_sequence_state
type ccrng_sequence_state (line 79) | struct ccrng_sequence_state
FILE: AltSign/Dependencies/corecrypto/ccrng_system.h
type ccrng_system_state (line 70) | struct ccrng_system_state {
type ccrng_system_state (line 90) | struct ccrng_system_state
type ccrng_system_state (line 94) | struct ccrng_system_state
FILE: AltSign/Dependencies/corecrypto/ccrng_test.h
type ccrng_test_state (line 71) | struct ccrng_test_state {
type ccrng_test_state (line 78) | struct ccrng_test_state
type ccrng_test_state (line 81) | struct ccrng_test_state
FILE: AltSign/Dependencies/corecrypto/ccrsa.h
type ccrsa_full_ctx (line 89) | struct ccrsa_full_ctx {
function ccrsa_pubkeylength (line 228) | static inline size_t
type ccrng_state (line 263) | struct ccrng_state
type ccrng_state (line 270) | struct ccrng_state
type ccrng_state (line 270) | struct ccrng_state
type ccdigest_info (line 321) | struct ccdigest_info
type ccdigest_info (line 321) | struct ccdigest_info
type ccrng_state (line 322) | struct ccrng_state
type ccdigest_info (line 328) | struct ccdigest_info
type ccdigest_info (line 328) | struct ccdigest_info
function ccrsa_export_pub_size (line 529) | size_t ccrsa_export_pub_size(const ccrsa_pub_ctx_t key) {
function cc_size (line 556) | cc_size ccrsa_import_pub_n(size_t inlen, const uint8_t *der) {
function ccrsa_export_priv_size (line 588) | size_t ccrsa_export_priv_size(const ccrsa_full_ctx_t key) {
function ccrsa_export_priv (line 602) | int ccrsa_export_priv(const ccrsa_full_ctx_t key, size_t out_len, uint8_...
function cc_size (line 618) | cc_size ccrsa_import_priv_n(size_t inlen, const uint8_t *der) {
function ccrsa_import_priv (line 634) | int ccrsa_import_priv(ccrsa_full_ctx_t key, size_t inlen, const uint8_t ...
FILE: AltSign/Dependencies/corecrypto/ccrsa_priv.h
type ccrsa_fips186_trace (line 112) | struct ccrsa_fips186_trace {
type ccdigest_info (line 172) | struct ccdigest_info
type ccdigest_info (line 172) | struct ccdigest_info
type ccdigest_info (line 177) | struct ccdigest_info
type ccdigest_info (line 177) | struct ccdigest_info
type ccdigest_info (line 205) | struct ccdigest_info
type ccdigest_info (line 216) | struct ccdigest_info
type ccrng_state (line 217) | struct ccrng_state
function ccrsa_oaep_encode (line 227) | int ccrsa_oaep_encode(const struct ccdigest_info* di,
type ccdigest_info (line 239) | struct ccdigest_info
function ccrsa_oaep_decode (line 246) | int ccrsa_oaep_decode(const struct ccdigest_info* di,
type ccrng_state (line 279) | struct ccrng_state
type ccrng_state (line 304) | struct ccrng_state
type ccdigest_info (line 306) | struct ccdigest_info
type ccdigest_info (line 306) | struct ccdigest_info
type ccrng_state (line 307) | struct ccrng_state
type ccrng_state (line 326) | struct ccrng_state
type ccrng_state (line 364) | struct ccrng_state
type ccrng_state (line 408) | struct ccrng_state
type ccdigest_info (line 431) | struct ccdigest_info
type ccrng_state (line 432) | struct ccrng_state
type ccdigest_info (line 456) | struct ccdigest_info
type ccrng_state (line 483) | struct ccrng_state
type ccdigest_info (line 485) | struct ccdigest_info
type ccrng_state (line 506) | struct ccrng_state
type ccrng_state (line 529) | struct ccrng_state
type ccrng_state (line 530) | struct ccrng_state
type ccrsa_fips186_trace (line 530) | struct ccrsa_fips186_trace
type ccrsa_fips186_trace (line 546) | struct ccrsa_fips186_trace
function CC_INLINE (line 548) | CC_INLINE cc_size ccrsa_n_from_size(size_t size) {
function CC_INLINE (line 552) | CC_INLINE size_t ccrsa_sizeof_n_from_size(size_t size) {
function CC_INLINE (line 556) | CC_INLINE uint8_t *ccrsa_block_start(size_t size, cc_unit *p, int clear_...
function CC_INLINE (line 563) | CC_INLINE size_t ccrsa_block_size(ccrsa_pub_ctx_t key) {
type ccrng_state (line 569) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccsha1.h
type ccdigest_info (line 76) | struct ccdigest_info
type ccdigest_info (line 81) | struct ccdigest_info
type ccdigest_info (line 86) | struct ccdigest_info
type ccdigest_info (line 87) | struct ccdigest_info
type ccdigest_info (line 92) | struct ccdigest_info
type ccdigest_info (line 93) | struct ccdigest_info
type ccdigest_info (line 95) | struct ccdigest_info
type ccdigest_info (line 99) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccsha2.h
type ccdigest_info (line 71) | struct ccdigest_info
type ccdigest_info (line 72) | struct ccdigest_info
type ccdigest_info (line 73) | struct ccdigest_info
type ccdigest_info (line 74) | struct ccdigest_info
type ccdigest_info (line 94) | struct ccdigest_info
type ccdigest_info (line 95) | struct ccdigest_info
type ccdigest_info (line 98) | struct ccdigest_info
type ccdigest_info (line 99) | struct ccdigest_info
type ccdigest_info (line 100) | struct ccdigest_info
type ccdigest_info (line 101) | struct ccdigest_info
type ccdigest_info (line 102) | struct ccdigest_info
type ccdigest_info (line 103) | struct ccdigest_info
type ccdigest_info (line 104) | struct ccdigest_info
type ccdigest_info (line 105) | struct ccdigest_info
type ccdigest_info (line 106) | struct ccdigest_info
type ccdigest_info (line 107) | struct ccdigest_info
type ccdigest_info (line 109) | struct ccdigest_info
type ccdigest_info (line 110) | struct ccdigest_info
type ccdigest_info (line 113) | struct ccdigest_info
type ccdigest_info (line 114) | struct ccdigest_info
type ccdigest_info (line 115) | struct ccdigest_info
type ccdigest_info (line 116) | struct ccdigest_info
type ccdigest_info (line 117) | struct ccdigest_info
type ccdigest_info (line 118) | struct ccdigest_info
type ccdigest_info (line 125) | struct ccdigest_info
type ccdigest_info (line 131) | struct ccdigest_info
type ccdigest_info (line 135) | struct ccdigest_info
FILE: AltSign/Dependencies/corecrypto/ccsrp.h
type ccdh_gp (line 76) | typedef ccdh_gp ccsrp_gp;
type ccsrp_gp (line 78) | typedef struct ccdh_gp ccsrp_gp;
type ccdh_gp_t (line 83) | typedef ccdh_gp_t ccsrp_gp_t;
type ccdh_const_gp_t (line 84) | typedef ccdh_const_gp_t ccsrp_const_gp_t;
type ccsrp_ctx_header (line 86) | struct ccsrp_ctx_header {
type ccsrp_ctx (line 103) | struct ccsrp_ctx {
type ccsrp_ctx_body (line 107) | struct ccsrp_ctx_body {
type ccsrp_ctx_t (line 112) | typedef union {
type ccdh_gp_t (line 118) | typedef ccdh_gp_t ccsrp_gp_t;
type ccdh_const_gp_t (line 119) | typedef ccdh_const_gp_t ccsrp_const_gp_t;
type ccsrp_ctx (line 121) | struct ccsrp_ctx {
type ccsrp_ctx (line 137) | struct ccsrp_ctx
function ccsrp_ctx_init_option (line 280) | int
function ccsrp_ctx_init (line 299) | void
type ccrng_state (line 326) | struct ccrng_state
type ccrng_state (line 374) | struct ccrng_state
type ccrng_state (line 413) | struct ccrng_state
type ccrng_state (line 451) | struct ccrng_state
function ccsrp_client_set_noUsernameInX (line 493) | bool
function ccsrp_is_authenticated (line 513) | bool
function ccsrp_exchange_size (line 527) | size_t
function ccsrp_session_size (line 541) | size_t
function ccsrp_get_session_key_length (line 556) | size_t
function cc_unit (line 601) | cc_unit *
type ccdigest_info (line 615) | struct ccdigest_info
type ccrng_state (line 616) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/cctest.h
type cctest_result (line 80) | struct cctest_result {
type cctest_input (line 85) | struct cctest_input {
FILE: AltSign/Dependencies/corecrypto/ccwrap.h
function CC_INLINE (line 88) | CC_INLINE size_t ccwrap_wrapped_size(const size_t data_size)
function CC_INLINE (line 104) | CC_INLINE size_t ccwrap_unwrapped_size(const size_t data_size)
type ccmode_ecb (line 135) | struct ccmode_ecb
type ccmode_ecb (line 157) | struct ccmode_ecb
FILE: AltSign/Dependencies/corecrypto/ccz.h
type ccz (line 76) | struct ccz {
type ccz (line 82) | typedef struct ccz ccz;
type ccz_class (line 84) | struct ccz_class {
type ccz_class (line 93) | struct ccz_class
type ccz_class (line 97) | struct ccz_class
function ccz_div2 (line 233) | void ccz_div2(ccz *r, const ccz *s) {
function ccz_is_odd (line 283) | bool ccz_is_odd(const ccz *s) {
type ccrng_state (line 308) | struct ccrng_state
type ccrng_state (line 312) | struct ccrng_state
FILE: AltSign/Dependencies/corecrypto/ccz_priv.h
function ccz_sign (line 90) | int ccz_sign(const ccz *s) {
function ccz_set_sign (line 95) | void ccz_set_sign(ccz *r, int sign)
function CC_NONNULL_ALL (line 101) | CC_NONNULL_ALL
function ccz_set_n (line 107) | void ccz_set_n(ccz *r, cc_size n) {
function CC_NONNULL_ALL (line 111) | CC_NONNULL_ALL
function ccz_set_capacity (line 117) | void ccz_set_capacity(ccz *r, cc_size capacity)
FILE: AltSign/Dependencies/corecrypto/cczp.h
type cczp (line 77) | struct cczp
type cczp_t (line 80) | typedef union {
type cczp_const_t (line 87) | typedef union {
type cczp (line 95) | struct cczp
type cczp (line 96) | struct cczp
type cczp_hd (line 114) | struct cczp_hd{
type cczp (line 118) | struct cczp {
function CC_CONST (line 165) | CC_CONST CC_NONNULL_TU((1))
function CC_CONST (line 200) | CC_CONST CC_NONNULL_TU((1))
FILE: AltSign/Dependencies/corecrypto/cczp_priv.h
function cczp_is_montgomery (line 110) | bool cczp_is_montgomery(cczp_const_t zp) {
function cczp_convert_to_montgomery (line 119) | void cczp_convert_to_montgomery(cczp_const_t zp,cc_unit *r, const cc_uni...
function cczp_convert_from_montgomery (line 130) | void cczp_convert_from_montgomery(cczp_const_t zp,cc_unit *r, const cc_u...
FILE: AltSign/Dependencies/corecrypto/fipspost.h
type mach_header (line 126) | struct mach_header
type mach_header (line 131) | struct mach_header
FILE: AltSign/Dependencies/minizip/crypt.h
function decrypt_byte (line 35) | static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_...
function update_keys (line 48) | static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32...
function init_keys (line 65) | static void init_keys(const char* passwd,unsigned long* pkeys,const unsi...
function crypthead (line 90) | static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCry...
FILE: AltSign/Dependencies/minizip/ioapi.c
function voidpf (line 68) | voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
function uLong (line 90) | uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
function uLong (line 102) | uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
function ftell_file_func (line 113) | long ZCALLBACK ftell_file_func (opaque, stream)
function fseek_file_func (line 122) | long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
function fclose_file_func (line 148) | int ZCALLBACK fclose_file_func (opaque, stream)
function ferror_file_func (line 157) | int ZCALLBACK ferror_file_func (opaque, stream)
function fill_fopen_filefunc (line 166) | void fill_fopen_filefunc (pzlib_filefunc_def)
FILE: AltSign/Dependencies/minizip/ioapi.h
type zlib_filefunc_def (line 46) | typedef struct zlib_filefunc_def_s
FILE: AltSign/Dependencies/minizip/iowin32.c
type WIN32FILE_IOWIN (line 59) | typedef struct
function voidpf (line 65) | voidpf ZCALLBACK win32_open_file_func (opaque, filename, mode)
function uLong (line 117) | uLong ZCALLBACK win32_read_file_func (opaque, stream, buf, size)
function uLong (line 140) | uLong ZCALLBACK win32_write_file_func (opaque, stream, buf, size)
function win32_tell_file_func (line 163) | long ZCALLBACK win32_tell_file_func (opaque, stream)
function win32_seek_file_func (line 186) | long ZCALLBACK win32_seek_file_func (opaque, stream, offset, origin)
function win32_close_file_func (line 227) | int ZCALLBACK win32_close_file_func (opaque, stream)
function win32_error_file_func (line 247) | int ZCALLBACK win32_error_file_func (opaque, stream)
function fill_win32_filefunc (line 259) | void fill_win32_filefunc (pzlib_filefunc_def)
FILE: AltSign/Dependencies/minizip/miniunz.c
function change_file_date (line 49) | void change_file_date(filename,dosdate,tmu_date)
function mymkdir (line 90) | int mymkdir(dirname)
function makedir (line 104) | int makedir (newdir)
function do_banner (line 149) | void do_banner()
function do_help (line 155) | void do_help()
function do_list (line 168) | int do_list(uf)
function do_extract_currentfile (line 241) | int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,p...
function do_extract (line 405) | int do_extract(uf,opt_extract_without_path,opt_overwrite,password)
function do_extract_onefile (line 441) | int do_extract_onefile(uf,filename,opt_extract_without_path,opt_overwrit...
function main (line 464) | int main(argc,argv)
FILE: AltSign/Dependencies/minizip/minizip.c
function uLong (line 38) | uLong filetime(f, tmzip, dt)
function uLong (line 62) | uLong filetime(f, tmzip, dt)
function uLong (line 104) | uLong filetime(f, tmzip, dt)
function check_exist_file (line 117) | int check_exist_file(filename)
function do_banner (line 130) | void do_banner()
function do_help (line 136) | void do_help()
function getFileCrc (line 148) | int getFileCrc(const char* filenameinzip,void*buf,unsigned long size_buf...
function main (line 186) | int main(argc,argv)
FILE: AltSign/Dependencies/minizip/mztools.c
function unzRepair (line 30) | extern int ZEXPORT unzRepair(file, fileOut, fileOutTmp, nRecovered, byte...
FILE: AltSign/Dependencies/minizip/unzip.c
type unz_file_info_internal (line 94) | typedef struct unz_file_info_internal_s
type file_in_zip_read_info_s (line 102) | typedef struct
type unz_s (line 128) | typedef struct
function local (line 171) | local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
function local (line 201) | local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
function local (line 229) | local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
function local (line 262) | local int strcmpcasenosensitive_internal (fileName1,fileName2)
function unzStringFileNameCompare (line 305) | extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSe...
function local (line 331) | local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
function unzFile (line 397) | extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
function unzFile (line 500) | extern unzFile ZEXPORT unzOpen (path)
function unzClose (line 511) | extern int ZEXPORT unzClose (file)
function unzGetGlobalInfo (line 532) | extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
function local (line 548) | local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
function local (line 577) | local int unzlocal_GetCurrentFileInfoInternal (file,
function unzGetCurrentFileInfo (line 744) | extern int ZEXPORT unzGetCurrentFileInfo (file,
function unzGoToFirstFile (line 768) | extern int ZEXPORT unzGoToFirstFile (file)
function unzGoToNextFile (line 790) | extern int ZEXPORT unzGoToNextFile (file)
function unzLocateFile (line 824) | extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
function unzGetFilePos (line 903) | extern int ZEXPORT unzGetFilePos(file, file_pos)
function unzGoToFilePos (line 921) | extern int ZEXPORT unzGoToFilePos(file, file_pos)
function local (line 957) | local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
function unzOpenCurrentFile3 (line 1047) | extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
function unzOpenCurrentFile (line 1192) | extern int ZEXPORT unzOpenCurrentFile (file)
function unzOpenCurrentFilePassword (line 1198) | extern int ZEXPORT unzOpenCurrentFilePassword (file, password)
function unzOpenCurrentFile2 (line 1205) | extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
function unzReadCurrentFile (line 1224) | extern int ZEXPORT unzReadCurrentFile (file, buf, len)
function z_off_t (line 1385) | extern z_off_t ZEXPORT unztell (file)
function ZEXPORT (line 1405) | extern int ZEXPORT unzeof (file)
function unzGetLocalExtrafield (line 1438) | extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
function unzCloseCurrentFile (line 1489) | extern int ZEXPORT unzCloseCurrentFile (file)
function unzGetGlobalComment (line 1532) | extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
function uLong (line 1564) | extern uLong ZEXPORT unzGetOffset (file)
function unzSetOffset (line 1580) | extern int ZEXPORT unzSetOffset (file, pos)
FILE: AltSign/Dependencies/minizip/unzip.h
type unzFile__ (line 63) | typedef struct TagunzFile__ { int unused; } unzFile__;
type unzFile__ (line 64) | typedef unzFile__ *unzFile;
type voidp (line 66) | typedef voidp unzFile;
type tm_unz (line 80) | typedef struct tm_unz_s
type unz_global_info (line 92) | typedef struct unz_global_info_s
type unz_file_info (line 101) | typedef struct unz_file_info_s
type unz_file_pos (line 210) | typedef struct unz_file_pos_s
FILE: AltSign/Dependencies/minizip/zip.c
type linkedlist_datablock_internal (line 97) | typedef struct linkedlist_datablock_internal_s
type linkedlist_data (line 106) | typedef struct linkedlist_data_s
type curfile_info (line 113) | typedef struct
type zip_internal (line 138) | typedef struct
function local (line 161) | local linkedlist_datablock_internal* allocate_new_datablock()
function local (line 175) | local void free_datablock(ldi)
function local (line 186) | local void init_linkedlist(ll)
function local (line 192) | local void free_linkedlist(ll)
function local (line 200) | local int add_data_in_datablock(ll,buf,len)
function local (line 266) | local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte)
function local (line 294) | local void ziplocal_putValue_inmemory (dest, x, nbByte)
function local (line 318) | local uLong ziplocal_TmzDateToDosDate(ptm,dosDate)
function local (line 340) | local int ziplocal_getByte(pzlib_filefunc_def,filestream,pi)
function local (line 370) | local int ziplocal_getShort (pzlib_filefunc_def,filestream,pX)
function local (line 398) | local int ziplocal_getLong (pzlib_filefunc_def,filestream,pX)
function local (line 440) | local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
function zipFile (line 499) | extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_...
function zipFile (line 683) | extern zipFile ZEXPORT zipOpen (pathname, append)
function zipOpenNewFileInZip3 (line 690) | extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
function zipOpenNewFileInZip2 (line 899) | extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
function zipOpenNewFileInZip (line 923) | extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
function local (line 944) | local int zipFlushWriteBuffer(zi)
function zipWriteInFileInZip (line 966) | extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
function zipCloseFileInZipRaw (line 1031) | extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
function zipCloseFileInZip (line 1127) | extern int ZEXPORT zipCloseFileInZip (file)
function zipClose (line 1133) | extern int ZEXPORT zipClose (file, global_comment)
FILE: AltSign/Dependencies/minizip/zip.h
type zipFile__ (line 64) | typedef struct TagzipFile__ { int unused; } zipFile__;
type zipFile__ (line 65) | typedef zipFile__ *zipFile;
type voidp (line 67) | typedef voidp zipFile;
type tm_zip (line 87) | typedef struct tm_zip_s
type zip_fileinfo (line 97) | typedef struct
FILE: AltSign/Dependencies/mman/mman.cpp
function __map_mman_error (line 14) | static int __map_mman_error(const DWORD err, const int deferr)
function DWORD (line 22) | static DWORD __map_mmap_prot_page(const int prot)
function DWORD (line 43) | static DWORD __map_mmap_prot_file(const int prot)
function munmap (line 131) | int munmap(void *addr, size_t len)
function _mprotect (line 141) | int _mprotect(void *addr, size_t len, int prot)
function msync (line 154) | int msync(void *addr, size_t len, int flags)
FILE: AltSign/Dependencies/mman/mman.h
type OffsetType (line 34) | typedef int64_t OffsetType;
type OffsetType (line 36) | typedef uint32_t OffsetType;
FILE: AltSign/Dependencies/mman/test.c
function test_anon_map_readwrite (line 14) | int test_anon_map_readwrite()
function test_anon_map_readonly (line 34) | int test_anon_map_readonly()
function test_anon_map_writeonly (line 54) | int test_anon_map_writeonly()
function test_anon_map_readonly_nowrite (line 74) | int test_anon_map_readonly_nowrite()
function test_file_map_readwrite (line 96) | int test_file_map_readwrite()
function test_file_map_mlock_munlock (line 123) | int test_file_map_mlock_munlock()
function test_file_map_msync (line 173) | int test_file_map_msync()
function main (line 219) | int main()
FILE: AltSign/Dependencies/regex/include/regex.h
type s_reg_t (line 60) | typedef long int s_reg_t;
type active_reg_t (line 61) | typedef unsigned long int active_reg_t;
type reg_syntax_t (line 68) | typedef unsigned long int reg_syntax_t;
type reg_errcode_t (line 327) | typedef enum
type re_pattern_buffer (line 367) | struct re_pattern_buffer
type regex_t (line 431) | typedef struct re_pattern_buffer regex_t;
type regoff_t (line 434) | typedef int regoff_t;
type re_registers (line 439) | struct re_registers
type regmatch_t (line 458) | typedef struct
type re_pattern_buffer (line 474) | struct re_pattern_buffer
type re_pattern_buffer (line 480) | struct re_pattern_buffer
type re_pattern_buffer (line 488) | struct re_pattern_buffer
type re_registers (line 490) | struct re_registers
type re_pattern_buffer (line 495) | struct re_pattern_buffer
type re_registers (line 498) | struct re_registers
type re_pattern_buffer (line 503) | struct re_pattern_buffer
type re_registers (line 504) | struct re_registers
type re_pattern_buffer (line 508) | struct re_pattern_buffer
type re_registers (line 511) | struct re_registers
type re_pattern_buffer (line 526) | struct re_pattern_buffer
type re_registers (line 527) | struct re_registers
FILE: AltSign/Device.hpp
class Device (line 20) | class Device
type Type (line 23) | enum Type
FILE: AltSign/Error.hpp
type SignErrorCode (line 16) | enum class SignErrorCode
type APIErrorCode (line 28) | enum class APIErrorCode
type ArchiveErrorCode (line 63) | enum class ArchiveErrorCode
class Error (line 71) | class Error: public std::exception
method Error (line 74) | Error(int code) : _code(code), _userInfo(std::map<std::string, std::st...
method Error (line 78) | Error(int code, std::map<std::string, std::string> userInfo) : _code(c...
method localizedDescription (line 82) | virtual std::string localizedDescription() const
method code (line 87) | int code() const
method userInfo (line 92) | std::map<std::string, std::string> userInfo() const
method domain (line 97) | virtual std::string domain() const
class LocalizedError (line 113) | class LocalizedError: public Error
method LocalizedError (line 116) | LocalizedError(int code, std::string localizedDescription) : Error(cod...
method localizedDescription (line 120) | virtual std::string localizedDescription() const
class APIError (line 129) | class APIError : public Error
method APIError (line 132) | APIError(APIErrorCode code) : Error((int)code)
method domain (line 136) | virtual std::string domain() const
method localizedDescription (line 141) | virtual std::string localizedDescription() const
class SignError (line 216) | class SignError: public Error
method SignError (line 219) | SignError(SignErrorCode code) : Error((int)code)
method domain (line 223) | virtual std::string domain() const
method localizedDescription (line 228) | virtual std::string localizedDescription() const
class ArchiveError (line 261) | class ArchiveError: public Error
method ArchiveError (line 264) | ArchiveError(ArchiveErrorCode code) : Error((int)code)
method domain (line 268) | virtual std::string domain() const
method localizedDescription (line 273) | virtual std::string localizedDescription() const
FILE: AltSign/ProvisioningProfile.cpp
function timeval (line 359) | timeval ProvisioningProfile::creationDate() const
function timeval (line 365) | timeval ProvisioningProfile::expirationDate() const
function plist_t (line 371) | plist_t ProvisioningProfile::entitlements() const
FILE: AltSign/ProvisioningProfile.hpp
type timeval (line 21) | struct timeval
class ProvisioningProfile (line 23) | class ProvisioningProfile
FILE: AltSign/Signer.cpp
function CertificatesContent (line 118) | std::string CertificatesContent(std::shared_ptr<Certificate> altCertific...
FILE: AltSign/Signer.hpp
class Signer (line 22) | class Signer
FILE: AltSign/Team.hpp
class Account (line 20) | class Account
class Team (line 22) | class Team
type Type (line 25) | enum Type
FILE: Dependencies/corecrypto/cc.h
function cc_xor (line 132) | void cc_xor(size_t size, void *r, const void *s, const void *t) {
FILE: Dependencies/corecrypto/cc_memory.h
function CC_INLINE (line 77) | CC_INLINE void cc_alloc_debug(CC_UNUSED void *p) {
function CC_INLINE (line 85) | CC_INLINE void cc_free_debug(CC_UNUSED void *p) {
function CC_INLINE (line 134) | CC_INLINE void *cc_malloc(size_t s)
function CC_INLINE (line 138) | CC_INLINE void cc_free(void *p,size_t size)
function CC_INLINE (line 144) | CC_INLINE void *cc_malloc(size_t s)
function CC_INLINE (line 148) | CC_INLINE void cc_free(void *p,size_t size CC_UNUSED)
FILE: Dependencies/corecrypto/cc_priv.h
function CC_INLINE (line 268) | CC_INLINE uint32_t CC_ROL(uint32_t word, int i)
function CC_INLINE (line 276) | CC_INLINE uint32_t CC_ROR(uint32_t word, int i)
function CC_INLINE (line 306) | CC_INLINE uint32_t CC_ROL(uint32_t word, int i)
function CC_INLINE (line 311) | CC_INLINE uint32_t CC_ROR(uint32_t word, int i)
function CC_INLINE (line 326) | CC_INLINE uint64_t CC_ROL64(uint64_t word, int i)
function CC_INLINE (line 334) | CC_INLINE uint64_t CC_ROR64(uint64_t word, int i)
function CC_INLINE (line 366) | CC_INLINE uint64_t CC_ROL64(uint64_t word, int i)
function CC_INLINE (line 371) | CC_INLINE uint64_t CC_ROR64(uint64_t word, int i)
function CC_INLINE (line 384) | CC_INLINE uint32_t CC_BSWAP(uint32_t x)
FILE: Dependencies/corecrypto/ccaes.h
type ccmode_ecb (line 77) | struct ccmode_ecb
type ccmode_ecb (line 78) | struct ccmode_ecb
type ccmode_cbc (line 80) | struct ccmode_cbc
type ccmode_cbc (line 81) | struct ccmode_cbc
type ccmode_ecb (line 84) | struct ccmode_ecb
type ccmode_ecb (line 85) | struct ccmode_ecb
type ccmode_cbc (line 87) | struct ccmode_cbc
type ccmode_cbc (line 88) | struct ccmode_cbc
type ccmode_xts (line 90) | struct ccmode_xts
type ccmode_xts (line 91) | struct ccmode_xts
type ccmode_cfb (line 93) | struct ccmode_cfb
type ccmode_cfb (line 94) | struct ccmode_cfb
type ccmode_ofb (line 96) | struct ccmode_ofb
type ccmode_cbc (line 101) | struct ccmode_cbc
type ccmode_cbc (line 102) | struct ccmode_cbc
type ccmode_ctr (line 104) | struct ccmode_ctr
type ccmode_cbc (line 106) | struct ccmode_cbc
type ccmode_cbc (line 107) | struct ccmode_cbc
type ccmode_ctr (line 109) | struct ccmode_ctr
type ccmode_ecb (line 117) | struct ccmode_ecb
type ccmode_ecb (line 118) | struct ccmode_ecb
type ccmode_ecb (line 120) | struct ccmode_ecb
type ccmode_ecb (line 121) | struct ccmode_ecb
type ccmode_cbc (line 126) | struct ccmode_cbc
type ccmode_cbc (line 127) | struct ccmode_cbc
type ccmode_cbc (line 129) | struct ccmode_cbc
type ccmode_cbc (line 130) | struct ccmode_cbc
type ccmode_xts (line 135) | struct ccmode_xts
type ccmode_xts (line 136) | struct ccmode_xts
type ccmode_xts (line 138) | struct ccmode_xts
type ccmode_xts (line 139) | struct ccmode_xts
type ccmode_cbc (line 143) | struct ccmode_cbc
type ccmode_cbc (line 144) | struct ccmode_cbc
type ccmode_ecb (line 146) | struct ccmode_ecb
type ccmode_ecb (line 147) | struct ccmode_ecb
type ccmode_ecb (line 149) | struct ccmode_ecb
type ccmode_ecb (line 153) | struct ccmode_ecb
type ccmode_cbc (line 154) | struct ccmode_cbc
type ccmode_cfb (line 155) | struct ccmode_cfb
type ccmode_cfb8 (line 156) | struct ccmode_cfb8
type ccmode_xts (line 157) | struct ccmode_xts
type ccmode_gcm (line 158) | struct ccmode_gcm
type ccmode_ccm (line 159) | struct ccmode_ccm
type ccmode_ecb (line 161) | struct ccmode_ecb
type ccmode_cbc (line 162) | struct ccmode_cbc
type ccmode_cfb (line 163) | struct ccmode_cfb
type ccmode_cfb8 (line 164) | struct ccmode_cfb8
type ccmode_xts (line 165) | struct ccmode_xts
type ccmode_gcm (line 166) | struct ccmode_gcm
type ccmode_ccm (line 167) | struct ccmode_ccm
type ccmode_ctr (line 169) | struct ccmode_ctr
type ccmode_ofb (line 170) | struct ccmode_ofb
type ccmode_siv (line 172) | struct ccmode_siv
type ccmode_siv (line 173) | struct ccmode_siv
FILE: Dependencies/corecrypto/ccansikdf.h
type ccdigest_info (line 84) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccasn1.h
type ccoid_t (line 126) | typedef union {
function ccoid_size (line 140) | size_t ccoid_size(ccoid_t oid) {
function ccoid_equal (line 145) | bool ccoid_equal(ccoid_t oid1, ccoid_t oid2) {
FILE: Dependencies/corecrypto/ccblowfish.h
type ccmode_ecb (line 74) | struct ccmode_ecb
type ccmode_ecb (line 75) | struct ccmode_ecb
type ccmode_ecb (line 79) | struct ccmode_ecb
type ccmode_ecb (line 80) | struct ccmode_ecb
type ccmode_cbc (line 82) | struct ccmode_cbc
type ccmode_cbc (line 83) | struct ccmode_cbc
type ccmode_cfb (line 85) | struct ccmode_cfb
type ccmode_cfb (line 86) | struct ccmode_cfb
type ccmode_cfb8 (line 88) | struct ccmode_cfb8
type ccmode_cfb8 (line 89) | struct ccmode_cfb8
type ccmode_ctr (line 91) | struct ccmode_ctr
type ccmode_ofb (line 93) | struct ccmode_ofb
FILE: Dependencies/corecrypto/cccast.h
type ccmode_ecb (line 75) | struct ccmode_ecb
type ccmode_ecb (line 76) | struct ccmode_ecb
type ccmode_cbc (line 78) | struct ccmode_cbc
type ccmode_cbc (line 79) | struct ccmode_cbc
type ccmode_cfb (line 81) | struct ccmode_cfb
type ccmode_cfb (line 82) | struct ccmode_cfb
type ccmode_cfb8 (line 84) | struct ccmode_cfb8
type ccmode_cfb8 (line 85) | struct ccmode_cfb8
type ccmode_ctr (line 87) | struct ccmode_ctr
type ccmode_ofb (line 89) | struct ccmode_ofb
type ccmode_ecb (line 92) | struct ccmode_ecb
type ccmode_ecb (line 93) | struct ccmode_ecb
FILE: Dependencies/corecrypto/ccchacha20poly1305.h
type ccchacha20_ctx (line 77) | typedef struct {
type ccpoly1305_ctx (line 85) | typedef struct {
type ccchacha20poly1305_ctx (line 153) | typedef struct {
type ccchacha20poly1305_info (line 163) | struct ccchacha20poly1305_info {
type ccchacha20poly1305_info (line 167) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 169) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 185) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 196) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 212) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 213) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 230) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 248) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 262) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 280) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 294) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 324) | struct ccchacha20poly1305_info
type ccchacha20poly1305_info (line 350) | struct ccchacha20poly1305_info
FILE: Dependencies/corecrypto/cccmac.h
type cccmac_ctx (line 75) | struct cccmac_ctx {
type cccmac_ctx_hdr (line 79) | struct cccmac_ctx_hdr {
type cccmac_ctx_t (line 90) | typedef union {
type cccmac_ctx (line 98) | struct cccmac_ctx {
type cccmac_ctx (line 108) | struct cccmac_ctx
type ccmode_cbc (line 168) | struct ccmode_cbc
type ccmode_cbc (line 189) | struct ccmode_cbc
type ccmode_cbc (line 216) | struct ccmode_cbc
FILE: Dependencies/corecrypto/ccder.h
type ccder_tag (line 73) | typedef unsigned long ccder_tag;
type ccder_tag (line 75) | typedef uint8_t ccder_tag;
FILE: Dependencies/corecrypto/ccder_rsa.h
function CC_INLINE (line 71) | CC_INLINE uint8_t *
FILE: Dependencies/corecrypto/ccdes.h
type ccmode_ecb (line 73) | struct ccmode_ecb
type ccmode_ecb (line 74) | struct ccmode_ecb
type ccmode_ecb (line 76) | struct ccmode_ecb
type ccmode_ecb (line 77) | struct ccmode_ecb
type ccmode_ecb (line 78) | struct ccmode_ecb
type ccmode_ecb (line 80) | struct ccmode_ecb
type ccmode_ecb (line 81) | struct ccmode_ecb
type ccmode_cbc (line 83) | struct ccmode_cbc
type ccmode_cbc (line 84) | struct ccmode_cbc
type ccmode_cfb (line 86) | struct ccmode_cfb
type ccmode_cfb (line 87) | struct ccmode_cfb
type ccmode_cfb8 (line 89) | struct ccmode_cfb8
type ccmode_cfb8 (line 90) | struct ccmode_cfb8
type ccmode_ctr (line 92) | struct ccmode_ctr
type ccmode_ofb (line 94) | struct ccmode_ofb
type ccmode_ecb (line 97) | struct ccmode_ecb
type ccmode_ecb (line 98) | struct ccmode_ecb
type ccmode_cbc (line 100) | struct ccmode_cbc
type ccmode_cbc (line 101) | struct ccmode_cbc
type ccmode_cfb (line 103) | struct ccmode_cfb
type ccmode_cfb (line 104) | struct ccmode_cfb
type ccmode_cfb8 (line 106) | struct ccmode_cfb8
type ccmode_cfb8 (line 107) | struct ccmode_cfb8
type ccmode_ctr (line 109) | struct ccmode_ctr
type ccmode_ofb (line 111) | struct ccmode_ofb
FILE: Dependencies/corecrypto/ccdh.h
type ccdh_gp_t (line 89) | typedef union {
type ccdh_const_gp_t (line 96) | typedef union {
type ccdh_ctx_header (line 104) | struct ccdh_ctx_header {
type ccdh_ctx_body (line 109) | struct ccdh_ctx_body {
type ccdh_ctx_public (line 114) | struct ccdh_ctx_public {
type ccdh_full_ctx (line 120) | struct ccdh_full_ctx {
type ccdh_pub_ctx (line 125) | struct ccdh_pub_ctx {
type ccdh_full_ctx_t (line 132) | typedef union {
type ccdh_pub_ctx_t (line 139) | typedef union {
type ccdh_gp (line 150) | struct ccdh_gp {
type ccdh_gp (line 156) | struct ccdh_gp
type ccdh_gp (line 160) | struct ccdh_gp
type ccdh_full_ctx (line 163) | struct ccdh_full_ctx {
type ccdh_pub_ctx (line 170) | struct ccdh_pub_ctx {
type ccdh_full_ctx (line 180) | struct ccdh_full_ctx
type ccdh_pub_ctx (line 181) | struct ccdh_pub_ctx
function cczp_const_t (line 230) | static inline cczp_const_t ccdh_gp_zp(ccdh_const_gp_t gp) { return gp.zp;}
function cczp_const_t (line 240) | static inline cczp_const_t ccdh_gp_zp(ccdh_const_gp_t gp) { return (cczp...
function CC_INLINE (line 288) | CC_INLINE
function cc_size (line 306) | cc_size ccdh_gp_n(ccdh_const_gp_t gp) {
function cc_unit (line 311) | const cc_unit *ccdh_gp_prime(ccdh_const_gp_t gp) {
function cc_unit (line 316) | const cc_unit *ccdh_gp_recip(ccdh_const_gp_t gp) {
function cc_unit (line 321) | const cc_unit ccdh_gp_options(ccdh_const_gp_t gp) {
function cc_unit (line 326) | const cc_unit *ccdh_gp_g(ccdh_const_gp_t gp) {
function cc_unit (line 331) | const cc_unit *ccdh_gp_order(ccdh_const_gp_t gp) {
function cc_size (line 336) | cc_size ccdh_gp_l(ccdh_const_gp_t gp) {
function ccdh_ccn_size (line 341) | size_t ccdh_ccn_size(ccdh_const_gp_t gp) {
function cc_size (line 357) | cc_size ccdh_gp_n(ccdh_const_gp_t gp) {
function cc_unit (line 362) | const cc_unit *ccdh_gp_prime(ccdh_const_gp_t gp) {
function cc_unit (line 367) | const cc_unit *ccdh_gp_recip(ccdh_const_gp_t gp) {
function cc_unit (line 372) | const cc_unit ccdh_gp_options(ccdh_const_gp_t gp) {
function cc_unit (line 377) | const cc_unit *ccdh_gp_g(ccdh_const_gp_t gp) {
function cc_unit (line 382) | const cc_unit *ccdh_gp_order(ccdh_const_gp_t gp) {
function cc_size (line 387) | cc_size ccdh_gp_l(ccdh_const_gp_t gp) {
function ccdh_ccn_size (line 393) | size_t ccdh_ccn_size(ccdh_const_gp_t gp) {
type ccrng_state (line 446) | struct ccrng_state
type ccrng_state (line 466) | struct ccrng_state
FILE: Dependencies/corecrypto/ccdh_priv.h
type ccrng_state (line 83) | struct ccrng_state
type ccrng_state (line 87) | struct ccrng_state
type ccrng_state (line 101) | struct ccrng_state
FILE: Dependencies/corecrypto/ccdigest.h
type ccdigest_ctx (line 74) | struct ccdigest_ctx {
type ccdigest_ctx_t (line 83) | typedef union {
type ccdigest_state (line 87) | struct ccdigest_state {
type ccdigest_state_t (line 96) | typedef union {
type ccdigest_ctx (line 102) | struct ccdigest_ctx {
type ccdigest_ctx (line 111) | struct ccdigest_ctx
type ccdigest_state (line 113) | struct ccdigest_state {
type ccdigest_state (line 122) | struct ccdigest_state
type ccdigest_info (line 126) | struct ccdigest_info {
type ccdigest_info (line 200) | struct ccdigest_info
type ccdigest_info (line 201) | struct ccdigest_info
function CC_INLINE (line 204) | CC_INLINE
type ccdigest_info (line 210) | struct ccdigest_info
type ccdigest_info (line 214) | struct ccdigest_info
type ccdigest_info (line 217) | struct ccdigest_info
type ccdigest_vector (line 220) | struct ccdigest_vector {
type ccdigest_info (line 226) | struct ccdigest_info
type ccdigest_vector (line 226) | struct ccdigest_vector
type ccdigest_info (line 227) | struct ccdigest_info
type ccdigest_vector (line 227) | struct ccdigest_vector
FILE: Dependencies/corecrypto/ccdigest_priv.h
type ccdigest_info (line 71) | struct ccdigest_info
type ccdigest_info (line 73) | struct ccdigest_info
type ccdigest_info (line 75) | struct ccdigest_info
type ccdigest_info (line 79) | struct ccdigest_info
type ccdigest_info (line 85) | struct ccdigest_info
type ccdigest_info (line 88) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccdrbg.h
function CC_INLINE (line 109) | CC_INLINE int ccdrbg_init(const struct ccdrbg_info *info,
function CC_INLINE (line 121) | CC_INLINE int ccdrbg_reseed(const struct ccdrbg_info *info,
function CC_INLINE (line 130) | CC_INLINE int ccdrbg_generate(const struct ccdrbg_info *info,
function CC_INLINE (line 138) | CC_INLINE void ccdrbg_done(const struct ccdrbg_info *info,
function CC_INLINE (line 144) | CC_INLINE size_t ccdrbg_context_size(const struct ccdrbg_info *info)
type ccdrbg_nistctr_custom (line 154) | struct ccdrbg_nistctr_custom {
type ccdrbg_info (line 161) | struct ccdrbg_info
type ccdrbg_nistctr_custom (line 161) | struct ccdrbg_nistctr_custom
type ccdrbg_info (line 167) | struct ccdrbg_info
type ccdrbg_nisthmac_custom (line 169) | struct ccdrbg_nisthmac_custom {
type ccdrbg_info (line 174) | struct ccdrbg_info
type ccdrbg_nisthmac_custom (line 174) | struct ccdrbg_nisthmac_custom
type ccdrbg_info (line 181) | struct ccdrbg_info
type ccdrbg_info (line 189) | struct ccdrbg_info
FILE: Dependencies/corecrypto/ccdrbg_impl.h
type ccdrbg_state (line 69) | struct ccdrbg_state
type ccdrbg_info (line 71) | struct ccdrbg_info {
FILE: Dependencies/corecrypto/ccec.h
type ccec_projective_point (line 78) | struct ccec_projective_point {
type ccec_projective_point (line 81) | typedef struct ccec_projective_point ccec_projective_point;
type ccec_cp (line 83) | struct ccec_cp {
type ccec_point_hdr (line 88) | struct ccec_point_hdr {
type ccec_projective_point_t (line 92) | typedef union {
type ccec_const_projective_point_t (line 97) | typedef union {
type ccec_const_cp_t (line 109) | typedef union {
type ccec_affine_point (line 115) | struct ccec_affine_point {
type ccec_affine_point (line 118) | typedef struct ccec_affine_point ccec_affine_point;
type ccec_projective_point (line 119) | typedef ccec_projective_point* ccec_projective_point_t;
type ccec_affine_point (line 120) | typedef ccec_affine_point* ccec_affine_point_t;
type ccec_affine_point (line 122) | struct ccec_affine_point
type ccec_projective_point (line 123) | struct ccec_projective_point
type ccec_cp (line 125) | struct ccec_cp
type ccec_full_ctx (line 130) | struct ccec_full_ctx {
type ccec_pub_ctx (line 136) | struct ccec_pub_ctx {
type ccec_full_ctx_t (line 144) | typedef union {
type ccec_full_ctx (line 154) | typedef struct ccec_full_ctx ccec_full_ctx;
type ccec_full_ctx_t (line 156) | typedef ccec_full_ctx_t ccec_pub_ctx_t;
type ccec_pub_ctx (line 157) | typedef struct ccec_pub_ctx ccec_pub_ctx;
type ccec_full_ctx (line 159) | struct ccec_full_ctx
type ccec_pub_ctx (line 160) | struct ccec_pub_ctx
function CC_INLINE (line 161) | CC_INLINE
function CC_INLINE (line 195) | CC_INLINE void ccec_ctx_init(ccec_const_cp_t cp, ccec_full_ctx_t key) {(...
function CC_INLINE (line 201) | CC_INLINE cc_size ccec_cp_n(ccec_const_cp_t cp) { return cp.zp->n; }
function cc_size (line 218) | cc_size ccec_cp_n(ccec_const_cp_t cp) { return cp->n; }
function cczp_const_t (line 219) | cczp_const_t ccec_cp_zp(ccec_const_cp_t cp){ return (cczp_const_t)cp; }
function CC_INLINE (line 249) | CC_INLINE
function CC_INLINE (line 254) | CC_INLINE
function ccec_ccn_size (line 262) | size_t ccec_ccn_size(ccec_const_cp_t cp) {
type ccec_rfc6637_curve (line 280) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 281) | struct ccec_rfc6637_wrap
type ccec_rfc6637_unwrap (line 282) | struct ccec_rfc6637_unwrap
type ccec_rfc6637_wrap (line 284) | struct ccec_rfc6637_wrap
type ccec_rfc6637_wrap (line 285) | struct ccec_rfc6637_wrap
type ccec_rfc6637_unwrap (line 286) | struct ccec_rfc6637_unwrap
type ccec_rfc6637_unwrap (line 287) | struct ccec_rfc6637_unwrap
type ccec_rfc6637_curve (line 288) | struct ccec_rfc6637_curve
type ccec_rfc6637_curve (line 289) | struct ccec_rfc6637_curve
type ccrng_state (line 307) | struct ccrng_state
type ccrng_state (line 322) | struct ccrng_state
type ccrng_state (line 336) | struct ccrng_state
type ccrng_state (line 352) | struct ccrng_state
type ccrng_state (line 392) | struct ccrng_state
function ccec_sign_max_size (line 414) | size_t ccec_sign_max_size(ccec_const_cp_t cp) {
type ccrng_state (line 424) | struct ccrng_state
type ccrng_state (line 439) | struct ccrng_state
type ccrng_state (line 486) | struct ccrng_state
type ccec_rfc6637_curve (line 542) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 543) | struct ccec_rfc6637_wrap
type ccrng_state (line 545) | struct ccrng_state
type ccrng_state (line 578) | struct ccrng_state
type ccec_rfc6637_curve (line 628) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 629) | struct ccec_rfc6637_wrap
type ccrng_state (line 631) | struct ccrng_state
type ccec_rfc6637_curve (line 661) | struct ccec_rfc6637_curve
type ccec_rfc6637_unwrap (line 662) | struct ccec_rfc6637_unwrap
function ccec_export_pub_size (line 676) | size_t ccec_export_pub_size(ccec_pub_ctx_t key) {
function ccec_x963_export_size (line 690) | size_t ccec_x963_export_size(const int fullkey, ccec_pub_ctx_t key){
function ccec_compact_export_size (line 721) | size_t ccec_compact_export_size(const int fullkey, ccec_pub_ctx_t key){
type ccrng_state (line 884) | struct ccrng_state
FILE: Dependencies/corecrypto/ccec25519.h
type ccec25519key (line 73) | typedef ccec25519key ccec25519secretkey;
type ccec25519key (line 74) | typedef ccec25519key ccec25519pubkey;
type ccec25519key (line 75) | typedef ccec25519key ccec25519base;
function CC_INLINE (line 102) | CC_INLINE void cccurve25519_make_priv(struct ccrng_state *rng,
function CC_INLINE (line 118) | CC_INLINE void cccurve25519_make_pub(ccec25519pubkey pk,
function CC_INLINE (line 132) | CC_INLINE void cccurve25519_make_key_pair(struct ccrng_state *rng,
type ccdigest_info (line 149) | struct ccdigest_info
type ccrng_state (line 150) | struct ccrng_state
type ccdigest_info (line 165) | struct ccdigest_info
type ccdigest_info (line 184) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccec25519_priv.h
type ccdigest_info (line 82) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccec_priv.h
type ccrng_state (line 148) | struct ccrng_state
type ccrng_state (line 170) | struct ccrng_state
type ccrng_state (line 223) | struct ccrng_state
type ccrng_state (line 255) | struct ccrng_state
type ccrng_state (line 334) | struct ccrng_state
type ccrng_state (line 350) | struct ccrng_state
type ccrng_state (line 365) | struct ccrng_state
type ccrng_state (line 387) | struct ccrng_state
type ccrng_state (line 401) | struct ccrng_state
type ccrng_state (line 434) | struct ccrng_state
type ccec_rfc6637 (line 452) | struct ccec_rfc6637 {
type ccec_rfc6637_curve (line 460) | struct ccec_rfc6637_curve {
type ccec_rfc6637 (line 465) | struct ccec_rfc6637
type ccec_rfc6637 (line 466) | struct ccec_rfc6637
type ccdigest_info (line 469) | struct ccdigest_info
type ccec_rfc6637_curve (line 470) | struct ccec_rfc6637_curve
type ccec_rfc6637 (line 471) | struct ccec_rfc6637
type ccec_rfc6637_curve (line 488) | struct ccec_rfc6637_curve
type ccec_rfc6637_wrap (line 489) | struct ccec_rfc6637_wrap
type ccrng_state (line 491) | struct ccrng_state
FILE: Dependencies/corecrypto/ccecies.h
type ccecies_gcm (line 94) | struct ccecies_gcm {
type ccdigest_info (line 107) | struct ccdigest_info
type ccrng_state (line 108) | struct ccrng_state
type ccmode_gcm (line 109) | struct ccmode_gcm
type ccdigest_info (line 142) | struct ccdigest_info
type ccmode_gcm (line 143) | struct ccmode_gcm
FILE: Dependencies/corecrypto/cchkdf.h
type ccdigest_info (line 87) | struct ccdigest_info
FILE: Dependencies/corecrypto/cchmac.h
type cchmac_ctx (line 72) | struct cchmac_ctx {
type cchmac_ctx_t (line 77) | typedef union {
type cchmac_ctx (line 82) | struct cchmac_ctx
type ccdigest_info (line 134) | struct ccdigest_info
type ccdigest_info (line 136) | struct ccdigest_info
type ccdigest_info (line 138) | struct ccdigest_info
type ccdigest_info (line 141) | struct ccdigest_info
type cchmac_test_input (line 147) | struct cchmac_test_input {
type cchmac_test_input (line 157) | struct cchmac_test_input
type cchmac_test_input (line 158) | struct cchmac_test_input
FILE: Dependencies/corecrypto/ccmd2.h
type ccdigest_info (line 76) | struct ccdigest_info
type ccdigest_info (line 81) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccmd4.h
type ccdigest_info (line 77) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccmd5.h
type ccdigest_info (line 77) | struct ccdigest_info
type ccdigest_info (line 80) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccmode.h
function CC_INLINE (line 79) | CC_INLINE size_t ccecb_context_size(const struct ccmode_ecb *mode)
function CC_INLINE (line 84) | CC_INLINE size_t ccecb_block_size(const struct ccmode_ecb *mode)
function CC_INLINE (line 89) | CC_INLINE int ccecb_init(const struct ccmode_ecb *mode, ccecb_ctx *ctx,
function CC_INLINE (line 95) | CC_INLINE int ccecb_update(const struct ccmode_ecb *mode, const ccecb_ct...
function CC_INLINE (line 101) | CC_INLINE int ccecb_one_shot(const struct ccmode_ecb *mode,
function CC_INLINE (line 133) | CC_INLINE size_t cccbc_context_size(const struct ccmode_cbc *mode)
function CC_INLINE (line 138) | CC_INLINE size_t cccbc_block_size(const struct ccmode_cbc *mode)
function CC_INLINE (line 143) | CC_INLINE int cccbc_init(const struct ccmode_cbc *mode, cccbc_ctx *ctx,
function CC_INLINE (line 149) | CC_INLINE int cccbc_set_iv(const struct ccmode_cbc *mode, cccbc_iv *iv_ctx,
function CC_INLINE (line 159) | CC_INLINE int cccbc_update(const struct ccmode_cbc *mode, cccbc_ctx *ctx,
type ccmode_cbc (line 166) | struct ccmode_cbc
function CC_INLINE (line 178) | CC_INLINE size_t cccfb_context_size(const struct ccmode_cfb *mode)
function CC_INLINE (line 183) | CC_INLINE size_t cccfb_block_size(const struct ccmode_cfb *mode)
function CC_INLINE (line 188) | CC_INLINE int cccfb_init(const struct ccmode_cfb *mode, cccfb_ctx *ctx,
function CC_INLINE (line 195) | CC_INLINE int cccfb_update(const struct ccmode_cfb *mode, cccfb_ctx *ctx,
function CC_INLINE (line 201) | CC_INLINE int cccfb_one_shot(const struct ccmode_cfb *mode,
function CC_INLINE (line 220) | CC_INLINE size_t cccfb8_context_size(const struct ccmode_cfb8 *mode)
function CC_INLINE (line 225) | CC_INLINE size_t cccfb8_block_size(const struct ccmode_cfb8 *mode)
function CC_INLINE (line 230) | CC_INLINE int cccfb8_init(const struct ccmode_cfb8 *mode, cccfb8_ctx *ctx,
function CC_INLINE (line 236) | CC_INLINE int cccfb8_update(const struct ccmode_cfb8 *mode, cccfb8_ctx ...
function CC_INLINE (line 242) | CC_INLINE int cccfb8_one_shot(const struct ccmode_cfb8 *mode,
function CC_INLINE (line 265) | CC_INLINE size_t ccctr_context_size(const struct ccmode_ctr *mode)
function CC_INLINE (line 270) | CC_INLINE size_t ccctr_block_size(const struct ccmode_ctr *mode)
function CC_INLINE (line 275) | CC_INLINE int ccctr_init(const struct ccmode_ctr *mode, ccctr_ctx *ctx,
function CC_INLINE (line 281) | CC_INLINE int ccctr_update(const struct ccmode_ctr *mode, ccctr_ctx *ctx,
function CC_INLINE (line 287) | CC_INLINE int ccctr_one_shot(const struct ccmode_ctr *mode,
function CC_INLINE (line 308) | CC_INLINE size_t ccofb_context_size(const struct ccmode_ofb *mode)
function CC_INLINE (line 313) | CC_INLINE size_t ccofb_block_size(const struct ccmode_ofb *mode)
function CC_INLINE (line 318) | CC_INLINE int ccofb_init(const struct ccmode_ofb *mode, ccofb_ctx *ctx,
function CC_INLINE (line 324) | CC_INLINE int ccofb_update(const struct ccmode_ofb *mode, ccofb_ctx *ctx,
function CC_INLINE (line 330) | CC_INLINE int ccofb_one_shot(const struct ccmode_ofb *mode,
function CC_INLINE (line 367) | CC_INLINE size_t ccxts_context_size(const struct ccmode_xts *mode)
function CC_INLINE (line 372) | CC_INLINE size_t ccxts_block_size(const struct ccmode_xts *mode)
function CC_INLINE (line 391) | CC_INLINE int ccxts_init(const struct ccmode_xts *mode, ccxts_ctx *ctx,
function CC_INLINE (line 409) | CC_INLINE int ccxts_set_tweak(const struct ccmode_xts *mode, ccxts_ctx *...
function CC_INLINE (line 428) | CC_INLINE void *ccxts_update(const struct ccmode_xts *mode, ccxts_ctx *ctx,
type ccmode_xts (line 451) | struct ccmode_xts
function CC_INLINE (line 474) | CC_INLINE size_t ccgcm_context_size(const struct ccmode_gcm *mode)
function CC_INLINE (line 479) | CC_INLINE size_t ccgcm_block_size(const struct ccmode_gcm *mode)
function CC_INLINE (line 517) | CC_INLINE int ccgcm_init(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
type ccmode_gcm (line 558) | struct ccmode_gcm
function CC_INLINE (line 585) | CC_INLINE int ccgcm_set_iv(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
type ccmode_gcm (line 608) | struct ccmode_gcm
type ccmode_gcm (line 629) | struct ccmode_gcm
function CC_INLINE (line 647) | CC_INLINE int ccgcm_aad(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 658) | CC_INLINE int ccgcm_gmac(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 680) | CC_INLINE int ccgcm_update(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 705) | CC_INLINE int ccgcm_finalize(const struct ccmode_gcm *mode, ccgcm_ctx *ctx,
function CC_INLINE (line 722) | CC_INLINE int ccgcm_reset(const struct ccmode_gcm *mode, ccgcm_ctx *ctx)
type ccmode_gcm (line 763) | struct ccmode_gcm
type ccmode_gcm (line 796) | struct ccmode_gcm
function CC_INLINE (line 814) | CC_INLINE size_t ccccm_context_size(const struct ccmode_ccm *mode)
function CC_INLINE (line 819) | CC_INLINE size_t ccccm_block_size(const struct ccmode_ccm *mode)
function CC_INLINE (line 824) | CC_INLINE int ccccm_init(const struct ccmode_ccm *mode, ccccm_ctx *ctx,
function CC_INLINE (line 830) | CC_INLINE int ccccm_set_iv(const struct ccmode_ccm *mode, ccccm_ctx *ctx...
function CC_INLINE (line 837) | CC_INLINE int ccccm_cbcmac(const struct ccmode_ccm *mode, ccccm_ctx *ctx...
function CC_INLINE (line 843) | CC_INLINE int ccccm_update(const struct ccmode_ccm *mode, ccccm_ctx *ctx...
function CC_INLINE (line 849) | CC_INLINE int ccccm_finalize(const struct ccmode_ccm *mode, ccccm_ctx *c...
function CC_INLINE (line 855) | CC_INLINE int ccccm_reset(const struct ccmode_ccm *mode, ccccm_ctx *ctx,...
function CC_INLINE (line 861) | CC_INLINE int ccccm_one_shot(const struct ccmode_ccm *mode,
function CC_INLINE (line 891) | CC_INLINE size_t ccomac_context_size(const struct ccmode_omac *mode)
function CC_INLINE (line 896) | CC_INLINE size_t ccomac_block_size(const struct ccmode_omac *mode)
function CC_INLINE (line 901) | CC_INLINE int ccomac_init(const struct ccmode_omac *mode, ccomac_ctx *ctx,
function CC_INLINE (line 907) | CC_INLINE int ccomac_update(const struct ccmode_omac *mode, ccomac_ctx *...
function CC_INLINE (line 913) | CC_INLINE int ccomac_one_shot(const struct ccmode_omac *mode,
FILE: Dependencies/corecrypto/ccmode_factory.h
type ccmode_cbc (line 144) | struct ccmode_cbc
function cc3des_mode_encrypt_init (line 147) | void cc3des_mode_encrypt_init(void *ctx) {
type ccmode_cbc (line 152) | struct ccmode_cbc
type ccmode_cbc (line 157) | struct ccmode_cbc
type ccmode_cbc (line 164) | struct ccmode_cbc
type ccmode_cbc (line 172) | struct ccmode_cbc
type _ccmode_cbc_key (line 179) | struct _ccmode_cbc_key {
type ccmode_cbc (line 206) | struct ccmode_cbc
type ccmode_ecb (line 207) | struct ccmode_ecb
type ccmode_cbc (line 213) | struct ccmode_cbc
type ccmode_ecb (line 214) | struct ccmode_ecb
type ccmode_cfb (line 217) | struct ccmode_cfb
type _ccmode_cfb_key (line 224) | struct _ccmode_cfb_key {
type ccmode_cfb (line 252) | struct ccmode_cfb
type ccmode_ecb (line 253) | struct ccmode_ecb
type ccmode_cfb (line 259) | struct ccmode_cfb
type ccmode_ecb (line 260) | struct ccmode_ecb
type ccmode_cfb8 (line 262) | struct ccmode_cfb8
type _ccmode_cfb8_key (line 269) | struct _ccmode_cfb8_key {
type ccmode_cfb8 (line 296) | struct ccmode_cfb8
type ccmode_ecb (line 297) | struct ccmode_ecb
type ccmode_cfb8 (line 303) | struct ccmode_cfb8
type ccmode_ecb (line 304) | struct ccmode_ecb
type ccmode_ctr (line 306) | struct ccmode_ctr
type ccmode_ctr (line 308) | struct ccmode_ctr
type _ccmode_ctr_key (line 312) | struct _ccmode_ctr_key {
type ccmode_ctr (line 333) | struct ccmode_ctr
type ccmode_ecb (line 334) | struct ccmode_ecb
type ccmode_gcm (line 340) | struct ccmode_gcm
type _ccmode_gcm_key (line 368) | struct _ccmode_gcm_key {
type ccmode_gcm (line 402) | struct ccmode_gcm
type ccmode_ecb (line 403) | struct ccmode_ecb
type ccmode_gcm (line 409) | struct ccmode_gcm
type ccmode_ecb (line 410) | struct ccmode_ecb
type ccmode_ccm (line 414) | struct ccmode_ccm
type _ccmode_ccm_key (line 431) | struct _ccmode_ccm_key {
type _ccmode_ccm_nonce (line 436) | struct _ccmode_ccm_nonce {
type ccmode_ccm (line 483) | struct ccmode_ccm
type ccmode_ecb (line 484) | struct ccmode_ecb
type ccmode_ccm (line 490) | struct ccmode_ccm
type ccmode_ecb (line 491) | struct ccmode_ecb
type ccmode_ofb (line 494) | struct ccmode_ofb
type _ccmode_ofb_key (line 500) | struct _ccmode_ofb_key {
type ccmode_ofb (line 519) | struct ccmode_ofb
type ccmode_ecb (line 520) | struct ccmode_ecb
type ccmode_omac (line 532) | struct ccmode_omac
type _ccmode_omac_key (line 536) | struct _ccmode_omac_key {
type ccmode_omac (line 564) | struct ccmode_omac
type ccmode_ecb (line 565) | struct ccmode_ecb
type ccmode_omac (line 571) | struct ccmode_omac
type ccmode_ecb (line 572) | struct ccmode_ecb
type ccmode_xts (line 576) | struct ccmode_xts
type ccmode_xts (line 579) | struct ccmode_xts
type _ccmode_xts_key (line 588) | struct _ccmode_xts_key {
type _ccmode_xts_tweak (line 594) | struct _ccmode_xts_tweak {
type ccmode_xts (line 634) | struct ccmode_xts
type ccmode_ecb (line 635) | struct ccmode_ecb
type ccmode_ecb (line 636) | struct ccmode_ecb
type ccmode_xts (line 642) | struct ccmode_xts
type ccmode_ecb (line 643) | struct ccmode_ecb
type ccmode_ecb (line 644) | struct ccmode_ecb
FILE: Dependencies/corecrypto/ccmode_impl.h
type ccmode_ecb (line 75) | struct ccmode_ecb {
type ccmode_cbc (line 118) | struct ccmode_cbc {
type ccmode_cfb (line 132) | struct ccmode_cfb {
type ccmode_cfb8 (line 144) | struct ccmode_cfb8 {
type ccmode_ctr (line 156) | struct ccmode_ctr {
type ccmode_ofb (line 170) | struct ccmode_ofb {
type ccmode_xts (line 183) | struct ccmode_xts {
type ccmode_gcm (line 217) | struct ccmode_gcm {
type ccmode_ccm (line 235) | struct ccmode_ccm {
type ccmode_omac (line 254) | struct ccmode_omac {
FILE: Dependencies/corecrypto/ccmode_siv.h
type ccmode_siv (line 82) | struct ccmode_siv {
function CC_INLINE (line 100) | CC_INLINE size_t ccsiv_context_size(const struct ccmode_siv *mode)
function CC_INLINE (line 105) | CC_INLINE size_t ccsiv_block_size(const struct ccmode_siv *mode)
function CC_INLINE (line 110) | CC_INLINE size_t ccsiv_ciphertext_size(const struct ccmode_siv *mode,
function CC_INLINE (line 116) | CC_INLINE size_t ccsiv_plaintext_size(const struct ccmode_siv *mode,
function CC_INLINE (line 126) | CC_INLINE int ccsiv_init(const struct ccmode_siv *mode, ccsiv_ctx *ctx,
function CC_INLINE (line 133) | CC_INLINE int ccsiv_set_nonce(const struct ccmode_siv *mode, ccsiv_ctx *...
function CC_INLINE (line 141) | CC_INLINE int ccsiv_aad(const struct ccmode_siv *mode, ccsiv_ctx *ctx,
function CC_INLINE (line 149) | CC_INLINE int ccsiv_crypt(const struct ccmode_siv *mode, ccsiv_ctx *ctx,
function CC_INLINE (line 157) | CC_INLINE int ccsiv_reset(const struct ccmode_siv *mode, ccsiv_ctx *ctx)
function CC_INLINE (line 163) | CC_INLINE int ccsiv_one_shot(const struct ccmode_siv *mode,
type ccmode_siv (line 183) | struct ccmode_siv
type ccmode_cbc (line 184) | struct ccmode_cbc
type ccmode_ctr (line 185) | struct ccmode_ctr
type ccmode_siv (line 187) | struct ccmode_siv
type ccmode_cbc (line 188) | struct ccmode_cbc
type ccmode_ctr (line 189) | struct ccmode_ctr
FILE: Dependencies/corecrypto/ccmode_siv_priv.h
type _ccmode_siv_ctx (line 80) | struct _ccmode_siv_ctx {
type ccmode_siv (line 89) | struct ccmode_siv
FILE: Dependencies/corecrypto/ccn.h
type cc_byte (line 72) | typedef uint8_t cc_byte;
type cc_size (line 73) | typedef size_t cc_size;
type cc_unit (line 76) | typedef uint64_t cc_unit;
type cc_int (line 77) | typedef int64_t cc_int;
type cc_dunit (line 81) | typedef unsigned cc_dunit __attribute__((mode(TI)));
type cc_dint (line 82) | typedef signed cc_dint __attribute__((mode(TI)));
type cc_dunit (line 84) | typedef struct cc_dunit {
type cc_dint (line 89) | typedef struct cc_dint {
type cc_unit (line 96) | typedef uint32_t cc_unit;
type cc_dunit (line 97) | typedef uint64_t cc_dunit;
type cc_dint (line 98) | typedef int64_t cc_dint;
type cc_int (line 99) | typedef int32_t cc_int;
type cc_unit (line 104) | typedef uint16_t cc_unit;
type cc_dunit (line 105) | typedef uint32_t cc_dunit;
type cc_unit (line 110) | typedef uint8_t cc_unit;
type cc_dunit (line 111) | typedef uint16_t cc_dunit;
type cc_unit (line 120) | typedef cc_unit *ccn_t;
type cc_unit (line 121) | typedef cc_unit *ccnp1_t;
type cc_unit (line 122) | typedef cc_unit *cc2n_t;
type cc_unit (line 123) | typedef cc_unit *cc2np2_t;
type cc_unit (line 124) | typedef const cc_unit *ccn_in_t;
type cc_unit (line 125) | typedef const cc_unit *ccnp1_in_t;
type cc_unit (line 126) | typedef const cc_unit *cc2n_in_t;
type cc_unit (line 127) | typedef const cc_unit *cc2np2_in_t;
type cc_ws (line 132) | typedef struct {
function CC_PURE (line 384) | CC_PURE CC_NONNULL((2, 3))
function cc_unit (line 417) | cc_unit ccn_subn(cc_size n, cc_unit *r, const cc_unit *s,
function cc_unit (line 438) | cc_unit ccn_addn(cc_size n, cc_unit *r, const cc_unit *s,
function CC_INLINE (line 517) | CC_INLINE CC_NONNULL((2, 4))
function ccn_zero (line 584) | void ccn_zero(cc_size n, cc_unit *r) {
function ccn_clear (line 589) | void ccn_clear(cc_size n, cc_unit *r) {
function ccn_seti (line 597) | void ccn_seti(cc_size n, cc_unit *r, cc_unit v) {
function CC_INLINE (line 603) | CC_INLINE CC_NONNULL((2, 4))
function ccn_xor (line 659) | void ccn_xor(cc_size n, cc_unit *r, const cc_unit *s, const cc_unit *t) {
type ccrng_state (line 672) | struct ccrng_state
type ccrng_state (line 676) | struct ccrng_state
FILE: Dependencies/corecrypto/ccn_priv.h
function CC_INLINE (line 137) | CC_INLINE cc_size clz64_win( uint64_t value )
function CC_INLINE (line 145) | CC_INLINE cc_size clz32_win( uint32_t value )
function cc_size (line 162) | cc_size cc_clz_nonzero(cc_unit data) {
FILE: Dependencies/corecrypto/ccnistkdf.h
type ccdigest_info (line 96) | struct ccdigest_info
type ccdigest_info (line 102) | struct ccdigest_info
type ccdigest_info (line 133) | struct ccdigest_info
type ccdigest_info (line 168) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccpad.h
type ccmode_cbc (line 75) | struct ccmode_cbc
type ccmode_cbc (line 79) | struct ccmode_cbc
type ccmode_cbc (line 82) | struct ccmode_cbc
type ccmode_cbc (line 86) | struct ccmode_cbc
type ccmode_cbc (line 89) | struct ccmode_cbc
type ccmode_cbc (line 93) | struct ccmode_cbc
type ccmode_cbc (line 100) | struct ccmode_cbc
type ccmode_cbc (line 104) | struct ccmode_cbc
type ccmode_ecb (line 110) | struct ccmode_ecb
type ccmode_ecb (line 113) | struct ccmode_ecb
type ccmode_xts (line 120) | struct ccmode_xts
type ccmode_xts (line 124) | struct ccmode_xts
FILE: Dependencies/corecrypto/ccpbkdf2.h
type ccdigest_info (line 90) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccperf.h
type ccrng_state (line 75) | struct ccrng_state
type ccperf_test (line 78) | struct ccperf_test {
type ccperf_size_kind (line 84) | enum ccperf_size_kind {
type ccperf_family (line 91) | struct ccperf_family {
type ccperf_family (line 153) | struct ccperf_family
type ccperf_family (line 154) | struct ccperf_family
type ccperf_family (line 155) | struct ccperf_family
type ccperf_family (line 156) | struct ccperf_family
type ccperf_family (line 157) | struct ccperf_family
type ccperf_family (line 158) | struct ccperf_family
type ccperf_family (line 159) | struct ccperf_family
type ccperf_family (line 160) | struct ccperf_family
type ccperf_family (line 161) | struct ccperf_family
type ccperf_family (line 162) | struct ccperf_family
type ccperf_family (line 163) | struct ccperf_family
type ccperf_family (line 164) | struct ccperf_family
type ccperf_family (line 165) | struct ccperf_family
type ccperf_family (line 166) | struct ccperf_family
type ccperf_family (line 167) | struct ccperf_family
type ccperf_family (line 168) | struct ccperf_family
type ccperf_family (line 169) | struct ccperf_family
type ccperf_family (line 170) | struct ccperf_family
type ccperf_family (line 171) | struct ccperf_family
type ccperf_family (line 172) | struct ccperf_family
type ccperf_family (line 173) | struct ccperf_family
type ccperf_family (line 174) | struct ccperf_family
type ccperf_family (line 175) | struct ccperf_family
type ccperf_family (line 176) | struct ccperf_family
type ccperf_family (line 177) | struct ccperf_family
type ccperf_family (line 178) | struct ccperf_family
type ccperf_family (line 179) | struct ccperf_family
type ccperf_family (line 180) | struct ccperf_family
type ccperf_family (line 181) | struct ccperf_family
type ccperf_family (line 182) | struct ccperf_family
type ccperf_family (line 183) | struct ccperf_family
type ccperf_family (line 184) | struct ccperf_family
type ccperf_family (line 185) | struct ccperf_family
type ccperf_family (line 186) | struct ccperf_family
type ccperf_family (line 187) | struct ccperf_family
type ccperf_family (line 188) | struct ccperf_family
type ccperf_family (line 189) | struct ccperf_family
type ccperf_family (line 190) | struct ccperf_family
type ccperf_family (line 191) | struct ccperf_family
type ccperf_family (line 192) | struct ccperf_family
type ccperf_family (line 193) | struct ccperf_family
type ccperf_family (line 194) | struct ccperf_family
type ccperf_family (line 195) | struct ccperf_family
type ccperf_family (line 196) | struct ccperf_family
type ccperf_family (line 197) | struct ccperf_family
type ccperf_family (line 198) | struct ccperf_family
type ccperf_family (line 199) | struct ccperf_family
type ccperf_family (line 200) | struct ccperf_family
type ccperf_family (line 201) | struct ccperf_family
type ccperf_family (line 202) | struct ccperf_family
type ccperf_family (line 203) | struct ccperf_family
type ccperf_family (line 204) | struct ccperf_family
type ccperf_family (line 205) | struct ccperf_family
type ccperf_family (line 206) | struct ccperf_family
type ccperf_family (line 207) | struct ccperf_family
type ccperf_family (line 208) | struct ccperf_family
type ccperf_family (line 209) | struct ccperf_family
type ccperf_family (line 210) | struct ccperf_family
type ccperf_family (line 211) | struct ccperf_family
type ccperf_family (line 212) | struct ccperf_family
type ccperf_family (line 213) | struct ccperf_family
type ccperf_family (line 214) | struct ccperf_family
type ccperf_family (line 215) | struct ccperf_family
type ccperf_family (line 216) | struct ccperf_family
type ccperf_family (line 220) | struct ccperf_family
type ccperf_family (line 222) | struct ccperf_family
type ccperf_family (line 223) | struct ccperf_family
FILE: Dependencies/corecrypto/ccprime.h
type ccrng_state (line 78) | struct ccrng_state
FILE: Dependencies/corecrypto/ccrc2.h
type ccmode_ecb (line 72) | struct ccmode_ecb
type ccmode_ecb (line 73) | struct ccmode_ecb
type ccmode_ecb (line 75) | struct ccmode_ecb
type ccmode_ecb (line 76) | struct ccmode_ecb
type ccmode_cbc (line 78) | struct ccmode_cbc
type ccmode_cbc (line 79) | struct ccmode_cbc
type ccmode_cfb (line 81) | struct ccmode_cfb
type ccmode_cfb (line 82) | struct ccmode_cfb
type ccmode_cfb8 (line 84) | struct ccmode_cfb8
type ccmode_cfb8 (line 85) | struct ccmode_cfb8
type ccmode_ctr (line 87) | struct ccmode_ctr
type ccmode_ofb (line 89) | struct ccmode_ofb
FILE: Dependencies/corecrypto/ccrc4.h
type ccrc4_info (line 77) | struct ccrc4_info {
type ccrc4_info (line 84) | struct ccrc4_info
type ccrc4_info (line 86) | struct ccrc4_info
type ccrc4_vector (line 88) | struct ccrc4_vector {
type ccrc4_info (line 96) | struct ccrc4_info
type ccrc4_vector (line 96) | struct ccrc4_vector
FILE: Dependencies/corecrypto/ccripemd.h
type ccdigest_info (line 84) | struct ccdigest_info
type ccdigest_info (line 85) | struct ccdigest_info
type ccdigest_info (line 86) | struct ccdigest_info
type ccdigest_info (line 87) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccrng.h
type ccrng_state (line 86) | struct ccrng_state {
type ccrng_state (line 109) | struct ccrng_state
FILE: Dependencies/corecrypto/ccrng_drbg.h
type ccrng_drbg_state (line 71) | struct ccrng_drbg_state {
type ccrng_drbg_state (line 79) | struct ccrng_drbg_state
type ccdrbg_info (line 80) | struct ccdrbg_info
type ccdrbg_state (line 81) | struct ccdrbg_state
type ccrng_drbg_state (line 85) | struct ccrng_drbg_state
type ccrng_drbg_state (line 90) | struct ccrng_drbg_state
FILE: Dependencies/corecrypto/ccrng_ecfips_test.h
type ccrng_ecfips_test_state (line 74) | struct ccrng_ecfips_test_state {
type ccrng_ecfips_test_state (line 80) | struct ccrng_ecfips_test_state
FILE: Dependencies/corecrypto/ccrng_pbkdf2_prng.h
type ccrng_pbkdf2_prng_state (line 79) | struct ccrng_pbkdf2_prng_state {
type ccrng_pbkdf2_prng_state (line 86) | struct ccrng_pbkdf2_prng_state
FILE: Dependencies/corecrypto/ccrng_rsafips_test.h
type ccrng_rsafips_test_state (line 71) | struct ccrng_rsafips_test_state {
type ccrng_rsafips_test_state (line 84) | struct ccrng_rsafips_test_state
FILE: Dependencies/corecrypto/ccrng_sequence.h
type ccrng_sequence_state (line 71) | struct ccrng_sequence_state {
type ccrng_sequence_state (line 77) | struct ccrng_sequence_state
type ccrng_sequence_state (line 79) | struct ccrng_sequence_state
FILE: Dependencies/corecrypto/ccrng_system.h
type ccrng_system_state (line 70) | struct ccrng_system_state {
type ccrng_system_state (line 90) | struct ccrng_system_state
type ccrng_system_state (line 94) | struct ccrng_system_state
FILE: Dependencies/corecrypto/ccrng_test.h
type ccrng_test_state (line 71) | struct ccrng_test_state {
type ccrng_test_state (line 78) | struct ccrng_test_state
type ccrng_test_state (line 81) | struct ccrng_test_state
FILE: Dependencies/corecrypto/ccrsa.h
type ccrsa_full_ctx (line 89) | struct ccrsa_full_ctx {
function ccrsa_pubkeylength (line 228) | static inline size_t
type ccrng_state (line 263) | struct ccrng_state
type ccrng_state (line 270) | struct ccrng_state
type ccrng_state (line 270) | struct ccrng_state
type ccdigest_info (line 321) | struct ccdigest_info
type ccdigest_info (line 321) | struct ccdigest_info
type ccrng_state (line 322) | struct ccrng_state
type ccdigest_info (line 328) | struct ccdigest_info
type ccdigest_info (line 328) | struct ccdigest_info
function ccrsa_export_pub_size (line 529) | size_t ccrsa_export_pub_size(const ccrsa_pub_ctx_t key) {
function cc_size (line 556) | cc_size ccrsa_import_pub_n(size_t inlen, const uint8_t *der) {
function ccrsa_export_priv_size (line 588) | size_t ccrsa_export_priv_size(const ccrsa_full_ctx_t key) {
function ccrsa_export_priv (line 602) | int ccrsa_export_priv(const ccrsa_full_ctx_t key, size_t out_len, uint8_...
function cc_size (line 618) | cc_size ccrsa_import_priv_n(size_t inlen, const uint8_t *der) {
function ccrsa_import_priv (line 634) | int ccrsa_import_priv(ccrsa_full_ctx_t key, size_t inlen, const uint8_t ...
FILE: Dependencies/corecrypto/ccrsa_priv.h
type ccrsa_fips186_trace (line 112) | struct ccrsa_fips186_trace {
type ccdigest_info (line 172) | struct ccdigest_info
type ccdigest_info (line 172) | struct ccdigest_info
type ccdigest_info (line 177) | struct ccdigest_info
type ccdigest_info (line 177) | struct ccdigest_info
type ccdigest_info (line 205) | struct ccdigest_info
type ccdigest_info (line 216) | struct ccdigest_info
type ccrng_state (line 217) | struct ccrng_state
function ccrsa_oaep_encode (line 227) | int ccrsa_oaep_encode(const struct ccdigest_info* di,
type ccdigest_info (line 239) | struct ccdigest_info
function ccrsa_oaep_decode (line 246) | int ccrsa_oaep_decode(const struct ccdigest_info* di,
type ccrng_state (line 279) | struct ccrng_state
type ccrng_state (line 304) | struct ccrng_state
type ccdigest_info (line 306) | struct ccdigest_info
type ccdigest_info (line 306) | struct ccdigest_info
type ccrng_state (line 307) | struct ccrng_state
type ccrng_state (line 326) | struct ccrng_state
type ccrng_state (line 364) | struct ccrng_state
type ccrng_state (line 408) | struct ccrng_state
type ccdigest_info (line 431) | struct ccdigest_info
type ccrng_state (line 432) | struct ccrng_state
type ccdigest_info (line 456) | struct ccdigest_info
type ccrng_state (line 483) | struct ccrng_state
type ccdigest_info (line 485) | struct ccdigest_info
type ccrng_state (line 506) | struct ccrng_state
type ccrng_state (line 529) | struct ccrng_state
type ccrng_state (line 530) | struct ccrng_state
type ccrsa_fips186_trace (line 530) | struct ccrsa_fips186_trace
type ccrsa_fips186_trace (line 546) | struct ccrsa_fips186_trace
function CC_INLINE (line 548) | CC_INLINE cc_size ccrsa_n_from_size(size_t size) {
function CC_INLINE (line 552) | CC_INLINE size_t ccrsa_sizeof_n_from_size(size_t size) {
function CC_INLINE (line 556) | CC_INLINE uint8_t *ccrsa_block_start(size_t size, cc_unit *p, int clear_...
function CC_INLINE (line 563) | CC_INLINE size_t ccrsa_block_size(ccrsa_pub_ctx_t key) {
type ccrng_state (line 569) | struct ccrng_state
FILE: Dependencies/corecrypto/ccsha1.h
type ccdigest_info (line 76) | struct ccdigest_info
type ccdigest_info (line 81) | struct ccdigest_info
type ccdigest_info (line 86) | struct ccdigest_info
type ccdigest_info (line 87) | struct ccdigest_info
type ccdigest_info (line 92) | struct ccdigest_info
type ccdigest_info (line 93) | struct ccdigest_info
type ccdigest_info (line 95) | struct ccdigest_info
type ccdigest_info (line 99) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccsha2.h
type ccdigest_info (line 71) | struct ccdigest_info
type ccdigest_info (line 72) | struct ccdigest_info
type ccdigest_info (line 73) | struct ccdigest_info
type ccdigest_info (line 74) | struct ccdigest_info
type ccdigest_info (line 94) | struct ccdigest_info
type ccdigest_info (line 95) | struct ccdigest_info
type ccdigest_info (line 98) | struct ccdigest_info
type ccdigest_info (line 99) | struct ccdigest_info
type ccdigest_info (line 100) | struct ccdigest_info
type ccdigest_info (line 101) | struct ccdigest_info
type ccdigest_info (line 102) | struct ccdigest_info
type ccdigest_info (line 103) | struct ccdigest_info
type ccdigest_info (line 104) | struct ccdigest_info
type ccdigest_info (line 105) | struct ccdigest_info
type ccdigest_info (line 106) | struct ccdigest_info
type ccdigest_info (line 107) | struct ccdigest_info
type ccdigest_info (line 109) | struct ccdigest_info
type ccdigest_info (line 110) | struct ccdigest_info
type ccdigest_info (line 113) | struct ccdigest_info
type ccdigest_info (line 114) | struct ccdigest_info
type ccdigest_info (line 115) | struct ccdigest_info
type ccdigest_info (line 116) | struct ccdigest_info
type ccdigest_info (line 117) | struct ccdigest_info
type ccdigest_info (line 118) | struct ccdigest_info
type ccdigest_info (line 125) | struct ccdigest_info
type ccdigest_info (line 131) | struct ccdigest_info
type ccdigest_info (line 135) | struct ccdigest_info
FILE: Dependencies/corecrypto/ccsrp.h
type ccdh_gp (line 76) | typedef ccdh_gp ccsrp_gp;
type ccsrp_gp (line 78) | typedef struct ccdh_gp ccsrp_gp;
type ccdh_gp_t (line 83) | typedef ccdh_gp_t ccsrp_gp_t;
type ccdh_const_gp_t (line 84) | typedef ccdh_const_gp_t ccsrp_const_gp_t;
type ccsrp_ctx_header (line 86) | struct ccsrp_ctx_header {
type ccsrp_ctx (line 103) | struct ccsrp_ctx {
type ccsrp_ctx_body (line 107) | struct ccsrp_ctx_body {
type ccsrp_ctx_t (line 112) | typedef union {
type ccdh_gp_t (line 118) | typedef ccdh_gp_t ccsrp_gp_t;
type ccdh_const_gp_t (line 119) | typedef ccdh_const_gp_t ccsrp_const_gp_t;
type ccsrp_ctx (line 121) | struct ccsrp_ctx {
type ccsrp_ctx (line 137) | struct ccsrp_ctx
function ccsrp_ctx_init_option (line 280) | int
function ccsrp_ctx_init (line 299) | void
type ccrng_state (line 326) | struct ccrng_state
type ccrng_state (line 374) | struct ccrng_state
type ccrng_state (line 413) | struct ccrng_state
type ccrng_state (line 451) | struct ccrng_state
function ccsrp_client_set_noUsernameInX (line 493) | bool
function ccsrp_is_authenticated (line 513) | bool
function ccsrp_exchange_size (line 527) | size_t
function ccsrp_session_size (line 541) | size_t
function ccsrp_get_session_key_length (line 556) | size_t
function cc_unit (line 601) | cc_unit *
type ccdigest_info (line 615) | struct ccdigest_info
type ccrng_state (line 616) | struct ccrng_state
FILE: Dependencies/corecrypto/cctest.h
type cctest_result (line 80) | struct cctest_result {
type cctest_input (line 85) | struct cctest_input {
FILE: Dependencies/corecrypto/ccwrap.h
function CC_INLINE (line 88) | CC_INLINE size_t ccwrap_wrapped_size(const size_t data_size)
function CC_INLINE (line 104) | CC_INLINE size_t ccwrap_unwrapped_size(const size_t data_size)
type ccmode_ecb (line 135) | struct ccmode_ecb
type ccmode_ecb (line 157) | struct ccmode_ecb
FILE: Dependencies/corecrypto/ccz.h
type ccz (line 76) | struct ccz {
type ccz (line 82) | typedef struct ccz ccz;
type ccz_class (line 84) | struct ccz_class {
type ccz_class (line 93) | struct ccz_class
type ccz_class (line 97) | struct ccz_class
function ccz_div2 (line 233) | void ccz_div2(ccz *r, const ccz *s) {
function ccz_is_odd (line 283) | bool ccz_is_odd(const ccz *s) {
type ccrng_state (line 308) | struct ccrng_state
type ccrng_state (line 312) | struct ccrng_state
FILE: Dependencies/corecrypto/ccz_priv.h
function ccz_sign (line 90) | int ccz_sign(const ccz *s) {
function ccz_set_sign (line 95) | void ccz_set_sign(ccz *r, int sign)
function CC_NONNULL_ALL (line 101) | CC_NONNULL_ALL
function ccz_set_n (line 107) | void ccz_set_n(ccz *r, cc_size n) {
function CC_NONNULL_ALL (line 111) | CC_NONNULL_ALL
function ccz_set_capacity (line 117) | void ccz_set_capacity(ccz *r, cc_size capacity)
FILE: Dependencies/corecrypto/cczp.h
type cczp (line 77) | struct cczp
type cczp_t (line 80) | typedef union {
type cczp_const_t (line 87) | typedef union {
type cczp (line 95) | struct cczp
type cczp (line 96) | struct cczp
type cczp_hd (line 114) | struct cczp_hd{
type cczp (line 118) | struct cczp {
function CC_CONST (line 165) | CC_CONST CC_NONNULL_TU((1))
function CC_CONST (line 200) | CC_CONST CC_NONNULL_TU((1))
FILE: Dependencies/corecrypto/cczp_priv.h
function cczp_is_montgomery (line 110) | bool cczp_is_montgomery(cczp_const_t zp) {
function cczp_convert_to_montgomery (line 119) | void cczp_convert_to_montgomery(cczp_const_t zp,cc_unit *r, const cc_uni...
function cczp_convert_from_montgomery (line 130) | void cczp_convert_from_montgomery(cczp_const_t zp,cc_unit *r, const cc_u...
FILE: Dependencies/corecrypto/fipspost.h
type mach_header (line 126) | struct mach_header
type mach_header (line 131) | struct mach_header
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/Connection.cpp
type timeval (line 184) | struct timeval
type timeval (line 264) | struct timeval
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/Connection.hpp
class Connection (line 17) | class Connection
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/ConnectionManager.cpp
function ConnectionManagerBonjourRegistrationFinished (line 28) | __attribute__((stdcall)) void ConnectionManagerBonjourRegistrationFinish...
function ConnectionManager (line 35) | ConnectionManager* ConnectionManager::instance()
type sockaddr_in (line 69) | struct sockaddr_in
type sockaddr (line 76) | struct sockaddr
type sockaddr_in (line 87) | struct sockaddr_in
type sockaddr (line 90) | struct sockaddr
type timeval (line 104) | struct timeval
type sockaddr_in (line 122) | struct sockaddr_in
type sockaddr (line 125) | struct sockaddr
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/ConnectionManager.hpp
class ConnectionManager (line 17) | class ConnectionManager
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/DeviceManager.cpp
function DeviceManager (line 36) | DeviceManager* DeviceManager::instance()
function DeviceManagerUpdateStatus (line 496) | void DeviceManagerUpdateStatus(plist_t command, plist_t status, void *uuid)
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/DeviceManager.hpp
class DeviceManager (line 20) | class DeviceManager
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/InstallError.hpp
type InstallErrorCode (line 14) | enum class InstallErrorCode
class InstallError (line 23) | class InstallError: public Error
method InstallError (line 26) | InstallError(InstallErrorCode code) : Error((int)code)
method domain (line 30) | virtual std::string domain() const
method localizedDescription (line 35) | virtual std::string localizedDescription() const
FILE: Xcode/AltServer-Windows/AltServer-Windows/Windows/ServerError.hpp
type ServerErrorCode (line 14) | enum class ServerErrorCode
class ServerError (line 31) | class ServerError: public Error
method ServerError (line 34) | ServerError(ServerErrorCode code) : Error((int)code)
method domain (line 38) | virtual std::string domain() const
method localizedDescription (line 43) | virtual std::string localizedDescription() const
FILE: Xcode/AltServer-Windows/AltSign-Windows/Account.hpp
class Account (line 21) | class Account
FILE: Xcode/AltServer-Windows/AltSign-Windows/AppID.hpp
class AppID (line 20) | class AppID
FILE: Xcode/AltServer-Windows/AltSign-Windows/AppleAPI.cpp
function decompress (line 42) | bool decompress(const uint8_t* input, size_t input_size, std::vector<uin...
function AppleAPI (line 89) | AppleAPI* AppleAPI::getInstance()
function T (line 712) | T AppleAPI::ProcessResponse(plist_t plist, std::function<T(plist_t)> par...
FILE: Xcode/AltServer-Windows/AltSign-Windows/AppleAPI.hpp
class AppleAPI (line 25) | class AppleAPI
FILE: Xcode/AltServer-Windows/AltSign-Windows/Application.hpp
class Application (line 20) | class Application
FILE: Xcode/AltServer-Windows/AltSign-Windows/Archiver.cpp
function endsWith (line 42) | static bool endsWith(const std::string& str, const std::string& suffix)
function startsWith (line 47) | static bool startsWith(const std::string& str, const std::string& prefix)
function UnzipAppBundle (line 53) | std::string UnzipAppBundle(std::string filepath, std::string outputDirec...
function WriteFileToZipFile (line 227) | void WriteFileToZipFile(zipFile *zipFile, fs::path filepath, fs::path re...
function ZipAppBundle (line 282) | std::string ZipAppBundle(std::string filepath)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Certificate.hpp
class Certificate (line 21) | class Certificate
FILE: Xcode/AltServer-Windows/AltSign-Windows/CertificateRequest.hpp
class CertificateRequest (line 18) | class CertificateRequest
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/crypt.h
function decrypt_byte (line 35) | static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_...
function update_keys (line 48) | static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32...
function init_keys (line 65) | static void init_keys(const char* passwd,unsigned long* pkeys,const unsi...
function crypthead (line 90) | static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCry...
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/ioapi.c
function voidpf (line 68) | voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
function uLong (line 90) | uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
function uLong (line 102) | uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
function ftell_file_func (line 113) | long ZCALLBACK ftell_file_func (opaque, stream)
function fseek_file_func (line 122) | long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
function fclose_file_func (line 148) | int ZCALLBACK fclose_file_func (opaque, stream)
function ferror_file_func (line 157) | int ZCALLBACK ferror_file_func (opaque, stream)
function fill_fopen_filefunc (line 166) | void fill_fopen_filefunc (pzlib_filefunc_def)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/ioapi.h
type zlib_filefunc_def (line 46) | typedef struct zlib_filefunc_def_s
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/iowin32.c
type WIN32FILE_IOWIN (line 59) | typedef struct
function voidpf (line 65) | voidpf ZCALLBACK win32_open_file_func (opaque, filename, mode)
function uLong (line 117) | uLong ZCALLBACK win32_read_file_func (opaque, stream, buf, size)
function uLong (line 140) | uLong ZCALLBACK win32_write_file_func (opaque, stream, buf, size)
function win32_tell_file_func (line 163) | long ZCALLBACK win32_tell_file_func (opaque, stream)
function win32_seek_file_func (line 186) | long ZCALLBACK win32_seek_file_func (opaque, stream, offset, origin)
function win32_close_file_func (line 227) | int ZCALLBACK win32_close_file_func (opaque, stream)
function win32_error_file_func (line 247) | int ZCALLBACK win32_error_file_func (opaque, stream)
function fill_win32_filefunc (line 259) | void fill_win32_filefunc (pzlib_filefunc_def)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/miniunz.c
function change_file_date (line 49) | void change_file_date(filename,dosdate,tmu_date)
function mymkdir (line 90) | int mymkdir(dirname)
function makedir (line 104) | int makedir (newdir)
function do_banner (line 149) | void do_banner()
function do_help (line 155) | void do_help()
function do_list (line 168) | int do_list(uf)
function do_extract_currentfile (line 241) | int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,p...
function do_extract (line 405) | int do_extract(uf,opt_extract_without_path,opt_overwrite,password)
function do_extract_onefile (line 441) | int do_extract_onefile(uf,filename,opt_extract_without_path,opt_overwrit...
function main (line 464) | int main(argc,argv)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/minizip.c
function uLong (line 38) | uLong filetime(f, tmzip, dt)
function uLong (line 62) | uLong filetime(f, tmzip, dt)
function uLong (line 104) | uLong filetime(f, tmzip, dt)
function check_exist_file (line 117) | int check_exist_file(filename)
function do_banner (line 130) | void do_banner()
function do_help (line 136) | void do_help()
function getFileCrc (line 148) | int getFileCrc(const char* filenameinzip,void*buf,unsigned long size_buf...
function main (line 186) | int main(argc,argv)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/mztools.c
function unzRepair (line 30) | extern int ZEXPORT unzRepair(file, fileOut, fileOutTmp, nRecovered, byte...
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/unzip.c
type unz_file_info_internal (line 94) | typedef struct unz_file_info_internal_s
type file_in_zip_read_info_s (line 102) | typedef struct
type unz_s (line 128) | typedef struct
function local (line 171) | local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
function local (line 201) | local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
function local (line 229) | local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
function local (line 262) | local int strcmpcasenosensitive_internal (fileName1,fileName2)
function unzStringFileNameCompare (line 305) | extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSe...
function local (line 331) | local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
function unzFile (line 397) | extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
function unzFile (line 500) | extern unzFile ZEXPORT unzOpen (path)
function unzClose (line 511) | extern int ZEXPORT unzClose (file)
function unzGetGlobalInfo (line 532) | extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
function local (line 548) | local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
function local (line 577) | local int unzlocal_GetCurrentFileInfoInternal (file,
function unzGetCurrentFileInfo (line 744) | extern int ZEXPORT unzGetCurrentFileInfo (file,
function unzGoToFirstFile (line 768) | extern int ZEXPORT unzGoToFirstFile (file)
function unzGoToNextFile (line 790) | extern int ZEXPORT unzGoToNextFile (file)
function unzLocateFile (line 824) | extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
function unzGetFilePos (line 903) | extern int ZEXPORT unzGetFilePos(file, file_pos)
function unzGoToFilePos (line 921) | extern int ZEXPORT unzGoToFilePos(file, file_pos)
function local (line 957) | local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
function unzOpenCurrentFile3 (line 1047) | extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
function unzOpenCurrentFile (line 1192) | extern int ZEXPORT unzOpenCurrentFile (file)
function unzOpenCurrentFilePassword (line 1198) | extern int ZEXPORT unzOpenCurrentFilePassword (file, password)
function unzOpenCurrentFile2 (line 1205) | extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw)
function unzReadCurrentFile (line 1224) | extern int ZEXPORT unzReadCurrentFile (file, buf, len)
function z_off_t (line 1385) | extern z_off_t ZEXPORT unztell (file)
function ZEXPORT (line 1405) | extern int ZEXPORT unzeof (file)
function unzGetLocalExtrafield (line 1438) | extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
function unzCloseCurrentFile (line 1489) | extern int ZEXPORT unzCloseCurrentFile (file)
function unzGetGlobalComment (line 1532) | extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
function uLong (line 1564) | extern uLong ZEXPORT unzGetOffset (file)
function unzSetOffset (line 1580) | extern int ZEXPORT unzSetOffset (file, pos)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/unzip.h
type unzFile__ (line 63) | typedef struct TagunzFile__ { int unused; } unzFile__;
type unzFile__ (line 64) | typedef unzFile__ *unzFile;
type voidp (line 66) | typedef voidp unzFile;
type tm_unz (line 80) | typedef struct tm_unz_s
type unz_global_info (line 92) | typedef struct unz_global_info_s
type unz_file_info (line 101) | typedef struct unz_file_info_s
type unz_file_pos (line 210) | typedef struct unz_file_pos_s
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/zip.c
type linkedlist_datablock_internal (line 97) | typedef struct linkedlist_datablock_internal_s
type linkedlist_data (line 106) | typedef struct linkedlist_data_s
type curfile_info (line 113) | typedef struct
type zip_internal (line 138) | typedef struct
function local (line 161) | local linkedlist_datablock_internal* allocate_new_datablock()
function local (line 175) | local void free_datablock(ldi)
function local (line 186) | local void init_linkedlist(ll)
function local (line 192) | local void free_linkedlist(ll)
function local (line 200) | local int add_data_in_datablock(ll,buf,len)
function local (line 266) | local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte)
function local (line 294) | local void ziplocal_putValue_inmemory (dest, x, nbByte)
function local (line 318) | local uLong ziplocal_TmzDateToDosDate(ptm,dosDate)
function local (line 340) | local int ziplocal_getByte(pzlib_filefunc_def,filestream,pi)
function local (line 370) | local int ziplocal_getShort (pzlib_filefunc_def,filestream,pX)
function local (line 398) | local int ziplocal_getLong (pzlib_filefunc_def,filestream,pX)
function local (line 440) | local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream)
function zipFile (line 499) | extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_...
function zipFile (line 683) | extern zipFile ZEXPORT zipOpen (pathname, append)
function zipOpenNewFileInZip3 (line 690) | extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi,
function zipOpenNewFileInZip2 (line 899) | extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi,
function zipOpenNewFileInZip (line 923) | extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
function local (line 944) | local int zipFlushWriteBuffer(zi)
function zipWriteInFileInZip (line 966) | extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
function zipCloseFileInZipRaw (line 1031) | extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32)
function zipCloseFileInZip (line 1127) | extern int ZEXPORT zipCloseFileInZip (file)
function zipClose (line 1133) | extern int ZEXPORT zipClose (file, global_comment)
FILE: Xcode/AltServer-Windows/AltSign-Windows/Dependencies/minizip/zip.h
type zipFile__ (line 64) | typedef struct TagzipFile__ { int unused; } zipFile__;
type zipFile__ (line 65) | typedef zipFile__ *zipFile;
type voidp (line 67) | typedef voidp zipFile;
type tm_zip (line 87) | typedef struct tm_zip_s
type zip_fileinfo (line 97) | typedef struct
FILE: Xcode/AltServer-Windows/AltSign-Windows/Device.hpp
class Device (line 20) | class Device
FILE: Xcode/AltServer-Windows/AltSign-Windows/Error.hpp
type SignErrorCode (line 15) | enum class SignErrorCode
type APIErrorCode (line 27) | enum class APIErrorCode
type ArchiveErrorCode (line 56) | enum class ArchiveErrorCode
class Error (line 64) | class Error: public std::exception
method Error (line 67) | Error(int code) : _code(code)
method localizedDescription (line 71) | virtual std::string localizedDescription() const
method code (line 76) | int code() const
method domain (line 81) | virtual std::string domain() const
class LocalizedError (line 96) | class LocalizedError: public Error
method LocalizedError (line 99) | LocalizedError(int code, std::string localizedDescription) : Error(cod...
method localizedDescription (line 103) | virtual std::string localizedDescription() const
class APIError (line 112) | class APIError : public Error
method APIError (line 115) | APIError(APIErrorCode code) : Error((int)code)
method domain (line 119) | virtual std::string domain() const
method localizedDescription (line 124) | virtual std::string localizedDescription() const
class SignError (line 185) | class SignError: public Error
method SignError (line 188) | SignError(SignErrorCode code) : Error((int)code)
method domain (line 192) | virtual std::string domain() const
method localizedDescription (line 197) | virtual std::string localizedDescription() const
class ArchiveError (line 228) | class ArchiveError: public Error
method ArchiveError (line 231) | ArchiveError(ArchiveErrorCode code) : Error((int)code)
method domain (line 235) | virtual std::string domain() const
method localizedDescription (line 240) | virtual std::string localizedDescription() const
FILE: Xcode/AltServer-Windows/AltSign-Windows/ProvisioningProfile.cpp
function format_timeval (line 20) | ssize_t format_timeval(struct timeval *tv, char *buf, size_t sz)
function plist_t (line 370) | plist_t ProvisioningProfile::entitlements() const
FILE: Xcode/AltServer-Windows/AltSign-Windows/ProvisioningProfile.hpp
class ProvisioningProfile (line 22) | class ProvisioningProfile
FILE: Xcode/AltServer-Windows/AltSign-Windows/Signer.cpp
function CertificatesContent (line 28) | std::string CertificatesContent(std::shared_ptr<Certificate> altCertific...
FILE: Xcode/AltServer-Windows/AltSign-Windows/Signer.hpp
class Signer (line 22) | class Signer
FILE: Xcode/AltServer-Windows/AltSign-Windows/Team.hpp
class Account (line 20) | class Account
class Team (line 22) | class Team
type Type (line 25) | enum Type
FILE: ldid2/ldid.cpp
type Iterator_ (line 139) | struct Iterator_ {
class _Scope (line 150) | class _Scope {
class Scope (line 154) | class Scope :
method Scope (line 161) | Scope(const Function_ &function) :
function _scope (line 172) | Scope<Function_> _scope(const Function_ &function) {
type fat_header (line 205) | struct fat_header {
type fat_arch (line 213) | struct fat_arch {
type mach_header (line 221) | struct mach_header {
type load_command (line 245) | struct load_command {
type dylib (line 277) | struct dylib {
type dylib_command (line 284) | struct dylib_command {
type dylib (line 287) | struct dylib
type uuid_command (line 290) | struct uuid_command {
type symtab_command (line 296) | struct symtab_command {
type dyld_info_command (line 305) | struct dyld_info_command {
type dysymtab_command (line 320) | struct dysymtab_command {
type dylib_table_of_contents (line 343) | struct dylib_table_of_contents {
type dylib_module (line 348) | struct dylib_module {
type dylib_reference (line 364) | struct dylib_reference {
type relocation_info (line 369) | struct relocation_info {
type nlist (line 378) | struct nlist {
type segment_command (line 390) | struct segment_command {
type segment_command_64 (line 404) | struct segment_command_64 {
type section (line 418) | struct section {
type section_64 (line 432) | struct section_64 {
type linkedit_data_command (line 447) | struct linkedit_data_command {
type encryption_info_command (line 454) | struct encryption_info_command {
function read (line 480) | static std::streamsize read(std::streambuf &stream, void *data, size_t s...
function get (line 486) | static inline void get(std::streambuf &stream, void *data, size_t size) {
function put (line 490) | static inline void put(std::streambuf &stream, const void *data, size_t ...
function put (line 494) | static inline void put(std::streambuf &stream, const void *data, size_t ...
function most (line 504) | static size_t most(std::streambuf &stream, void *data, size_t size) {
function pad (line 513) | static inline void pad(std::streambuf &stream, size_t size) {
function Type_ (line 520) | Type_ Align(Type_ value, size_t align) {
function Swap_ (line 530) | static inline uint16_t Swap_(uint16_t value) {
function Swap_ (line 536) | static inline uint32_t Swap_(uint32_t value) {
function Swap_ (line 544) | static inline uint64_t Swap_(uint64_t value) {
function Swap_ (line 551) | static inline int16_t Swap_(int16_t value) {
function Swap_ (line 555) | static inline int32_t Swap_(int32_t value) {
function Swap_ (line 559) | static inline int64_t Swap_(int64_t value) {
function Swap (line 565) | static inline uint16_t Swap(uint16_t value) {
function Swap (line 569) | static inline uint32_t Swap(uint32_t value) {
function Swap (line 573) | static inline uint64_t Swap(uint64_t value) {
function Swap (line 577) | static inline int16_t Swap(int16_t value) {
function Swap (line 581) | static inline int32_t Swap(int32_t value) {
function Swap (line 585) | static inline int64_t Swap(int64_t value) {
class Swapped (line 589) | class Swapped {
method Swapped (line 593) | Swapped() :
method Swapped (line 599) | Swapped(bool swapped) :
method Type_ (line 605) | Type_ Swap(Type_ value) const {
class Data (line 610) | class Data :
method Data (line 618) | Data(void *base, size_t size) :
method GetSize (line 628) | size_t GetSize() const {
class MachHeader (line 633) | class MachHeader :
type mach_header (line 639) | struct mach_header
type load_command (line 640) | struct load_command
method MachHeader (line 643) | MachHeader(void *base, size_t size) :
method Bits64 (line 677) | bool Bits64() const {
type mach_header (line 681) | struct mach_header
type mach_header (line 685) | struct mach_header
method GetCPUType (line 689) | uint32_t GetCPUType() const {
method GetCPUSubtype (line 693) | uint32_t GetCPUSubtype() const {
type load_command (line 697) | struct load_command
method GetLoadCommands (line 701) | std::vector<struct load_command *> GetLoadCommands() const {
method ForSection (line 713) | void ForSection(const ldid::Functor<void (const char *, const char *, ...
method Target_ (line 735) | Target_ *GetOffset(uint32_t offset) const {
class FatMachHeader (line 740) | class FatMachHeader :
method FatMachHeader (line 747) | FatMachHeader(void *base, size_t size, fat_arch *fat_arch) :
method fat_arch (line 753) | fat_arch *GetFatArch() const {
class FatHeader (line 758) | class FatHeader :
method FatHeader (line 766) | FatHeader(void *base, size_t size) :
method IsFat (line 794) | bool IsFat() const {
type fat_header (line 798) | struct fat_header
type fat_header (line 802) | struct fat_header
type BlobIndex (line 831) | struct BlobIndex {
type Blob (line 836) | struct Blob {
type SuperBlob (line 841) | struct SuperBlob {
type Blob (line 842) | struct Blob
type BlobIndex (line 844) | struct BlobIndex
type CodeDirectory (line 847) | struct CodeDirectory {
type Algorithm (line 870) | struct Algorithm {
method Algorithm (line 874) | Algorithm(size_t size, uint8_t type) :
type AlgorithmSHA1 (line 887) | struct AlgorithmSHA1 :
method AlgorithmSHA1 (line 890) | AlgorithmSHA1() :
type AlgorithmSHA256 (line 913) | struct AlgorithmSHA256 :
method AlgorithmSHA256 (line 916) | AlgorithmSHA256() :
type CodesignAllocation (line 952) | struct CodesignAllocation {
method CodesignAllocation (line 960) | CodesignAllocation(FatMachHeader mach_header, size_t offset, size_t si...
class File (line 972) | class File {
method File (line 977) | File() :
method open (line 987) | void open(const char *path, int flags) {
method file (line 992) | int file() const {
class Map (line 997) | class Map {
method clear (line 1003) | void clear() {
method Map (line 1012) | Map() :
method Map (line 1018) | Map(const std::string &path, int oflag, int pflag, int mflag) :
method Map (line 1024) | Map(const std::string &path, bool edit) :
method empty (line 1034) | bool empty() const {
method open (line 1038) | void open(const std::string &path, int oflag, int pflag, int mflag) {
method open (line 1051) | void open(const std::string &path, bool edit) {
method size (line 1062) | size_t size() const {
type ldid (line 1072) | namespace ldid {
function Analyze (line 1074) | std::string Analyze(const void *data, size_t size) {
function Allocate (line 1102) | static void Allocate(const void *idata, size_t isize, std::streambuf &...
function Hash (line 1603) | Hash Sign(const void *idata, size_t isize, std::streambuf &output, con...
function Unsign (line 1815) | static void Unsign(void *idata, size_t isize, std::streambuf &output, ...
function readlink (line 1839) | std::string readlink(const std::string &path) {
type stat (line 1871) | struct stat
function copy (line 2024) | static void copy(std::streambuf &source, std::streambuf &target, size_...
function plist_t (line 2039) | static plist_t plist(const std::string &data) {
function plist_d (line 2049) | static void plist_d(std::streambuf &buffer, size_t length, const Funct...
function plist_s (line 2058) | static std::string plist_s(plist_t node) {
type Mode (line 2068) | enum Mode {
class Expression (line 2076) | class Expression {
method Expression (line 2082) | Expression(const std::string &code) {
type Rule (line 2107) | struct Rule {
method Rule (line 2114) | Rule(unsigned weight, Mode mode, const std::string &code) :
method Rule (line 2121) | Rule(const Rule &rhs) :
method Compile (line 2128) | void Compile() const {
type RuleCode (line 2146) | struct RuleCode {
function Hash (line 2153) | static Hash Sign(const uint8_t *prefix, size_t size, std::streambuf &b...
function Bundle (line 2166) | Bundle Sign(const std::string &root, Folder &folder, const std::string...
function Bundle (line 2446) | Bundle Sign(const std::string &root, Folder &folder, const std::string...
function insert (line 1301) | static void insert(Blobs &blobs, uint32_t slot, const std::stringbuf &bu...
function put (line 1317) | static size_t put(std::streambuf &output, uint32_t magic, const Blobs &b...
class Buffer (line 1345) | class Buffer {
method Buffer (line 1350) | Buffer(BIO *bio) :
method Buffer (line 1356) | Buffer() :
method Buffer (line 1361) | Buffer(const char *data, size_t size) :
method Buffer (line 1366) | Buffer(const std::string &data) :
method Buffer (line 1371) | Buffer(CMS_ContentInfo *cms) :
class Stuff (line 1392) | class Stuff {
method Stuff (line 1400) | Stuff(BIO *bio) :
method Stuff (line 1410) | Stuff(const std::string &data) :
class Signature (line 1439) | class Signature {
method Signature (line 1444) | Signature(const Stuff &stuff, const Buffer &data)
class NullBuffer (line 1470) | class NullBuffer :
method xsputn (line 1474) | virtual std::streamsize xsputn(const char_type *data, std::streamsize ...
method int_type (line 1478) | virtual int_type overflow(int_type next) {
class Digest (line 1483) | class Digest {
class HashBuffer (line 1488) | class HashBuffer :
method HashBuffer (line 1498) | HashBuffer(ldid::Hash &hash) :
method xsputn (line 1510) | virtual std::streamsize xsputn(const char_type *data, std::streamsize ...
method int_type (line 1516) | virtual int_type overflow(int_type next) {
class HashProxy (line 1525) | class HashProxy :
method HashProxy (line 1532) | HashProxy(ldid::Hash &hash, std::streambuf &buffer) :
method xsputn (line 1538) | virtual std::streamsize xsputn(const char_type *data, std::streamsize ...
function Starts (line 1545) | static bool Starts(const std::string &lhs, const std::string &rhs) {
class Split (line 1549) | class Split {
method Split (line 1554) | Split(const std::string &path) {
function mkdir_p (line 1565) | static void mkdir_p(const std::string &path) {
function Temporary (line 1581) | static std::string Temporary(std::filebuf &file, const Split &split) {
function Commit (line 1588) | static void Commit(const std::string &path, const std::string &temp) {
type ldid (line 1601) | namespace ldid {
function Analyze (line 1074) | std::string Analyze(const void *data, size_t size) {
function Allocate (line 1102) | static void Allocate(const void *idata, size_t isize, std::streambuf &...
function Hash (line 1603) | Hash Sign(const void *idata, size_t isize, std::streambuf &output, con...
function Unsign (line 1815) | static void Unsign(void *idata, size_t isize, std::streambuf &output, ...
function readlink (line 1839) | std::string readlink(const std::string &path) {
type stat (line 1871) | struct stat
function copy (line 2024) | static void copy(std::streambuf &source, std::streambuf &target, size_...
function plist_t (line 2039) | static plist_t plist(const std::string &data) {
function plist_d (line 2049) | static void plist_d(std::streambuf &buffer, size_t length, const Funct...
function plist_s (line 2058) | static std::string plist_s(plist_t node) {
type Mode (line 2068) | enum Mode {
class Expression (line 2076) | class Expression {
method Expression (line 2082) | Expression(const std::string &code) {
type Rule (line 2107) | struct Rule {
method Rule (line 2114) | Rule(unsigned weight, Mode mode, const std::string &code) :
method Rule (line 2121) | Rule(const Rule &rhs) :
method Compile (line 2128) | void Compile() const {
type RuleCode (line 2146) | struct RuleCode {
function Hash (line 2153) | static Hash Sign(const uint8_t *prefix, size_t size, std::streambuf &b...
function Bundle (line 2166) | Bundle Sign(const std::string &root, Folder &folder, const std::string...
function Bundle (line 2446) | Bundle Sign(const std::string &root, Folder &folder, const std::string...
function main (line 2456) | int main(int argc, char *argv[]) {
FILE: ldid2/ldid.hpp
type ldid (line 12) | namespace ldid {
class Functor (line 17) | class Functor
class FunctorImpl (line 26) | class FunctorImpl
function fun (line 47) | FunctorImpl<decltype(&Function_::operator())> fun(const Function_ &val...
class Folder (line 51) | class Folder {
class DiskFolder (line 59) | class DiskFolder :
class SubFolder (line 82) | class SubFolder :
class UnionFolder (line 98) | class UnionFolder :
type Reset (line 102) | struct Reset {
type Hash (line 141) | struct Hash {
type Bundle (line 146) | struct Bundle {
class Functor<Type_ (Args_...)> (line 20) | class Functor<Type_ (Args_...)> {
class FunctorImpl<Type_ (Value_::*)(Args_...) const> (line 29) | class FunctorImpl<Type_ (Value_::*)(Args_...) const> :
method FunctorImpl (line 36) | FunctorImpl(const Value_ &value) :
method Type_ (line 41) | virtual Type_ operator ()(Args_... args) const {
FILE: ldid2/libplist/cython/plist_util.c
function datetime_to_ints (line 6) | void datetime_to_ints(PyObject* obj, int32_t* sec, int32_t* usec) {
function PyObject (line 25) | PyObject* ints_to_datetime(int32_t sec, int32_t usec) {
function check_datetime (line 34) | int check_datetime(PyObject* ob) {
FILE: ldid2/libplist/fuzz/bplist_fuzzer.cc
function LLVMFuzzerTestOneInput (line 25) | int LLVMFuzzerTestOneInput(const unsigned char* data, size_t size)
FILE: ldid2/libplist/fuzz/xplist_fuzzer.cc
function LLVMFuzzerTestOneInput (line 25) | int LLVMFuzzerTestOneInput(const unsigned char* data, size_t size)
FILE: ldid2/libplist/include/plist/Array.h
function namespace (line 28) | namespace PList
FILE: ldid2/libplist/include/plist/Boolean.h
function namespace (line 27) | namespace PList
FILE: ldid2/libplist/include/plist/Data.h
function namespace (line 28) | namespace PList
FILE: ldid2/libplist/include/plist/Date.h
function namespace (line 29) | namespace PList
FILE: ldid2/libplist/include/plist/Dictionary.h
function namespace (line 29) | namespace PList
FILE: ldid2/libplist/include/plist/Integer.h
function namespace (line 27) | namespace PList
FILE: ldid2/libplist/include/plist/Key.h
function namespace (line 28) | namespace PList
FILE: ldid2/libplist/include/plist/Node.h
function namespace (line 28) | namespace PList
FILE: ldid2/libplist/include/plist/Real.h
function namespace (line 27) | namespace PList
FILE: ldid2/libplist/include/plist/String.h
function namespace (line 28) | namespace PList
FILE: ldid2/libplist/include/plist/Structure.h
function namespace (line 29) | namespace PList
FILE: ldid2/libplist/include/plist/Uid.h
function namespace (line 27) | namespace PList
FILE: ldid2/libplist/include/plist/plist.h
type __int8 (line 33) | typedef __int8 int8_t;
type __int16 (line 34) | typedef __int16 int16_t;
type __int32 (line 35) | typedef __int32 int32_t;
type __int64 (line 36) | typedef __int64 int64_t;
type plist_type (line 104) | typedef enum
FILE: ldid2/libplist/libcnary/cnary.c
function main (line 28) | int main(int argc, char* argv[]) {
FILE: ldid2/libplist/libcnary/include/node.h
type node_list_t (line 35) | struct node_list_t
type node_t (line 38) | typedef struct node_t {
type node_t (line 50) | struct node_t
type node_t (line 51) | struct node_t
type node_t (line 51) | struct node_t
type node_t (line 53) | struct node_t
type node_t (line 53) | struct node_t
type node_t (line 54) | struct node_t
type node_t (line 54) | struct node_t
type node_t (line 55) | struct node_t
type node_t (line 55) | struct node_t
type node_t (line 57) | struct node_t
type node_t (line 58) | struct node_t
type node_t (line 59) | struct node_t
type node_t (line 60) | struct node_t
type node_t (line 61) | struct node_t
type node_t (line 62) | struct node_t
type node_t (line 67) | struct node_t
FILE: ldid2/libplist/libcnary/include/node_list.h
type node_t (line 31) | struct node_t
type node_list_t (line 34) | typedef struct node_list_t {
type node_list_t (line 44) | struct node_list_t
type node_list_t (line 45) | struct node_list_t
FILE: ldid2/libplist/libcnary/include/object.h
type object_t (line 35) | typedef struct object_t {
FILE: ldid2/libplist/libcnary/node.c
function node_destroy (line 30) | void node_destroy(node_t* node) {
function node_t (line 46) | node_t* node_create(node_t* parent, void* data) {
function node_attach (line 77) | int node_attach(node_t* parent, node_t* child) {
function node_detach (line 90) | int node_detach(node_t* parent, node_t* child) {
function node_insert (line 99) | int node_insert(node_t* parent, unsigned int node_index, node_t* child)
function _node_debug (line 113) | static void _node_debug(node_t* node, unsigned int depth) {
function node_debug (line 136) | void node_debug(node_t* node)
function node_n_children (line 141) | unsigned int node_n_children(struct node_t* node)
function node_t (line 147) | node_t* node_nth_child(struct node_t* node, unsigned int n)
function node_t (line 165) | node_t* node_first_child(struct node_t* node)
function node_t (line 171) | node_t* node_prev_sibling(struct node_t* node)
function node_t (line 177) | node_t* node_next_sibling(struct node_t* node)
function node_child_position (line 183) | int node_child_position(struct node_t* parent, node_t* child)
function node_t (line 202) | node_t* node_copy_deep(node_t* node, copy_func_t copy_func)
FILE: ldid2/libplist/libcnary/node_list.c
function node_list_destroy (line 31) | void node_list_destroy(node_list_t* list) {
function node_list_t (line 35) | node_list_t* node_list_create() {
function node_list_add (line 49) | int node_list_add(node_list_t* list, node_t* node) {
function node_list_insert (line 76) | int node_list_insert(node_list_t* list, unsigned int node_index, node_t*...
function node_list_remove (line 124) | int node_list_remove(node_list_t* list, node_t* node) {
FILE: ldid2/libplist/src/Array.cpp
type PList (line 27) | namespace PList
function array_fill (line 35) | static void array_fill(Array *_this, std::vector<Node*> array, plist_t...
function Array (line 61) | Array& Array::operator=(PList::Array& a)
function Node (line 83) | Node* Array::Clone() const
function Node (line 88) | Node* Array::operator[](unsigned int array_index)
FILE: ldid2/libplist/src/Boolean.cpp
type PList (line 24) | namespace PList
function Boolean (line 40) | Boolean& Boolean::operator=(PList::Boolean& b)
function Node (line 56) | Node* Boolean::Clone() const
FILE: ldid2/libplist/src/Data.cpp
type PList (line 24) | namespace PList
function Data (line 41) | Data& Data::operator=(PList::Data& b)
function Node (line 57) | Node* Data::Clone() const
FILE: ldid2/libplist/src/Date.cpp
type PList (line 24) | namespace PList
function Date (line 41) | Date& Date::operator=(PList::Date& d)
function Node (line 57) | Node* Date::Clone() const
function timeval (line 67) | timeval Date::GetValue() const
FILE: ldid2/libplist/src/Dictionary.cpp
type PList (line 24) | namespace PList
function dictionary_fill (line 31) | static void dictionary_fill(Dictionary *_this, std::map<std::string,No...
function Dictionary (line 65) | Dictionary& Dictionary::operator=(PList::Dictionary& d)
function Node (line 87) | Node* Dictionary::Clone() const
function Node (line 92) | Node* Dictionary::operator[](const std::string& key)
FILE: ldid2/libplist/src/Integer.cpp
type PList (line 24) | namespace PList
function Integer (line 40) | Integer& Integer::operator=(PList::Integer& i)
function Node (line 56) | Node* Integer::Clone() const
FILE: ldid2/libplist/src/Key.cpp
type PList (line 24) | namespace PList
function Key (line 40) | Key& Key::operator=(PList::Key& k)
function Node (line 56) | Node* Key::Clone() const
FILE: ldid2/libplist/src/Node.cpp
type PList (line 35) | namespace PList
function plist_type (line 101) | plist_type Node::GetType() const
function plist_t (line 110) | plist_t Node::GetPlist() const
function Node (line 115) | Node* Node::GetParent() const
function Node (line 120) | Node* Node::FromPlist(plist_t node, Node* parent)
FILE: ldid2/libplist/src/Real.cpp
type PList (line 24) | namespace PList
function Real (line 40) | Real& Real::operator=(PList::Real& d)
function Node (line 56) | Node* Real::Clone() const
FILE: ldid2/libplist/src/String.cpp
type PList (line 24) | namespace PList
function String (line 40) | String& String::operator=(PList::String& s)
function Node (line 56) | Node* String::Clone() const
FILE: ldid2/libplist/src/Structure.cpp
type PList (line 24) | namespace PList
function Structure (line 88) | static Structure* ImportStruct(plist_t root)
function Structure (line 105) | Structure* Structure::FromXml(const std::string& xml)
function Structure (line 113) | Structure* Structure::FromBin(const std::vector<char>& bin)
FILE: ldid2/libplist/src/Uid.cpp
type PList (line 24) | namespace PList
function Uid (line 40) | Uid& Uid::operator=(PList::Uid& i)
function Node (line 56) | Node* Uid::Clone() const
FILE: ldid2/libplist/src/base64.c
function base64encode (line 46) | size_t base64encode(char *outbuf, const unsigned char *buf, size_t size)
FILE: ldid2/libplist/src/bplist.c
type bplist_trailer_t (line 50) | typedef struct __attribute__((packed)) {
function uint64_mul_overflow (line 187) | static int uint64_mul_overflow(uint64_t a, uint64_t b, uint64_t *res)
type bplist_data (line 196) | struct bplist_data {
function plist_bin_init (line 214) | void plist_bin_init(void)
function plist_bin_deinit (line 225) | void plist_bin_deinit(void)
type bplist_data (line 230) | struct bplist_data
function plist_t (line 232) | static plist_t parse_uint_node(const char **bnode, uint8_t size)
function plist_t (line 262) | static plist_t parse_real_node(const char **bnode, uint8_t size)
function plist_t (line 289) | static plist_t parse_date_node(const char **bnode, uint8_t size)
function plist_t (line 299) | static plist_t parse_string_node(const char **bnode, uint64_t size)
function plist_t (line 380) | static plist_t parse_unicode_node(const char **bnode, uint64_t size)
function plist_t (line 404) | static plist_t parse_data_node(const char **bnode, uint64_t size)
function plist_t (line 421) | static plist_t parse_dict_node(struct bplist_data *bplist, const char** ...
function plist_t (line 500) | static plist_t parse_array_node(struct bplist_data *bplist, const char**...
function plist_t (line 544) | static plist_t parse_uid_node(const char **bnode, uint8_t size)
function plist_t (line 562) | static plist_t parse_bin_node(struct bplist_data *bplist, const char** o...
function plist_t (line 716) | static plist_t parse_bin_node_at_index(struct bplist_data *bplist, uint3...
function PLIST_API (line 770) | PLIST_API void plist_from_bin(const char *plist_bin, uint32_t length, pl...
function plist_data_hash (line 865) | static unsigned int plist_data_hash(const void* key)
type serialize_s (line 911) | struct serialize_s
function serialize_plist (line 917) | static void serialize_plist(node_t* node, void* data)
function write_int (line 950) | static void write_int(bytearray_t * bplist, uint64_t val)
function write_uint (line 964) | static void write_uint(bytearray_t * bplist, uint64_t val)
function write_real (line 975) | static void write_real(bytearray_t * bplist, double val)
function write_date (line 989) | static void write_date(bytearray_t * bplist, double val)
function write_raw_data (line 997) | static void write_raw_data(bytearray_t * bplist, uint8_t mark, uint8_t *...
function write_data (line 1008) | static void write_data(bytearray_t * bplist, uint8_t * val, uint64_t size)
function write_string (line 1013) | static void write_string(bytearray_t * bplist, char *val, uint64_t size)
function write_unicode (line 1077) | static void write_unicode(bytearray_t * bplist, char *val, uint64_t size)
function write_array (line 1088) | static void write_array(bytearray_t * bplist, node_t* node, hashtable_t*...
function write_dict (line 1107) | static void write_dict(bytearray_t * bplist, node_t* node, hashtable_t* ...
function write_uid (line 1132) | static void write_uid(bytearray_t * bplist, uint64_t val)
function is_ascii_string (line 1147) | static int is_ascii_string(char* s, int len)
function PLIST_API (line 1161) | PLIST_API void plist_to_bin(plist_t plist, char **plist_bin, uint32_t * ...
FILE: ldid2/libplist/src/bytearray.c
function bytearray_t (line 26) | bytearray_t *byte_array_new(size_t initial)
function byte_array_free (line 35) | void byte_array_free(bytearray_t *ba)
function byte_array_grow (line 44) | void byte_array_grow(bytearray_t *ba, size_t amount)
function byte_array_append (line 51) | void byte_array_append(bytearray_t *ba, void *buf, size_t len)
FILE: ldid2/libplist/src/bytearray.h
type bytearray_t (line 25) | typedef struct bytearray_t {
FILE: ldid2/libplist/src/hashtable.c
function hashtable_t (line 23) | hashtable_t* hash_table_new(hash_func_t hash_func, compare_func_t compar...
function hash_table_destroy (line 37) | void hash_table_destroy(hashtable_t *ht)
function hash_table_insert (line 58) | void hash_table_insert(hashtable_t* ht, void *key, void *value)
function hash_table_remove (line 111) | void hash_table_remove(hashtable_t* ht, void *key)
FILE: ldid2/libplist/src/hashtable.h
type hashentry_t (line 25) | typedef struct hashentry_t {
type hashtable_t (line 35) | typedef struct hashtable_t {
FILE: ldid2/libplist/src/plist.c
function internal_plist_init (line 48) | static void internal_plist_init(void)
function internal_plist_deinit (line 54) | static void internal_plist_deinit(void)
type thread_once_t (line 62) | typedef volatile struct {
function thread_once (line 70) | void thread_once(thread_once_t *once_control, void (*init_routine)(void))
function BOOL (line 82) | BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved)
function libplist_initialize (line 102) | static void __attribute__((constructor)) libplist_initialize(void)
function libplist_deinitialize (line 107) | static void __attribute__((destructor)) libplist_deinitialize(void)
function PLIST_API (line 115) | PLIST_API int plist_is_binary(const char *plist_data, uint32_t length)
function PLIST_API (line 125) | PLIST_API void plist_from_memory(const char *plist_data, uint32_t length...
function plist_t (line 139) | plist_t plist_new_node(plist_data_t data)
function plist_data_t (line 144) | plist_data_t plist_get_data(const plist_t node)
function plist_data_t (line 151) | plist_data_t plist_new_plist_data(void)
function dict_key_hash (line 157) | static unsigned int dict_key_hash(const void *data)
function dict_key_compare (line 169) | static int dict_key_compare(const void* a, const void* b)
function plist_free_data (line 182) | void plist_free_data(plist_data_t data)
function plist_free_node (line 208) | static int plist_free_node(node_t* node)
function PLIST_API (line 228) | PLIST_API plist_t plist_new_dict(void)
function PLIST_API (line 235) | PLIST_API plist_t plist_new_array(void)
function plist_t (line 243) | static plist_t plist_new_key(const char *val)
function PLIST_API (line 252) | PLIST_API plist_t plist_new_string(const char *val)
function PLIST_API (line 261) | PLIST_API plist_t plist_new_bool(uint8_t val)
function PLIST_API (line 270) | PLIST_API plist_t plist_new_uint(uint64_t val)
function PLIST_API (line 279) | PLIST_API plist_t plist_new_uid(uint64_t val)
function PLIST_API (line 288) | PLIST_API plist_t plist_new_real(double val)
function PLIST_API (line 297) | PLIST_API plist_t plist_new_data(const char *val, uint64_t length)
function PLIST_API (line 307) | PLIST_API plist_t plist_new_date(int32_t sec, int32_t usec)
function PLIST_API (line 316) | PLIST_API void plist_free(plist_t plist)
function plist_copy_node (line 324) | static void plist_copy_node(node_t *node, void *parent_node_ptr)
function PLIST_API (line 394) | PLIST_API plist_t plist_copy(plist_t node)
function PLIST_API (line 401) | PLIST_API uint32_t plist_array_get_size(plist_t node)
function PLIST_API (line 411) | PLIST_API plist_t plist_array_get_item(plist_t node, uint32_t n)
function PLIST_API (line 426) | PLIST_API uint32_t plist_array_get_item_index(plist_t node)
function _plist_array_post_insert (line 436) | static void _plist_array_post_insert(plist_t node, plist_t item, long n)
function PLIST_API (line 458) | PLIST_API void plist_array_set_item(plist_t node, plist_t item, uint32_t n)
function PLIST_API (line 481) | PLIST_API void plist_array_append_item(plist_t node, plist_t item)
function PLIST_API (line 491) | PLIST_API void plist_array_insert_item(plist_t node, plist_t item, uint3...
function PLIST_API (line 501) | PLIST_API void plist_array_remove_item(plist_t node, uint32_t n)
function PLIST_API (line 518) | PLIST_API void plist_array_item_remove(plist_t node)
function PLIST_API (line 533) | PLIST_API void plist_array_new_iter(plist_t node, plist_array_iter *iter)
function PLIST_API (line 543) | PLIST_API void plist_array_next_item(plist_t node, plist_array_iter iter...
function PLIST_API (line 563) | PLIST_API uint32_t plist_dict_get_size(plist_t node)
function PLIST_API (line 573) | PLIST_API void plist_dict_new_iter(plist_t node, plist_dict_iter *iter)
function PLIST_API (line 583) | PLIST_API void plist_dict_next_item(plist_t node, plist_dict_iter iter, ...
function PLIST_API (line 612) | PLIST_API void plist_dict_get_item_key(plist_t node, char **key)
function PLIST_API (line 621) | PLIST_API plist_t plist_dict_item_get_key(plist_t node)
function PLIST_API (line 632) | PLIST_API plist_t plist_dict_get_item(plist_t node, const char* key)
function PLIST_API (line 665) | PLIST_API void plist_dict_set_item(plist_t node, const char* key, plist_...
function PLIST_API (line 708) | PLIST_API void plist_dict_insert_item(plist_t node, const char* key, pli...
function PLIST_API (line 713) | PLIST_API void plist_dict_remove_item(plist_t node, const char* key)
function PLIST_API (line 732) | PLIST_API void plist_dict_merge(plist_t *target, plist_t source)
function PLIST_API (line 756) | PLIST_API plist_t plist_access_pathv(plist_t plist, uint32_t length, va_...
function PLIST_API (line 780) | PLIST_API plist_t plist_access_path(plist_t plist, uint32_t length, ...)
function plist_get_type_and_value (line 791) | static void plist_get_type_and_value(plist_t node, plist_type * type, vo...
function PLIST_API (line 831) | PLIST_API plist_t plist_get_parent(plist_t node)
function PLIST_API (line 836) | PLIST_API plist_type plist_get_node_type(plist_t node)
function PLIST_API (line 847) | PLIST_API void plist_get_key_val(plist_t node, char **val)
function PLIST_API (line 861) | PLIST_API void plist_get_string_val(plist_t node, char **val)
function PLIST_API (line 875) | PLIST_API void plist_get_bool_val(plist_t node, uint8_t * val)
function PLIST_API (line 887) | PLIST_API void plist_get_uint_val(plist_t node, uint64_t * val)
function PLIST_API (line 899) | PLIST_API void plist_get_uid_val(plist_t node, uint64_t * val)
function PLIST_API (line 911) | PLIST_API void plist_get_real_val(plist_t node, double *val)
function PLIST_API (line 923) | PLIST_API void plist_get_data_val(plist_t node, char **val, uint64_t * l...
function PLIST_API (line 933) | PLIST_API void plist_get_date_val(plist_t node, int32_t * sec, int32_t *...
function plist_data_compare (line 950) | int plist_data_compare(const void *a, const void *b)
function PLIST_API (line 1009) | PLIST_API char plist_compare_node_value(plist_t node_l, plist_t node_r)
function plist_set_element_val (line 1014) | static void plist_set_element_val(plist_t node, plist_type type, const v...
function PLIST_API (line 1068) | PLIST_API void plist_set_key_val(plist_t node, const char *val)
function PLIST_API (line 1078) | PLIST_API void plist_set_string_val(plist_t node, const char *val)
function PLIST_API (line 1083) | PLIST_API void plist_set_bool_val(plist_t node, uint8_t val)
function PLIST_API (line 1088) | PLIST_API void plist_set_uint_val(plist_t node, uint64_t val)
function PLIST_API (line 1093) | PLIST_API void plist_set_uid_val(plist_t node, uint64_t val)
function PLIST_API (line 1098) | PLIST_API void plist_set_real_val(plist_t node, double val)
function PLIST_API (line 1103) | PLIST_API void plist_set_data_val(plist_t node, const char *val, uint64_...
function PLIST_API (line 1108) | PLIST_API void plist_set_date_val(plist_t node, int32_t sec, int32_t usec)
FILE: ldid2/libplist/src/plist.h
type plist_data_s (line 50) | struct plist_data_s
type plist_data_s (line 65) | struct plist_data_s
FILE: ldid2/libplist/src/ptrarray.c
function ptrarray_t (line 24) | ptrarray_t *ptr_array_new(int capacity)
function ptr_array_free (line 34) | void ptr_array_free(ptrarray_t *pa)
function ptr_array_insert (line 43) | void ptr_array_insert(ptrarray_t *pa, void *data, long array_index)
function ptr_array_add (line 60) | void ptr_array_add(ptrarray_t *pa, void *data)
function ptr_array_remove (line 65) | void ptr_array_remove(ptrarray_t *pa, long array_index)
function ptr_array_set (line 77) | void ptr_array_set(ptrarray_t *pa, void *data, long array_index)
FILE: ldid2/libplist/src/ptrarray.h
type ptrarray_t (line 25) | typedef struct ptrarray_t {
FILE: ldid2/libplist/src/strbuf.h
type strbuf_t (line 27) | typedef struct bytearray_t strbuf_t;
FILE: ldid2/libplist/src/time64.c
function is_exception_century (line 163) | static int is_exception_century(Year year)
function cmp_date (line 176) | static int cmp_date( const struct TM* left, const struct tm* right ) {
function date_in_safe_range (line 214) | static int date_in_safe_range( const struct TM* date, const struct tm* m...
function Time64_T (line 229) | Time64_T timegm64(const struct TM *date) {
function check_tm (line 276) | static int check_tm(struct TM *tm)
function Year (line 312) | static Year cycle_offset(Year year)
function safe_year (line 347) | static int safe_year(const Year year)
function copy_tm_to_TM64 (line 392) | void copy_tm_to_TM64(const struct tm *src, struct TM *dest) {
function copy_TM64_to_tm (line 424) | void copy_TM64_to_tm(const struct TM *src, struct tm *dest) {
type tm (line 458) | struct tm
type tm (line 458) | struct tm
type tm (line 459) | struct tm
type tm (line 477) | struct tm
type tm (line 477) | struct tm
type tm (line 478) | struct tm
function Time64_T (line 494) | static Time64_T seconds_between_years(Year left_year, Year right_year) {
function Time64_T (line 519) | Time64_T mktime64(struct TM *input_date) {
function Time64_T (line 552) | Time64_T timelocal64(struct TM *date) {
type TM (line 557) | struct TM
type TM (line 557) | struct TM
type tm (line 572) | struct tm
type TM (line 684) | struct TM
type TM (line 684) | struct TM
type tm (line 687) | struct tm
type TM (line 688) | struct TM
function valid_tm_wday (line 774) | static int valid_tm_wday( const struct TM* date ) {
function valid_tm_mon (line 781) | static int valid_tm_mon( const struct TM* date ) {
type TM (line 789) | struct TM
type TM (line 807) | struct TM
FILE: ldid2/libplist/src/time64.h
type Int64 (line 10) | typedef long long Int64;
type Int64 (line 11) | typedef Int64 Time64_T;
type Int64 (line 12) | typedef Int64 Year;
type TM64 (line 16) | struct TM64 {
type TM (line 46) | struct TM
type TM (line 46) | struct TM
type TM (line 47) | struct TM
type TM (line 47) | struct TM
type TM (line 49) | struct TM
type TM (line 53) | struct TM
type TM (line 54) | struct TM
type TM (line 55) | struct TM
type tm (line 78) | struct tm
type TM (line 78) | struct TM
type TM (line 79) | struct TM
type tm (line 79) | struct tm
FILE: ldid2/libplist/src/time64_limits.h
type tm (line 22) | struct tm
type tm (line 40) | struct tm
type tm (line 60) | struct tm
type tm (line 78) | struct tm
FILE: ldid2/libplist/src/xplist.c
function plist_xml_init (line 87) | void plist_xml_init(void)
function plist_xml_deinit (line 98) | void plist_xml_deinit(void)
function dtostr (line 103) | static size_t dtostr(char *buf, size_t bufsize, double realval)
function node_to_xml (line 147) | static void node_to_xml(node_t* node, bytearray_t **outbuf, uint32_t depth)
function parse_date (line 396) | static void parse_date(const char *strval, struct TM *btime)
function num_digits_i (line 419) | static int num_digits_i(int64_t i)
function num_digits_u (line 440) | static int num_digits_u(uint64_t i)
function node_estimate_size (line 454) | static void node_estimate_size(node_t *node, uint64_t *size, uint32_t de...
function PLIST_API (line 534) | PLIST_API void plist_to_xml(plist_t plist, char **plist_xml, uint32_t * ...
type _parse_ctx (line 555) | struct _parse_ctx {
type _parse_ctx (line 560) | struct _parse_ctx
function parse_skip_ws (line 562) | static void parse_skip_ws(parse_ctx ctx)
function find_char (line 569) | static void find_char(parse_ctx ctx, char c, int skip_quotes)
function find_str (line 588) | static void find_str(parse_ctx ctx, const char *str, size_t len, int ski...
function find_next (line 610) | static void find_next(parse_ctx ctx, const char *nextchars, int numchars...
type text_part_t (line 635) | typedef struct {
function text_part_t (line 642) | static text_part_t* text_part_init(text_part_t* part, const char *begin,...
function text_parts_free (line 651) | static void text_parts_free(text_part_t *tp)
function text_part_t (line 660) | static text_part_t* text_part_append(text_part_t* parts, const char *beg...
function text_part_t (line 668) | static text_part_t* get_text_parts(parse_ctx ctx, const char* tag, size_...
function unescape_entities (line 796) | static int unescape_entities(char *str, size_t *length)
function node_from_xml (line 943) | static void node_from_xml(parse_ctx ctx, plist_t *plist)
function PLIST_API (line 1441) | PLIST_API void plist_from_xml(const char *plist_xml, uint32_t length, pl...
FILE: ldid2/libplist/test/plist_cmp.c
function plist_t (line 36) | static plist_t plist_get_first_child(plist_t node)
function plist_t (line 41) | static plist_t plist_get_next_sibling(plist_t node)
function compare_plist (line 46) | static char compare_plist(plist_t node_l, plist_t node_r)
function main (line 76) | int main(int argc, char *argv[])
FILE: ldid2/libplist/test/plist_test.c
function main (line 35) | int main(int argc, char *argv[])
FILE: ldid2/libplist/tools/plistutil.c
type options_t (line 36) | typedef struct _options
function print_usage (line 42) | static void print_usage(int argc, char *argv[])
function options_t (line 54) | static options_t *parse_arguments(int argc, char *argv[])
function main (line 108) | int main(int argc, char *argv[])
FILE: ldid2/lookup2.c
type ub4 (line 12) | typedef unsigned long int ub4;
type ub1 (line 13) | typedef unsigned char ub1;
function ub4 (line 99) | ub4 hash( k, length, initval)
function ub4 (line 156) | ub4 hash2( k, length, initval)
function ub4 (line 202) | ub4 hash3( k, length, initval)
function driver1 (line 266) | void driver1()
function driver2 (line 283) | void driver2()
function driver3 (line 352) | void driver3()
function driver4 (line 390) | void driver4()
function main (line 407) | int main()
FILE: ldid2/sha1.h
type SHA1Context (line 38) | typedef struct SHA1Context
FILE: libimobiledevice/common/debug.c
function internal_set_debug_level (line 44) | void internal_set_debug_level(int level)
function debug_print_line (line 52) | static void debug_print_line(const char *func, const char *file, int lin...
function debug_info_real (line 81) | void debug_info_real(const char *func, const char *file, int line, const...
function debug_buffer (line 101) | void debug_buffer(const char *data, const int length)
function debug_buffer_to_file (line 136) | void debug_buffer_to_file(const char *file, const char *data, const int ...
function debug_plist_real (line 148) | void debug_plist_real(const char *func, const char *file, int line, plis...
FILE: libimobiledevice/common/socket.c
function socket_set_verbose (line 58) | void socket_set_verbose(int level)
function socket_create_unix (line 64) | int socket_create_unix(const char *filename)
function socket_connect_unix (line 110) | int socket_connect_unix(const char *filename)
function socket_create (line 173) | int socket_create(uint16_t port)
function socket_connect (line 228) | int socket_connect(const char *addr, uint16_t port)
function socket_check_fd (line 355) | int socket_check_fd(int fd, fd_mode fdm, unsigned int timeout)
function socket_accept (line 421) | int socket_accept(int fd, uint16_t port)
function socket_shutdown (line 442) | int socket_shutdown(int fd, int how)
function socket_close (line 447) | int socket_close(int fd) {
function socket_receive (line 455) | int socket_receive(int fd, void *data, size_t length)
function socket_peek (line 460) | int socket_peek(int fd, void *data, size_t length)
function socket_receive_timeout (line 465) | int socket_receive_timeout(int fd, void *data, size_t length, int flags,
function socket_send (line 490) | int socket_send(int fd, void *data, size_t length)
FILE: libimobiledevice/common/socket.h
type fd_mode (line 28) | enum fd_mode {
type fd_mode (line 33) | typedef enum fd_mode fd_mode;
FILE: libimobiledevice/common/thread.c
function thread_new (line 24) | int thread_new(thread_t *thread, thread_func_t thread_func, void* data)
function thread_free (line 39) | void thread_free(thread_t thread)
function thread_join (line 46) | void thread_join(thread_t thread)
function mutex_init (line 56) | void mutex_init(mutex_t* mutex)
function mutex_destroy (line 65) | void mutex_destroy(mutex_t* mutex)
function mutex_lock (line 74) | void mutex_lock(mutex_t* mutex)
function mutex_unlock (line 83) | void mutex_unlock(mutex_t* mutex)
function thread_once (line 92) | void thread_once(thread_once_t *once_control, void (*init_routine)(void))
FILE: libimobiledevice/common/thread.h
type HANDLE (line 27) | typedef HANDLE thread_t;
type CRITICAL_SECTION (line 28) | typedef CRITICAL_SECTION mutex_t;
type thread_once_t (line 29) | typedef volatile struct {
type pthread_t (line 37) | typedef pthread_t thread_t;
type pthread_mutex_t (line 38) | typedef pthread_mutex_t mutex_t;
type pthread_once_t (line 39) | typedef pthread_once_t thread_once_t;
FILE: libimobiledevice/common/userpref.c
function userpref_read_system_buid (line 183) | int userpref_read_system_buid(char **system_buid)
function userpref_error_t (line 209) | userpref_error_t userpref_get_paired_udids(char ***list, unsigned int *c...
function userpref_error_t (line 277) | userpref_error_t userpref_save_pair_record(const char *udid, uint32_t de...
function userpref_error_t (line 300) | userpref_error_t userpref_read_pair_record(const char *udid, plist_t *pa...
function userpref_error_t (line 333) | userpref_error_t userpref_delete_pair_record(const char *udid)
function X509_add_ext_helper (line 341) | static int X509_add_ext_helper(X509 *cert, int nid, char *value)
function userpref_error_t (line 372) | userpref_error_t pair_record_generate_keys_and_certs(plist_t pair_record...
function userpref_error_t (line 783) | userpref_error_t pair_record_import_key_with_name(plist_t pair_record, c...
function userpref_error_t (line 820) | userpref_error_t pair_record_import_crt_with_name(plist_t pair_record, c...
function userpref_error_t (line 846) | userpref_error_t pair_record_get_host_id(plist_t pair_record, char** hos...
function userpref_error_t (line 857) | userpref_error_t pair_record_set_host_id(plist_t pair_record, const char...
function userpref_error_t (line 864) | userpref_error_t pair_record_get_item_as_key_data(plist_t pair_record, c...
function userpref_error_t (line 892) | userpref_error_t pair_record_set_item_from_key_data(plist_t pair_record,...
FILE: libimobiledevice/common/userpref.h
type key_data_t (line 31) | typedef struct {
type gnutls_datum_t (line 37) | typedef gnutls_datum_t key_data_t;
type userpref_error_t (line 54) | typedef enum {
FILE: libimobiledevice/common/utils.c
function get_rand (line 174) | static int get_rand(int min, int max)
function buffer_read_from_filename (line 203) | void buffer_read_from_filename(const char *filename, char **buffer, uint...
function buffer_write_to_filename (line 234) | void buffer_write_to_filename(const char *filename, const char *buffer, ...
function plist_read_from_filename (line 245) | int plist_read_from_filename(plist_t *plist, const char *filename)
function plist_write_to_filename (line 270) | int plist_write_to_filename(plist_t plist, const char *filename, enum pl...
function plist_array_print_to_stream (line 324) | static void plist_array_print_to_stream(plist_t node, int* indent_level,...
function plist_dict_print_to_stream (line 340) | static void plist_dict_print_to_stream(plist_t node, int* indent_level, ...
function plist_node_print_to_stream (line 365) | static void plist_node_print_to_stream(plist_t node, int* indent_level, ...
function plist_print_to_stream (line 466) | void plist_print_to_stream(plist_t plist, FILE* stream)
FILE: libimobiledevice/common/utils.h
type plist_format_t (line 50) | enum plist_format_t {
type plist_format_t (line 56) | enum plist_format_t
FILE: libimobiledevice/include/asprintf.h
function vasprintf (line 9) | static inline int vasprintf(char **PTR, const char *TEMPLATE, va_list AP)
function asprintf (line 23) | static inline int asprintf(char **PTR, const char *TEMPLATE, ...)
FILE: libimobiledevice/include/libimobiledevice/afc.h
type afc_error_t (line 37) | typedef enum {
type afc_file_mode_t (line 70) | typedef enum {
type afc_link_type_t (line 80) | typedef enum {
type afc_lock_op_t (line 86) | typedef enum {
type afc_client_private (line 92) | typedef struct afc_client_private afc_client_private;
type afc_client_private (line 93) | typedef afc_client_private *afc_client_t;
FILE: libimobiledevice/include/libimobiledevice/debugserver.h
type debugserver_error_t (line 36) | typedef enum {
type debugserver_client_private (line 45) | typedef struct debugserver_client_private debugserver_client_private;
type debugserver_client_private (line 46) | typedef debugserver_client_private *debugserver_client_t;
type debugserver_command_private (line 48) | typedef struct debugserver_command_private debugserver_command_private;
type debugserver_command_private (line 49) | typedef debugserver_command_private *debugserver_command_t;
FILE: libimobiledevice/include/libimobiledevice/diagnostics_relay.h
type diagnostics_relay_error_t (line 36) | typedef enum {
type diagnostics_relay_client_private (line 54) | typedef struct diagnostics_relay_client_private diagnostics_relay_client...
type diagnostics_relay_client_private (line 55) | typedef diagnostics_relay_client_private *diagnostics_relay_client_t;
FILE: libimobiledevice/include/libimobiledevice/file_relay.h
type file_relay_error_t (line 38) | typedef enum {
type file_relay_client_private (line 49) | typedef struct file_relay_client_private file_relay_client_private;
type file_relay_client_private (line 50) | typedef file_relay_client_private *file_relay_client_t;
FILE: libimobiledevice/include/libimobiledevice/heartbeat.h
type heartbeat_error_t (line 36) | typedef enum {
type heartbeat_client_private (line 45) | typedef struct heartbeat_client_private heartbeat_client_private;
type heartbeat_client_private (line 46) | typedef heartbeat_client_private *heartbeat_client_t;
FILE: libimobiledevice/include/libimobiledevice/house_arrest.h
type house_arrest_error_t (line 38) | typedef enum {
type house_arrest_client_private (line 47) | typedef struct house_arrest_client_private house_arrest_client_private;
type house_arrest_client_private (line 48) | typedef house_arrest_client_private *house_arrest_client_t;
FILE: libimobiledevice/include/libimobiledevice/installation_proxy.h
type instproxy_error_t (line 39) | typedef enum {
type instproxy_client_private (line 110) | typedef struct instproxy_client_private instproxy_client_private;
type instproxy_client_private (line 111) | typedef instproxy_client_private *instproxy_client_t;
FILE: libimobiledevice/include/libimobiledevice/libimobiledevice.h
type idevice_error_t (line 38) | typedef enum {
type idevice_private (line 48) | typedef struct idevice_private idevice_private;
type idevice_private (line 49) | typedef idevice_private *idevice_t;
type idevice_connection_private (line 51) | typedef struct idevice_connection_private idevice_connection_private;
type idevice_connection_private (line 52) | typedef idevice_connection_private *idevice_connection_t;
type idevice_event_type (line 56) | enum idevice_event_type {
type idevice_event_t (line 64) | typedef struct {
FILE: libimobiledevice/include/libimobiledevice/lockdown.h
type lockdownd_error_t (line 37) | typedef enum {
type lockdownd_client_private (line 83) | typedef struct lockdownd_client_private lockdownd_client_private;
type lockdownd_client_private (line 84) | typedef lockdownd_client_private *lockdownd_client_t;
type lockdownd_pair_record (line 86) | struct lockdownd_p
Copy disabled (too large)
Download .json
Condensed preview — 947 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,088K chars).
[
{
"path": ".gitignore",
"chars": 347,
"preview": "# User-specific files\n*.rsuser\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# Build results\n[Dd]ebug/\n[Dd]ebugPublic/\n[R"
},
{
"path": ".gitmodules",
"chars": 268,
"preview": "[submodule \"Dependencies/libimobiledevice-vs\"]\n\tpath = Dependencies/libimobiledevice-vs\n\turl = https://github.com/libimo"
},
{
"path": "AltInstaller/AltInstaller.vdproj",
"chars": 51087,
"preview": "\"DeployProject\"\r\n{\r\n\"VSVersion\" = \"3:800\"\r\n\"ProjectType\" = \"8:{978C614F-708E-4E1A-B201-565925725DBA}\"\r\n\"IsWebType\" = \"8"
},
{
"path": "AltServer/AltServer.cpp",
"chars": 12838,
"preview": "// HelloWindowsDesktop.cpp\r\n// compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c\r\n\r\n#include <windows.h>\r\n#includ"
},
{
"path": "AltServer/AltServer.vcxproj",
"chars": 14333,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/m"
},
{
"path": "AltServer/AltServer.vcxproj.filters",
"chars": 3641,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "AltServer/AltServerApp.cpp",
"chars": 52073,
"preview": "//\r\n// AltServerApp.cpp\r\n// AltServer-Windows\r\n//\r\n// Created by Riley Testut on 8/30/19.\r\n// Copyright (c) 2019 Ril"
},
{
"path": "AltServer/AltServerApp.h",
"chars": 4974,
"preview": "//\r\n// AltServerApp.hpp\r\n// AltServer-Windows\r\n//\r\n// Created by Riley Testut on 8/30/19.\r\n// Copyright (c) 2019 Ril"
},
{
"path": "AltServer/AnisetteDataManager.cpp",
"chars": 18381,
"preview": "#include \"AnisetteDataManager.h\"\r\n#include <WinSock2.h>\r\n#include <sstream>\r\n#include <Psapi.h>\r\n#include <filesystem>\r\n"
},
{
"path": "AltServer/AnisetteDataManager.h",
"chars": 2021,
"preview": "#pragma once\r\n\r\n#include <memory>\r\n#include <functional>\r\n\r\n#include \"Error.hpp\"\r\n\r\nclass AnisetteData;\r\n\r\nenum class An"
},
{
"path": "AltServer/ClientConnection.cpp",
"chars": 12230,
"preview": "#include \"ClientConnection.h\"\r\n\r\n#include <limits.h>\r\n#include <stddef.h>\r\n\r\n#include <WinSock2.h>\r\n#include <filesystem"
},
{
"path": "AltServer/ClientConnection.h",
"chars": 1286,
"preview": "#pragma once\r\n\r\n#include \"Device.hpp\"\r\n\r\n#include <pplx/pplxtasks.h>\r\n#include <cpprest/json.h>\r\n\r\n#include <libimobiled"
},
{
"path": "AltServer/ConnectionManager.cpp",
"chars": 9896,
"preview": "//\r\n// ConnectionManager.cpp\r\n// AltServer-Windows\r\n//\r\n// Created by Riley Testut on 8/13/19.\r\n// Copyright © 2019 "
},
{
"path": "AltServer/ConnectionManager.hpp",
"chars": 1561,
"preview": "//\n// ConnectionManager.hpp\n// AltServer-Windows\n//\n// Created by Riley Testut on 8/13/19.\n// Copyright © 2019 Riley"
},
{
"path": "AltServer/DeviceManager.cpp",
"chars": 41948,
"preview": "//\r\n// DeviceManager.cpp\r\n// AltServer-Windows\r\n//\r\n// Created by Riley Testut on 8/13/19.\r\n// Copyright © 2019 Rile"
},
{
"path": "AltServer/DeviceManager.hpp",
"chars": 4135,
"preview": "//\n// DeviceManager.hpp\n// AltServer-Windows\n//\n// Created by Riley Testut on 8/13/19.\n// Copyright © 2019 Riley Tes"
},
{
"path": "AltServer/InstallError.hpp",
"chars": 1214,
"preview": "//\n// InstallError.h\n// AltServer-Windows\n//\n// Created by Riley Testut on 8/31/19.\n// Copyright © 2019 Riley Testut"
},
{
"path": "AltServer/NotificationConnection.cpp",
"chars": 2714,
"preview": "#include \"NotificationConnection.h\"\r\n#include \"ServerError.hpp\"\r\n\r\n#include <WinSock2.h>\n#include <cpprest/json.h>\r\n\r\n#d"
},
{
"path": "AltServer/NotificationConnection.h",
"chars": 893,
"preview": "#pragma once\r\n\r\n#include \"Device.hpp\"\r\n\r\n#include <pplx/pplxtasks.h>\r\n#include <libimobiledevice/libimobiledevice.h>\r\n#i"
},
{
"path": "AltServer/Semaphore.h",
"chars": 609,
"preview": "//\n// Semaphore.hpp\n// AltServer-Windows\n//\n// Created by Riley Testut on 10/7/20.\n// Copied from https://stackoverf"
},
{
"path": "AltServer/ServerError.cpp",
"chars": 223,
"preview": "#include \"ServerError.hpp\"\n\nstd::string LocalizedFailureErrorKey = \"NSLocalizedFailure\";\nstd::string UnderlyingErrorCode"
},
{
"path": "AltServer/ServerError.hpp",
"chars": 3379,
"preview": "//\n// ServerError.hpp\n// AltServer-Windows\n//\n// Created by Riley Testut on 8/13/19.\n// Copyright © 2019 Riley Testu"
},
{
"path": "AltServer/WiredConnection.cpp",
"chars": 1845,
"preview": "#include \"WiredConnection.h\"\r\n#include \"ServerError.hpp\"\r\n\r\nWiredConnection::WiredConnection(std::shared_ptr<Device> dev"
},
{
"path": "AltServer/WiredConnection.h",
"chars": 707,
"preview": "#pragma once\r\n\r\n#include \"Device.hpp\"\r\n#include \"ClientConnection.h\"\r\n\r\n#include <pplx/pplxtasks.h>\r\n#include <libimobil"
},
{
"path": "AltServer/WirelessConnection.cpp",
"chars": 3311,
"preview": "#include \"WirelessConnection.h\"\r\n\r\n#include <WinSock2.h>\n#include <cpprest/json.h>\r\n\r\n#define odslog(msg) { std::strings"
},
{
"path": "AltServer/WirelessConnection.h",
"chars": 409,
"preview": "#pragma once\r\n\r\n#include \"ClientConnection.h\"\r\n\r\nclass WirelessConnection: public ClientConnection\r\n{\r\npublic:\r\n\tWireles"
},
{
"path": "AltServer/resource.h",
"chars": 1039,
"preview": "//{{NO_DEPENDENCIES}}\r\n// Microsoft Visual C++ generated include file.\r\n// Used by Resource.rc\r\n//\r\n#define IMG_APPICON "
},
{
"path": "AltServer.sln",
"chars": 9310,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.2"
},
{
"path": "AltSign/Account.cpp",
"chars": 2374,
"preview": "//\n// Account.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/8/19.\n// Copyright © 2019 Riley Testut. All "
},
{
"path": "AltSign/Account.hpp",
"chars": 931,
"preview": "//\n// Account.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/8/19.\n// Copyright © 2019 Riley Testut. All "
},
{
"path": "AltSign/AltSign.vcxproj",
"chars": 11589,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/m"
},
{
"path": "AltSign/AltSign.vcxproj.filters",
"chars": 5105,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "AltSign/AnisetteData.cpp",
"chars": 4857,
"preview": "//\n// AnisetteData.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 11/26/19.\n// Copyright 2019 Riley Testut"
},
{
"path": "AltSign/AnisetteData.h",
"chars": 1517,
"preview": "//\n// AnisetteData.h\n// AltSign-Windows\n//\n// Created by Riley Testut on 11/26/19.\n// Copyright 2019 Riley Testut. "
},
{
"path": "AltSign/AppGroup.cpp",
"chars": 1405,
"preview": "//\n// AppGroup.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 5/19/20.\n// Copyright (c) 2020 Riley Testut. "
},
{
"path": "AltSign/AppGroup.hpp",
"chars": 666,
"preview": "//\n// AppGroup.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 5/19/20.\n// Copyright (c) 2020 Riley Testut. "
},
{
"path": "AltSign/AppID.cpp",
"chars": 3072,
"preview": "//\n// AppID.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut. All r"
},
{
"path": "AltSign/AppID.hpp",
"chars": 1040,
"preview": "//\n// AppID.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut. All r"
},
{
"path": "AltSign/AppleAPI+Authentication.cpp",
"chars": 34146,
"preview": "// Heavily based on sample code provided by Kabir Oberai (https://github.com/kabiroberai)\r\n\r\n#include \"AppleAPI.hpp\"\r\n\r"
},
{
"path": "AltSign/AppleAPI.cpp",
"chars": 42412,
"preview": "//\n// AltSign_Windows.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/8/19.\n// Copyright © 2019 Riley Test"
},
{
"path": "AltSign/AppleAPI.hpp",
"chars": 8958,
"preview": "//\n// AltSign_Windows.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/8/19.\n// Copyright © 2019 Riley Test"
},
{
"path": "AltSign/AppleAPISession.cpp",
"chars": 964,
"preview": "//\n// AppleAPISession.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 11/26/19.\n// Copyright 2019 Riley Tes"
},
{
"path": "AltSign/AppleAPISession.h",
"chars": 825,
"preview": "//\n// AppleAPISession.h\n// AltSign-Windows\n//\n// Created by Riley Testut on 11/26/19.\n// Copyright 2019 Riley Testu"
},
{
"path": "AltSign/Application.cpp",
"chars": 4993,
"preview": "//\n// Application.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut."
},
{
"path": "AltSign/Application.hpp",
"chars": 1413,
"preview": "//\n// Application.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut."
},
{
"path": "AltSign/Archiver.cpp",
"chars": 10047,
"preview": "//\r\n// Archiver.cpp\r\n// AltSign-Windows\r\n//\r\n// Created by Riley Testut on 8/12/19.\r\n// Copyright © 2019 Riley Testu"
},
{
"path": "AltSign/Archiver.hpp",
"chars": 359,
"preview": "//\n// Archiver.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut. Al"
},
{
"path": "AltSign/Certificate.cpp",
"chars": 11121,
"preview": "//\r\n// Certificate.cpp\r\n// AltSign-Windows\r\n//\r\n// Created by Riley Testut on 8/12/19.\r\n// Copyright © 2019 Riley Te"
},
{
"path": "AltSign/Certificate.hpp",
"chars": 1870,
"preview": "//\n// Certificate.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut."
},
{
"path": "AltSign/CertificateRequest.cpp",
"chars": 4352,
"preview": "//\n// CertificateRequest.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley "
},
{
"path": "AltSign/CertificateRequest.hpp",
"chars": 681,
"preview": "//\n// CertificateRequest.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley "
},
{
"path": "AltSign/Dependencies/corecrypto/cc.h",
"chars": 8438,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/cc_config.h",
"chars": 19866,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2013,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Intern"
},
{
"path": "AltSign/Dependencies/corecrypto/cc_debug.h",
"chars": 5640,
"preview": "/*\n * Copyright (c) 2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/cc_memory.h",
"chars": 8047,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/cc_priv.h",
"chars": 19567,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "AltSign/Dependencies/corecrypto/cc_runtime_config.h",
"chars": 5548,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccaes.h",
"chars": 8280,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2013,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccansikdf.h",
"chars": 5254,
"preview": "/*\n * Copyright (c) 2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccasn1.h",
"chars": 6956,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccblowfish.h",
"chars": 5125,
"preview": "/*\n * Copyright (c) 2010,2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/cccast.h",
"chars": 5181,
"preview": "/*\n * Copyright (c) 2011,2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccchacha20poly1305.h",
"chars": 13796,
"preview": "/*\n * Copyright (c) 2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccchacha20poly1305_priv.h",
"chars": 5483,
"preview": "/*\n * Copyright (c) 2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n * IMPO"
},
{
"path": "AltSign/Dependencies/corecrypto/cccmac.h",
"chars": 10752,
"preview": "/*\n * Copyright (c) 2013,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccder.h",
"chars": 16678,
"preview": "/*\n * Copyright (c) 2012,2013,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccder_decode_eckey.h",
"chars": 4411,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccder_encode_eckey.h",
"chars": 4410,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccder_priv.h",
"chars": 5806,
"preview": "/*\n * Copyright (c) 2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccder_rsa.h",
"chars": 4449,
"preview": "/*\n * Copyright (c) 2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdes.h",
"chars": 5980,
"preview": "/*\n * Copyright (c) 2010,2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdh.h",
"chars": 21546,
"preview": "/*\n * Copyright (c) 2011,2012,2013,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdh_gp.h",
"chars": 5085,
"preview": "/*\n * Copyright (c) 2011,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdh_priv.h",
"chars": 5737,
"preview": "/*\n * Copyright (c) 2011,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdigest.h",
"chars": 12064,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdigest_priv.h",
"chars": 5120,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccdrbg.h",
"chars": 8396,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdrbg_factory.h",
"chars": 4270,
"preview": "/*\n * Copyright (c) 2011,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccdrbg_impl.h",
"chars": 6014,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccec.h",
"chars": 39080,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccec25519.h",
"chars": 8306,
"preview": "/*\n * Copyright (c) 2014,2015,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccec25519_priv.h",
"chars": 4962,
"preview": "/*\n * Copyright (c) 2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n * IMPO"
},
{
"path": "AltSign/Dependencies/corecrypto/ccec_priv.h",
"chars": 23545,
"preview": "/*\n * Copyright (c) 2010,2011,2013,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccecies.h",
"chars": 11411,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccecies_priv.h",
"chars": 4248,
"preview": "/*\n * Copyright (c) 2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/cchkdf.h",
"chars": 5086,
"preview": "/*\n * Copyright (c) 2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/cchmac.h",
"chars": 8317,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmd2.h",
"chars": 4627,
"preview": "/*\n * Copyright (c) 2010,2011,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmd4.h",
"chars": 4542,
"preview": "/*\n * Copyright (c) 2010,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmd5.h",
"chars": 4541,
"preview": "/*\n * Copyright (c) 2010,2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmode.h",
"chars": 34317,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmode_factory.h",
"chars": 29586,
"preview": "/*\n * Copyright (c) 2011,2012,2013,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmode_impl.h",
"chars": 11612,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmode_siv.h",
"chars": 8448,
"preview": "/*\n * Copyright (c) 2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccmode_siv_priv.h",
"chars": 6221,
"preview": "/*\n * Copyright (c) 2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n * IMPO"
},
{
"path": "AltSign/Dependencies/corecrypto/ccn.h",
"chars": 28184,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2013,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Intern"
},
{
"path": "AltSign/Dependencies/corecrypto/ccn_priv.h",
"chars": 10839,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccnistkdf.h",
"chars": 10278,
"preview": "/*\n * Copyright (c) 2013,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccpad.h",
"chars": 8282,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccpbkdf2.h",
"chars": 5584,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccperf.h",
"chars": 12440,
"preview": "/*\n * Copyright (c) 2010,2011,2013,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccprime.h",
"chars": 4688,
"preview": "/*\n * Copyright (c) 2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrc2.h",
"chars": 4974,
"preview": "/*\n * Copyright (c) 2010,2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrc4.h",
"chars": 5083,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2013,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccripemd.h",
"chars": 4995,
"preview": "/*\n * Copyright (c) 2010,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng.h",
"chars": 6173,
"preview": "/*\n * Copyright (c) 2010,2013,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_drbg.h",
"chars": 4961,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_ecfips_test.h",
"chars": 4640,
"preview": "/*\n * Copyright (c) 2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_pbkdf2_prng.h",
"chars": 5062,
"preview": "/*\n * Copyright (c) 2013,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_priv.h",
"chars": 4404,
"preview": "/*\n * Copyright (c) 2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n * IMPO"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_rsafips_test.h",
"chars": 4807,
"preview": "/*\n * Copyright (c) 2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_sequence.h",
"chars": 4627,
"preview": "/*\n * Copyright (c) 2013,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_system.h",
"chars": 5069,
"preview": "/*\n * Copyright (c) 2010,2013,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccrng_test.h",
"chars": 4639,
"preview": "/*\n * Copyright (c) 2011,2014,2015,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrsa.h",
"chars": 27746,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccrsa_priv.h",
"chars": 25113,
"preview": "/*\n * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/ccsha1.h",
"chars": 5331,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "AltSign/Dependencies/corecrypto/ccsha2.h",
"chars": 6879,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "AltSign/Dependencies/corecrypto/ccsrp.h",
"chars": 24948,
"preview": "/*\n * Copyright (c) 2012,2013,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "AltSign/Dependencies/corecrypto/ccsrp_gp.h",
"chars": 4469,
"preview": "/*\n * Copyright (c) 2012,2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/cctest.h",
"chars": 4890,
"preview": "/*\n * Copyright (c) 2010,2011,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccwrap.h",
"chars": 8233,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "AltSign/Dependencies/corecrypto/ccz.h",
"chars": 11224,
"preview": "/*\n * Copyright (c) 2011,2012,2015,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/ccz_priv.h",
"chars": 5787,
"preview": "/*\n * Copyright (c) 2011,2012,2015,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/cczp.h",
"chars": 18136,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "AltSign/Dependencies/corecrypto/cczp_priv.h",
"chars": 6496,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/corecrypto/fipspost.h",
"chars": 7033,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "AltSign/Dependencies/minizip/ChangeLogUnzip",
"chars": 2122,
"preview": "Change in 1.01e (12 feb 05)\r\n- Fix in zipOpen2 for globalcomment (Rolf Kalbermatter)\r\n- Fix possible memory leak in unzi"
},
{
"path": "AltSign/Dependencies/minizip/Makefile",
"chars": 482,
"preview": "CC=cc\r\nCFLAGS=-O -I../..\r\n\r\nUNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a\r\nZIP_OBJS = minizip.o zip.o ioapi.o ../."
},
{
"path": "AltSign/Dependencies/minizip/crypt.h",
"chars": 4844,
"preview": "/* crypt.h -- base code for crypt/uncrypt ZIPfile\r\n\r\n\r\n Version 1.01e, February 12th, 2005\r\n\r\n Copyright (C) 1998-20"
},
{
"path": "AltSign/Dependencies/minizip/ioapi.c",
"chars": 3871,
"preview": "/* ioapi.c -- IO base function header for compress/uncompress .zip\r\n files using zlib + zip or unzip API\r\n\r\n Version"
},
{
"path": "AltSign/Dependencies/minizip/ioapi.h",
"chars": 2610,
"preview": "/* ioapi.h -- IO base function header for compress/uncompress .zip\r\n files using zlib + zip or unzip API\r\n\r\n Version"
},
{
"path": "AltSign/Dependencies/minizip/iowin32.c",
"chars": 6681,
"preview": "/* iowin32.c -- IO base function header for compress/uncompress .zip\r\n files using zlib + zip or unzip API\r\n This IO"
},
{
"path": "AltSign/Dependencies/minizip/iowin32.h",
"chars": 443,
"preview": "/* iowin32.h -- IO base function header for compress/uncompress .zip\r\n files using zlib + zip or unzip API\r\n This IO"
},
{
"path": "AltSign/Dependencies/minizip/miniunz.c",
"chars": 15966,
"preview": "/*\r\n miniunz.c\r\n Version 1.01e, February 12th, 2005\r\n\r\n Copyright (C) 1998-2005 Gilles Vollant\r\n*/\r\n\r\n\r\n#include <"
},
{
"path": "AltSign/Dependencies/minizip/minizip.c",
"chars": 12082,
"preview": "/*\r\n minizip.c\r\n Version 1.01e, February 12th, 2005\r\n\r\n Copyright (C) 1998-2005 Gilles Vollant\r\n*/\r\n\r\n#include <st"
},
{
"path": "AltSign/Dependencies/minizip/mztools.c",
"chars": 8266,
"preview": "/*\r\n Additional tools for Minizip\r\n Code: Xavier Roche '2004\r\n License: Same as ZLIB (www.gzip.org)\r\n*/\r\n\r\n/* Code */"
},
{
"path": "AltSign/Dependencies/minizip/mztools.h",
"chars": 712,
"preview": "/*\r\n Additional tools for Minizip\r\n Code: Xavier Roche '2004\r\n License: Same as ZLIB (www.gzip.org)\r\n*/\r\n\r\n#ifndef _z"
},
{
"path": "AltSign/Dependencies/minizip/unzip.c",
"chars": 50890,
"preview": "/* unzip.c -- IO for uncompress .zip files using zlib\r\n Version 1.01e, February 12th, 2005\r\n\r\n Copyright (C) 1998-20"
},
{
"path": "AltSign/Dependencies/minizip/unzip.h",
"chars": 13322,
"preview": "/* unzip.h -- IO for uncompress .zip files using zlib\r\n Version 1.01e, February 12th, 2005\r\n\r\n Copyright (C) 1998-20"
},
{
"path": "AltSign/Dependencies/minizip/zip.c",
"chars": 38572,
"preview": "/* zip.c -- IO on .zip files using zlib\r\n Version 1.01e, February 12th, 2005\r\n\r\n 27 Dec 2004 Rolf Kalbermatter\r\n M"
},
{
"path": "AltSign/Dependencies/minizip/zip.h",
"chars": 9082,
"preview": "/* zip.h -- IO for compress .zip files using zlib\r\n Version 1.01e, February 12th, 2005\r\n\r\n Copyright (C) 1998-2005 G"
},
{
"path": "AltSign/Dependencies/mman/.gitignore",
"chars": 14,
"preview": "x64\nmman.VC.db"
},
{
"path": "AltSign/Dependencies/mman/CMakeLists.txt",
"chars": 743,
"preview": "project (mman-win32 C)\n\ncmake_minimum_required (VERSION 2.8)\n\noption (BUILD_SHARED_LIBS \"shared/static libs\" ON) \noption"
},
{
"path": "AltSign/Dependencies/mman/Makefile",
"chars": 1343,
"preview": "#\n# mman-win32 (mingw32) Makefile\n#\ninclude config.mak\n\nCFLAGS=-Wall -O3 -fomit-frame-pointer\n\nifeq ($(BUILD_STATIC),yes"
},
{
"path": "AltSign/Dependencies/mman/README.md",
"chars": 279,
"preview": "mman-win32\n==========\n\nmman library for Windows. mirror of https://code.google.com/p/mman-win32/\n\nA light implementation"
},
{
"path": "AltSign/Dependencies/mman/configure",
"chars": 3681,
"preview": "#!/bin/sh\n# mmap-win32 configure script\n#\n# Parts copied from FFmpeg's configure\n#\n\nset_all(){\n value=$1\n shift\n "
},
{
"path": "AltSign/Dependencies/mman/mman-win32.pro",
"chars": 161,
"preview": "QT -= core gui\r\n\r\nTARGET = mman\r\nTEMPLATE = lib\r\n\r\nDEFINES += MMAN_LIBRARY_DLL\r\nDEFINES += MMAN_LIBRARY\r\n\r\nHEADERS += \\\r"
},
{
"path": "AltSign/Dependencies/mman/mman.cpp",
"chars": 3788,
"preview": "\n#include <windows.h>\n#include <errno.h>\n#include <io.h>\n\n#include <malloc.h>\n\n#include \"mman.h\"\n\n#ifndef FILE_MAP_EXECU"
},
{
"path": "AltSign/Dependencies/mman/mman.h",
"chars": 1859,
"preview": "/*\n * sys/mman.h\n * mman-win32\n */\n\n#ifndef _SYS_MMAN_H_\n#define _SYS_MMAN_H_\n\n#ifndef _WIN32_WINNT\t\t// Allow use of fea"
},
{
"path": "AltSign/Dependencies/mman/mman.sln",
"chars": 1259,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.25420.1\nMini"
},
{
"path": "AltSign/Dependencies/mman/mman.vcxproj",
"chars": 6016,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "AltSign/Dependencies/mman/mman.vcxproj.filters",
"chars": 1100,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "AltSign/Dependencies/mman/test.c",
"chars": 5782,
"preview": "\n#include \"mman.h\"\n\n#include <errno.h>\n#include <fcntl.h>\n#include <sys/stat.h>\n\n#ifndef NULL\n#define NULL (void*)0\n#"
},
{
"path": "AltSign/Dependencies/regex/contrib/regex/2.7/regex-2.7-GnuWin32.README",
"chars": 2161,
"preview": "* Regex-2.7 for Windows *\n=========================\n\nWhat is it?\n-----------\nRegex: searches for and matches text string"
},
{
"path": "AltSign/Dependencies/regex/include/regex.h",
"chars": 22104,
"preview": "/* Definitions for data structures and routines for the regular\n expression library.\n Copyright (C) 1985,1989-93,199"
},
{
"path": "AltSign/Dependencies/regex/lib/libregex.la",
"chars": 833,
"preview": "# libregex.la - a libtool library file\n# Generated by ltmain.sh - GNU libtool 1.5.23a (1.1220.2.412 2006/10/13 14:13:30)"
},
{
"path": "AltSign/Dependencies/regex/lib/regex2.def",
"chars": 242,
"preview": "LIBRARY regex2.dll\r\nEXPORTS\r\nDllGetVersion\r\nre_comp\r\nre_compile_fastmap\r\nre_compile_pattern\r\nre_exec\r\nre_match\r\nre_match"
},
{
"path": "AltSign/Dependencies/regex/man/cat3/regcomp.3p.txt",
"chars": 1001,
"preview": "REGCOMP(P) POSIX Programmer's Manual REGCOMP(P)\n\n\n\nNAME\n regcomp, regerror, regexec"
},
{
"path": "AltSign/Dependencies/regex/man/cat3/regex.3.txt",
"chars": 6685,
"preview": "REGEX(3) Linux Programmer's Manual REGEX(3)\n\n\n\nNAME\n regcomp, regexec, regerror"
},
{
"path": "AltSign/Dependencies/regex/man/cat3p/regcomp.3p.txt",
"chars": 1001,
"preview": "REGCOMP(P) POSIX Programmer's Manual REGCOMP(P)\n\n\n\nNAME\n regcomp, regerror, regexec"
},
{
"path": "AltSign/Dependencies/regex/man/cat7/regex.7.txt",
"chars": 10442,
"preview": "REGEX(7) Linux Programmer's Manual REGEX(7)\n\n\n\nNAME\n regex - POSIX.2 regular ex"
},
{
"path": "AltSign/Dependencies/regex/manifest/regex-2.7-bin.mft",
"chars": 714,
"preview": "bin/\r\nbin/regex2.dll\r\nman/cat3/regcomp.3.txt.lnk\r\nman/cat3/regcomp.3p.txt\r\nman/cat3/regerror.3p.txt.lnk\r\nman/cat3/regexe"
},
{
"path": "AltSign/Dependencies/regex/manifest/regex-2.7-bin.ver",
"chars": 60,
"preview": "Regex-2.7 (searches for and matches text strings): Binaries\n"
},
{
"path": "AltSign/Device.cpp",
"chars": 1949,
"preview": "//\n// Device.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/10/19.\n// Copyright © 2019 Riley Testut. All "
},
{
"path": "AltSign/Device.hpp",
"chars": 936,
"preview": "//\n// Device.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/10/19.\n// Copyright © 2019 Riley Testut. All "
},
{
"path": "AltSign/Error.hpp",
"chars": 8104,
"preview": "//\n// Error.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/8/19.\n// Copyright © 2019 Riley Testut. All ri"
},
{
"path": "AltSign/PrefixHeader.pch",
"chars": 975,
"preview": "//\n// PrefixHeader.pch\n// AltServer-Windows\n//\n// Created by Riley Testut on 8/8/19.\n// Copyright © 2019 Riley Testu"
},
{
"path": "AltSign/ProvisioningProfile.cpp",
"chars": 10670,
"preview": "//\r\n// ProvisioningProfile.cpp\r\n// AltSign-Windows\r\n//\r\n// Created by Riley Testut on 8/12/19.\r\n// Copyright © 2019 "
},
{
"path": "AltSign/ProvisioningProfile.hpp",
"chars": 1720,
"preview": "//\n// ProvisioningProfile.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley"
},
{
"path": "AltSign/Signer.cpp",
"chars": 12651,
"preview": "//\n// Signer.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut. All "
},
{
"path": "AltSign/Signer.hpp",
"chars": 848,
"preview": "//\n// Signer.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/12/19.\n// Copyright © 2019 Riley Testut. All "
},
{
"path": "AltSign/Team.cpp",
"chars": 2590,
"preview": "//\n// Team.cpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/9/19.\n// Copyright © 2019 Riley Testut. All rig"
},
{
"path": "AltSign/Team.hpp",
"chars": 985,
"preview": "//\n// Team.hpp\n// AltSign-Windows\n//\n// Created by Riley Testut on 8/9/19.\n// Copyright © 2019 Riley Testut. All rig"
},
{
"path": "AppPackage/AppPackage.wapproj",
"chars": 3434,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"15.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micro"
},
{
"path": "AppPackage/Package.appxmanifest",
"chars": 1671,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n<Package\r\n xmlns=\"http://schemas.microsoft.com/appx/manifest/foundation/wind"
},
{
"path": "Dependencies/Libraries/libcrypto.def",
"chars": 108956,
"preview": ";\r\n; Definition file for the DLL version of the libcrypto-1_1 library from OpenSSL\r\n;\r\n\r\nLIBRARY libcrypto-1_1\t\r"
},
{
"path": "Dependencies/Libraries/libeay32.def",
"chars": 154248,
"preview": ";\r\n; Definition file for the DLL version of the LIBEAY library from OpenSSL\r\n;\r\n\r\nLIBRARY LIBEAY32\t\r\n\r\nEXPORTS\r\n"
},
{
"path": "Dependencies/Libraries/libssl.def",
"chars": 14033,
"preview": ";\r\n; Definition file for the DLL version of the libssl-1_1 library from OpenSSL\r\n;\r\n\r\nLIBRARY libssl-1_1\t\r\n\r\nEXP"
},
{
"path": "Dependencies/Libraries/ssleay32.def",
"chars": 11026,
"preview": ";\r\n; Definition file for the DLL version of the SSLEAY library from OpenSSL\r\n;\r\n\r\nLIBRARY SSLEAY32\t\r\n\r\nEXPORTS\r\n"
},
{
"path": "Dependencies/WinSparkle/AUTHORS",
"chars": 263,
"preview": "Maintainer:\r\n\r\nVaclav Slavik <vaclav@slavik.io>\r\n\r\n\r\nContributors:\r\n\r\nKohan Ikin <syneryder@namesuppressed.com>\r\nChristi"
},
{
"path": "Dependencies/WinSparkle/COPYING",
"chars": 1213,
"preview": "Copyright (c) 2009-2018 Vaclav Slavik\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of"
},
{
"path": "Dependencies/WinSparkle/COPYING.expat",
"chars": 1144,
"preview": "Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper\nCopyright (c) 2001-2017 Expat maintainers\n"
},
{
"path": "Dependencies/WinSparkle/NEWS",
"chars": 3222,
"preview": "\r\nVersion 0.6.0\r\n-------------\r\n\r\n- Added support for validating DSA signatures.\r\n- Fixes to window placement.\r\n- Fixed "
},
{
"path": "Dependencies/WinSparkle/README.md",
"chars": 4378,
"preview": "[](https://ci.appveyor.com/project"
},
{
"path": "Dependencies/WinSparkle/include/winsparkle-version.h",
"chars": 2867,
"preview": "/*\n * This file is part of WinSparkle (https://winsparkle.org)\n *\n * Copyright (C) 2009-2018 Vaclav Slavik\n *\n * Perm"
},
{
"path": "Dependencies/WinSparkle/include/winsparkle.h",
"chars": 15858,
"preview": "/*\n * This file is part of WinSparkle (https://winsparkle.org)\n *\n * Copyright (C) 2009-2018 Vaclav Slavik\n *\n * Perm"
},
{
"path": "Dependencies/corecrypto/cc.h",
"chars": 8438,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "Dependencies/corecrypto/cc_config.h",
"chars": 19866,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2013,2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Intern"
},
{
"path": "Dependencies/corecrypto/cc_debug.h",
"chars": 5640,
"preview": "/*\n * Copyright (c) 2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "Dependencies/corecrypto/cc_memory.h",
"chars": 8047,
"preview": "/*\n * Copyright (c) 2014,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agree"
},
{
"path": "Dependencies/corecrypto/cc_priv.h",
"chars": 19567,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2014,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use Lic"
},
{
"path": "Dependencies/corecrypto/cc_runtime_config.h",
"chars": 5548,
"preview": "/*\n * Copyright (c) 2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "Dependencies/corecrypto/ccaes.h",
"chars": 8280,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2013,2015,2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Us"
},
{
"path": "Dependencies/corecrypto/ccansikdf.h",
"chars": 5254,
"preview": "/*\n * Copyright (c) 2014,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "Dependencies/corecrypto/ccasn1.h",
"chars": 6956,
"preview": "/*\n * Copyright (c) 2010,2011,2012,2015,2016,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License "
},
{
"path": "Dependencies/corecrypto/ccblowfish.h",
"chars": 5125,
"preview": "/*\n * Copyright (c) 2010,2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "Dependencies/corecrypto/cccast.h",
"chars": 5181,
"preview": "/*\n * Copyright (c) 2011,2012,2015,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n"
},
{
"path": "Dependencies/corecrypto/ccchacha20poly1305.h",
"chars": 13796,
"preview": "/*\n * Copyright (c) 2016,2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n *"
},
{
"path": "Dependencies/corecrypto/ccchacha20poly1305_priv.h",
"chars": 5483,
"preview": "/*\n * Copyright (c) 2017,2018 Apple Inc. All rights reserved.\n *\n * corecrypto Internal Use License Agreement\n *\n * IMPO"
}
]
// ... and 747 more files (download for full content)
About this extraction
This page contains the full source code of the rileytestut/AltServer-Windows GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 947 files (34.2 MB), approximately 3.9M tokens, and a symbol index with 3755 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.