From 2b894ca65283635c611c1ca742f7f77275cd590b Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Fri, 21 Aug 2020 12:34:33 -0700 Subject: [PATCH 01/20] Rewrites GrandSlam Authentication logic from scratch in Swift Beginning of eventual transition to all-Swift AltSign for cross-platform compatibility with Windows. --- AltSign.xcodeproj/project.pbxproj | 708 +++++++++++----- AltSign/AltSign.h | 1 - .../Apple API/ALTAppleAPI+Authentication.h | 28 - .../Apple API/ALTAppleAPI+Authentication.m | 763 ------------------ .../ALTAppleAPI+Authentication.swift | 389 +++++++++ AltSign/Apple API/ALTAppleAPI_Private.h | 4 +- AltSign/Apple API/GSAContext.swift | 194 +++++ AltSign/Extensions/Data+Encryption.swift | 91 +++ AltSign/Model/Apple API/ALTModel+Internal.h | 16 +- .../corecrypto/CoreCryptoMacros.swift | 47 ++ Dependencies/corecrypto/module.modulemap | 14 + module.modulemap | 12 + 12 files changed, 1284 insertions(+), 983 deletions(-) delete mode 100644 AltSign/Apple API/ALTAppleAPI+Authentication.h delete mode 100644 AltSign/Apple API/ALTAppleAPI+Authentication.m create mode 100644 AltSign/Apple API/ALTAppleAPI+Authentication.swift create mode 100644 AltSign/Apple API/GSAContext.swift create mode 100644 AltSign/Extensions/Data+Encryption.swift create mode 100644 Dependencies/corecrypto/CoreCryptoMacros.swift create mode 100644 Dependencies/corecrypto/module.modulemap create mode 100644 module.modulemap diff --git a/AltSign.xcodeproj/project.pbxproj b/AltSign.xcodeproj/project.pbxproj index d8fcf2c..5c4e280 100644 --- a/AltSign.xcodeproj/project.pbxproj +++ b/AltSign.xcodeproj/project.pbxproj @@ -31,7 +31,7 @@ BF0C4EB822A1B3CC009A2DD7 /* cnary.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4EB522A1B3CC009A2DD7 /* cnary.c */; }; BF0C4EB922A1B3CC009A2DD7 /* node_list.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4EB622A1B3CC009A2DD7 /* node_list.c */; }; BF17BB7322EA839500D7D842 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF17BB7222EA839400D7D842 /* UIKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - BF48CFEE229437580004760B /* ALTCertificateRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFEC229437580004760B /* ALTCertificateRequest.h */; }; + BF48CFEE229437580004760B /* ALTCertificateRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFEC229437580004760B /* ALTCertificateRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; BF48CFF0229438C10004760B /* ALTCertificateRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BF48CFED229437580004760B /* ALTCertificateRequest.m */; }; BF48CFF622944FC60004760B /* ALTAppID.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFF422944FC60004760B /* ALTAppID.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF48CFF722944FC60004760B /* ALTAppID.m in Sources */ = {isa = PBXBuildFile; fileRef = BF48CFF522944FC60004760B /* ALTAppID.m */; }; @@ -59,13 +59,11 @@ BF5AB3CA2286269B00DC914B /* ALTDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3C82286269B00DC914B /* ALTDevice.m */; }; BF5AB3CD228645DF00DC914B /* ALTCertificate.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3CB228645DF00DC914B /* ALTCertificate.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF5AB3CE228645DF00DC914B /* ALTCertificate.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3CC228645DF00DC914B /* ALTCertificate.m */; }; - BF5C690D24A5205E00C2F854 /* ccsrp.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5C690C24A5205E00C2F854 /* ccsrp.m */; }; - BF5C690E24A5205E00C2F854 /* ccsrp.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5C690C24A5205E00C2F854 /* ccsrp.m */; }; BF5D43F6237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF5D43F7237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF5D43F8237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */; }; BF5D43F9237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */; }; - BF9B633F229DC27C002F0A62 /* ALTModel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */; }; + BF9B633F229DC27C002F0A62 /* ALTModel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; BF9B6340229DC9DD002F0A62 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF48CFE7229435DB0004760B /* openssl.framework */; }; BF9B6375229DCD4D002F0A62 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC9302295F64600587369 /* libz.tbd */; }; BF9B637E229DCF3A002F0A62 /* ALTAppleAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = BFBAC88F2295E05600587369 /* ALTAppleAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -73,9 +71,9 @@ BF9B6380229DCF3A002F0A62 /* ALTAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3B72286024D00DC914B /* ALTAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF9B6381229DCF3A002F0A62 /* NSError+ALTErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3BD2286040400DC914B /* NSError+ALTErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF9B6382229DCF3A002F0A62 /* ALTCertificate.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3CB228645DF00DC914B /* ALTCertificate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6383229DCF3A002F0A62 /* ALTCertificateRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFEC229437580004760B /* ALTCertificateRequest.h */; }; + BF9B6383229DCF3A002F0A62 /* ALTCertificateRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFEC229437580004760B /* ALTCertificateRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; BF9B6384229DCF3A002F0A62 /* ALTDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3C72286269B00DC914B /* ALTDevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6385229DCF3A002F0A62 /* ALTModel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */; }; + BF9B6385229DCF3A002F0A62 /* ALTModel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; BF9B6386229DCF3A002F0A62 /* AltSign.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3B3228600D100DC914B /* AltSign.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF9B6387229DCF3A002F0A62 /* ALTTeam.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3C32286157F00DC914B /* ALTTeam.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF9B6388229DCF3A002F0A62 /* ALTAppID.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFF422944FC60004760B /* ALTAppID.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -128,12 +126,170 @@ BFBAC8F32295EF0500587369 /* libxml2.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8F22295EF0500587369 /* libxml2.2.tbd */; }; BFBAC8F42295EFE300587369 /* libldid.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8AA2295ED1900587369 /* libldid.a */; }; BFBAC93A2295FCB500587369 /* libxml2.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8F22295EF0500587369 /* libxml2.2.tbd */; }; - BFD80D4F23809EE100B9C227 /* ALTAppleAPI+Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D4D23809EE100B9C227 /* ALTAppleAPI+Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFD80D5023809EE100B9C227 /* ALTAppleAPI+Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D4D23809EE100B9C227 /* ALTAppleAPI+Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFD80D5123809EE100B9C227 /* ALTAppleAPI+Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = BFD80D4E23809EE100B9C227 /* ALTAppleAPI+Authentication.m */; }; - BFD80D5223809EE100B9C227 /* ALTAppleAPI+Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = BFD80D4E23809EE100B9C227 /* ALTAppleAPI+Authentication.m */; }; - BFD80D542380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */; }; - BFD80D552380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */; }; + BFBD15C724F04396002CFC71 /* CoreCryptoMacros.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */; }; + BFBD15C824F04396002CFC71 /* CoreCryptoMacros.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */; }; + BFBD15CA24F06BA5002CFC71 /* Data+Encryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */; }; + BFBD15CB24F06BA5002CFC71 /* Data+Encryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */; }; + BFBD15CD24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */; }; + BFBD15CE24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */; }; + BFD80D542380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + BFD80D552380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + BFDF2DD524EDBA78002C10A8 /* GSAContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */; }; + BFDF2DD624EDBA78002C10A8 /* GSAContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */; }; + BFDF2E2924EDBDC1002C10A8 /* cctest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDB24EDBDC0002C10A8 /* cctest.h */; }; + BFDF2E2A24EDBDC1002C10A8 /* cctest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDB24EDBDC0002C10A8 /* cctest.h */; }; + BFDF2E2B24EDBDC1002C10A8 /* cczp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDC24EDBDC0002C10A8 /* cczp.h */; }; + BFDF2E2C24EDBDC1002C10A8 /* cczp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDC24EDBDC0002C10A8 /* cczp.h */; }; + BFDF2E2D24EDBDC1002C10A8 /* ccmd4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */; }; + BFDF2E2E24EDBDC1002C10A8 /* ccmd4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */; }; + BFDF2E2F24EDBDC1002C10A8 /* ccrng_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */; }; + BFDF2E3024EDBDC1002C10A8 /* ccrng_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */; }; + BFDF2E3124EDBDC1002C10A8 /* ccrng_sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */; }; + BFDF2E3224EDBDC1002C10A8 /* ccrng_sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */; }; + BFDF2E3324EDBDC1002C10A8 /* ccz.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE024EDBDC0002C10A8 /* ccz.h */; }; + BFDF2E3424EDBDC1002C10A8 /* ccz.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE024EDBDC0002C10A8 /* ccz.h */; }; + BFDF2E3524EDBDC1002C10A8 /* ccaes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE124EDBDC0002C10A8 /* ccaes.h */; }; + BFDF2E3624EDBDC1002C10A8 /* ccaes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE124EDBDC0002C10A8 /* ccaes.h */; }; + BFDF2E3724EDBDC1002C10A8 /* cchkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */; }; + BFDF2E3824EDBDC1002C10A8 /* cchkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */; }; + BFDF2E3924EDBDC1002C10A8 /* ccec.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE324EDBDC0002C10A8 /* ccec.h */; }; + BFDF2E3A24EDBDC1002C10A8 /* ccec.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE324EDBDC0002C10A8 /* ccec.h */; }; + BFDF2E3B24EDBDC1002C10A8 /* cc_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE424EDBDC0002C10A8 /* cc_config.h */; }; + BFDF2E3C24EDBDC1002C10A8 /* cc_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE424EDBDC0002C10A8 /* cc_config.h */; }; + BFDF2E3D24EDBDC1002C10A8 /* ccsrp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */; }; + BFDF2E3E24EDBDC1002C10A8 /* ccsrp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */; }; + BFDF2E3F24EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */; }; + BFDF2E4024EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */; }; + BFDF2E4124EDBDC1002C10A8 /* ccrng_drbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */; }; + BFDF2E4224EDBDC1002C10A8 /* ccrng_drbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */; }; + BFDF2E4324EDBDC1002C10A8 /* cc_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */; }; + BFDF2E4424EDBDC1002C10A8 /* cc_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */; }; + BFDF2E4524EDBDC1002C10A8 /* fipspost.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE924EDBDC0002C10A8 /* fipspost.h */; }; + BFDF2E4624EDBDC1002C10A8 /* fipspost.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE924EDBDC0002C10A8 /* fipspost.h */; }; + BFDF2E4724EDBDC1002C10A8 /* ccec25519.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */; }; + BFDF2E4824EDBDC1002C10A8 /* ccec25519.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */; }; + BFDF2E4924EDBDC1002C10A8 /* ccdh_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */; }; + BFDF2E4A24EDBDC1002C10A8 /* ccdh_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */; }; + BFDF2E4B24EDBDC1002C10A8 /* ccder_rsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */; }; + BFDF2E4C24EDBDC1002C10A8 /* ccder_rsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */; }; + BFDF2E4D24EDBDC1002C10A8 /* ccrc4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */; }; + BFDF2E4E24EDBDC1002C10A8 /* ccrc4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */; }; + BFDF2E4F24EDBDC1002C10A8 /* ccdes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */; }; + BFDF2E5024EDBDC1002C10A8 /* ccdes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */; }; + BFDF2E5124EDBDC1002C10A8 /* ccrsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */; }; + BFDF2E5224EDBDC1002C10A8 /* ccrsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */; }; + BFDF2E5324EDBDC1002C10A8 /* cc_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */; }; + BFDF2E5424EDBDC1002C10A8 /* cc_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */; }; + BFDF2E5524EDBDC1002C10A8 /* ccblowfish.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */; }; + BFDF2E5624EDBDC1002C10A8 /* ccblowfish.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */; }; + BFDF2E5724EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */; }; + BFDF2E5824EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */; }; + BFDF2E5924EDBDC1002C10A8 /* cczp_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */; }; + BFDF2E5A24EDBDC1002C10A8 /* cczp_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */; }; + BFDF2E5B24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */; }; + BFDF2E5C24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */; }; + BFDF2E5D24EDBDC1002C10A8 /* ccprime.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF524EDBDC0002C10A8 /* ccprime.h */; }; + BFDF2E5E24EDBDC1002C10A8 /* ccprime.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF524EDBDC0002C10A8 /* ccprime.h */; }; + BFDF2E5F24EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */; }; + BFDF2E6024EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */; }; + BFDF2E6124EDBDC1002C10A8 /* ccdigest_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */; }; + BFDF2E6224EDBDC1002C10A8 /* ccdigest_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */; }; + BFDF2E6324EDBDC1002C10A8 /* ccnistkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */; }; + BFDF2E6424EDBDC1002C10A8 /* ccnistkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */; }; + BFDF2E6524EDBDC1002C10A8 /* ccasn1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */; }; + BFDF2E6624EDBDC1002C10A8 /* ccasn1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */; }; + BFDF2E6724EDBDC1002C10A8 /* ccripemd.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */; }; + BFDF2E6824EDBDC1002C10A8 /* ccripemd.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */; }; + BFDF2E6924EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */; }; + BFDF2E6A24EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */; }; + BFDF2E6B24EDBDC1002C10A8 /* cc.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFC24EDBDC0002C10A8 /* cc.h */; }; + BFDF2E6C24EDBDC1002C10A8 /* cc.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFC24EDBDC0002C10A8 /* cc.h */; }; + BFDF2E6D24EDBDC1002C10A8 /* ccder_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */; }; + BFDF2E6E24EDBDC1002C10A8 /* ccder_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */; }; + BFDF2E6F24EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */; }; + BFDF2E7024EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */; }; + BFDF2E7124EDBDC1002C10A8 /* ccrsa_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */; }; + BFDF2E7224EDBDC1002C10A8 /* ccrsa_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */; }; + BFDF2E7324EDBDC1002C10A8 /* ccdh_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */; }; + BFDF2E7424EDBDC1002C10A8 /* ccdh_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */; }; + BFDF2E7524EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */; }; + BFDF2E7624EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */; }; + BFDF2E7724EDBDC1002C10A8 /* ccperf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0224EDBDC0002C10A8 /* ccperf.h */; }; + BFDF2E7824EDBDC1002C10A8 /* ccperf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0224EDBDC0002C10A8 /* ccperf.h */; }; + BFDF2E7924EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */; }; + BFDF2E7A24EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */; }; + BFDF2E7B24EDBDC1002C10A8 /* ccsrp.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */; }; + BFDF2E7C24EDBDC1002C10A8 /* ccsrp.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */; }; + BFDF2E7D24EDBDC1002C10A8 /* ccn_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */; }; + BFDF2E7E24EDBDC1002C10A8 /* ccn_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */; }; + BFDF2E7F24EDBDC1002C10A8 /* ccz_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */; }; + BFDF2E8024EDBDC1002C10A8 /* ccz_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */; }; + BFDF2E8124EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */; }; + BFDF2E8224EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */; }; + BFDF2E8324EDBDC1002C10A8 /* ccansikdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */; }; + BFDF2E8424EDBDC1002C10A8 /* ccansikdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */; }; + BFDF2E8524EDBDC1002C10A8 /* ccmd2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */; }; + BFDF2E8624EDBDC1002C10A8 /* ccmd2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */; }; + BFDF2E8724EDBDC1002C10A8 /* ccsha1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */; }; + BFDF2E8824EDBDC1002C10A8 /* ccsha1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */; }; + BFDF2E8924EDBDC1002C10A8 /* ccecies.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */; }; + BFDF2E8A24EDBDC1002C10A8 /* ccecies.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */; }; + BFDF2E8B24EDBDC1002C10A8 /* cc_memory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */; }; + BFDF2E8C24EDBDC1002C10A8 /* cc_memory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */; }; + BFDF2E8D24EDBDC1002C10A8 /* ccwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */; }; + BFDF2E8E24EDBDC1002C10A8 /* ccwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */; }; + BFDF2E8F24EDBDC1002C10A8 /* ccmode_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */; }; + BFDF2E9024EDBDC1002C10A8 /* ccmode_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */; }; + BFDF2E9124EDBDC1002C10A8 /* ccrc2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */; }; + BFDF2E9224EDBDC1002C10A8 /* ccrc2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */; }; + BFDF2E9324EDBDC1002C10A8 /* ccsrp_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */; }; + BFDF2E9424EDBDC1002C10A8 /* ccsrp_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */; }; + BFDF2E9524EDBDC1002C10A8 /* cccmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1124EDBDC0002C10A8 /* cccmac.h */; }; + BFDF2E9624EDBDC1002C10A8 /* cccmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1124EDBDC0002C10A8 /* cccmac.h */; }; + BFDF2E9724EDBDC1002C10A8 /* ccn.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1224EDBDC0002C10A8 /* ccn.h */; }; + BFDF2E9824EDBDC1002C10A8 /* ccn.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1224EDBDC0002C10A8 /* ccn.h */; }; + BFDF2E9924EDBDC1002C10A8 /* ccmd5.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */; }; + BFDF2E9A24EDBDC1002C10A8 /* ccmd5.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */; }; + BFDF2E9B24EDBDC1002C10A8 /* ccrng_system.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */; }; + BFDF2E9C24EDBDC1002C10A8 /* ccrng_system.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */; }; + BFDF2E9D24EDBDC1002C10A8 /* ccmode.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1524EDBDC0002C10A8 /* ccmode.h */; }; + BFDF2E9E24EDBDC1002C10A8 /* ccmode.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1524EDBDC0002C10A8 /* ccmode.h */; }; + BFDF2E9F24EDBDC1002C10A8 /* ccec_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */; }; + BFDF2EA024EDBDC1002C10A8 /* ccec_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */; }; + BFDF2EA124EDBDC1002C10A8 /* ccrng_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */; }; + BFDF2EA224EDBDC1002C10A8 /* ccrng_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */; }; + BFDF2EA324EDBDC1002C10A8 /* cchmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1824EDBDC0002C10A8 /* cchmac.h */; }; + BFDF2EA424EDBDC1002C10A8 /* cchmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1824EDBDC0002C10A8 /* cchmac.h */; }; + BFDF2EA524EDBDC1002C10A8 /* ccpad.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1924EDBDC0002C10A8 /* ccpad.h */; }; + BFDF2EA624EDBDC1002C10A8 /* ccpad.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1924EDBDC0002C10A8 /* ccpad.h */; }; + BFDF2EA724EDBDC1002C10A8 /* ccecies_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */; }; + BFDF2EA824EDBDC1002C10A8 /* ccecies_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */; }; + BFDF2EA924EDBDC1002C10A8 /* ccsha2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */; }; + BFDF2EAA24EDBDC1002C10A8 /* ccsha2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */; }; + BFDF2EAB24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */; }; + BFDF2EAC24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */; }; + BFDF2EAD24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */; }; + BFDF2EAE24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */; }; + BFDF2EAF24EDBDC1002C10A8 /* cc_runtime_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */; }; + BFDF2EB024EDBDC1002C10A8 /* cc_runtime_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */; }; + BFDF2EB124EDBDC1002C10A8 /* ccdh.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2024EDBDC0002C10A8 /* ccdh.h */; }; + BFDF2EB224EDBDC1002C10A8 /* ccdh.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2024EDBDC0002C10A8 /* ccdh.h */; }; + BFDF2EB324EDBDC1002C10A8 /* ccmode_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */; }; + BFDF2EB424EDBDC1002C10A8 /* ccmode_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */; }; + BFDF2EB524EDBDC1002C10A8 /* ccmode_siv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */; }; + BFDF2EB624EDBDC1002C10A8 /* ccmode_siv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */; }; + BFDF2EB724EDBDC1002C10A8 /* ccdrbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */; }; + BFDF2EB824EDBDC1002C10A8 /* ccdrbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */; }; + BFDF2EB924EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */; }; + BFDF2EBA24EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */; }; + BFDF2EBB24EDBDC1002C10A8 /* cccast.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2524EDBDC0002C10A8 /* cccast.h */; }; + BFDF2EBC24EDBDC1002C10A8 /* cccast.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2524EDBDC0002C10A8 /* cccast.h */; }; + BFDF2EBD24EDBDC1002C10A8 /* ccdigest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */; }; + BFDF2EBE24EDBDC1002C10A8 /* ccdigest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */; }; + BFDF2EBF24EDBDC1002C10A8 /* ccder.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2724EDBDC0002C10A8 /* ccder.h */; }; + BFDF2EC024EDBDC1002C10A8 /* ccder.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2724EDBDC0002C10A8 /* ccder.h */; }; + BFDF2EC124EDBDC1002C10A8 /* ccrng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2824EDBDC0002C10A8 /* ccrng.h */; }; + BFDF2EC224EDBDC1002C10A8 /* ccrng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2824EDBDC0002C10A8 /* ccrng.h */; }; BFE20E07237C932600409FF7 /* ALTAnisetteData.h in Headers */ = {isa = PBXBuildFile; fileRef = BFE20E05237C932600409FF7 /* ALTAnisetteData.h */; settings = {ATTRIBUTES = (Public, ); }; }; BFE20E08237C932600409FF7 /* ALTAnisetteData.h in Headers */ = {isa = PBXBuildFile; fileRef = BFE20E05237C932600409FF7 /* ALTAnisetteData.h */; settings = {ATTRIBUTES = (Public, ); }; }; BFE20E09237C932600409FF7 /* ALTAnisetteData.m in Sources */ = {isa = PBXBuildFile; fileRef = BFE20E06237C932600409FF7 /* ALTAnisetteData.m */; }; @@ -242,7 +398,6 @@ BF5AB3C82286269B00DC914B /* ALTDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTDevice.m; sourceTree = ""; }; BF5AB3CB228645DF00DC914B /* ALTCertificate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTCertificate.h; sourceTree = ""; }; BF5AB3CC228645DF00DC914B /* ALTCertificate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTCertificate.m; sourceTree = ""; }; - BF5C690C24A5205E00C2F854 /* ccsrp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ccsrp.m; path = Dependencies/corecrypto/ccsrp.m; sourceTree = SOURCE_ROOT; }; BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppleAPISession.h; sourceTree = ""; }; BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAppleAPISession.m; sourceTree = ""; }; BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ALTModel+Internal.h"; sourceTree = ""; }; @@ -274,87 +429,91 @@ BFBAC8E22295ED6C00587369 /* lookup2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lookup2.c; path = Dependencies/ldid/lookup2.c; sourceTree = SOURCE_ROOT; }; BFBAC8F22295EF0500587369 /* libxml2.2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.2.tbd; path = usr/lib/libxml2.2.tbd; sourceTree = SDKROOT; }; BFBAC9302295F64600587369 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - BFD80D4D23809EE100B9C227 /* ALTAppleAPI+Authentication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ALTAppleAPI+Authentication.h"; sourceTree = ""; }; - BFD80D4E23809EE100B9C227 /* ALTAppleAPI+Authentication.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ALTAppleAPI+Authentication.m"; sourceTree = ""; }; + BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreCryptoMacros.swift; sourceTree = ""; }; + BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Data+Encryption.swift"; sourceTree = ""; }; + BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ALTAppleAPI+Authentication.swift"; sourceTree = ""; }; BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppleAPI_Private.h; sourceTree = ""; }; + BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GSAContext.swift; sourceTree = ""; }; + BFDF2DDB24EDBDC0002C10A8 /* cctest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cctest.h; sourceTree = ""; }; + BFDF2DDC24EDBDC0002C10A8 /* cczp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cczp.h; sourceTree = ""; }; + BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmd4.h; sourceTree = ""; }; + BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_priv.h; sourceTree = ""; }; + BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_sequence.h; sourceTree = ""; }; + BFDF2DE024EDBDC0002C10A8 /* ccz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccz.h; sourceTree = ""; }; + BFDF2DE124EDBDC0002C10A8 /* ccaes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccaes.h; sourceTree = ""; }; + BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cchkdf.h; sourceTree = ""; }; + BFDF2DE324EDBDC0002C10A8 /* ccec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec.h; sourceTree = ""; }; + BFDF2DE424EDBDC0002C10A8 /* cc_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_config.h; sourceTree = ""; }; + BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsrp.h; sourceTree = ""; }; + BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_ecfips_test.h; sourceTree = ""; }; + BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_drbg.h; sourceTree = ""; }; + BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_priv.h; sourceTree = ""; }; + BFDF2DE924EDBDC0002C10A8 /* fipspost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fipspost.h; sourceTree = ""; }; + BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec25519.h; sourceTree = ""; }; + BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdh_priv.h; sourceTree = ""; }; + BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_rsa.h; sourceTree = ""; }; + BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrc4.h; sourceTree = ""; }; + BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdes.h; sourceTree = ""; }; + BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrsa.h; sourceTree = ""; }; + BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_debug.h; sourceTree = ""; }; + BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccblowfish.h; sourceTree = ""; }; + BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccchacha20poly1305_priv.h; sourceTree = ""; }; + BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cczp_priv.h; sourceTree = ""; }; + BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdrbg_impl.h; sourceTree = ""; }; + BFDF2DF524EDBDC0002C10A8 /* ccprime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccprime.h; sourceTree = ""; }; + BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_pbkdf2_prng.h; sourceTree = ""; }; + BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdigest_priv.h; sourceTree = ""; }; + BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccnistkdf.h; sourceTree = ""; }; + BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccasn1.h; sourceTree = ""; }; + BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccripemd.h; sourceTree = ""; }; + BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccchacha20poly1305.h; sourceTree = ""; }; + BFDF2DFC24EDBDC0002C10A8 /* cc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc.h; sourceTree = ""; }; + BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_priv.h; sourceTree = ""; }; + BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_decode_eckey.h; sourceTree = ""; }; + BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrsa_priv.h; sourceTree = ""; }; + BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdh_gp.h; sourceTree = ""; }; + BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_rsafips_test.h; sourceTree = ""; }; + BFDF2E0224EDBDC0002C10A8 /* ccperf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccperf.h; sourceTree = ""; }; + BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_encode_eckey.h; sourceTree = ""; }; + BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ccsrp.m; sourceTree = ""; }; + BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccn_priv.h; sourceTree = ""; }; + BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccz_priv.h; sourceTree = ""; }; + BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdrbg_factory.h; sourceTree = ""; }; + BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccansikdf.h; sourceTree = ""; }; + BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmd2.h; sourceTree = ""; }; + BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsha1.h; sourceTree = ""; }; + BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccecies.h; sourceTree = ""; }; + BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_memory.h; sourceTree = ""; }; + BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccwrap.h; sourceTree = ""; }; + BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_factory.h; sourceTree = ""; }; + BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrc2.h; sourceTree = ""; }; + BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsrp_gp.h; sourceTree = ""; }; + BFDF2E1124EDBDC0002C10A8 /* cccmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cccmac.h; sourceTree = ""; }; + BFDF2E1224EDBDC0002C10A8 /* ccn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccn.h; sourceTree = ""; }; + BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmd5.h; sourceTree = ""; }; + BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_system.h; sourceTree = ""; }; + BFDF2E1524EDBDC0002C10A8 /* ccmode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode.h; sourceTree = ""; }; + BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec_priv.h; sourceTree = ""; }; + BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_test.h; sourceTree = ""; }; + BFDF2E1824EDBDC0002C10A8 /* cchmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cchmac.h; sourceTree = ""; }; + BFDF2E1924EDBDC0002C10A8 /* ccpad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccpad.h; sourceTree = ""; }; + BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccecies_priv.h; sourceTree = ""; }; + BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsha2.h; sourceTree = ""; }; + BFDF2E1C24EDBDC0002C10A8 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; + BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccpbkdf2.h; sourceTree = ""; }; + BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec25519_priv.h; sourceTree = ""; }; + BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_runtime_config.h; sourceTree = ""; }; + BFDF2E2024EDBDC0002C10A8 /* ccdh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdh.h; sourceTree = ""; }; + BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_impl.h; sourceTree = ""; }; + BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_siv.h; sourceTree = ""; }; + BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdrbg.h; sourceTree = ""; }; + BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_siv_priv.h; sourceTree = ""; }; + BFDF2E2524EDBDC0002C10A8 /* cccast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cccast.h; sourceTree = ""; }; + BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdigest.h; sourceTree = ""; }; + BFDF2E2724EDBDC0002C10A8 /* ccder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder.h; sourceTree = ""; }; + BFDF2E2824EDBDC0002C10A8 /* ccrng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng.h; sourceTree = ""; }; BFE20E05237C932600409FF7 /* ALTAnisetteData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAnisetteData.h; sourceTree = ""; }; BFE20E06237C932600409FF7 /* ALTAnisetteData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAnisetteData.m; sourceTree = ""; }; - BFE20E0E237CAA3A00409FF7 /* ccder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccder.h; path = Dependencies/corecrypto/ccder.h; sourceTree = SOURCE_ROOT; }; - BFE20E0F237CAA3A00409FF7 /* ccec25519.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccec25519.h; path = Dependencies/corecrypto/ccec25519.h; sourceTree = SOURCE_ROOT; }; - BFE20E10237CAA3A00409FF7 /* ccmode_siv_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmode_siv_priv.h; path = Dependencies/corecrypto/ccmode_siv_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E11237CAA3A00409FF7 /* cchkdf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cchkdf.h; path = Dependencies/corecrypto/cchkdf.h; sourceTree = SOURCE_ROOT; }; - BFE20E12237CAA3A00409FF7 /* ccec_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccec_priv.h; path = Dependencies/corecrypto/ccec_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E13237CAA3A00409FF7 /* ccansikdf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccansikdf.h; path = Dependencies/corecrypto/ccansikdf.h; sourceTree = SOURCE_ROOT; }; - BFE20E14237CAA3A00409FF7 /* ccpbkdf2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccpbkdf2.h; path = Dependencies/corecrypto/ccpbkdf2.h; sourceTree = SOURCE_ROOT; }; - BFE20E15237CAA3A00409FF7 /* ccrc4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrc4.h; path = Dependencies/corecrypto/ccrc4.h; sourceTree = SOURCE_ROOT; }; - BFE20E16237CAA3B00409FF7 /* ccder_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccder_priv.h; path = Dependencies/corecrypto/ccder_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E17237CAA3B00409FF7 /* ccrng_ecfips_test.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_ecfips_test.h; path = Dependencies/corecrypto/ccrng_ecfips_test.h; sourceTree = SOURCE_ROOT; }; - BFE20E18237CAA3B00409FF7 /* ccrng_test.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_test.h; path = Dependencies/corecrypto/ccrng_test.h; sourceTree = SOURCE_ROOT; }; - BFE20E19237CAA3B00409FF7 /* ccrsa_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrsa_priv.h; path = Dependencies/corecrypto/ccrsa_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E1A237CAA3B00409FF7 /* ccrng_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_priv.h; path = Dependencies/corecrypto/ccrng_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E1B237CAA3B00409FF7 /* ccdrbg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdrbg.h; path = Dependencies/corecrypto/ccdrbg.h; sourceTree = SOURCE_ROOT; }; - BFE20E1C237CAA3B00409FF7 /* ccz.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccz.h; path = Dependencies/corecrypto/ccz.h; sourceTree = SOURCE_ROOT; }; - BFE20E1D237CAA3B00409FF7 /* ccmd5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmd5.h; path = Dependencies/corecrypto/ccmd5.h; sourceTree = SOURCE_ROOT; }; - BFE20E1E237CAA3B00409FF7 /* ccec25519_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccec25519_priv.h; path = Dependencies/corecrypto/ccec25519_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E1F237CAA3B00409FF7 /* ccsha1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccsha1.h; path = Dependencies/corecrypto/ccsha1.h; sourceTree = SOURCE_ROOT; }; - BFE20E20237CAA3B00409FF7 /* ccsha2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccsha2.h; path = Dependencies/corecrypto/ccsha2.h; sourceTree = SOURCE_ROOT; }; - BFE20E21237CAA3B00409FF7 /* ccasn1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccasn1.h; path = Dependencies/corecrypto/ccasn1.h; sourceTree = SOURCE_ROOT; }; - BFE20E22237CAA3B00409FF7 /* ccrng_system.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_system.h; path = Dependencies/corecrypto/ccrng_system.h; sourceTree = SOURCE_ROOT; }; - BFE20E23237CAA3B00409FF7 /* ccdes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdes.h; path = Dependencies/corecrypto/ccdes.h; sourceTree = SOURCE_ROOT; }; - BFE20E24237CAA3B00409FF7 /* ccripemd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccripemd.h; path = Dependencies/corecrypto/ccripemd.h; sourceTree = SOURCE_ROOT; }; - BFE20E25237CAA3B00409FF7 /* ccder_decode_eckey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccder_decode_eckey.h; path = Dependencies/corecrypto/ccder_decode_eckey.h; sourceTree = SOURCE_ROOT; }; - BFE20E26237CAA3B00409FF7 /* ccn_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccn_priv.h; path = Dependencies/corecrypto/ccn_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E27237CAA3B00409FF7 /* ccz_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccz_priv.h; path = Dependencies/corecrypto/ccz_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E28237CAA3B00409FF7 /* cc_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cc_config.h; path = Dependencies/corecrypto/cc_config.h; sourceTree = SOURCE_ROOT; }; - BFE20E29237CAA3B00409FF7 /* cctest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cctest.h; path = Dependencies/corecrypto/cctest.h; sourceTree = SOURCE_ROOT; }; - BFE20E2A237CAA3B00409FF7 /* ccpad.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccpad.h; path = Dependencies/corecrypto/ccpad.h; sourceTree = SOURCE_ROOT; }; - BFE20E2B237CAA3C00409FF7 /* ccdh_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdh_priv.h; path = Dependencies/corecrypto/ccdh_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E2C237CAA3C00409FF7 /* ccrsa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrsa.h; path = Dependencies/corecrypto/ccrsa.h; sourceTree = SOURCE_ROOT; }; - BFE20E2D237CAA3C00409FF7 /* ccrng_pbkdf2_prng.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_pbkdf2_prng.h; path = Dependencies/corecrypto/ccrng_pbkdf2_prng.h; sourceTree = SOURCE_ROOT; }; - BFE20E2E237CAA3C00409FF7 /* ccdrbg_impl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdrbg_impl.h; path = Dependencies/corecrypto/ccdrbg_impl.h; sourceTree = SOURCE_ROOT; }; - BFE20E2F237CAA3C00409FF7 /* cccast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cccast.h; path = Dependencies/corecrypto/cccast.h; sourceTree = SOURCE_ROOT; }; - BFE20E30237CAA3C00409FF7 /* ccchacha20poly1305.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccchacha20poly1305.h; path = Dependencies/corecrypto/ccchacha20poly1305.h; sourceTree = SOURCE_ROOT; }; - BFE20E31237CAA3C00409FF7 /* cc_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cc_priv.h; path = Dependencies/corecrypto/cc_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E32237CAA3C00409FF7 /* ccder_rsa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccder_rsa.h; path = Dependencies/corecrypto/ccder_rsa.h; sourceTree = SOURCE_ROOT; }; - BFE20E33237CAA3C00409FF7 /* cchmac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cchmac.h; path = Dependencies/corecrypto/cchmac.h; sourceTree = SOURCE_ROOT; }; - BFE20E34237CAA3C00409FF7 /* ccrng_drbg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_drbg.h; path = Dependencies/corecrypto/ccrng_drbg.h; sourceTree = SOURCE_ROOT; }; - BFE20E35237CAA3C00409FF7 /* ccrng_sequence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_sequence.h; path = Dependencies/corecrypto/ccrng_sequence.h; sourceTree = SOURCE_ROOT; }; - BFE20E36237CAA3C00409FF7 /* ccdigest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdigest.h; path = Dependencies/corecrypto/ccdigest.h; sourceTree = SOURCE_ROOT; }; - BFE20E37237CAA3C00409FF7 /* ccdh.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdh.h; path = Dependencies/corecrypto/ccdh.h; sourceTree = SOURCE_ROOT; }; - BFE20E38237CAA3C00409FF7 /* ccmd4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmd4.h; path = Dependencies/corecrypto/ccmd4.h; sourceTree = SOURCE_ROOT; }; - BFE20E39237CAA3C00409FF7 /* ccec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccec.h; path = Dependencies/corecrypto/ccec.h; sourceTree = SOURCE_ROOT; }; - BFE20E3A237CAA3C00409FF7 /* ccperf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccperf.h; path = Dependencies/corecrypto/ccperf.h; sourceTree = SOURCE_ROOT; }; - BFE20E3B237CAA3C00409FF7 /* fipspost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = fipspost.h; path = Dependencies/corecrypto/fipspost.h; sourceTree = SOURCE_ROOT; }; - BFE20E3C237CAA3C00409FF7 /* ccnistkdf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccnistkdf.h; path = Dependencies/corecrypto/ccnistkdf.h; sourceTree = SOURCE_ROOT; }; - BFE20E3D237CAA3D00409FF7 /* ccdrbg_factory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdrbg_factory.h; path = Dependencies/corecrypto/ccdrbg_factory.h; sourceTree = SOURCE_ROOT; }; - BFE20E3E237CAA3D00409FF7 /* ccrng_rsafips_test.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng_rsafips_test.h; path = Dependencies/corecrypto/ccrng_rsafips_test.h; sourceTree = SOURCE_ROOT; }; - BFE20E3F237CAA3D00409FF7 /* ccmode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmode.h; path = Dependencies/corecrypto/ccmode.h; sourceTree = SOURCE_ROOT; }; - BFE20E40237CAA3D00409FF7 /* ccmode_siv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmode_siv.h; path = Dependencies/corecrypto/ccmode_siv.h; sourceTree = SOURCE_ROOT; }; - BFE20E41237CAA3D00409FF7 /* cc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cc.h; path = Dependencies/corecrypto/cc.h; sourceTree = SOURCE_ROOT; }; - BFE20E42237CAA3D00409FF7 /* ccsrp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccsrp.h; path = Dependencies/corecrypto/ccsrp.h; sourceTree = SOURCE_ROOT; }; - BFE20E43237CAA3D00409FF7 /* ccaes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccaes.h; path = Dependencies/corecrypto/ccaes.h; sourceTree = SOURCE_ROOT; }; - BFE20E44237CAA3D00409FF7 /* cc_memory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cc_memory.h; path = Dependencies/corecrypto/cc_memory.h; sourceTree = SOURCE_ROOT; }; - BFE20E45237CAA3D00409FF7 /* cc_debug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cc_debug.h; path = Dependencies/corecrypto/cc_debug.h; sourceTree = SOURCE_ROOT; }; - BFE20E46237CAA3D00409FF7 /* ccdh_gp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdh_gp.h; path = Dependencies/corecrypto/ccdh_gp.h; sourceTree = SOURCE_ROOT; }; - BFE20E47237CAA3D00409FF7 /* cccmac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cccmac.h; path = Dependencies/corecrypto/cccmac.h; sourceTree = SOURCE_ROOT; }; - BFE20E48237CAA3D00409FF7 /* ccmode_factory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmode_factory.h; path = Dependencies/corecrypto/ccmode_factory.h; sourceTree = SOURCE_ROOT; }; - BFE20E49237CAA3E00409FF7 /* ccn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccn.h; path = Dependencies/corecrypto/ccn.h; sourceTree = SOURCE_ROOT; }; - BFE20E4A237CAA3E00409FF7 /* ccchacha20poly1305_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccchacha20poly1305_priv.h; path = Dependencies/corecrypto/ccchacha20poly1305_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E4B237CAA3E00409FF7 /* ccecies_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccecies_priv.h; path = Dependencies/corecrypto/ccecies_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E4C237CAA3E00409FF7 /* ccblowfish.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccblowfish.h; path = Dependencies/corecrypto/ccblowfish.h; sourceTree = SOURCE_ROOT; }; - BFE20E4D237CAA3E00409FF7 /* ccdigest_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccdigest_priv.h; path = Dependencies/corecrypto/ccdigest_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E4E237CAA3E00409FF7 /* ccprime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccprime.h; path = Dependencies/corecrypto/ccprime.h; sourceTree = SOURCE_ROOT; }; - BFE20E4F237CAA3E00409FF7 /* ccwrap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccwrap.h; path = Dependencies/corecrypto/ccwrap.h; sourceTree = SOURCE_ROOT; }; - BFE20E50237CAA3E00409FF7 /* ccrc2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrc2.h; path = Dependencies/corecrypto/ccrc2.h; sourceTree = SOURCE_ROOT; }; - BFE20E51237CAA3E00409FF7 /* ccecies.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccecies.h; path = Dependencies/corecrypto/ccecies.h; sourceTree = SOURCE_ROOT; }; - BFE20E52237CAA3E00409FF7 /* ccrng.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccrng.h; path = Dependencies/corecrypto/ccrng.h; sourceTree = SOURCE_ROOT; }; - BFE20E53237CAA3E00409FF7 /* cc_runtime_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cc_runtime_config.h; path = Dependencies/corecrypto/cc_runtime_config.h; sourceTree = SOURCE_ROOT; }; - BFE20E54237CAA3E00409FF7 /* ccder_encode_eckey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccder_encode_eckey.h; path = Dependencies/corecrypto/ccder_encode_eckey.h; sourceTree = SOURCE_ROOT; }; - BFE20E55237CAA3E00409FF7 /* cczp_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cczp_priv.h; path = Dependencies/corecrypto/cczp_priv.h; sourceTree = SOURCE_ROOT; }; - BFE20E56237CAA3E00409FF7 /* ccmode_impl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmode_impl.h; path = Dependencies/corecrypto/ccmode_impl.h; sourceTree = SOURCE_ROOT; }; - BFE20E57237CAA3E00409FF7 /* cczp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cczp.h; path = Dependencies/corecrypto/cczp.h; sourceTree = SOURCE_ROOT; }; - BFE20E58237CAA3E00409FF7 /* ccsrp_gp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccsrp_gp.h; path = Dependencies/corecrypto/ccsrp_gp.h; sourceTree = SOURCE_ROOT; }; - BFE20E59237CAA3E00409FF7 /* ccmd2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ccmd2.h; path = Dependencies/corecrypto/ccmd2.h; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -395,7 +554,7 @@ BF48CFE0229435CB0004760B /* Dependencies */ = { isa = PBXGroup; children = ( - BFE20E0D237CAA2500409FF7 /* corecrypto */, + BFDF2DDA24EDBDC0002C10A8 /* corecrypto */, BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */, BF9B63D3229DD8E8002F0A62 /* minizip */, ); @@ -497,6 +656,7 @@ BF50E7D322C293F80070E17B /* Capabilities */, BF50E7C722C1694A0070E17B /* ldid */, BF5AB3C12286040800DC914B /* Categories */, + BFBD15D024F08CEA002CFC71 /* Extensions */, BF9B641B229E0DF4002F0A62 /* Resources */, BF48CFE0229435CB0004760B /* Dependencies */, BF5AB39D2285FDB200DC914B /* Info.plist */, @@ -564,10 +724,10 @@ BFBAC88F2295E05600587369 /* ALTAppleAPI.h */, BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */, BFBAC8902295E05600587369 /* ALTAppleAPI.m */, - BFD80D4D23809EE100B9C227 /* ALTAppleAPI+Authentication.h */, - BFD80D4E23809EE100B9C227 /* ALTAppleAPI+Authentication.m */, + BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */, BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */, BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */, + BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */, ); path = "Apple API"; sourceTree = ""; @@ -630,90 +790,101 @@ name = libcnary; sourceTree = ""; }; - BFE20E0D237CAA2500409FF7 /* corecrypto */ = { + BFBD15D024F08CEA002CFC71 /* Extensions */ = { isa = PBXGroup; children = ( - BFE20E28237CAA3B00409FF7 /* cc_config.h */, - BFE20E45237CAA3D00409FF7 /* cc_debug.h */, - BFE20E44237CAA3D00409FF7 /* cc_memory.h */, - BFE20E31237CAA3C00409FF7 /* cc_priv.h */, - BFE20E53237CAA3E00409FF7 /* cc_runtime_config.h */, - BFE20E41237CAA3D00409FF7 /* cc.h */, - BFE20E43237CAA3D00409FF7 /* ccaes.h */, - BFE20E13237CAA3A00409FF7 /* ccansikdf.h */, - BFE20E21237CAA3B00409FF7 /* ccasn1.h */, - BFE20E4C237CAA3E00409FF7 /* ccblowfish.h */, - BFE20E2F237CAA3C00409FF7 /* cccast.h */, - BFE20E4A237CAA3E00409FF7 /* ccchacha20poly1305_priv.h */, - BFE20E30237CAA3C00409FF7 /* ccchacha20poly1305.h */, - BFE20E47237CAA3D00409FF7 /* cccmac.h */, - BFE20E25237CAA3B00409FF7 /* ccder_decode_eckey.h */, - BFE20E54237CAA3E00409FF7 /* ccder_encode_eckey.h */, - BFE20E16237CAA3B00409FF7 /* ccder_priv.h */, - BFE20E32237CAA3C00409FF7 /* ccder_rsa.h */, - BFE20E0E237CAA3A00409FF7 /* ccder.h */, - BFE20E23237CAA3B00409FF7 /* ccdes.h */, - BFE20E46237CAA3D00409FF7 /* ccdh_gp.h */, - BFE20E2B237CAA3C00409FF7 /* ccdh_priv.h */, - BFE20E37237CAA3C00409FF7 /* ccdh.h */, - BFE20E4D237CAA3E00409FF7 /* ccdigest_priv.h */, - BFE20E36237CAA3C00409FF7 /* ccdigest.h */, - BFE20E3D237CAA3D00409FF7 /* ccdrbg_factory.h */, - BFE20E2E237CAA3C00409FF7 /* ccdrbg_impl.h */, - BFE20E1B237CAA3B00409FF7 /* ccdrbg.h */, - BFE20E12237CAA3A00409FF7 /* ccec_priv.h */, - BFE20E39237CAA3C00409FF7 /* ccec.h */, - BFE20E1E237CAA3B00409FF7 /* ccec25519_priv.h */, - BFE20E0F237CAA3A00409FF7 /* ccec25519.h */, - BFE20E4B237CAA3E00409FF7 /* ccecies_priv.h */, - BFE20E51237CAA3E00409FF7 /* ccecies.h */, - BFE20E11237CAA3A00409FF7 /* cchkdf.h */, - BFE20E33237CAA3C00409FF7 /* cchmac.h */, - BFE20E59237CAA3E00409FF7 /* ccmd2.h */, - BFE20E38237CAA3C00409FF7 /* ccmd4.h */, - BFE20E1D237CAA3B00409FF7 /* ccmd5.h */, - BFE20E48237CAA3D00409FF7 /* ccmode_factory.h */, - BFE20E56237CAA3E00409FF7 /* ccmode_impl.h */, - BFE20E10237CAA3A00409FF7 /* ccmode_siv_priv.h */, - BFE20E40237CAA3D00409FF7 /* ccmode_siv.h */, - BFE20E3F237CAA3D00409FF7 /* ccmode.h */, - BFE20E26237CAA3B00409FF7 /* ccn_priv.h */, - BFE20E49237CAA3E00409FF7 /* ccn.h */, - BFE20E3C237CAA3C00409FF7 /* ccnistkdf.h */, - BFE20E2A237CAA3B00409FF7 /* ccpad.h */, - BFE20E14237CAA3A00409FF7 /* ccpbkdf2.h */, - BFE20E3A237CAA3C00409FF7 /* ccperf.h */, - BFE20E4E237CAA3E00409FF7 /* ccprime.h */, - BFE20E50237CAA3E00409FF7 /* ccrc2.h */, - BFE20E15237CAA3A00409FF7 /* ccrc4.h */, - BFE20E24237CAA3B00409FF7 /* ccripemd.h */, - BFE20E34237CAA3C00409FF7 /* ccrng_drbg.h */, - BFE20E17237CAA3B00409FF7 /* ccrng_ecfips_test.h */, - BFE20E2D237CAA3C00409FF7 /* ccrng_pbkdf2_prng.h */, - BFE20E1A237CAA3B00409FF7 /* ccrng_priv.h */, - BFE20E3E237CAA3D00409FF7 /* ccrng_rsafips_test.h */, - BFE20E35237CAA3C00409FF7 /* ccrng_sequence.h */, - BFE20E22237CAA3B00409FF7 /* ccrng_system.h */, - BFE20E18237CAA3B00409FF7 /* ccrng_test.h */, - BFE20E52237CAA3E00409FF7 /* ccrng.h */, - BFE20E19237CAA3B00409FF7 /* ccrsa_priv.h */, - BFE20E2C237CAA3C00409FF7 /* ccrsa.h */, - BFE20E1F237CAA3B00409FF7 /* ccsha1.h */, - BFE20E20237CAA3B00409FF7 /* ccsha2.h */, - BFE20E58237CAA3E00409FF7 /* ccsrp_gp.h */, - BFE20E42237CAA3D00409FF7 /* ccsrp.h */, - BF5C690C24A5205E00C2F854 /* ccsrp.m */, - BFE20E29237CAA3B00409FF7 /* cctest.h */, - BFE20E4F237CAA3E00409FF7 /* ccwrap.h */, - BFE20E27237CAA3B00409FF7 /* ccz_priv.h */, - BFE20E1C237CAA3B00409FF7 /* ccz.h */, - BFE20E55237CAA3E00409FF7 /* cczp_priv.h */, - BFE20E57237CAA3E00409FF7 /* cczp.h */, - BFE20E3B237CAA3C00409FF7 /* fipspost.h */, + BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */, ); - name = corecrypto; + path = Extensions; sourceTree = ""; }; + BFDF2DDA24EDBDC0002C10A8 /* corecrypto */ = { + isa = PBXGroup; + children = ( + BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */, + BFDF2DDB24EDBDC0002C10A8 /* cctest.h */, + BFDF2DDC24EDBDC0002C10A8 /* cczp.h */, + BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */, + BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */, + BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */, + BFDF2DE024EDBDC0002C10A8 /* ccz.h */, + BFDF2DE124EDBDC0002C10A8 /* ccaes.h */, + BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */, + BFDF2DE324EDBDC0002C10A8 /* ccec.h */, + BFDF2DE424EDBDC0002C10A8 /* cc_config.h */, + BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */, + BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */, + BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */, + BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */, + BFDF2DE924EDBDC0002C10A8 /* fipspost.h */, + BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */, + BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */, + BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */, + BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */, + BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */, + BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */, + BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */, + BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */, + BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */, + BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */, + BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */, + BFDF2DF524EDBDC0002C10A8 /* ccprime.h */, + BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */, + BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */, + BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */, + BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */, + BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */, + BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */, + BFDF2DFC24EDBDC0002C10A8 /* cc.h */, + BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */, + BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */, + BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */, + BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */, + BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */, + BFDF2E0224EDBDC0002C10A8 /* ccperf.h */, + BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */, + BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */, + BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */, + BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */, + BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */, + BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */, + BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */, + BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */, + BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */, + BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */, + BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */, + BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */, + BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */, + BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */, + BFDF2E1124EDBDC0002C10A8 /* cccmac.h */, + BFDF2E1224EDBDC0002C10A8 /* ccn.h */, + BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */, + BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */, + BFDF2E1524EDBDC0002C10A8 /* ccmode.h */, + BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */, + BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */, + BFDF2E1824EDBDC0002C10A8 /* cchmac.h */, + BFDF2E1924EDBDC0002C10A8 /* ccpad.h */, + BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */, + BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */, + BFDF2E1C24EDBDC0002C10A8 /* module.modulemap */, + BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */, + BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */, + BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */, + BFDF2E2024EDBDC0002C10A8 /* ccdh.h */, + BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */, + BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */, + BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */, + BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */, + BFDF2E2524EDBDC0002C10A8 /* cccast.h */, + BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */, + BFDF2E2724EDBDC0002C10A8 /* ccder.h */, + BFDF2E2824EDBDC0002C10A8 /* ccrng.h */, + ); + name = corecrypto; + path = Dependencies/corecrypto; + sourceTree = SOURCE_ROOT; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -721,31 +892,106 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + BFDF2E3D24EDBDC1002C10A8 /* ccsrp.h in Headers */, BFBAC8912295E05600587369 /* ALTAppleAPI.h in Headers */, + BFDF2E6324EDBDC1002C10A8 /* ccnistkdf.h in Headers */, + BFDF2E5324EDBDC1002C10A8 /* cc_debug.h in Headers */, + BFDF2EBD24EDBDC1002C10A8 /* ccdigest.h in Headers */, + BFDF2E3124EDBDC1002C10A8 /* ccrng_sequence.h in Headers */, + BFDF2EB524EDBDC1002C10A8 /* ccmode_siv.h in Headers */, + BFDF2E4324EDBDC1002C10A8 /* cc_priv.h in Headers */, + BFDF2E7124EDBDC1002C10A8 /* ccrsa_priv.h in Headers */, + BFDF2EAD24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */, BFE20E07237C932600409FF7 /* ALTAnisetteData.h in Headers */, + BFDF2E8F24EDBDC1002C10A8 /* ccmode_factory.h in Headers */, + BFDF2E6F24EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */, + BFDF2E9524EDBDC1002C10A8 /* cccmac.h in Headers */, + BFDF2E8B24EDBDC1002C10A8 /* cc_memory.h in Headers */, + BFDF2E2924EDBDC1002C10A8 /* cctest.h in Headers */, + BFDF2E2B24EDBDC1002C10A8 /* cczp.h in Headers */, + BFDF2E9124EDBDC1002C10A8 /* ccrc2.h in Headers */, + BFDF2E6924EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */, + BFDF2E4724EDBDC1002C10A8 /* ccec25519.h in Headers */, + BFDF2E2D24EDBDC1002C10A8 /* ccmd4.h in Headers */, + BFDF2E8524EDBDC1002C10A8 /* ccmd2.h in Headers */, BF9B6400229E0AA0002F0A62 /* crypt.h in Headers */, BFBAC88B2295D90F00587369 /* ALTProvisioningProfile.h in Headers */, BF5AB3B92286024D00DC914B /* ALTAccount.h in Headers */, + BFDF2E4F24EDBDC1002C10A8 /* ccdes.h in Headers */, + BFDF2E9F24EDBDC1002C10A8 /* ccec_priv.h in Headers */, + BFDF2E7D24EDBDC1002C10A8 /* ccn_priv.h in Headers */, + BFDF2EA324EDBDC1002C10A8 /* cchmac.h in Headers */, + BFDF2E5124EDBDC1002C10A8 /* ccrsa.h in Headers */, BFD80D542380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */, + BFDF2E3F24EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */, + BFDF2E5B24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */, + BFDF2E8124EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */, + BFDF2E5924EDBDC1002C10A8 /* cczp_priv.h in Headers */, BF50E7BF22C163DC0070E17B /* ALTApplication.h in Headers */, + BFDF2E9724EDBDC1002C10A8 /* ccn.h in Headers */, + BFDF2E4124EDBDC1002C10A8 /* ccrng_drbg.h in Headers */, + BFDF2E5F24EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */, + BFDF2E4D24EDBDC1002C10A8 /* ccrc4.h in Headers */, + BFDF2E3324EDBDC1002C10A8 /* ccz.h in Headers */, BF5AB3BF2286040400DC914B /* NSError+ALTErrors.h in Headers */, + BFDF2E9D24EDBDC1002C10A8 /* ccmode.h in Headers */, BF5AB3CD228645DF00DC914B /* ALTCertificate.h in Headers */, + BFDF2E8724EDBDC1002C10A8 /* ccsha1.h in Headers */, + BFDF2E9324EDBDC1002C10A8 /* ccsrp_gp.h in Headers */, + BFDF2E3924EDBDC1002C10A8 /* ccec.h in Headers */, + BFDF2EB324EDBDC1002C10A8 /* ccmode_impl.h in Headers */, + BFDF2E7F24EDBDC1002C10A8 /* ccz_priv.h in Headers */, + BFDF2E6724EDBDC1002C10A8 /* ccripemd.h in Headers */, BF48CFEE229437580004760B /* ALTCertificateRequest.h in Headers */, BF50E7CF22C28F8B0070E17B /* ALTCapabilities.h in Headers */, + BFDF2E9924EDBDC1002C10A8 /* ccmd5.h in Headers */, BF9B6408229E0AA0002F0A62 /* mztools.h in Headers */, + BFDF2E8924EDBDC1002C10A8 /* ccecies.h in Headers */, + BFDF2EA724EDBDC1002C10A8 /* ccecies_priv.h in Headers */, + BFDF2E3B24EDBDC1002C10A8 /* cc_config.h in Headers */, + BFDF2E7324EDBDC1002C10A8 /* ccdh_gp.h in Headers */, BF5AB3C92286269B00DC914B /* ALTDevice.h in Headers */, BF9B6404229E0AA0002F0A62 /* zip.h in Headers */, + BFDF2EA124EDBDC1002C10A8 /* ccrng_test.h in Headers */, BF9B641D229E0DF5002F0A62 /* ALTSigner.h in Headers */, BF9B6414229E0CCE002F0A62 /* NSFileManager+Apps.h in Headers */, BF50E7B822C161630070E17B /* ALTAppGroup.h in Headers */, BF9B6410229E0AA0002F0A62 /* unzip.h in Headers */, + BFDF2EA524EDBDC1002C10A8 /* ccpad.h in Headers */, + BFDF2EBF24EDBDC1002C10A8 /* ccder.h in Headers */, + BFDF2E2F24EDBDC1002C10A8 /* ccrng_priv.h in Headers */, + BFDF2E4924EDBDC1002C10A8 /* ccdh_priv.h in Headers */, + BFDF2EB724EDBDC1002C10A8 /* ccdrbg.h in Headers */, + BFDF2E7524EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */, + BFDF2EA924EDBDC1002C10A8 /* ccsha2.h in Headers */, + BFDF2EB924EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */, + BFDF2EBB24EDBDC1002C10A8 /* cccast.h in Headers */, + BFDF2E6124EDBDC1002C10A8 /* ccdigest_priv.h in Headers */, + BFDF2E6D24EDBDC1002C10A8 /* ccder_priv.h in Headers */, BF9B6406229E0AA0002F0A62 /* ioapi.h in Headers */, - BFD80D4F23809EE100B9C227 /* ALTAppleAPI+Authentication.h in Headers */, + BFDF2E3724EDBDC1002C10A8 /* cchkdf.h in Headers */, + BFDF2E9B24EDBDC1002C10A8 /* ccrng_system.h in Headers */, + BFDF2EAB24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */, + BFDF2E5524EDBDC1002C10A8 /* ccblowfish.h in Headers */, + BFDF2E6B24EDBDC1002C10A8 /* cc.h in Headers */, + BFDF2E7924EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */, + BFDF2E4524EDBDC1002C10A8 /* fipspost.h in Headers */, + BFDF2E5D24EDBDC1002C10A8 /* ccprime.h in Headers */, + BFDF2E8D24EDBDC1002C10A8 /* ccwrap.h in Headers */, + BFDF2EC124EDBDC1002C10A8 /* ccrng.h in Headers */, + BFDF2E8324EDBDC1002C10A8 /* ccansikdf.h in Headers */, + BFDF2E4B24EDBDC1002C10A8 /* ccder_rsa.h in Headers */, + BFDF2E5724EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */, BF9B633F229DC27C002F0A62 /* ALTModel+Internal.h in Headers */, BF5AB3B5228600D100DC914B /* AltSign.h in Headers */, + BFDF2E3524EDBDC1002C10A8 /* ccaes.h in Headers */, + BFDF2E7724EDBDC1002C10A8 /* ccperf.h in Headers */, + BFDF2EAF24EDBDC1002C10A8 /* cc_runtime_config.h in Headers */, + BFDF2EB124EDBDC1002C10A8 /* ccdh.h in Headers */, BF5AB3C52286157F00DC914B /* ALTTeam.h in Headers */, BF5D43F6237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */, BF48CFF622944FC60004760B /* ALTAppID.h in Headers */, + BFDF2E6524EDBDC1002C10A8 /* ccasn1.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -753,31 +999,106 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + BFDF2E3E24EDBDC1002C10A8 /* ccsrp.h in Headers */, BF9B637E229DCF3A002F0A62 /* ALTAppleAPI.h in Headers */, + BFDF2E6424EDBDC1002C10A8 /* ccnistkdf.h in Headers */, + BFDF2E5424EDBDC1002C10A8 /* cc_debug.h in Headers */, + BFDF2EBE24EDBDC1002C10A8 /* ccdigest.h in Headers */, + BFDF2E3224EDBDC1002C10A8 /* ccrng_sequence.h in Headers */, + BFDF2EB624EDBDC1002C10A8 /* ccmode_siv.h in Headers */, + BFDF2E4424EDBDC1002C10A8 /* cc_priv.h in Headers */, + BFDF2E7224EDBDC1002C10A8 /* ccrsa_priv.h in Headers */, + BFDF2EAE24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */, BFE20E08237C932600409FF7 /* ALTAnisetteData.h in Headers */, + BFDF2E9024EDBDC1002C10A8 /* ccmode_factory.h in Headers */, + BFDF2E7024EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */, + BFDF2E9624EDBDC1002C10A8 /* cccmac.h in Headers */, + BFDF2E8C24EDBDC1002C10A8 /* cc_memory.h in Headers */, + BFDF2E2A24EDBDC1002C10A8 /* cctest.h in Headers */, + BFDF2E2C24EDBDC1002C10A8 /* cczp.h in Headers */, + BFDF2E9224EDBDC1002C10A8 /* ccrc2.h in Headers */, + BFDF2E6A24EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */, + BFDF2E4824EDBDC1002C10A8 /* ccec25519.h in Headers */, + BFDF2E2E24EDBDC1002C10A8 /* ccmd4.h in Headers */, + BFDF2E8624EDBDC1002C10A8 /* ccmd2.h in Headers */, BF9B6401229E0AA0002F0A62 /* crypt.h in Headers */, BF9B637F229DCF3A002F0A62 /* ALTProvisioningProfile.h in Headers */, BF9B6380229DCF3A002F0A62 /* ALTAccount.h in Headers */, + BFDF2E5024EDBDC1002C10A8 /* ccdes.h in Headers */, + BFDF2EA024EDBDC1002C10A8 /* ccec_priv.h in Headers */, + BFDF2E7E24EDBDC1002C10A8 /* ccn_priv.h in Headers */, + BFDF2EA424EDBDC1002C10A8 /* cchmac.h in Headers */, + BFDF2E5224EDBDC1002C10A8 /* ccrsa.h in Headers */, BFD80D552380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */, + BFDF2E4024EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */, + BFDF2E5C24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */, + BFDF2E8224EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */, + BFDF2E5A24EDBDC1002C10A8 /* cczp_priv.h in Headers */, BF50E7C022C163DC0070E17B /* ALTApplication.h in Headers */, + BFDF2E9824EDBDC1002C10A8 /* ccn.h in Headers */, + BFDF2E4224EDBDC1002C10A8 /* ccrng_drbg.h in Headers */, + BFDF2E6024EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */, + BFDF2E4E24EDBDC1002C10A8 /* ccrc4.h in Headers */, + BFDF2E3424EDBDC1002C10A8 /* ccz.h in Headers */, BF9B6381229DCF3A002F0A62 /* NSError+ALTErrors.h in Headers */, + BFDF2E9E24EDBDC1002C10A8 /* ccmode.h in Headers */, BF9B6382229DCF3A002F0A62 /* ALTCertificate.h in Headers */, + BFDF2E8824EDBDC1002C10A8 /* ccsha1.h in Headers */, + BFDF2E9424EDBDC1002C10A8 /* ccsrp_gp.h in Headers */, + BFDF2E3A24EDBDC1002C10A8 /* ccec.h in Headers */, + BFDF2EB424EDBDC1002C10A8 /* ccmode_impl.h in Headers */, + BFDF2E8024EDBDC1002C10A8 /* ccz_priv.h in Headers */, + BFDF2E6824EDBDC1002C10A8 /* ccripemd.h in Headers */, BF9B6383229DCF3A002F0A62 /* ALTCertificateRequest.h in Headers */, BF50E7D022C28F8B0070E17B /* ALTCapabilities.h in Headers */, + BFDF2E9A24EDBDC1002C10A8 /* ccmd5.h in Headers */, BF9B6409229E0AA0002F0A62 /* mztools.h in Headers */, + BFDF2E8A24EDBDC1002C10A8 /* ccecies.h in Headers */, + BFDF2EA824EDBDC1002C10A8 /* ccecies_priv.h in Headers */, + BFDF2E3C24EDBDC1002C10A8 /* cc_config.h in Headers */, + BFDF2E7424EDBDC1002C10A8 /* ccdh_gp.h in Headers */, BF9B6384229DCF3A002F0A62 /* ALTDevice.h in Headers */, BF9B6405229E0AA0002F0A62 /* zip.h in Headers */, + BFDF2EA224EDBDC1002C10A8 /* ccrng_test.h in Headers */, BF9B641E229E0DF5002F0A62 /* ALTSigner.h in Headers */, BF9B6415229E0CCE002F0A62 /* NSFileManager+Apps.h in Headers */, BF50E7B922C161630070E17B /* ALTAppGroup.h in Headers */, BF9B6411229E0AA0002F0A62 /* unzip.h in Headers */, + BFDF2EA624EDBDC1002C10A8 /* ccpad.h in Headers */, + BFDF2EC024EDBDC1002C10A8 /* ccder.h in Headers */, + BFDF2E3024EDBDC1002C10A8 /* ccrng_priv.h in Headers */, + BFDF2E4A24EDBDC1002C10A8 /* ccdh_priv.h in Headers */, + BFDF2EB824EDBDC1002C10A8 /* ccdrbg.h in Headers */, + BFDF2E7624EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */, + BFDF2EAA24EDBDC1002C10A8 /* ccsha2.h in Headers */, + BFDF2EBA24EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */, + BFDF2EBC24EDBDC1002C10A8 /* cccast.h in Headers */, + BFDF2E6224EDBDC1002C10A8 /* ccdigest_priv.h in Headers */, + BFDF2E6E24EDBDC1002C10A8 /* ccder_priv.h in Headers */, BF9B6407229E0AA0002F0A62 /* ioapi.h in Headers */, - BFD80D5023809EE100B9C227 /* ALTAppleAPI+Authentication.h in Headers */, + BFDF2E3824EDBDC1002C10A8 /* cchkdf.h in Headers */, + BFDF2E9C24EDBDC1002C10A8 /* ccrng_system.h in Headers */, + BFDF2EAC24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */, + BFDF2E5624EDBDC1002C10A8 /* ccblowfish.h in Headers */, + BFDF2E6C24EDBDC1002C10A8 /* cc.h in Headers */, + BFDF2E7A24EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */, + BFDF2E4624EDBDC1002C10A8 /* fipspost.h in Headers */, + BFDF2E5E24EDBDC1002C10A8 /* ccprime.h in Headers */, + BFDF2E8E24EDBDC1002C10A8 /* ccwrap.h in Headers */, + BFDF2EC224EDBDC1002C10A8 /* ccrng.h in Headers */, + BFDF2E8424EDBDC1002C10A8 /* ccansikdf.h in Headers */, + BFDF2E4C24EDBDC1002C10A8 /* ccder_rsa.h in Headers */, + BFDF2E5824EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */, BF9B6385229DCF3A002F0A62 /* ALTModel+Internal.h in Headers */, BF9B6386229DCF3A002F0A62 /* AltSign.h in Headers */, + BFDF2E3624EDBDC1002C10A8 /* ccaes.h in Headers */, + BFDF2E7824EDBDC1002C10A8 /* ccperf.h in Headers */, + BFDF2EB024EDBDC1002C10A8 /* cc_runtime_config.h in Headers */, + BFDF2EB224EDBDC1002C10A8 /* ccdh.h in Headers */, BF9B6387229DCF3A002F0A62 /* ALTTeam.h in Headers */, BF5D43F7237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */, BF9B6388229DCF3A002F0A62 /* ALTAppID.h in Headers */, + BFDF2E6624EDBDC1002C10A8 /* ccasn1.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -850,6 +1171,10 @@ TargetAttributes = { BF5AB3982285FDB200DC914B = { CreatedOnToolsVersion = 10.2.1; + LastSwiftMigration = 1200; + }; + BF9B6378229DCF3A002F0A62 = { + LastSwiftMigration = 1200; }; BFBAC8A92295ED1900587369 = { CreatedOnToolsVersion = 10.2.1; @@ -923,21 +1248,24 @@ buildActionMask = 2147483647; files = ( BF9B641F229E0DF5002F0A62 /* ALTSigner.mm in Sources */, + BFBD15CA24F06BA5002CFC71 /* Data+Encryption.swift in Sources */, BF48CFF0229438C10004760B /* ALTCertificateRequest.m in Sources */, BFBAC88C2295D90F00587369 /* ALTProvisioningProfile.m in Sources */, BF5AB3C62286157F00DC914B /* ALTTeam.m in Sources */, BF5D43F8237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */, BF5AB3CA2286269B00DC914B /* ALTDevice.m in Sources */, BF9B640E229E0AA0002F0A62 /* mztools.c in Sources */, - BFD80D5123809EE100B9C227 /* ALTAppleAPI+Authentication.m in Sources */, + BFBD15CD24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */, BFBAC8922295E05600587369 /* ALTAppleAPI.m in Sources */, + BFDF2DD524EDBA78002C10A8 /* GSAContext.swift in Sources */, BF50E7BA22C161630070E17B /* ALTAppGroup.m in Sources */, BF9B6416229E0CCE002F0A62 /* NSFileManager+Apps.m in Sources */, BF48CFF722944FC60004760B /* ALTAppID.m in Sources */, + BFDF2E7B24EDBDC1002C10A8 /* ccsrp.m in Sources */, BF9B640A229E0AA0002F0A62 /* unzip.c in Sources */, BF5AB3CE228645DF00DC914B /* ALTCertificate.m in Sources */, + BFBD15C724F04396002CFC71 /* CoreCryptoMacros.swift in Sources */, BF5AB3BA2286024D00DC914B /* ALTAccount.m in Sources */, - BF5C690D24A5205E00C2F854 /* ccsrp.m in Sources */, BF50E7C122C163DC0070E17B /* ALTApplication.mm in Sources */, BF9B6402229E0AA0002F0A62 /* ioapi.c in Sources */, BF9B640C229E0AA0002F0A62 /* zip.c in Sources */, @@ -952,21 +1280,24 @@ buildActionMask = 2147483647; files = ( BF9B6420229E0DF5002F0A62 /* ALTSigner.mm in Sources */, + BFBD15C824F04396002CFC71 /* CoreCryptoMacros.swift in Sources */, BF9B638A229DCF3A002F0A62 /* ALTCertificateRequest.m in Sources */, BF9B638B229DCF3A002F0A62 /* ALTProvisioningProfile.m in Sources */, BF9B638C229DCF3A002F0A62 /* ALTTeam.m in Sources */, BF5D43F9237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */, BF9B638D229DCF3A002F0A62 /* ALTDevice.m in Sources */, BF9B640F229E0AA0002F0A62 /* mztools.c in Sources */, - BFD80D5223809EE100B9C227 /* ALTAppleAPI+Authentication.m in Sources */, + BFBD15CB24F06BA5002CFC71 /* Data+Encryption.swift in Sources */, BF9B638E229DCF3A002F0A62 /* ALTAppleAPI.m in Sources */, + BFDF2DD624EDBA78002C10A8 /* GSAContext.swift in Sources */, BF50E7BB22C161630070E17B /* ALTAppGroup.m in Sources */, BF9B6417229E0CCE002F0A62 /* NSFileManager+Apps.m in Sources */, BF9B638F229DCF3A002F0A62 /* ALTAppID.m in Sources */, + BFDF2E7C24EDBDC1002C10A8 /* ccsrp.m in Sources */, BF9B640B229E0AA0002F0A62 /* unzip.c in Sources */, + BFBD15CE24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */, BF9B6390229DCF3A002F0A62 /* ALTCertificate.m in Sources */, BF9B6391229DCF3A002F0A62 /* ALTAccount.m in Sources */, - BF5C690E24A5205E00C2F854 /* ccsrp.m in Sources */, BF50E7C222C163DC0070E17B /* ALTApplication.mm in Sources */, BF9B6403229E0AA0002F0A62 /* ioapi.c in Sources */, BF9B640D229E0AA0002F0A62 /* zip.c in Sources */, @@ -1067,8 +1398,8 @@ GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", + DEBUG, + "CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -1081,12 +1412,14 @@ "\"$(SRCROOT)/Dependencies\"", ); IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MODULEMAP_FILE = module.modulemap; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION"; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_INCLUDE_PATHS = "\"${SRCROOT}/Dependencies/corecrypto\" \"${SRCROOT}/AltSign\""; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1132,6 +1465,7 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = "CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1"; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -1143,11 +1477,13 @@ "\"$(SRCROOT)/Dependencies\"", ); IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MODULEMAP_FILE = module.modulemap; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; OTHER_CFLAGS = "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION"; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_INCLUDE_PATHS = "\"${SRCROOT}/Dependencies/corecrypto\" \"${SRCROOT}/AltSign\""; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1158,6 +1494,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = NO; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; @@ -1177,6 +1514,8 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -1185,6 +1524,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = NO; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; @@ -1204,6 +1544,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; @@ -1211,6 +1552,7 @@ BF9B639C229DCF3A002F0A62 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_MODULES = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = NO; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; @@ -1232,6 +1574,8 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -1239,6 +1583,7 @@ BF9B639D229DCF3A002F0A62 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_MODULES = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = NO; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; @@ -1260,6 +1605,7 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = macosx; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; diff --git a/AltSign/AltSign.h b/AltSign/AltSign.h index c18fa50..1680c67 100644 --- a/AltSign/AltSign.h +++ b/AltSign/AltSign.h @@ -8,7 +8,6 @@ // Apple API #import -#import #import // Signing diff --git a/AltSign/Apple API/ALTAppleAPI+Authentication.h b/AltSign/Apple API/ALTAppleAPI+Authentication.h deleted file mode 100644 index c0c425e..0000000 --- a/AltSign/Apple API/ALTAppleAPI+Authentication.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// ALTAppleAPI+Authentication.h -// AltSign -// -// Created by Riley Testut on 11/16/19. -// Copyright © 2019 Riley Testut. All rights reserved. -// - -@class ALTAppleAPISession; - -#import - -@class ALTAppleAPISession; - -NS_ASSUME_NONNULL_BEGIN - -@interface ALTAppleAPI (Authentication) - -- (void)authenticateWithAppleID:(NSString *)appleID - password:(NSString *)password - anisetteData:(ALTAnisetteData *)anisetteData - verificationHandler:(nullable void (^)(void (^completionHandler)(NSString *_Nullable verificationCode)))verificationHandler - completionHandler:(void (^)(ALTAccount *_Nullable account, ALTAppleAPISession *_Nullable session, NSError *_Nullable error))completionHandler -NS_SWIFT_NAME(authenticate(appleID:password:anisetteData:verificationHandler:completionHandler:)); - -@end - -NS_ASSUME_NONNULL_END diff --git a/AltSign/Apple API/ALTAppleAPI+Authentication.m b/AltSign/Apple API/ALTAppleAPI+Authentication.m deleted file mode 100644 index 7a45975..0000000 --- a/AltSign/Apple API/ALTAppleAPI+Authentication.m +++ /dev/null @@ -1,763 +0,0 @@ -// -// ALTAppleAPI+Authentication.m -// AltSign -// -// Created by Riley Testut on 11/16/19. -// Copyright © 2019 Riley Testut. All rights reserved. -// -// Heavily based on sample code provided by Kabir Oberai (https://github.com/kabiroberai) -// - -#import "ALTAppleAPI+Authentication.h" -#import "ALTAppleAPI_Private.h" - -#import "ALTModel+Internal.h" - -// Core Crypto -#import -#import -#import -#import -#import -#import -#import -#import -#import - -static const char ALTHexCharacters[] = "0123456789abcdef"; - -struct ccrng_state *ccDRBGGetRngState(void); - -void ALTDigestUpdateString(const struct ccdigest_info *di_info, struct ccdigest_ctx *di_ctx, NSString *string) -{ - ccdigest_update(di_info, di_ctx, string.length, string.UTF8String); -} - -void ALTDigestUpdateData(const struct ccdigest_info *di_info, struct ccdigest_ctx *di_ctx, NSData *data) -{ - uint32_t data_len = (uint32_t)data.length; // 4 bytes for length - ccdigest_update(di_info, di_ctx, sizeof(data_len), &data_len); - ccdigest_update(di_info, di_ctx, data_len, data.bytes); -} - -NSData *ALTPBKDF2SRP(const struct ccdigest_info *di_info, BOOL isS2k, NSString *password, NSData *salt, int iterations) -{ - const struct ccdigest_info *password_di_info = ccsha256_di(); - char *digest_raw = (char *)malloc(password_di_info->output_size); - const char *passwordUTF8 = password.UTF8String; - ccdigest(password_di_info, strlen(passwordUTF8), passwordUTF8, digest_raw); - - size_t final_digest_len = password_di_info->output_size * (isS2k ? 1 : 2); - char *digest = (char *)malloc(final_digest_len); - - if (isS2k) - { - memcpy(digest, digest_raw, final_digest_len); - } - else - { - for (int i = 0; i < password_di_info->output_size; i++) - { - char byte = digest_raw[i]; - digest[i * 2 + 0] = ALTHexCharacters[(byte >> 4) & 0x0F]; - digest[i * 2 + 1] = ALTHexCharacters[(byte >> 0) & 0x0F]; - } - } - - NSMutableData *data = [NSMutableData dataWithLength:di_info->output_size]; - - if (ccpbkdf2_hmac(di_info, final_digest_len, digest, salt.length, salt.bytes, iterations, di_info->output_size, data.mutableBytes) != 0) - { - return nil; - } - - return data; -} - -NSData *ALTCreateSessionKey(ccsrp_ctx_t srp_ctx, const char *key_name) -{ - size_t key_len; - const void *session_key = ccsrp_get_session_key(srp_ctx, &key_len); - - const struct ccdigest_info *di_info = ccsha256_di(); - - size_t hmac_len = di_info->output_size; - unsigned char *hmac_bytes = (unsigned char *)malloc(hmac_len); - cchmac(di_info, key_len, session_key, strlen(key_name), key_name, hmac_bytes); - - NSData *sessionKey = [NSData dataWithBytes:hmac_bytes length:hmac_len]; - return sessionKey; -} - -NSData *ALTDecryptDataCBC(ccsrp_ctx_t srp_ctx, NSData *spd) -{ - NSData *extraDataKey = ALTCreateSessionKey(srp_ctx, "extra data key:"); - NSData *extraDataIV = ALTCreateSessionKey(srp_ctx, "extra data iv:"); - - NSMutableData *decryptedData = [NSMutableData dataWithLength:spd.length]; - - const struct ccmode_cbc *decrypt_mode = ccaes_cbc_decrypt_mode(); - - cccbc_iv *iv = (cccbc_iv *)malloc(decrypt_mode->block_size); - if (extraDataIV.bytes) - { - memcpy(iv, extraDataIV.bytes, decrypt_mode->block_size); - } - else - { - bzero(iv, decrypt_mode->block_size); - } - - cccbc_ctx *ctx_buf = (cccbc_ctx *)malloc(decrypt_mode->size); - decrypt_mode->init(decrypt_mode, ctx_buf, extraDataKey.length, extraDataKey.bytes); - - size_t length = ccpad_pkcs7_decrypt(decrypt_mode, ctx_buf, iv, spd.length, spd.bytes, decryptedData.mutableBytes); - if (length > spd.length) - { - return nil; - } - - return decryptedData; -} - -NSData *ALTDecryptDataGCM(NSData *sk, NSData *encryptedData) -{ - const struct ccmode_gcm *decrypt_mode = ccaes_gcm_decrypt_mode(); - - ccgcm_ctx *gcm_ctx = (ccgcm_ctx *)malloc(decrypt_mode->size); - decrypt_mode->init(decrypt_mode, gcm_ctx, sk.length, sk.bytes); - - if (encryptedData.length < 35) - { - NSLog(@"ERROR: Encrypted token too short."); - return nil; - } - - if (cc_cmp_safe(3, encryptedData.bytes, "XYZ")) - { - NSLog(@"ERROR: Encrypted token wrong version!"); - return nil; - } - - decrypt_mode->set_iv(gcm_ctx, 16, encryptedData.bytes + 3); - decrypt_mode->gmac(gcm_ctx, 3, encryptedData.bytes); - - size_t decrypted_len = encryptedData.length - 35; - NSMutableData *decryptedData = [NSMutableData dataWithLength:decrypted_len]; - - decrypt_mode->gcm(gcm_ctx, decrypted_len, encryptedData.bytes + 16 + 3, decryptedData.mutableBytes); - - char tag[16]; - decrypt_mode->finalize(gcm_ctx, 16, tag); - - if (cc_cmp_safe(16, encryptedData.bytes + decrypted_len + 19, tag)) - { - NSLog(@"Invalid tag version"); - return nil; - } - - return decryptedData; -} - -NSData *ALTCreateAppTokensChecksum(NSData *sk, NSString *adsid, NSArray *apps) -{ - const struct ccdigest_info *di_info = ccsha256_di(); - size_t hmac_size = cchmac_di_size(di_info); - struct cchmac_ctx *hmac_ctx = (struct cchmac_ctx *)malloc(hmac_size); - cchmac_init(di_info, hmac_ctx, sk.length, sk.bytes); - - const char *key = "apptokens"; - cchmac_update(di_info, hmac_ctx, strlen(key), key); - - const char *adsidUTF8 = adsid.UTF8String; - cchmac_update(di_info, hmac_ctx, strlen(adsidUTF8), adsidUTF8); - - for (NSString *app in apps) - { - cchmac_update(di_info, hmac_ctx, app.length, app.UTF8String); - } - - NSMutableData *checksum = [NSMutableData dataWithLength:di_info->output_size]; - cchmac_final(di_info, hmac_ctx, checksum.mutableBytes); - - return checksum; -} - -@implementation ALTAppleAPI (Authentication) - -- (void)authenticateWithAppleID:(NSString *)appleID - password:(NSString *)password - anisetteData:(ALTAnisetteData *)anisetteData - verificationHandler:(void (^)(void (^ _Nonnull)(NSString * _Nullable)))verificationHandler - completionHandler:(void (^)(ALTAccount * _Nullable, ALTAppleAPISession * _Nullable, NSError * _Nullable))completionHandler -{ - NSMutableDictionary *clientDictionary = [@{ - @"bootstrap": @YES, - @"icscrec": @YES, - @"loc": NSLocale.currentLocale.localeIdentifier, - @"pbe": @NO, - @"prkgen": @YES, - @"svct": @"iCloud", - @"X-Apple-I-Client-Time": [self.dateFormatter stringFromDate:anisetteData.date], - @"X-Apple-Locale": NSLocale.currentLocale.localeIdentifier, - @"X-Apple-I-TimeZone": NSTimeZone.localTimeZone.abbreviation, - @"X-Apple-I-MD": anisetteData.oneTimePassword, - @"X-Apple-I-MD-LU": anisetteData.localUserID, - @"X-Apple-I-MD-M": anisetteData.machineID, - @"X-Apple-I-MD-RINFO": @(anisetteData.routingInfo), - @"X-Mme-Device-Id": anisetteData.deviceUniqueIdentifier, - @"X-Apple-I-SRL-NO": anisetteData.deviceSerialNumber, - } mutableCopy]; - - /* Begin CoreCrypto Logic */ - ccsrp_const_gp_t gp = ccsrp_gp_rfc5054_2048(); - - const struct ccdigest_info *di_info = ccsha256_di(); - struct ccdigest_ctx *di_ctx = (struct ccdigest_ctx *)malloc(ccdigest_di_size(di_info)); - ccdigest_init(di_info, di_ctx); - - const struct ccdigest_info *srp_di = ccsha256_di(); - struct ccsrp_ctx *srp_ctx = (struct ccsrp_ctx *)malloc(ccsrp_sizeof_srp(di_info, gp)); - ccsrp_ctx_init(srp_ctx, srp_di, gp); - ccsrp_client_set_noUsernameInX(srp_ctx, true); - SRP_RNG(srp_ctx) = ccrng(NULL); - - NSArray *ps = @[@"s2k", @"s2k_fo"]; - ALTDigestUpdateString(di_info, di_ctx, ps[0]); - ALTDigestUpdateString(di_info, di_ctx, @","); - ALTDigestUpdateString(di_info, di_ctx, ps[1]); - - size_t A_size = ccsrp_exchange_size(srp_ctx); - char *A_bytes = (char *)malloc(A_size); - ccsrp_client_start_authentication(srp_ctx, ccDRBGGetRngState(), A_bytes); - - NSData *A_data = [NSData dataWithBytes:A_bytes length:A_size]; - - ALTDigestUpdateString(di_info, di_ctx, @"|"); - - NSDictionary *parameters = @{ - @"A2k": A_data, - @"ps": ps, - @"cpd": clientDictionary, - @"u": appleID, - @"o": @"init" - }; - - // 1st Request - [self sendAuthenticationRequestWithParameters:parameters anisetteData:anisetteData completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { - if (responseDictionary == nil) - { - completionHandler(nil, nil, requestError); - return; - } - - size_t M_size = ccsrp_get_session_key_length(srp_ctx); - char *M_bytes = (char *)malloc(A_size); - NSData *M_data = [NSData dataWithBytes:M_bytes length:M_size]; - - NSString *sp = responseDictionary[@"sp"]; - BOOL isS2K = [sp isEqualToString:@"s2k"]; - - ALTDigestUpdateString(di_info, di_ctx, @"|"); - - if (sp) - { - ALTDigestUpdateString(di_info, di_ctx, sp); - } - - NSString *c = responseDictionary[@"c"]; - NSData *salt = responseDictionary[@"s"]; - NSNumber *iterations = responseDictionary[@"i"]; - NSData *B_data = responseDictionary[@"B"]; - - if (c == nil || salt == nil || iterations == nil || B_data == nil) - { - completionHandler(nil, nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - NSData *passwordKey = ALTPBKDF2SRP(di_info, isS2K, password, salt, [iterations intValue]); - if (passwordKey == nil) - { - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorAuthenticationHandshakeFailed userInfo:nil]); - return; - } - - int result = ccsrp_client_process_challenge(srp_ctx, appleID.UTF8String, passwordKey.length, passwordKey.bytes, - salt.length, salt.bytes, B_data.bytes, (void *)M_data.bytes); - if (result != 0) - { - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorAuthenticationHandshakeFailed userInfo:nil]); - return; - } - - NSDictionary *parameters = @{ - @"c": c, - @"M1": M_data, - @"cpd": clientDictionary, - @"u": appleID, - @"o": @"complete" - }; - - // 2nd Request - [self sendAuthenticationRequestWithParameters:parameters anisetteData:anisetteData completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { - if (responseDictionary == nil) - { - completionHandler(nil, nil, requestError); - return; - } - - NSData *M2_data = responseDictionary[@"M2"]; - if (M2_data == nil) - { - NSLog(@"ERROR: M2 data not found!"); - - completionHandler(nil, nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - if (!ccsrp_client_verify_session(srp_ctx, M2_data.bytes)) - { - NSLog(@"ERROR: Failed to verify session."); - - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorAuthenticationHandshakeFailed userInfo:nil]); - return; - } - - ALTDigestUpdateString(di_info, di_ctx, @"|"); - - NSData *spd = responseDictionary[@"spd"]; - if (spd) - { - ALTDigestUpdateData(di_info, di_ctx, spd); - } - - ALTDigestUpdateString(di_info, di_ctx, @"|"); - - NSData *sc = responseDictionary[@"sc"]; - if (sc) - { - ALTDigestUpdateData(di_info, di_ctx, sc); - } - - ALTDigestUpdateString(di_info, di_ctx, @"|"); - - NSData *np = responseDictionary[@"np"]; - if (np == nil) - { - NSLog(@"ERROR: Missing np dictionary."); - - completionHandler(nil, nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - size_t digest_len = di_info->output_size; - if (np.length != digest_len) - { - NSLog(@"ERROR: Neg proto hash is too short."); - - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorAuthenticationHandshakeFailed userInfo:nil]); - return; - } - - unsigned char *digest = (unsigned char *)malloc(digest_len); - di_info->final(di_info, di_ctx, digest); - - NSData *hmacKey = ALTCreateSessionKey(srp_ctx, "HMAC key:"); - unsigned char *hmac_out = (unsigned char *)malloc(digest_len); - cchmac(di_info, hmacKey.length, hmacKey.bytes, digest_len, digest, hmac_out); - - if (cc_cmp_safe(digest_len, hmac_out, np.bytes)) - { - NSLog(@"ERROR: Invalid neg prot hmac."); - - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorAuthenticationHandshakeFailed userInfo:nil]); - return; - } - - NSData *decryptedData = ALTDecryptDataCBC(srp_ctx, spd); - if (decryptedData == nil) - { - NSLog(@"ERROR: Could not decrypt login response."); - - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorAuthenticationHandshakeFailed userInfo:nil]); - return; - } - - NSError *parseError = nil; - NSDictionary *decryptedDictionary = [NSPropertyListSerialization propertyListWithData:decryptedData options:0 format:nil error:&parseError]; - if (decryptedDictionary == nil) - { - NSLog(@"ERROR: Could not parse decrypted login response plist!"); - - completionHandler(nil, nil, parseError); - return; - } - - NSString *adsid = decryptedDictionary[@"adsid"]; - NSString *idmsToken = decryptedDictionary[@"GsIdmsToken"]; - - if (adsid == nil || idmsToken == nil) - { - NSLog(@"ERROR: adsid and/or idmsToken is nil. adsid: %@. idmsToken: %@", adsid, idmsToken); - - completionHandler(nil, nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - NSDictionary *statusDictionary = responseDictionary[@"Status"]; - - NSString *authType = statusDictionary[@"au"]; - if ([authType isEqualToString:@"trustedDeviceSecondaryAuth"]) - { - // Handle Two-Factor - - if (verificationHandler != nil) - { - [self requestTwoFactorCodeForDSID:adsid idmsToken:idmsToken anisetteData:anisetteData verificationHandler:verificationHandler completionHandler:^(BOOL success, NSError *error) { - if (success) - { - // We've successfully signed-in with two-factor, so restart authentication (which will now succeed). - [self authenticateWithAppleID:appleID password:password anisetteData:anisetteData verificationHandler:verificationHandler completionHandler:completionHandler]; - } - else - { - completionHandler(nil, nil, error); - } - }]; - } - else - { - completionHandler(nil, nil, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorRequiresTwoFactorAuthentication userInfo:nil]); - } - } - else - { - // Fetch Auth Token - - NSData *sk = decryptedDictionary[@"sk"]; - NSData *c = decryptedDictionary[@"c"]; - - if (sk == nil || c == nil) - { - NSLog(@"ERROR: No ak and/or c data."); - - completionHandler(nil, nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - NSArray *apps = @[@"com.apple.gs.xcode.auth"]; - NSData *checksum = ALTCreateAppTokensChecksum(sk, adsid, apps); - - NSDictionary *parameters = @{ - @"u": adsid, - @"app": apps, - @"c": c, - @"t": idmsToken, - @"checksum": checksum, - @"cpd": clientDictionary, - @"o": @"apptokens" - }; - - [self fetchAuthTokenWithParameters:parameters sk:sk anisetteData:anisetteData completionHandler:^(NSString *authToken, NSError *error) { - if (authToken == nil) - { - completionHandler(nil, nil, error); - return; - } - - ALTAppleAPISession *session = [[ALTAppleAPISession alloc] initWithDSID:adsid authToken:authToken anisetteData:anisetteData]; - [self fetchAccountForSession:session completionHandler:^(ALTAccount *account, NSError *error) { - if (account == nil) - { - completionHandler(nil, nil, error); - } - else - { - completionHandler(account, session, nil); - } - }]; - }]; - } - }]; - }]; -} - -- (void)fetchAuthTokenWithParameters:(NSDictionary *)parameters sk:(NSData *)sk anisetteData:(ALTAnisetteData *)anisetteData completionHandler:(void (^)(NSString *authToken, NSError *error))completionHandler -{ - [self sendAuthenticationRequestWithParameters:parameters anisetteData:anisetteData completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { - if (responseDictionary == nil) - { - completionHandler(nil, requestError); - return; - } - - NSData *encryptedToken = responseDictionary[@"et"]; - NSData *decryptedToken = ALTDecryptDataGCM(sk, encryptedToken); - - if (decryptedToken == nil) - { - NSLog(@"ERROR: Failed to decrypt apptoken."); - - completionHandler(nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - NSError *parseError = nil; - NSDictionary *decryptedTokenDictionary = [NSPropertyListSerialization propertyListWithData:decryptedToken options:0 format:nil error:&parseError]; - if (decryptedTokenDictionary == nil) - { - NSLog(@"ERROR: Could not parse decrypted apptoken plist."); - - completionHandler(nil, parseError); - return; - } - - NSString *app = [parameters[@"app"] firstObject]; - - NSDictionary *tokenDictionary = decryptedTokenDictionary[@"t"][app]; - NSString *token = tokenDictionary[@"token"]; - NSNumber *expirationDataMS = tokenDictionary[@"expiry"]; - - if (token == nil) - { - completionHandler(nil, [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:nil]); - return; - } - - NSDate *expirationDate = [NSDate dateWithTimeIntervalSince1970:(double)expirationDataMS.integerValue / 1000]; - NSLog(@"Got token for %@!\nExpires: %@\nValue: %@\n", app, expirationDate, token); - - completionHandler(token, nil); - }]; -} - -- (void)requestTwoFactorCodeForDSID:(NSString *)dsid idmsToken:(NSString *)idmsToken anisetteData:(ALTAnisetteData *)anisetteData - verificationHandler:(nonnull void (^)(void (^ _Nonnull)(NSString * _Nonnull)))verificationHandler - completionHandler:(void (^)(BOOL success, NSError *error))completionHandler -{ - NSURL *URL = [NSURL URLWithString:@"https://gsa.apple.com/auth/verify/trusteddevice"]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - - NSString *identityToken = [NSString stringWithFormat:@"%@:%@", dsid, idmsToken]; - - NSData *identityTokenData = [identityToken dataUsingEncoding:NSUTF8StringEncoding]; - NSString *encodedIdentityToken = [identityTokenData base64EncodedStringWithOptions:0]; - - NSDictionary *httpHeaders = @{ - @"Content-Type": @"text/x-xml-plist", - @"User-Agent": @"Xcode", - @"Accept": @"text/x-xml-plist", - @"Accept-Language": @"en-us", - @"X-Apple-App-Info": @"com.apple.gs.xcode.auth", - @"X-Xcode-Version": @"11.2 (11B41)", - @"X-Apple-Identity-Token": encodedIdentityToken, - @"X-Apple-I-MD-M": anisetteData.machineID, - @"X-Apple-I-MD": anisetteData.oneTimePassword, - @"X-Apple-I-MD-LU": anisetteData.localUserID, - @"X-Apple-I-MD-RINFO": [@(anisetteData.routingInfo) description], - @"X-Mme-Device-Id": anisetteData.deviceUniqueIdentifier, - @"X-MMe-Client-Info": anisetteData.deviceDescription, - @"X-Apple-I-Client-Time": [self.dateFormatter stringFromDate:anisetteData.date], - @"X-Apple-Locale": anisetteData.locale.localeIdentifier, - @"X-Apple-I-TimeZone": anisetteData.timeZone.abbreviation - }; - - [httpHeaders enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, BOOL *stop) { - [request setValue:value forHTTPHeaderField:key]; - }]; - - NSURLSessionDataTask *requestCodeTask = [self.session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - if (data == nil || error != nil) - { - completionHandler(NO, error); - return; - } - - void (^responseHandler)(NSString *) = ^(NSString *_Nullable verificationCode) { - if (verificationCode == nil) - { - completionHandler(NO, [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorRequiresTwoFactorAuthentication userInfo:nil]); - return; - } - - NSMutableDictionary *headers = [httpHeaders mutableCopy]; - headers[@"security-code"] = verificationCode; - - NSURL *URL = [NSURL URLWithString:@"https://gsa.apple.com/grandslam/GsService2/validate"]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - - [headers enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, BOOL *stop) { - [request setValue:value forHTTPHeaderField:key]; - }]; - - NSURLSessionDataTask *verifyCodeTask = [self.session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - if (data == nil || error != nil) - { - completionHandler(NO, error); - return; - } - - NSError *parseError = nil; - NSDictionary *responseDictionary = [NSPropertyListSerialization propertyListWithData:data options:0 format:nil error:&parseError]; - - if (responseDictionary == nil) - { - NSError *error = [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:@{NSUnderlyingErrorKey: parseError}]; - completionHandler(NO, error); - return; - } - - NSInteger errorCode = [responseDictionary[@"ec"] integerValue]; // Same for NSString or NSNumber. - if (errorCode != 0) - { - NSError *error = nil; - switch (errorCode) - { - case -21669: - error = [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorIncorrectVerificationCode userInfo:nil]; - break; - - default: - break; - } - - if (error == nil) - { - NSString *errorDescription = responseDictionary[@"em"]; - NSString *localizedDescription = [NSString stringWithFormat:@"%@ (%@)", errorDescription, @(errorCode)]; - - error = [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorUnknown userInfo:@{NSLocalizedDescriptionKey: localizedDescription}]; - } - - completionHandler(NO, error); - } - else - { - completionHandler(YES, nil); - } - }]; - - [verifyCodeTask resume]; - }; - - verificationHandler(responseHandler); - }]; - - [requestCodeTask resume]; -} - -- (void)fetchAccountForSession:(ALTAppleAPISession *)session completionHandler:(void (^)(ALTAccount *account, NSError *error))completionHandler -{ - NSURL *URL = [NSURL URLWithString:@"viewDeveloper.action" relativeToURL:self.baseURL]; - - [self sendRequestWithURL:URL additionalParameters:nil session:session team:nil completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { - if (responseDictionary == nil) - { - completionHandler(nil, requestError); - return; - } - - NSError *error = nil; - ALTAccount *account = [self processResponse:responseDictionary parseHandler:^id _Nullable{ - NSDictionary *dictionary = responseDictionary[@"developer"]; - if (dictionary == nil) - { - return nil; - } - - ALTAccount *account = [[ALTAccount alloc] initWithResponseDictionary:dictionary]; - return account; - } resultCodeHandler:nil error:&error]; - - completionHandler(account, error); - }]; -} - -- (void)sendAuthenticationRequestWithParameters:(NSDictionary *)requestDictionary anisetteData:(ALTAnisetteData *)anisetteData completionHandler:(void (^)(NSDictionary *responseDictionary, NSError *error))completionHandler -{ - NSURL *requestURL = [NSURL URLWithString:@"https://gsa.apple.com/grandslam/GsService2"]; - - NSDictionary *> *parameters = @{ - @"Header": @{ @"Version": @"1.0.1" }, - @"Request": requestDictionary - }; - - NSError *serializationError = nil; - NSData *bodyData = [NSPropertyListSerialization dataWithPropertyList:parameters format:NSPropertyListXMLFormat_v1_0 options:0 error:&serializationError]; - if (bodyData == nil) - { - NSError *error = [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorInvalidParameters userInfo:@{NSUnderlyingErrorKey: serializationError}]; - completionHandler(nil, error); - return; - } - - NSDictionary *httpHeaders = @{ - @"Content-Type": @"text/x-xml-plist", - @"X-MMe-Client-Info": anisetteData.deviceDescription, - @"Accept": @"*/*", - @"User-Agent": @"akd/1.0 CFNetwork/978.0.7 Darwin/18.7.0" - }; - - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:requestURL]; - request.HTTPMethod = @"POST"; - request.HTTPBody = bodyData; - [httpHeaders enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, BOOL *stop) { - [request setValue:value forHTTPHeaderField:key]; - }]; - - NSURLSessionDataTask *dataTask = [self.session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - if (data == nil) - { - completionHandler(nil, error); - return; - } - - NSError *parseError = nil; - NSDictionary *responseDictionary = [NSPropertyListSerialization propertyListWithData:data options:0 format:nil error:&parseError]; - - if (responseDictionary == nil) - { - NSError *error = [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorBadServerResponse userInfo:@{NSUnderlyingErrorKey: parseError}]; - completionHandler(nil, error); - return; - } - - NSDictionary *dictionary = responseDictionary[@"Response"]; - - NSDictionary *status = dictionary[@"Status"]; - - NSInteger errorCode = [status[@"ec"] integerValue]; - if (errorCode != 0) - { - NSError *error = nil; - switch (errorCode) - { - case -22406: - error = [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorIncorrectCredentials userInfo:nil]; - break; - - default: - break; - } - - if (error == nil) - { - NSString *errorDescription = status[@"em"]; - NSString *localizedDescription = [NSString stringWithFormat:@"%@ (%@)", errorDescription, @(errorCode)]; - - error = [NSError errorWithDomain:ALTAppleAPIErrorDomain code:ALTAppleAPIErrorUnknown userInfo:@{NSLocalizedDescriptionKey: localizedDescription}]; - } - - completionHandler(nil, error); - } - else - { - completionHandler(dictionary, nil); - } - }]; - - [dataTask resume]; -} - -@end diff --git a/AltSign/Apple API/ALTAppleAPI+Authentication.swift b/AltSign/Apple API/ALTAppleAPI+Authentication.swift new file mode 100644 index 0000000..c180bfa --- /dev/null +++ b/AltSign/Apple API/ALTAppleAPI+Authentication.swift @@ -0,0 +1,389 @@ +// +// ALTAppleAPI+Authentication.swift +// AltSign +// +// Created by Riley Testut on 8/15/20. +// Copyright © 2020 Riley Testut. All rights reserved. +// + +import Foundation + +public extension ALTAppleAPI +{ + @objc func authenticate(appleID: String, + password: String, + anisetteData: ALTAnisetteData, + verificationHandler: ((@escaping (String?) -> Void) -> Void)?, + completionHandler: @escaping (ALTAccount?, ALTAppleAPISession?, Error?) -> Void) + { + do + { + let clientDictionary = [ + "bootstrap": true, + "icscrec": true, + "pbe": false, + "prkgen": true, + "svct": "iCloud", + "loc": Locale.current.identifier, + "X-Apple-Locale": Locale.current.identifier, + "X-Apple-I-MD": anisetteData.oneTimePassword, + "X-Apple-I-MD-M": anisetteData.machineID, + "X-Mme-Device-Id": anisetteData.deviceUniqueIdentifier, + "X-Apple-I-MD-LU": anisetteData.localUserID, + "X-Apple-I-MD-RINFO": anisetteData.routingInfo, + "X-Apple-I-SRL-NO": anisetteData.deviceSerialNumber, + "X-Apple-I-Client-Time": self.dateFormatter.string(from: anisetteData.date), + "X-Apple-I-TimeZone": TimeZone.current.abbreviation() ?? "PST", + ] as [String: Any] + + let context = GSAContext(username: appleID, password: password) + guard let publicKey = context.start() else { throw ALTAppleAPIError(.authenticationHandshakeFailed) } + + let parameters = [ + "A2k": publicKey, + "cpd": clientDictionary, + "ps": ["s2k", "s2k_fo"], + "o": "init", + "u": appleID + ] as [String: Any] + + self.sendAuthenticationRequest(parameters: parameters, anisetteData: anisetteData) { (result) in + do + { + let responseDictionary = try result.get() + + guard let c = responseDictionary["c"] as? String, + let salt = responseDictionary["s"] as? Data, + let iterations = responseDictionary["i"] as? Int, + let serverPublicKey = responseDictionary["B"] as? Data + else { throw URLError(.badServerResponse) } + + context.salt = salt + context.serverPublicKey = serverPublicKey + + let sp = responseDictionary["sp"] as? String + let isHexadecimal = (sp == "s2k_fo") + + guard let verificationMessage = context.makeVerificationMessage(iterations: iterations, isHexadecimal: isHexadecimal) else { + throw ALTAppleAPIError(.authenticationHandshakeFailed) + } + + let parameters = [ + "c": c, + "cpd": clientDictionary, + "M1": verificationMessage, + "o": "complete", + "u": appleID + ] as [String: Any] + + self.sendAuthenticationRequest(parameters: parameters, anisetteData: anisetteData) { (result) in + do + { + let responseDictionary = try result.get() + + guard let serverVerificationMessage = responseDictionary["M2"] as? Data, + let serverDictionary = responseDictionary["spd"] as? Data, + let statusDictionary = responseDictionary["Status"] as? [String: Any] + else { throw URLError(.badServerResponse) } + + guard context.verifyServerVerificationMessage(serverVerificationMessage) else { throw ALTAppleAPIError(.authenticationHandshakeFailed) } + guard let decryptedData = serverDictionary.decryptedCBC(context: context) else { throw ALTAppleAPIError(.authenticationHandshakeFailed) } + + guard let decryptedDictionary = try PropertyListSerialization.propertyList(from: decryptedData, format: nil) as? [String: Any], + let dsid = decryptedDictionary["adsid"] as? String, + let idmsToken = decryptedDictionary["GsIdmsToken"] as? String + else { throw URLError(.badServerResponse) } + + context.dsid = dsid + + let authType = statusDictionary["au"] as? String + if authType == "trustedDeviceSecondaryAuth" + { + guard let verificationHandler = verificationHandler else { throw ALTAppleAPIError(.requiresTwoFactorAuthentication) } + + self.requestTwoFactorCode(dsid: dsid, idmsToken: idmsToken, anisetteData: anisetteData, verificationHandler: verificationHandler) { (result) in + switch result + { + case .failure(let error): completionHandler(nil, nil, error) + case .success: + self.authenticate(appleID: appleID, password: password, anisetteData: anisetteData, verificationHandler: verificationHandler, completionHandler: completionHandler) + } + } + } + else + { + guard let sessionKey = decryptedDictionary["sk"] as? Data, + let c = decryptedDictionary["c"] as? Data + else { throw URLError(.badServerResponse) } + + context.sessionKey = sessionKey + + let app = "com.apple.gs.xcode.auth" + guard let checksum = context.makeChecksum(appName: app) else { throw ALTAppleAPIError(.authenticationHandshakeFailed) } + + let parameters = [ + "app": [app], + "c": c, + "checksum": checksum, + "cpd": clientDictionary, + "o": "apptokens", + "t": idmsToken, + "u": dsid + ] as [String: Any] + + self.fetchAuthToken(app: app, parameters: parameters, context: context, anisetteData: anisetteData) { (result) in + switch result + { + case .failure(let error): completionHandler(nil, nil, error) + case .success(let token): + + let session = ALTAppleAPISession(dsid: dsid, authToken: token, anisetteData: anisetteData) + self.fetchAccount(session: session) { (result) in + switch result + { + case .failure(let error): completionHandler(nil, nil, error) + case .success(let account): completionHandler(account, session, nil) + } + } + } + } + } + } + catch + { + completionHandler(nil, nil, error) + } + } + } + catch + { + completionHandler(nil, nil, error) + } + } + } + catch + { + completionHandler(nil, nil, error) + } + } +} + +private extension ALTAppleAPI +{ + func fetchAuthToken(app: String, parameters: [String: Any], context: GSAContext, anisetteData: ALTAnisetteData, completionHandler: @escaping (Result) -> Void) + { + self.sendAuthenticationRequest(parameters: parameters, anisetteData: anisetteData) { (result) in + do + { + let responseDictionary = try result.get() + + guard let encryptedToken = responseDictionary["et"] as? Data else { throw URLError(.badServerResponse) } + guard let token = encryptedToken.decryptedGCM(context: context) else { throw ALTAppleAPIError(.authenticationHandshakeFailed) } + + guard let tokensDictionary = try PropertyListSerialization.propertyList(from: token, format: nil) as? [String: Any] else { + throw URLError(.badServerResponse) + } + + guard let appTokens = tokensDictionary["t"] as? [String: Any], + let tokens = appTokens[app] as? [String: Any], + let authToken = tokens["token"] as? String + else { throw URLError(.badServerResponse) } + + completionHandler(.success(authToken)) + } + catch + { + completionHandler(.failure(error)) + } + } + } + + func requestTwoFactorCode(dsid: String, + idmsToken: String, + anisetteData: ALTAnisetteData, + verificationHandler: @escaping (@escaping (String?) -> Void) -> Void, + completionHandler: @escaping (Result) -> Void) + { + let url = URL(string: "https://gsa.apple.com/auth/verify/trusteddevice")! + + let identityToken = dsid + ":" + idmsToken + + let identityTokenData = identityToken.data(using: .utf8)! + let encodedIdentityToken = identityTokenData.base64EncodedString() + + let httpHeaders = [ + "Accept": "text/x-xml-plist", + "Accept-Language": "en-us", + "Content-Type": "text/x-xml-plist", + "User-Agent": "Xcode", + "X-Apple-App-Info": "com.apple.gs.xcode.auth", + "X-Xcode-Version": "11.2 (11B41)", + "X-Apple-Identity-Token": encodedIdentityToken, + "X-Apple-I-MD-M": anisetteData.machineID, + "X-Apple-I-MD": anisetteData.oneTimePassword, + "X-Apple-I-MD-LU": anisetteData.localUserID, + "X-Apple-I-MD-RINFO": "\(anisetteData.routingInfo)", + "X-Mme-Device-Id": anisetteData.deviceUniqueIdentifier, + "X-MMe-Client-Info": anisetteData.deviceDescription, + "X-Apple-I-Client-Time": self.dateFormatter.string(from: anisetteData.date), + "X-Apple-Locale": anisetteData.locale.identifier, + "X-Apple-I-TimeZone": anisetteData.timeZone.abbreviation() ?? "PST" + ] + + var request = URLRequest(url: url) + httpHeaders.forEach { request.addValue($0.value, forHTTPHeaderField: $0.key) } + + let requestCodeTask = self.session.dataTask(with: request) { (data, response, error) in + do + { + guard error == nil else { throw error! } + + func responseHandler(verificationCode: String?) + { + do + { + guard let verificationCode = verificationCode else { throw ALTAppleAPIError(.requiresTwoFactorAuthentication) } + + var headers = httpHeaders + headers["security-code"] = verificationCode + + let url = URL(string: "https://gsa.apple.com/grandslam/GsService2/validate")! + + var request = URLRequest(url: url) + headers.forEach { request.addValue($0.value, forHTTPHeaderField: $0.key) } + + let verifyCodeTask = self.session.dataTask(with: request) { (data, response, error) in + do + { + guard let data = data else { throw error ?? ALTAppleAPIError(.unknown) } + + guard let responseDictionary = try PropertyListSerialization.propertyList(from: data, format: nil) as? [String: Any] else { + throw URLError(.badServerResponse) + } + + let errorCode = responseDictionary["ec"] as? Int ?? 0 + guard errorCode != 0 else { return completionHandler(.success(())) } + + switch errorCode + { + case -21669: throw ALTAppleAPIError(.incorrectVerificationCode) + default: + guard let errorDescription = responseDictionary["em"] as? String else { throw ALTAppleAPIError(.unknown) } + + let localizedDescription = errorDescription + " (\(errorCode))" + throw ALTAppleAPIError(.unknown, userInfo: [NSLocalizedDescriptionKey: localizedDescription]) + } + } + catch + { + completionHandler(.failure(error)) + } + } + + verifyCodeTask.resume() + } + catch + { + completionHandler(.failure(error)) + } + } + + verificationHandler(responseHandler) + } + catch + { + completionHandler(.failure(error)) + } + } + + requestCodeTask.resume() + } + + func fetchAccount(session: ALTAppleAPISession, completionHandler: @escaping (Result) -> Void) + { + let url = URL(string: "viewDeveloper.action", relativeTo: self.baseURL)! + + self.sendRequest(with: url, additionalParameters: nil, session: session, team: nil) { (responseDictionary, requestError) in + do + { + guard let responseDictionary = responseDictionary else { throw requestError ?? ALTAppleAPIError(.unknown) } + + guard let account = try self.processResponse(responseDictionary, parseHandler: { () -> Any? in + guard let dictionary = responseDictionary["developer"] as? [String: Any] else { return nil } + let account = ALTAccount(responseDictionary: dictionary) + return account + }, resultCodeHandler: nil) as? ALTAccount else { + throw ALTAppleAPIError(.unknown) + } + + completionHandler(.success(account)) + } + catch + { + completionHandler(.failure(error)) + } + } + } + + func sendAuthenticationRequest(parameters requestParameters: [String: Any], anisetteData: ALTAnisetteData, completionHandler: @escaping (Result<[String: Any], Error>) -> Void) + { + do + { + let requestURL = URL(string: "https://gsa.apple.com/grandslam/GsService2")! + + let parameters = [ + "Header": ["Version": "1.0.1"], + "Request": requestParameters + ] + + let httpHeaders = [ + "Content-Type": "text/x-xml-plist", + "X-MMe-Client-Info": anisetteData.deviceDescription, + "Accept": "*/*", + "User-Agent": "akd/1.0 CFNetwork/978.0.7 Darwin/18.7.0" + ] + + let bodyData = try PropertyListSerialization.data(fromPropertyList: parameters, format: .xml, options: 0) + + var request = URLRequest(url: requestURL) + request.httpMethod = "POST" + request.httpBody = bodyData + httpHeaders.forEach { request.addValue($0.value, forHTTPHeaderField: $0.key) } + + let dataTask = self.session.dataTask(with: request) { (data, response, error) in + do + { + guard let data = data else { throw error ?? ALTAppleAPIError(.unknown) } + + guard let responseDictionary = try PropertyListSerialization.propertyList(from: data, format: nil) as? [String: Any], + let dictionary = responseDictionary["Response"] as? [String: Any], + let status = dictionary["Status"] as? [String: Any] + else { throw URLError(.badServerResponse) } + + let errorCode = status["ec"] as? Int ?? 0 + guard errorCode != 0 else { return completionHandler(.success(dictionary)) } + + switch errorCode + { + case -22406: throw ALTAppleAPIError(.incorrectCredentials) + default: + guard let errorDescription = status["em"] as? String else { throw ALTAppleAPIError(.unknown) } + + let localizedDescription = errorDescription + " (\(errorCode))" + throw ALTAppleAPIError(.unknown, userInfo: [NSLocalizedDescriptionKey: localizedDescription]) + } + } + catch + { + completionHandler(.failure(error)) + } + } + + dataTask.resume() + } + catch + { + completionHandler(.failure(error)) + } + } +} diff --git a/AltSign/Apple API/ALTAppleAPI_Private.h b/AltSign/Apple API/ALTAppleAPI_Private.h index 0052d88..5fcccad 100644 --- a/AltSign/Apple API/ALTAppleAPI_Private.h +++ b/AltSign/Apple API/ALTAppleAPI_Private.h @@ -6,7 +6,7 @@ // Copyright © 2019 Riley Testut. All rights reserved. // -#import "ALTAppleAPI.h" +#import NS_ASSUME_NONNULL_BEGIN @@ -22,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN additionalParameters:(nullable NSDictionary *)additionalParameters session:(ALTAppleAPISession *)session team:(nullable ALTTeam *)team - completionHandler:(void (^)(NSDictionary *responseDictionary, NSError *error))completionHandler; + completionHandler:(void (^)(NSDictionary *_Nullable responseDictionary, NSError *_Nullable error))completionHandler; - (nullable id)processResponse:(NSDictionary *)responseDictionary parseHandler:(id _Nullable (^_Nullable)(void))parseHandler diff --git a/AltSign/Apple API/GSAContext.swift b/AltSign/Apple API/GSAContext.swift new file mode 100644 index 0000000..42b0601 --- /dev/null +++ b/AltSign/Apple API/GSAContext.swift @@ -0,0 +1,194 @@ +// +// GSAContext.swift +// AltSign +// +// Created by Riley Testut on 8/15/20. +// Copyright © 2020 Riley Testut. All rights reserved. +// + +import Foundation +import CoreCrypto + +import AltSign.Private + +class GSAContext +{ + let username: String + let password: String + + /// salt (obtained from server) + var salt: Data? + + /// B (Public) + var serverPublicKey: Data? + + /// K + var sessionKey: Data? + + var dsid: String? + + /// A (Public) + private(set) var publicKey: Data? + + /// x (derived with KDF) + private(set) var derivedPasswordKey: Data? + + /// M1 + private(set) var verificationMessage: Data? + + /// SRP group: https://tools.ietf.org/html/rfc5054#page-16 + private let srpGroup = ccsrp_gp_rfc5054_2048()! + + private let digestInfo = ccsha256_di()! + + private lazy var srpContext: ccsrp_ctx_t = { + let size = ccsrp_sizeof_srp(self.digestInfo, self.srpGroup) + let context = UnsafeMutableRawPointer.allocate(byteCount: size, alignment: MemoryLayout.alignment).assumingMemoryBound(to: ccsrp_ctx.self) + ccsrp_ctx_init(context, self.digestInfo, self.srpGroup) + ccsrp_client_set_noUsernameInX(context, true) + context.pointee.blinding_rng = ccrng(nil) + return context + }() + + init(username: String, password: String) + { + self.username = username + self.password = password + } + + deinit + { + self.srpContext.deallocate() + } +} + +extension GSAContext +{ + func start() -> Data? + { + guard self.publicKey == nil else { return nil } + + self.publicKey = self.makeAKey() + return self.publicKey + } + + func makeVerificationMessage(iterations: Int, isHexadecimal: Bool) -> Data? + { + guard self.verificationMessage == nil else { return nil } + guard let salt = self.salt, let serverPublicKey = self.serverPublicKey else { return nil } + + guard let derivedPasswordKey = self.makeX(password: self.password, salt: salt, iterations: iterations, isHexadecimal: isHexadecimal) else { return nil } + self.derivedPasswordKey = derivedPasswordKey + + self.verificationMessage = self.makeM1(username: self.username, derivedPasswordKey: derivedPasswordKey, salt: salt, serverPublicKey: serverPublicKey) + return self.verificationMessage + } + + func verifyServerVerificationMessage(_ serverVerificationMessage: Data) -> Bool + { + guard !serverVerificationMessage.isEmpty else { return false } + + let isValid = serverVerificationMessage.withUnsafeBytes { (bytes) -> Bool in + let pointer = bytes.baseAddress!.assumingMemoryBound(to: UInt8.self) + return ccsrp_client_verify_session(self.srpContext, pointer) + } + + return isValid + } + + func makeChecksum(appName: String) -> Data? + { + guard let sessionKey = self.sessionKey, let dsid = self.dsid else { return nil } + + let size = cchmac_di_size(self.digestInfo) + + let context = Data.makeBuffer(size: size, type: cchmac_ctx.self) + defer { context.deallocate() } + + sessionKey.withUnsafeBytes { cchmac_init(self.digestInfo, context, sessionKey.count, $0.baseAddress) } + + for string in ["apptokens", dsid, appName] + { + cchmac_update(self.digestInfo, context, string.count, string) + } + + var checksum = Data(repeating: 0, count: self.digestInfo.pointee.output_size) + checksum.withUnsafeMutableBytes { cchmac_final(self.digestInfo, context, $0.baseAddress?.assumingMemoryBound(to: UInt8.self)) } + return checksum + } +} + +internal extension GSAContext +{ + func makeHMACKey(_ string: String) -> Data + { + var keySize = 0 + let rawSessionKey = ccsrp_get_session_key(self.srpContext, &keySize) + + var sessionKey = Data(repeating: 0, count: keySize) + sessionKey.withUnsafeMutableBytes { cchmac(self.digestInfo, keySize, rawSessionKey, string.count, string, $0.baseAddress?.assumingMemoryBound(to: UInt8.self)) } + return sessionKey + } +} + +private extension GSAContext +{ + func makeAKey() -> Data? + { + let size = ccsrp_exchange_size(self.srpContext) + + var keyA = Data(repeating: 0, count: size) + let result = keyA.withUnsafeMutableBytes { ccsrp_client_start_authentication(self.srpContext, ccrng(nil), $0.baseAddress!) } + + guard result == 0 else { return nil } + return keyA + } + + func makeX(password: String, salt: Data, iterations: Int, isHexadecimal: Bool) -> Data? + { + var digest = Data(repeating: 0, count: self.digestInfo.pointee.output_size) + digest.withUnsafeMutableBytes { ccdigest(self.digestInfo, password.utf8.count, password, $0.baseAddress!) } + + let digestLength = isHexadecimal ? self.digestInfo.pointee.output_size * 2 : self.digestInfo.pointee.output_size + + if isHexadecimal + { + let hexDigest = digest.hexadecimal() + digest = hexDigest + } + + var x = Data(repeating: 0, count: self.digestInfo.pointee.output_size) + + let result = x.withUnsafeMutableBytes { (xBytes) in + digest.withUnsafeBytes { (digestBytes) in + salt.withUnsafeBytes { (saltBytes) in + ccpbkdf2_hmac(self.digestInfo, digestLength, digestBytes.baseAddress, salt.count, saltBytes.baseAddress, iterations, self.digestInfo.pointee.output_size, xBytes.baseAddress) + } + } + } + + guard result == 0 else { return nil } + return x + } + + func makeM1(username: String, derivedPasswordKey x: Data, salt: Data, serverPublicKey B: Data) -> Data? + { + let size = ccsrp_get_session_key_length(self.srpContext) + + var M1 = Data(repeating: 0, count: size) + + let result = M1.withUnsafeMutableBytes { (m1Bytes) in + x.withUnsafeBytes { (xBytes) in + salt.withUnsafeBytes { (saltBytes) in + B.withUnsafeBytes { (bBytes) in + ccsrp_client_process_challenge(self.srpContext, username, xBytes.count, xBytes.baseAddress!, + salt.count, saltBytes.baseAddress!, bBytes.baseAddress!, m1Bytes.baseAddress!) + } + } + } + } + + guard result == 0 else { return nil } + return M1 + } +} diff --git a/AltSign/Extensions/Data+Encryption.swift b/AltSign/Extensions/Data+Encryption.swift new file mode 100644 index 0000000..5702473 --- /dev/null +++ b/AltSign/Extensions/Data+Encryption.swift @@ -0,0 +1,91 @@ +// +// Data+Encryption.swift +// AltSign +// +// Created by Riley Testut on 8/20/20. +// Copyright © 2020 Riley Testut. All rights reserved. +// + +import Foundation +import CoreCrypto + +extension Data +{ + static func makeBuffer(size: Int, type: T.Type) -> UnsafeMutablePointer + { + return UnsafeMutableRawPointer.allocate(byteCount: size, alignment: MemoryLayout.alignment).assumingMemoryBound(to: type) + } + + func hexadecimal() -> Data + { + let hexString = self.map { String(format: "%02hhx", $0) }.joined() + + let hexData = Data(hexString.flatMap { $0.utf8.map { UInt8($0) } }) + return hexData + } + + func decryptedCBC(context gsaContext: GSAContext) -> Data? + { + guard let mode = ccaes_cbc_decrypt_mode() else { return nil } + + let context = Data.makeBuffer(size: mode.pointee.size, type: cccbc_ctx.self) + defer { context.deallocate() } + + let sessionKey = gsaContext.makeHMACKey("extra data key:") + _ = sessionKey.withUnsafeBytes { mode.pointee.`init`(mode, context, sessionKey.count, $0.baseAddress) } + + var initializationVector = gsaContext.makeHMACKey("extra data iv:") + var decryptedData = Data(repeating: 0, count: self.count) + + let size = decryptedData.withUnsafeMutableBytes { (decryptedBytes) in + self.withUnsafeBytes { (dataBytes) in + initializationVector.withUnsafeMutableBytes { (ivBytes) -> size_t in + let ivPointer = ivBytes.baseAddress!.assumingMemoryBound(to: cccbc_iv.self) + return ccpad_pkcs7_decrypt(mode, context, ivPointer, self.count, dataBytes.baseAddress, decryptedBytes.baseAddress) + } + } + } + + guard size <= self.count else { return nil } + return decryptedData + } + + func decryptedGCM(context gsaContext: GSAContext) -> Data? + { + guard let mode = ccaes_gcm_decrypt_mode(), + let sessionKey = gsaContext.sessionKey else { return nil } + + let context = Data.makeBuffer(size: mode.pointee.size, type: ccgcm_ctx.self) + defer { context.deallocate() } + + _ = sessionKey.withUnsafeBytes { mode.pointee.`init`(mode, context, sessionKey.count, $0.baseAddress!) } + + let versionSize = 3 + let ivSize = 16 + let tagSize = 16 + + let decryptedSize = self.count - (versionSize + ivSize + tagSize) + guard decryptedSize > 0 else { return nil } + + let version = self[0 ..< versionSize] + let initializationVector = self[versionSize ..< versionSize + ivSize] + let ciphertext = self.dropFirst(versionSize + ivSize).dropLast(tagSize) + let tag = self[self.endIndex - tagSize ..< self.endIndex] + + _ = initializationVector.withUnsafeBytes { mode.pointee.set_iv(context, ivSize, $0.baseAddress) } + _ = version.withUnsafeBytes { mode.pointee.gmac(context, version.count, $0.baseAddress) } + + var decryptedData = Data(repeating: 0, count: decryptedSize) + _ = ciphertext.withUnsafeBytes { (ciphertextBytes) in + decryptedData.withUnsafeMutableBytes { (decryptedBytes) in + mode.pointee.gcm(context, decryptedSize, ciphertextBytes.baseAddress, decryptedBytes.baseAddress) + } + } + + var decryptedTag = Data(repeating: 0, count: tagSize) + _ = decryptedTag.withUnsafeMutableBytes { mode.pointee.finalize(context, tagSize, $0.baseAddress) } + + guard tag == decryptedTag else { return nil } + return decryptedData + } +} diff --git a/AltSign/Model/Apple API/ALTModel+Internal.h b/AltSign/Model/Apple API/ALTModel+Internal.h index f58928c..1f6dbe7 100644 --- a/AltSign/Model/Apple API/ALTModel+Internal.h +++ b/AltSign/Model/Apple API/ALTModel+Internal.h @@ -6,14 +6,14 @@ // Copyright © 2019 Riley Testut. All rights reserved. // -#import "ALTAccount.h" -#import "ALTTeam.h" -#import "ALTDevice.h" -#import "ALTCertificate.h" -#import "ALTCertificateRequest.h" -#import "ALTAppID.h" -#import "ALTAppGroup.h" -#import "ALTProvisioningProfile.h" +#import +#import +#import +#import +#import +#import +#import +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Dependencies/corecrypto/CoreCryptoMacros.swift b/Dependencies/corecrypto/CoreCryptoMacros.swift new file mode 100644 index 0000000..269723b --- /dev/null +++ b/Dependencies/corecrypto/CoreCryptoMacros.swift @@ -0,0 +1,47 @@ +// +// CoreCryptoMacros.swift +// AltSign +// +// Created by Riley Testut on 8/20/20. +// Copyright © 2020 Riley Testut. All rights reserved. +// + +import Foundation +import CoreCrypto + +/// Reimplementations of various CoreCrypto macros that are unavailable in Swift. + +func ccdigest_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int +{ + (stateSize + MemoryLayout.size + blockSize + MemoryLayout.size) +} + +func ccdigest_di_size(_ digestInfo: UnsafePointer) -> Int +{ + ccdigest_ctx_size(digestInfo.pointee.state_size, digestInfo.pointee.block_size) +} + +func ccsrp_gpbuf_size(_ group: ccdh_const_gp_t) -> Int +{ + ccdh_ccn_size(group) * 4 +} + +func ccsrp_dibuf_size(_ digestInfo: UnsafePointer) -> Int +{ + digestInfo.pointee.output_size * 4 +} + +func ccsrp_sizeof_srp(_ digestInfo: UnsafePointer, _ group: ccdh_const_gp_t) -> Int +{ + MemoryLayout.size + ccsrp_gpbuf_size(group) + ccsrp_dibuf_size(digestInfo) +} + +func cchmac_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int +{ + ccdigest_ctx_size(stateSize, blockSize) + stateSize +} + +func cchmac_di_size(_ digestInfo: UnsafePointer) -> Int +{ + cchmac_ctx_size(digestInfo.pointee.state_size, digestInfo.pointee.block_size) +} diff --git a/Dependencies/corecrypto/module.modulemap b/Dependencies/corecrypto/module.modulemap new file mode 100644 index 0000000..d112500 --- /dev/null +++ b/Dependencies/corecrypto/module.modulemap @@ -0,0 +1,14 @@ +module CoreCrypto [system] { + header "ccsrp.h" + header "ccdrbg.h" + header "ccsrp_gp.h" + header "ccdigest.h" + header "ccsha2.h" + header "ccpbkdf2.h" + header "cchmac.h" + header "ccaes.h" + header "ccpad.h" + header "ccn.h" + + export * +} diff --git a/module.modulemap b/module.modulemap new file mode 100644 index 0000000..7a25d9f --- /dev/null +++ b/module.modulemap @@ -0,0 +1,12 @@ +framework module AltSign { + umbrella header "AltSign.h" + export * + module * { export * } + + explicit module Private { + private header "ALTAppleAPI_Private.h" + private header "ALTModel+Internal.h" + private header "ALTCertificateRequest.h" + export * + } +} From efd87a567fbd175aeef5c1957c2b7ee4874743f0 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Mon, 24 Aug 2020 13:47:38 -0700 Subject: [PATCH 02/20] Fixes out-of-bounds memory access on iOS 14/macOS 11 --- Dependencies/corecrypto/CoreCryptoMacros.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Dependencies/corecrypto/CoreCryptoMacros.swift b/Dependencies/corecrypto/CoreCryptoMacros.swift index 269723b..20e6d43 100644 --- a/Dependencies/corecrypto/CoreCryptoMacros.swift +++ b/Dependencies/corecrypto/CoreCryptoMacros.swift @@ -43,5 +43,14 @@ func cchmac_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int func cchmac_di_size(_ digestInfo: UnsafePointer) -> Int { - cchmac_ctx_size(digestInfo.pointee.state_size, digestInfo.pointee.block_size) + if #available(iOS 14, macOS 11, *) + { + // CoreCrypto headers aren't accurate for iOS 14 or macOS 11 yet, + // so return bigger buffer size to ensure against invalid memory access. + return cchmac_ctx_size(digestInfo.pointee.state_size, digestInfo.pointee.block_size) * 2 + } + else + { + return cchmac_ctx_size(digestInfo.pointee.state_size, digestInfo.pointee.block_size) + } } From 5ec4b5c25b4a44622d4a49f1a6530c7675abd2b6 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 25 Aug 2020 11:09:19 -0700 Subject: [PATCH 03/20] Fixes Cocoapods issues due to mixing Swift and Objective-C --- AltSign.podspec | 10 +++++++--- AltSign/AltSign.h | 4 ++++ AltSign/Apple API/ALTAppleAPI+Authentication.swift | 4 ++++ AltSign/Apple API/GSAContext.swift | 2 -- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/AltSign.podspec b/AltSign.podspec index 97bbb74..6fc6ec4 100644 --- a/AltSign.podspec +++ b/AltSign.podspec @@ -11,13 +11,17 @@ Pod::Spec.new do |spec| spec.author = { "Riley Testut" => "riley@rileytestut.com" } spec.social_media_url = "https://twitter.com/rileytestut" - spec.source_files = "AltSign", "AltSign/**/*.{h,m,mm,hpp,cpp}" + spec.source_files = "AltSign", "AltSign/**/*.{h,m,mm,hpp,cpp,swift}" spec.public_header_files = "AltSign/**/*.h" spec.resources = "AltSign/Resources/apple.pem" spec.library = "c++" spec.xcconfig = { - "OTHER_CFLAGS" => "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1" + "OTHER_CFLAGS" => "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", + "GCC_PREPROCESSOR_DEFINITIONS" => "INCLUDE_PRIVATE_API=1 CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", + "SWIFT_ACTIVE_COMPILATION_CONDITIONS" => "INCLUDE_PRIVATE_API", + "SWIFT_INCLUDE_PATHS" => "$(PODS_ROOT)/../Dependencies/AltSign/Dependencies/corecrypto/", # Assuming AltStore directory layout for now + "SYSTEM_HEADER_SEARCH_PATHS" => "$(PODS_ROOT)/Headers/Private/AltSign/" } # Somewhat hacky subspec usage to ensure directory hierarchies match what header includes expect. @@ -53,7 +57,7 @@ Pod::Spec.new do |spec| end spec.subspec 'CoreCrypto' do |base| - base.source_files = "Dependencies/corecrypto/*.{h,m}" + base.source_files = "Dependencies/corecrypto/*.{h,m,swift,modulemap}" base.exclude_files = "Dependencies/corecrypto/ccperf.h" base.private_header_files = "Dependencies/corecrypto/*.h" base.header_mappings_dir = "Dependencies" diff --git a/AltSign/AltSign.h b/AltSign/AltSign.h index 1680c67..54f48e4 100644 --- a/AltSign/AltSign.h +++ b/AltSign/AltSign.h @@ -10,6 +10,10 @@ #import #import +#if INCLUDE_PRIVATE_API +#import +#endif + // Signing #import diff --git a/AltSign/Apple API/ALTAppleAPI+Authentication.swift b/AltSign/Apple API/ALTAppleAPI+Authentication.swift index c180bfa..3b21007 100644 --- a/AltSign/Apple API/ALTAppleAPI+Authentication.swift +++ b/AltSign/Apple API/ALTAppleAPI+Authentication.swift @@ -8,6 +8,10 @@ import Foundation +#if !INCLUDE_PRIVATE_API +import AltSign.Private +#endif + public extension ALTAppleAPI { @objc func authenticate(appleID: String, diff --git a/AltSign/Apple API/GSAContext.swift b/AltSign/Apple API/GSAContext.swift index 42b0601..6fb953a 100644 --- a/AltSign/Apple API/GSAContext.swift +++ b/AltSign/Apple API/GSAContext.swift @@ -9,8 +9,6 @@ import Foundation import CoreCrypto -import AltSign.Private - class GSAContext { let username: String From 3dc995f366da92b323938ea680808f264dc03f8a Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Thu, 27 Aug 2020 14:39:41 -0700 Subject: [PATCH 04/20] Adds $(inherited) to SWIFT_ACTIVE_COMPILATION_CONDITIONS in podspec --- AltSign.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AltSign.podspec b/AltSign.podspec index 6fc6ec4..f01211f 100644 --- a/AltSign.podspec +++ b/AltSign.podspec @@ -19,7 +19,7 @@ Pod::Spec.new do |spec| spec.xcconfig = { "OTHER_CFLAGS" => "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", "GCC_PREPROCESSOR_DEFINITIONS" => "INCLUDE_PRIVATE_API=1 CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", - "SWIFT_ACTIVE_COMPILATION_CONDITIONS" => "INCLUDE_PRIVATE_API", + "SWIFT_ACTIVE_COMPILATION_CONDITIONS" => "$(inherited) INCLUDE_PRIVATE_API", "SWIFT_INCLUDE_PATHS" => "$(PODS_ROOT)/../Dependencies/AltSign/Dependencies/corecrypto/", # Assuming AltStore directory layout for now "SYSTEM_HEADER_SEARCH_PATHS" => "$(PODS_ROOT)/Headers/Private/AltSign/" } From 508abc4cdfe32c6f6708f88064ad16569dfa1de7 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Thu, 3 Sep 2020 14:19:09 -0700 Subject: [PATCH 05/20] Refactors Xcode project into Swift Package --- .gitignore | 1 + .gitmodules | 2 +- AltSign.podspec | 66 - AltSign.xcodeproj/project.pbxproj | 1701 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcschemes/AltSign-macOS.xcscheme | 80 - .../xcshareddata/xcschemes/AltSign.xcscheme | 80 - .../xcshareddata/xcschemes/ldid.xcscheme | 80 - AltSign/Categories/NSBundle+Resources.h | 19 + AltSign/Categories/NSBundle+Resources.m | 24 + AltSign/Info.plist | 22 - AltSign/Signing/ALTSigner.mm | 5 +- .../ALTAppleAPI+Authentication.swift | 5 +- .../Data+Encryption.swift | 0 .../{Apple API => Sources}/GSAContext.swift | 0 AltSign/{ => include}/AltSign.h | 4 - AltSign/include/AltSign/ALTAccount.h | 1 + AltSign/include/AltSign/ALTAnisetteData.h | 1 + AltSign/include/AltSign/ALTAppGroup.h | 1 + AltSign/include/AltSign/ALTAppID.h | 1 + AltSign/include/AltSign/ALTAppleAPI.h | 1 + AltSign/include/AltSign/ALTAppleAPISession.h | 1 + AltSign/include/AltSign/ALTAppleAPI_Private.h | 1 + AltSign/include/AltSign/ALTApplication.h | 1 + AltSign/include/AltSign/ALTCapabilities.h | 1 + AltSign/include/AltSign/ALTCertificate.h | 1 + .../include/AltSign/ALTCertificateRequest.h | 1 + AltSign/include/AltSign/ALTDevice.h | 1 + AltSign/include/AltSign/ALTModel+Internal.h | 1 + .../include/AltSign/ALTProvisioningProfile.h | 1 + AltSign/include/AltSign/ALTSigner.h | 1 + AltSign/include/AltSign/ALTTeam.h | 1 + AltSign/include/AltSign/NSBundle+Resources.h | 1 + AltSign/include/AltSign/NSError+ALTErrors.h | 1 + AltSign/include/AltSign/NSFileManager+Apps.h | 1 + AltSign/include/module.modulemap | 12 + Dependencies/OpenSSL | 2 +- .../{ => Sources}/CoreCryptoMacros.swift | 17 +- Dependencies/corecrypto/{ => Sources}/ccsrp.m | 0 .../corecrypto/{ => include/corecrypto}/cc.h | 0 .../{ => include/corecrypto}/cc_config.h | 0 .../{ => include/corecrypto}/cc_debug.h | 0 .../{ => include/corecrypto}/cc_memory.h | 0 .../{ => include/corecrypto}/cc_priv.h | 0 .../corecrypto}/cc_runtime_config.h | 0 .../{ => include/corecrypto}/ccaes.h | 0 .../{ => include/corecrypto}/ccansikdf.h | 0 .../{ => include/corecrypto}/ccasn1.h | 0 .../{ => include/corecrypto}/ccblowfish.h | 0 .../{ => include/corecrypto}/cccast.h | 0 .../corecrypto}/ccchacha20poly1305.h | 0 .../corecrypto}/ccchacha20poly1305_priv.h | 0 .../{ => include/corecrypto}/cccmac.h | 0 .../{ => include/corecrypto}/ccder.h | 0 .../corecrypto}/ccder_decode_eckey.h | 0 .../corecrypto}/ccder_encode_eckey.h | 0 .../{ => include/corecrypto}/ccder_priv.h | 0 .../{ => include/corecrypto}/ccder_rsa.h | 0 .../{ => include/corecrypto}/ccdes.h | 0 .../{ => include/corecrypto}/ccdh.h | 0 .../{ => include/corecrypto}/ccdh_gp.h | 0 .../{ => include/corecrypto}/ccdh_priv.h | 0 .../{ => include/corecrypto}/ccdigest.h | 0 .../{ => include/corecrypto}/ccdigest_priv.h | 0 .../{ => include/corecrypto}/ccdrbg.h | 0 .../{ => include/corecrypto}/ccdrbg_factory.h | 0 .../{ => include/corecrypto}/ccdrbg_impl.h | 0 .../{ => include/corecrypto}/ccec.h | 0 .../{ => include/corecrypto}/ccec25519.h | 0 .../{ => include/corecrypto}/ccec25519_priv.h | 0 .../{ => include/corecrypto}/ccec_priv.h | 0 .../{ => include/corecrypto}/ccecies.h | 0 .../{ => include/corecrypto}/ccecies_priv.h | 0 .../{ => include/corecrypto}/cchkdf.h | 0 .../{ => include/corecrypto}/cchmac.h | 0 .../{ => include/corecrypto}/ccmd2.h | 0 .../{ => include/corecrypto}/ccmd4.h | 0 .../{ => include/corecrypto}/ccmd5.h | 0 .../{ => include/corecrypto}/ccmode.h | 0 .../{ => include/corecrypto}/ccmode_factory.h | 0 .../{ => include/corecrypto}/ccmode_impl.h | 0 .../{ => include/corecrypto}/ccmode_siv.h | 0 .../corecrypto}/ccmode_siv_priv.h | 0 .../corecrypto/{ => include/corecrypto}/ccn.h | 0 .../{ => include/corecrypto}/ccn_priv.h | 0 .../{ => include/corecrypto}/ccnistkdf.h | 0 .../{ => include/corecrypto}/ccpad.h | 0 .../{ => include/corecrypto}/ccpbkdf2.h | 0 .../{ => include/corecrypto}/ccperf.h | 0 .../{ => include/corecrypto}/ccprime.h | 0 .../{ => include/corecrypto}/ccrc2.h | 0 .../{ => include/corecrypto}/ccrc4.h | 0 .../{ => include/corecrypto}/ccripemd.h | 0 .../{ => include/corecrypto}/ccrng.h | 0 .../{ => include/corecrypto}/ccrng_drbg.h | 0 .../corecrypto}/ccrng_ecfips_test.h | 0 .../corecrypto}/ccrng_pbkdf2_prng.h | 0 .../{ => include/corecrypto}/ccrng_priv.h | 0 .../corecrypto}/ccrng_rsafips_test.h | 0 .../{ => include/corecrypto}/ccrng_sequence.h | 0 .../{ => include/corecrypto}/ccrng_system.h | 0 .../{ => include/corecrypto}/ccrng_test.h | 0 .../{ => include/corecrypto}/ccrsa.h | 0 .../{ => include/corecrypto}/ccrsa_priv.h | 0 .../{ => include/corecrypto}/ccsha1.h | 0 .../{ => include/corecrypto}/ccsha2.h | 0 .../{ => include/corecrypto}/ccsrp.h | 0 .../{ => include/corecrypto}/ccsrp_gp.h | 0 .../{ => include/corecrypto}/cctest.h | 0 .../{ => include/corecrypto}/ccwrap.h | 0 .../corecrypto/{ => include/corecrypto}/ccz.h | 0 .../{ => include/corecrypto}/ccz_priv.h | 0 .../{ => include/corecrypto}/cczp.h | 0 .../{ => include/corecrypto}/cczp_priv.h | 0 .../{ => include/corecrypto}/fipspost.h | 0 .../corecrypto/include/module.modulemap | 14 + Dependencies/corecrypto/module.modulemap | 14 - Package.swift | 176 ++ module.modulemap | 12 - 120 files changed, 280 insertions(+), 2090 deletions(-) delete mode 100644 AltSign.podspec delete mode 100644 AltSign.xcodeproj/project.pbxproj delete mode 100644 AltSign.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 AltSign.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 AltSign.xcodeproj/xcshareddata/xcschemes/AltSign-macOS.xcscheme delete mode 100644 AltSign.xcodeproj/xcshareddata/xcschemes/AltSign.xcscheme delete mode 100644 AltSign.xcodeproj/xcshareddata/xcschemes/ldid.xcscheme create mode 100644 AltSign/Categories/NSBundle+Resources.h create mode 100644 AltSign/Categories/NSBundle+Resources.m delete mode 100644 AltSign/Info.plist rename AltSign/{Apple API => Sources}/ALTAppleAPI+Authentication.swift (99%) rename AltSign/{Extensions => Sources}/Data+Encryption.swift (100%) rename AltSign/{Apple API => Sources}/GSAContext.swift (100%) rename AltSign/{ => include}/AltSign.h (92%) create mode 120000 AltSign/include/AltSign/ALTAccount.h create mode 120000 AltSign/include/AltSign/ALTAnisetteData.h create mode 120000 AltSign/include/AltSign/ALTAppGroup.h create mode 120000 AltSign/include/AltSign/ALTAppID.h create mode 120000 AltSign/include/AltSign/ALTAppleAPI.h create mode 120000 AltSign/include/AltSign/ALTAppleAPISession.h create mode 120000 AltSign/include/AltSign/ALTAppleAPI_Private.h create mode 120000 AltSign/include/AltSign/ALTApplication.h create mode 120000 AltSign/include/AltSign/ALTCapabilities.h create mode 120000 AltSign/include/AltSign/ALTCertificate.h create mode 120000 AltSign/include/AltSign/ALTCertificateRequest.h create mode 120000 AltSign/include/AltSign/ALTDevice.h create mode 120000 AltSign/include/AltSign/ALTModel+Internal.h create mode 120000 AltSign/include/AltSign/ALTProvisioningProfile.h create mode 120000 AltSign/include/AltSign/ALTSigner.h create mode 120000 AltSign/include/AltSign/ALTTeam.h create mode 120000 AltSign/include/AltSign/NSBundle+Resources.h create mode 120000 AltSign/include/AltSign/NSError+ALTErrors.h create mode 120000 AltSign/include/AltSign/NSFileManager+Apps.h create mode 100644 AltSign/include/module.modulemap rename Dependencies/corecrypto/{ => Sources}/CoreCryptoMacros.swift (65%) rename Dependencies/corecrypto/{ => Sources}/ccsrp.m (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cc.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cc_config.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cc_debug.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cc_memory.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cc_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cc_runtime_config.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccaes.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccansikdf.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccasn1.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccblowfish.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cccast.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccchacha20poly1305.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccchacha20poly1305_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cccmac.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccder.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccder_decode_eckey.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccder_encode_eckey.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccder_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccder_rsa.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdes.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdh.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdh_gp.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdh_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdigest.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdigest_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdrbg.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdrbg_factory.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccdrbg_impl.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccec.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccec25519.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccec25519_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccec_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccecies.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccecies_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cchkdf.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cchmac.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmd2.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmd4.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmd5.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmode.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmode_factory.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmode_impl.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmode_siv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccmode_siv_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccn.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccn_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccnistkdf.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccpad.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccpbkdf2.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccperf.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccprime.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrc2.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrc4.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccripemd.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_drbg.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_ecfips_test.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_pbkdf2_prng.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_rsafips_test.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_sequence.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_system.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrng_test.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrsa.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccrsa_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccsha1.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccsha2.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccsrp.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccsrp_gp.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cctest.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccwrap.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccz.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/ccz_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cczp.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/cczp_priv.h (100%) rename Dependencies/corecrypto/{ => include/corecrypto}/fipspost.h (100%) create mode 100644 Dependencies/corecrypto/include/module.modulemap delete mode 100644 Dependencies/corecrypto/module.modulemap create mode 100644 Package.swift delete mode 100644 module.modulemap diff --git a/.gitignore b/.gitignore index ca59eff..6703d61 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ xcuserdata ## Obj-C/Swift specific *.hmap *.ipa +*.swiftpm diff --git a/.gitmodules b/.gitmodules index 68173e1..81b5365 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "Dependencies/OpenSSL"] path = Dependencies/OpenSSL - url = https://github.com/krzyzanowskim/OpenSSL.git + url = https://github.com/rileytestut/OpenSSL [submodule "Dependencies/ldid"] path = Dependencies/ldid url = https://github.com/rileytestut/ldid.git diff --git a/AltSign.podspec b/AltSign.podspec deleted file mode 100644 index f01211f..0000000 --- a/AltSign.podspec +++ /dev/null @@ -1,66 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = "AltSign" - spec.version = "0.1" - spec.summary = "Open source iOS code-signing framework." - spec.description = "iOS framework to manage Apple developer accounts and resign apps." - spec.homepage = "https://github.com/rileytestut/altsign" - spec.license = "MIT" - spec.platform = :ios, "12.0" - spec.source = { :git => "https://github.com/rileytestut/AltSign.git" } - - spec.author = { "Riley Testut" => "riley@rileytestut.com" } - spec.social_media_url = "https://twitter.com/rileytestut" - - spec.source_files = "AltSign", "AltSign/**/*.{h,m,mm,hpp,cpp,swift}" - spec.public_header_files = "AltSign/**/*.h" - spec.resources = "AltSign/Resources/apple.pem" - spec.library = "c++" - - spec.xcconfig = { - "OTHER_CFLAGS" => "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", - "GCC_PREPROCESSOR_DEFINITIONS" => "INCLUDE_PRIVATE_API=1 CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", - "SWIFT_ACTIVE_COMPILATION_CONDITIONS" => "$(inherited) INCLUDE_PRIVATE_API", - "SWIFT_INCLUDE_PATHS" => "$(PODS_ROOT)/../Dependencies/AltSign/Dependencies/corecrypto/", # Assuming AltStore directory layout for now - "SYSTEM_HEADER_SEARCH_PATHS" => "$(PODS_ROOT)/Headers/Private/AltSign/" - } - - # Somewhat hacky subspec usage to ensure directory hierarchies match what header includes expect. - - spec.subspec 'OpenSSL' do |base| - base.source_files = "Dependencies/OpenSSL/ios/include/openssl/*.h" - base.header_mappings_dir = "Dependencies/OpenSSL/ios/include" - base.private_header_files = "Dependencies/OpenSSL/ios/include/openssl/*.h" - base.vendored_libraries = "Dependencies/OpenSSL/ios/lib/libcrypto.a", "Dependencies/OpenSSL/ios/lib/libssl.a" - end - - spec.subspec 'ldid' do |base| - base.source_files = "AltSign/ldid/*.{hpp,h,c,cpp}", "Dependencies/ldid/*.{hpp,h,c,cpp}" - base.private_header_files = "AltSign/ldid/*.hpp", "Dependencies/ldid/*.{hpp,h}" - base.header_mappings_dir = "" - end - - spec.subspec 'plist' do |base| - base.source_files = "Dependencies/ldid/libplist/include/plist/*.h", "Dependencies/ldid/libplist/src/*.{c,cpp}", "Dependencies/ldid/libplist/libcnary/**/*.{h,c}" - base.exclude_files = "Dependencies/ldid/libplist/include/plist/String.h", "Dependencies/ldid/libplist/include/plist/Node.h" # Conflict with string.h and node.h, so exclude them. - base.private_header_files = "Dependencies/ldid/libplist/include/plist/*.h", "Dependencies/ldid/libplist/libcnary/**/*.h" - base.header_mappings_dir = "Dependencies/ldid/libplist" - - # Add libplist include directory so we can still find String.h and Node.h when explicitly requested. - base.xcconfig = { "HEADER_SEARCH_PATHS" => '"$(SRCROOT)/../Dependencies/AltSign/Dependencies/ldid/libplist/include" "$(SRCROOT)/../Dependencies/AltSign/Dependencies/ldid/libplist/src"' } - end - - spec.subspec 'minizip' do |base| - base.source_files = "Dependencies/minizip/*.{h,c}" - base.exclude_files = "Dependencies/minizip/iowin32.*", "Dependencies/minizip/minizip.c", "Dependencies/minizip/miniunz.c" - base.private_header_files = "Dependencies/minizip/*.h" - base.header_mappings_dir = "Dependencies" - end - - spec.subspec 'CoreCrypto' do |base| - base.source_files = "Dependencies/corecrypto/*.{h,m,swift,modulemap}" - base.exclude_files = "Dependencies/corecrypto/ccperf.h" - base.private_header_files = "Dependencies/corecrypto/*.h" - base.header_mappings_dir = "Dependencies" - end - -end diff --git a/AltSign.xcodeproj/project.pbxproj b/AltSign.xcodeproj/project.pbxproj deleted file mode 100644 index 5c4e280..0000000 --- a/AltSign.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1701 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - BF0C4EA022A1B3BF009A2DD7 /* Uid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8422A1B3BE009A2DD7 /* Uid.cpp */; }; - BF0C4EA122A1B3BF009A2DD7 /* Node.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8522A1B3BE009A2DD7 /* Node.cpp */; }; - BF0C4EA222A1B3BF009A2DD7 /* Real.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8722A1B3BE009A2DD7 /* Real.cpp */; }; - BF0C4EA322A1B3BF009A2DD7 /* Date.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8822A1B3BE009A2DD7 /* Date.cpp */; }; - BF0C4EA422A1B3BF009A2DD7 /* bytearray.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8922A1B3BE009A2DD7 /* bytearray.c */; }; - BF0C4EA522A1B3BF009A2DD7 /* time64.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8A22A1B3BE009A2DD7 /* time64.c */; }; - BF0C4EA622A1B3BF009A2DD7 /* Structure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8C22A1B3BE009A2DD7 /* Structure.cpp */; }; - BF0C4EA722A1B3BF009A2DD7 /* plist.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8D22A1B3BE009A2DD7 /* plist.c */; }; - BF0C4EA822A1B3BF009A2DD7 /* base64.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E8F22A1B3BE009A2DD7 /* base64.c */; }; - BF0C4EA922A1B3BF009A2DD7 /* Array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9122A1B3BF009A2DD7 /* Array.cpp */; }; - BF0C4EAA22A1B3BF009A2DD7 /* xplist.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9222A1B3BF009A2DD7 /* xplist.c */; }; - BF0C4EAB22A1B3BF009A2DD7 /* Boolean.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9422A1B3BF009A2DD7 /* Boolean.cpp */; }; - BF0C4EAC22A1B3BF009A2DD7 /* bplist.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9522A1B3BF009A2DD7 /* bplist.c */; }; - BF0C4EAD22A1B3BF009A2DD7 /* Key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9822A1B3BF009A2DD7 /* Key.cpp */; }; - BF0C4EAE22A1B3BF009A2DD7 /* Dictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9A22A1B3BF009A2DD7 /* Dictionary.cpp */; }; - BF0C4EAF22A1B3BF009A2DD7 /* Integer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9B22A1B3BF009A2DD7 /* Integer.cpp */; }; - BF0C4EB022A1B3BF009A2DD7 /* ptrarray.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9C22A1B3BF009A2DD7 /* ptrarray.c */; }; - BF0C4EB122A1B3BF009A2DD7 /* String.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9D22A1B3BF009A2DD7 /* String.cpp */; }; - BF0C4EB222A1B3BF009A2DD7 /* hashtable.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9E22A1B3BF009A2DD7 /* hashtable.c */; }; - BF0C4EB322A1B3BF009A2DD7 /* Data.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4E9F22A1B3BF009A2DD7 /* Data.cpp */; }; - BF0C4EB722A1B3CC009A2DD7 /* node.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4EB422A1B3CC009A2DD7 /* node.c */; }; - BF0C4EB822A1B3CC009A2DD7 /* cnary.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4EB522A1B3CC009A2DD7 /* cnary.c */; }; - BF0C4EB922A1B3CC009A2DD7 /* node_list.c in Sources */ = {isa = PBXBuildFile; fileRef = BF0C4EB622A1B3CC009A2DD7 /* node_list.c */; }; - BF17BB7322EA839500D7D842 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF17BB7222EA839400D7D842 /* UIKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - BF48CFEE229437580004760B /* ALTCertificateRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFEC229437580004760B /* ALTCertificateRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BF48CFF0229438C10004760B /* ALTCertificateRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BF48CFED229437580004760B /* ALTCertificateRequest.m */; }; - BF48CFF622944FC60004760B /* ALTAppID.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFF422944FC60004760B /* ALTAppID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF48CFF722944FC60004760B /* ALTAppID.m in Sources */ = {isa = PBXBuildFile; fileRef = BF48CFF522944FC60004760B /* ALTAppID.m */; }; - BF50E7B822C161630070E17B /* ALTAppGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50E7B622C161630070E17B /* ALTAppGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E7B922C161630070E17B /* ALTAppGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50E7B622C161630070E17B /* ALTAppGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E7BA22C161630070E17B /* ALTAppGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7B722C161630070E17B /* ALTAppGroup.m */; }; - BF50E7BB22C161630070E17B /* ALTAppGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7B722C161630070E17B /* ALTAppGroup.m */; }; - BF50E7BF22C163DC0070E17B /* ALTApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50E7BD22C163DC0070E17B /* ALTApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E7C022C163DC0070E17B /* ALTApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50E7BD22C163DC0070E17B /* ALTApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E7C122C163DC0070E17B /* ALTApplication.mm in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7BE22C163DC0070E17B /* ALTApplication.mm */; }; - BF50E7C222C163DC0070E17B /* ALTApplication.mm in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7BE22C163DC0070E17B /* ALTApplication.mm */; }; - BF50E7C622C169290070E17B /* alt_ldid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7C322C1690B0070E17B /* alt_ldid.cpp */; }; - BF50E7CF22C28F8B0070E17B /* ALTCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50E7CD22C28F8B0070E17B /* ALTCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E7D022C28F8B0070E17B /* ALTCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BF50E7CD22C28F8B0070E17B /* ALTCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF50E7D122C28F8B0070E17B /* ALTCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7CE22C28F8B0070E17B /* ALTCapabilities.m */; }; - BF50E7D222C28F8B0070E17B /* ALTCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = BF50E7CE22C28F8B0070E17B /* ALTCapabilities.m */; }; - BF5AB3B5228600D100DC914B /* AltSign.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3B3228600D100DC914B /* AltSign.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5AB3B92286024D00DC914B /* ALTAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3B72286024D00DC914B /* ALTAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5AB3BA2286024D00DC914B /* ALTAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3B82286024D00DC914B /* ALTAccount.m */; }; - BF5AB3BF2286040400DC914B /* NSError+ALTErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3BD2286040400DC914B /* NSError+ALTErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5AB3C02286040400DC914B /* NSError+ALTErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3BE2286040400DC914B /* NSError+ALTErrors.m */; }; - BF5AB3C52286157F00DC914B /* ALTTeam.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3C32286157F00DC914B /* ALTTeam.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5AB3C62286157F00DC914B /* ALTTeam.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3C42286157F00DC914B /* ALTTeam.m */; }; - BF5AB3C92286269B00DC914B /* ALTDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3C72286269B00DC914B /* ALTDevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5AB3CA2286269B00DC914B /* ALTDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3C82286269B00DC914B /* ALTDevice.m */; }; - BF5AB3CD228645DF00DC914B /* ALTCertificate.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3CB228645DF00DC914B /* ALTCertificate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5AB3CE228645DF00DC914B /* ALTCertificate.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3CC228645DF00DC914B /* ALTCertificate.m */; }; - BF5D43F6237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5D43F7237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF5D43F8237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */; }; - BF5D43F9237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */; }; - BF9B633F229DC27C002F0A62 /* ALTModel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BF9B6340229DC9DD002F0A62 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF48CFE7229435DB0004760B /* openssl.framework */; }; - BF9B6375229DCD4D002F0A62 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC9302295F64600587369 /* libz.tbd */; }; - BF9B637E229DCF3A002F0A62 /* ALTAppleAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = BFBAC88F2295E05600587369 /* ALTAppleAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B637F229DCF3A002F0A62 /* ALTProvisioningProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = BFBAC8892295D90F00587369 /* ALTProvisioningProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6380229DCF3A002F0A62 /* ALTAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3B72286024D00DC914B /* ALTAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6381229DCF3A002F0A62 /* NSError+ALTErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3BD2286040400DC914B /* NSError+ALTErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6382229DCF3A002F0A62 /* ALTCertificate.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3CB228645DF00DC914B /* ALTCertificate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6383229DCF3A002F0A62 /* ALTCertificateRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFEC229437580004760B /* ALTCertificateRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BF9B6384229DCF3A002F0A62 /* ALTDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3C72286269B00DC914B /* ALTDevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6385229DCF3A002F0A62 /* ALTModel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BF9B6386229DCF3A002F0A62 /* AltSign.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3B3228600D100DC914B /* AltSign.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6387229DCF3A002F0A62 /* ALTTeam.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5AB3C32286157F00DC914B /* ALTTeam.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6388229DCF3A002F0A62 /* ALTAppID.h in Headers */ = {isa = PBXBuildFile; fileRef = BF48CFF422944FC60004760B /* ALTAppID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B638A229DCF3A002F0A62 /* ALTCertificateRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BF48CFED229437580004760B /* ALTCertificateRequest.m */; }; - BF9B638B229DCF3A002F0A62 /* ALTProvisioningProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBAC88A2295D90F00587369 /* ALTProvisioningProfile.m */; }; - BF9B638C229DCF3A002F0A62 /* ALTTeam.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3C42286157F00DC914B /* ALTTeam.m */; }; - BF9B638D229DCF3A002F0A62 /* ALTDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3C82286269B00DC914B /* ALTDevice.m */; }; - BF9B638E229DCF3A002F0A62 /* ALTAppleAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBAC8902295E05600587369 /* ALTAppleAPI.m */; }; - BF9B638F229DCF3A002F0A62 /* ALTAppID.m in Sources */ = {isa = PBXBuildFile; fileRef = BF48CFF522944FC60004760B /* ALTAppID.m */; }; - BF9B6390229DCF3A002F0A62 /* ALTCertificate.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3CC228645DF00DC914B /* ALTCertificate.m */; }; - BF9B6391229DCF3A002F0A62 /* ALTAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3B82286024D00DC914B /* ALTAccount.m */; }; - BF9B6392229DCF3A002F0A62 /* NSError+ALTErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = BF5AB3BE2286040400DC914B /* NSError+ALTErrors.m */; }; - BF9B6395229DCF3A002F0A62 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC9302295F64600587369 /* libz.tbd */; }; - BF9B6397229DCF3A002F0A62 /* libxml2.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8F22295EF0500587369 /* libxml2.2.tbd */; }; - BF9B6399229DCF3A002F0A62 /* libldid.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8AA2295ED1900587369 /* libldid.a */; }; - BF9B63A5229DCFAD002F0A62 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF48CFE9229435DB0004760B /* openssl.framework */; }; - BF9B6400229E0AA0002F0A62 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63F7229E0A9F002F0A62 /* crypt.h */; }; - BF9B6401229E0AA0002F0A62 /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63F7229E0A9F002F0A62 /* crypt.h */; }; - BF9B6402229E0AA0002F0A62 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63F8229E0A9F002F0A62 /* ioapi.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B6403229E0AA0002F0A62 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63F8229E0A9F002F0A62 /* ioapi.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B6404229E0AA0002F0A62 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63F9229E0A9F002F0A62 /* zip.h */; }; - BF9B6405229E0AA0002F0A62 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63F9229E0A9F002F0A62 /* zip.h */; }; - BF9B6406229E0AA0002F0A62 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63FA229E0AA0002F0A62 /* ioapi.h */; }; - BF9B6407229E0AA0002F0A62 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63FA229E0AA0002F0A62 /* ioapi.h */; }; - BF9B6408229E0AA0002F0A62 /* mztools.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63FB229E0AA0002F0A62 /* mztools.h */; }; - BF9B6409229E0AA0002F0A62 /* mztools.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63FB229E0AA0002F0A62 /* mztools.h */; }; - BF9B640A229E0AA0002F0A62 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63FC229E0AA0002F0A62 /* unzip.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B640B229E0AA0002F0A62 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63FC229E0AA0002F0A62 /* unzip.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B640C229E0AA0002F0A62 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63FD229E0AA0002F0A62 /* zip.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B640D229E0AA0002F0A62 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63FD229E0AA0002F0A62 /* zip.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B640E229E0AA0002F0A62 /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63FE229E0AA0002F0A62 /* mztools.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B640F229E0AA0002F0A62 /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = BF9B63FE229E0AA0002F0A62 /* mztools.c */; settings = {COMPILER_FLAGS = "-w"; }; }; - BF9B6410229E0AA0002F0A62 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63FF229E0AA0002F0A62 /* unzip.h */; }; - BF9B6411229E0AA0002F0A62 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B63FF229E0AA0002F0A62 /* unzip.h */; }; - BF9B6414229E0CCE002F0A62 /* NSFileManager+Apps.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B6412229E0CCE002F0A62 /* NSFileManager+Apps.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6415229E0CCE002F0A62 /* NSFileManager+Apps.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B6412229E0CCE002F0A62 /* NSFileManager+Apps.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B6416229E0CCE002F0A62 /* NSFileManager+Apps.m in Sources */ = {isa = PBXBuildFile; fileRef = BF9B6413229E0CCE002F0A62 /* NSFileManager+Apps.m */; }; - BF9B6417229E0CCE002F0A62 /* NSFileManager+Apps.m in Sources */ = {isa = PBXBuildFile; fileRef = BF9B6413229E0CCE002F0A62 /* NSFileManager+Apps.m */; }; - BF9B641D229E0DF5002F0A62 /* ALTSigner.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B6419229E0DF4002F0A62 /* ALTSigner.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B641E229E0DF5002F0A62 /* ALTSigner.h in Headers */ = {isa = PBXBuildFile; fileRef = BF9B6419229E0DF4002F0A62 /* ALTSigner.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF9B641F229E0DF5002F0A62 /* ALTSigner.mm in Sources */ = {isa = PBXBuildFile; fileRef = BF9B641A229E0DF4002F0A62 /* ALTSigner.mm */; }; - BF9B6420229E0DF5002F0A62 /* ALTSigner.mm in Sources */ = {isa = PBXBuildFile; fileRef = BF9B641A229E0DF4002F0A62 /* ALTSigner.mm */; }; - BF9B6421229E0DF5002F0A62 /* apple.pem in Resources */ = {isa = PBXBuildFile; fileRef = BF9B641C229E0DF4002F0A62 /* apple.pem */; }; - BF9B6422229E0DF5002F0A62 /* apple.pem in Resources */ = {isa = PBXBuildFile; fileRef = BF9B641C229E0DF4002F0A62 /* apple.pem */; }; - BFBAC88B2295D90F00587369 /* ALTProvisioningProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = BFBAC8892295D90F00587369 /* ALTProvisioningProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFBAC88C2295D90F00587369 /* ALTProvisioningProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBAC88A2295D90F00587369 /* ALTProvisioningProfile.m */; }; - BFBAC8912295E05600587369 /* ALTAppleAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = BFBAC88F2295E05600587369 /* ALTAppleAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFBAC8922295E05600587369 /* ALTAppleAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBAC8902295E05600587369 /* ALTAppleAPI.m */; }; - BFBAC8E42295ED6C00587369 /* lookup2.c in Sources */ = {isa = PBXBuildFile; fileRef = BFBAC8E22295ED6C00587369 /* lookup2.c */; }; - BFBAC8F32295EF0500587369 /* libxml2.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8F22295EF0500587369 /* libxml2.2.tbd */; }; - BFBAC8F42295EFE300587369 /* libldid.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8AA2295ED1900587369 /* libldid.a */; }; - BFBAC93A2295FCB500587369 /* libxml2.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BFBAC8F22295EF0500587369 /* libxml2.2.tbd */; }; - BFBD15C724F04396002CFC71 /* CoreCryptoMacros.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */; }; - BFBD15C824F04396002CFC71 /* CoreCryptoMacros.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */; }; - BFBD15CA24F06BA5002CFC71 /* Data+Encryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */; }; - BFBD15CB24F06BA5002CFC71 /* Data+Encryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */; }; - BFBD15CD24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */; }; - BFBD15CE24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */; }; - BFD80D542380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BFD80D552380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - BFDF2DD524EDBA78002C10A8 /* GSAContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */; }; - BFDF2DD624EDBA78002C10A8 /* GSAContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */; }; - BFDF2E2924EDBDC1002C10A8 /* cctest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDB24EDBDC0002C10A8 /* cctest.h */; }; - BFDF2E2A24EDBDC1002C10A8 /* cctest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDB24EDBDC0002C10A8 /* cctest.h */; }; - BFDF2E2B24EDBDC1002C10A8 /* cczp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDC24EDBDC0002C10A8 /* cczp.h */; }; - BFDF2E2C24EDBDC1002C10A8 /* cczp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDC24EDBDC0002C10A8 /* cczp.h */; }; - BFDF2E2D24EDBDC1002C10A8 /* ccmd4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */; }; - BFDF2E2E24EDBDC1002C10A8 /* ccmd4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */; }; - BFDF2E2F24EDBDC1002C10A8 /* ccrng_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */; }; - BFDF2E3024EDBDC1002C10A8 /* ccrng_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */; }; - BFDF2E3124EDBDC1002C10A8 /* ccrng_sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */; }; - BFDF2E3224EDBDC1002C10A8 /* ccrng_sequence.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */; }; - BFDF2E3324EDBDC1002C10A8 /* ccz.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE024EDBDC0002C10A8 /* ccz.h */; }; - BFDF2E3424EDBDC1002C10A8 /* ccz.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE024EDBDC0002C10A8 /* ccz.h */; }; - BFDF2E3524EDBDC1002C10A8 /* ccaes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE124EDBDC0002C10A8 /* ccaes.h */; }; - BFDF2E3624EDBDC1002C10A8 /* ccaes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE124EDBDC0002C10A8 /* ccaes.h */; }; - BFDF2E3724EDBDC1002C10A8 /* cchkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */; }; - BFDF2E3824EDBDC1002C10A8 /* cchkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */; }; - BFDF2E3924EDBDC1002C10A8 /* ccec.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE324EDBDC0002C10A8 /* ccec.h */; }; - BFDF2E3A24EDBDC1002C10A8 /* ccec.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE324EDBDC0002C10A8 /* ccec.h */; }; - BFDF2E3B24EDBDC1002C10A8 /* cc_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE424EDBDC0002C10A8 /* cc_config.h */; }; - BFDF2E3C24EDBDC1002C10A8 /* cc_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE424EDBDC0002C10A8 /* cc_config.h */; }; - BFDF2E3D24EDBDC1002C10A8 /* ccsrp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */; }; - BFDF2E3E24EDBDC1002C10A8 /* ccsrp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */; }; - BFDF2E3F24EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */; }; - BFDF2E4024EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */; }; - BFDF2E4124EDBDC1002C10A8 /* ccrng_drbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */; }; - BFDF2E4224EDBDC1002C10A8 /* ccrng_drbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */; }; - BFDF2E4324EDBDC1002C10A8 /* cc_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */; }; - BFDF2E4424EDBDC1002C10A8 /* cc_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */; }; - BFDF2E4524EDBDC1002C10A8 /* fipspost.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE924EDBDC0002C10A8 /* fipspost.h */; }; - BFDF2E4624EDBDC1002C10A8 /* fipspost.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DE924EDBDC0002C10A8 /* fipspost.h */; }; - BFDF2E4724EDBDC1002C10A8 /* ccec25519.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */; }; - BFDF2E4824EDBDC1002C10A8 /* ccec25519.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */; }; - BFDF2E4924EDBDC1002C10A8 /* ccdh_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */; }; - BFDF2E4A24EDBDC1002C10A8 /* ccdh_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */; }; - BFDF2E4B24EDBDC1002C10A8 /* ccder_rsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */; }; - BFDF2E4C24EDBDC1002C10A8 /* ccder_rsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */; }; - BFDF2E4D24EDBDC1002C10A8 /* ccrc4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */; }; - BFDF2E4E24EDBDC1002C10A8 /* ccrc4.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */; }; - BFDF2E4F24EDBDC1002C10A8 /* ccdes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */; }; - BFDF2E5024EDBDC1002C10A8 /* ccdes.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */; }; - BFDF2E5124EDBDC1002C10A8 /* ccrsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */; }; - BFDF2E5224EDBDC1002C10A8 /* ccrsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */; }; - BFDF2E5324EDBDC1002C10A8 /* cc_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */; }; - BFDF2E5424EDBDC1002C10A8 /* cc_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */; }; - BFDF2E5524EDBDC1002C10A8 /* ccblowfish.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */; }; - BFDF2E5624EDBDC1002C10A8 /* ccblowfish.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */; }; - BFDF2E5724EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */; }; - BFDF2E5824EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */; }; - BFDF2E5924EDBDC1002C10A8 /* cczp_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */; }; - BFDF2E5A24EDBDC1002C10A8 /* cczp_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */; }; - BFDF2E5B24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */; }; - BFDF2E5C24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */; }; - BFDF2E5D24EDBDC1002C10A8 /* ccprime.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF524EDBDC0002C10A8 /* ccprime.h */; }; - BFDF2E5E24EDBDC1002C10A8 /* ccprime.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF524EDBDC0002C10A8 /* ccprime.h */; }; - BFDF2E5F24EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */; }; - BFDF2E6024EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */; }; - BFDF2E6124EDBDC1002C10A8 /* ccdigest_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */; }; - BFDF2E6224EDBDC1002C10A8 /* ccdigest_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */; }; - BFDF2E6324EDBDC1002C10A8 /* ccnistkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */; }; - BFDF2E6424EDBDC1002C10A8 /* ccnistkdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */; }; - BFDF2E6524EDBDC1002C10A8 /* ccasn1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */; }; - BFDF2E6624EDBDC1002C10A8 /* ccasn1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */; }; - BFDF2E6724EDBDC1002C10A8 /* ccripemd.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */; }; - BFDF2E6824EDBDC1002C10A8 /* ccripemd.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */; }; - BFDF2E6924EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */; }; - BFDF2E6A24EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */; }; - BFDF2E6B24EDBDC1002C10A8 /* cc.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFC24EDBDC0002C10A8 /* cc.h */; }; - BFDF2E6C24EDBDC1002C10A8 /* cc.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFC24EDBDC0002C10A8 /* cc.h */; }; - BFDF2E6D24EDBDC1002C10A8 /* ccder_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */; }; - BFDF2E6E24EDBDC1002C10A8 /* ccder_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */; }; - BFDF2E6F24EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */; }; - BFDF2E7024EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */; }; - BFDF2E7124EDBDC1002C10A8 /* ccrsa_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */; }; - BFDF2E7224EDBDC1002C10A8 /* ccrsa_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */; }; - BFDF2E7324EDBDC1002C10A8 /* ccdh_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */; }; - BFDF2E7424EDBDC1002C10A8 /* ccdh_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */; }; - BFDF2E7524EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */; }; - BFDF2E7624EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */; }; - BFDF2E7724EDBDC1002C10A8 /* ccperf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0224EDBDC0002C10A8 /* ccperf.h */; }; - BFDF2E7824EDBDC1002C10A8 /* ccperf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0224EDBDC0002C10A8 /* ccperf.h */; }; - BFDF2E7924EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */; }; - BFDF2E7A24EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */; }; - BFDF2E7B24EDBDC1002C10A8 /* ccsrp.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */; }; - BFDF2E7C24EDBDC1002C10A8 /* ccsrp.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */; }; - BFDF2E7D24EDBDC1002C10A8 /* ccn_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */; }; - BFDF2E7E24EDBDC1002C10A8 /* ccn_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */; }; - BFDF2E7F24EDBDC1002C10A8 /* ccz_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */; }; - BFDF2E8024EDBDC1002C10A8 /* ccz_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */; }; - BFDF2E8124EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */; }; - BFDF2E8224EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */; }; - BFDF2E8324EDBDC1002C10A8 /* ccansikdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */; }; - BFDF2E8424EDBDC1002C10A8 /* ccansikdf.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */; }; - BFDF2E8524EDBDC1002C10A8 /* ccmd2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */; }; - BFDF2E8624EDBDC1002C10A8 /* ccmd2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */; }; - BFDF2E8724EDBDC1002C10A8 /* ccsha1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */; }; - BFDF2E8824EDBDC1002C10A8 /* ccsha1.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */; }; - BFDF2E8924EDBDC1002C10A8 /* ccecies.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */; }; - BFDF2E8A24EDBDC1002C10A8 /* ccecies.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */; }; - BFDF2E8B24EDBDC1002C10A8 /* cc_memory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */; }; - BFDF2E8C24EDBDC1002C10A8 /* cc_memory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */; }; - BFDF2E8D24EDBDC1002C10A8 /* ccwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */; }; - BFDF2E8E24EDBDC1002C10A8 /* ccwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */; }; - BFDF2E8F24EDBDC1002C10A8 /* ccmode_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */; }; - BFDF2E9024EDBDC1002C10A8 /* ccmode_factory.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */; }; - BFDF2E9124EDBDC1002C10A8 /* ccrc2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */; }; - BFDF2E9224EDBDC1002C10A8 /* ccrc2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */; }; - BFDF2E9324EDBDC1002C10A8 /* ccsrp_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */; }; - BFDF2E9424EDBDC1002C10A8 /* ccsrp_gp.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */; }; - BFDF2E9524EDBDC1002C10A8 /* cccmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1124EDBDC0002C10A8 /* cccmac.h */; }; - BFDF2E9624EDBDC1002C10A8 /* cccmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1124EDBDC0002C10A8 /* cccmac.h */; }; - BFDF2E9724EDBDC1002C10A8 /* ccn.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1224EDBDC0002C10A8 /* ccn.h */; }; - BFDF2E9824EDBDC1002C10A8 /* ccn.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1224EDBDC0002C10A8 /* ccn.h */; }; - BFDF2E9924EDBDC1002C10A8 /* ccmd5.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */; }; - BFDF2E9A24EDBDC1002C10A8 /* ccmd5.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */; }; - BFDF2E9B24EDBDC1002C10A8 /* ccrng_system.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */; }; - BFDF2E9C24EDBDC1002C10A8 /* ccrng_system.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */; }; - BFDF2E9D24EDBDC1002C10A8 /* ccmode.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1524EDBDC0002C10A8 /* ccmode.h */; }; - BFDF2E9E24EDBDC1002C10A8 /* ccmode.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1524EDBDC0002C10A8 /* ccmode.h */; }; - BFDF2E9F24EDBDC1002C10A8 /* ccec_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */; }; - BFDF2EA024EDBDC1002C10A8 /* ccec_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */; }; - BFDF2EA124EDBDC1002C10A8 /* ccrng_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */; }; - BFDF2EA224EDBDC1002C10A8 /* ccrng_test.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */; }; - BFDF2EA324EDBDC1002C10A8 /* cchmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1824EDBDC0002C10A8 /* cchmac.h */; }; - BFDF2EA424EDBDC1002C10A8 /* cchmac.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1824EDBDC0002C10A8 /* cchmac.h */; }; - BFDF2EA524EDBDC1002C10A8 /* ccpad.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1924EDBDC0002C10A8 /* ccpad.h */; }; - BFDF2EA624EDBDC1002C10A8 /* ccpad.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1924EDBDC0002C10A8 /* ccpad.h */; }; - BFDF2EA724EDBDC1002C10A8 /* ccecies_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */; }; - BFDF2EA824EDBDC1002C10A8 /* ccecies_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */; }; - BFDF2EA924EDBDC1002C10A8 /* ccsha2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */; }; - BFDF2EAA24EDBDC1002C10A8 /* ccsha2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */; }; - BFDF2EAB24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */; }; - BFDF2EAC24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */; }; - BFDF2EAD24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */; }; - BFDF2EAE24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */; }; - BFDF2EAF24EDBDC1002C10A8 /* cc_runtime_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */; }; - BFDF2EB024EDBDC1002C10A8 /* cc_runtime_config.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */; }; - BFDF2EB124EDBDC1002C10A8 /* ccdh.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2024EDBDC0002C10A8 /* ccdh.h */; }; - BFDF2EB224EDBDC1002C10A8 /* ccdh.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2024EDBDC0002C10A8 /* ccdh.h */; }; - BFDF2EB324EDBDC1002C10A8 /* ccmode_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */; }; - BFDF2EB424EDBDC1002C10A8 /* ccmode_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */; }; - BFDF2EB524EDBDC1002C10A8 /* ccmode_siv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */; }; - BFDF2EB624EDBDC1002C10A8 /* ccmode_siv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */; }; - BFDF2EB724EDBDC1002C10A8 /* ccdrbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */; }; - BFDF2EB824EDBDC1002C10A8 /* ccdrbg.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */; }; - BFDF2EB924EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */; }; - BFDF2EBA24EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */; }; - BFDF2EBB24EDBDC1002C10A8 /* cccast.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2524EDBDC0002C10A8 /* cccast.h */; }; - BFDF2EBC24EDBDC1002C10A8 /* cccast.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2524EDBDC0002C10A8 /* cccast.h */; }; - BFDF2EBD24EDBDC1002C10A8 /* ccdigest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */; }; - BFDF2EBE24EDBDC1002C10A8 /* ccdigest.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */; }; - BFDF2EBF24EDBDC1002C10A8 /* ccder.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2724EDBDC0002C10A8 /* ccder.h */; }; - BFDF2EC024EDBDC1002C10A8 /* ccder.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2724EDBDC0002C10A8 /* ccder.h */; }; - BFDF2EC124EDBDC1002C10A8 /* ccrng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2824EDBDC0002C10A8 /* ccrng.h */; }; - BFDF2EC224EDBDC1002C10A8 /* ccrng.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDF2E2824EDBDC0002C10A8 /* ccrng.h */; }; - BFE20E07237C932600409FF7 /* ALTAnisetteData.h in Headers */ = {isa = PBXBuildFile; fileRef = BFE20E05237C932600409FF7 /* ALTAnisetteData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFE20E08237C932600409FF7 /* ALTAnisetteData.h in Headers */ = {isa = PBXBuildFile; fileRef = BFE20E05237C932600409FF7 /* ALTAnisetteData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFE20E09237C932600409FF7 /* ALTAnisetteData.m in Sources */ = {isa = PBXBuildFile; fileRef = BFE20E06237C932600409FF7 /* ALTAnisetteData.m */; }; - BFE20E0A237C932600409FF7 /* ALTAnisetteData.m in Sources */ = {isa = PBXBuildFile; fileRef = BFE20E06237C932600409FF7 /* ALTAnisetteData.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - BF4586B522987AE400BD7491 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 9F4A265B223BD82B005CB63A; - remoteInfo = "OpenSSL (iOS)"; - }; - BF48CFE6229435DB0004760B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9F4A265C223BD82B005CB63A; - remoteInfo = "OpenSSL (iOS)"; - }; - BF48CFE8229435DB0004760B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9F4A2716223BE476005CB63A; - remoteInfo = "OpenSSL (macOS)"; - }; - BF9B63A0229DCFA4002F0A62 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 9F4A2715223BE476005CB63A; - remoteInfo = "OpenSSL (macOS)"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - BFBAC8A82295ED1900587369 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - BF0C4E8422A1B3BE009A2DD7 /* Uid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Uid.cpp; path = Dependencies/ldid/libplist/src/Uid.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E8522A1B3BE009A2DD7 /* Node.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Node.cpp; path = Dependencies/ldid/libplist/src/Node.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E8622A1B3BE009A2DD7 /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = base64.h; path = Dependencies/ldid/libplist/src/base64.h; sourceTree = SOURCE_ROOT; }; - BF0C4E8722A1B3BE009A2DD7 /* Real.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Real.cpp; path = Dependencies/ldid/libplist/src/Real.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E8822A1B3BE009A2DD7 /* Date.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Date.cpp; path = Dependencies/ldid/libplist/src/Date.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E8922A1B3BE009A2DD7 /* bytearray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bytearray.c; path = Dependencies/ldid/libplist/src/bytearray.c; sourceTree = SOURCE_ROOT; }; - BF0C4E8A22A1B3BE009A2DD7 /* time64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = time64.c; path = Dependencies/ldid/libplist/src/time64.c; sourceTree = SOURCE_ROOT; }; - BF0C4E8B22A1B3BE009A2DD7 /* plist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = plist.h; path = Dependencies/ldid/libplist/src/plist.h; sourceTree = SOURCE_ROOT; }; - BF0C4E8C22A1B3BE009A2DD7 /* Structure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Structure.cpp; path = Dependencies/ldid/libplist/src/Structure.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E8D22A1B3BE009A2DD7 /* plist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = plist.c; path = Dependencies/ldid/libplist/src/plist.c; sourceTree = SOURCE_ROOT; }; - BF0C4E8E22A1B3BE009A2DD7 /* time64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = time64.h; path = Dependencies/ldid/libplist/src/time64.h; sourceTree = SOURCE_ROOT; }; - BF0C4E8F22A1B3BE009A2DD7 /* base64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = base64.c; path = Dependencies/ldid/libplist/src/base64.c; sourceTree = SOURCE_ROOT; }; - BF0C4E9022A1B3BE009A2DD7 /* strbuf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = strbuf.h; path = Dependencies/ldid/libplist/src/strbuf.h; sourceTree = SOURCE_ROOT; }; - BF0C4E9122A1B3BF009A2DD7 /* Array.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Array.cpp; path = Dependencies/ldid/libplist/src/Array.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E9222A1B3BF009A2DD7 /* xplist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xplist.c; path = Dependencies/ldid/libplist/src/xplist.c; sourceTree = SOURCE_ROOT; }; - BF0C4E9322A1B3BF009A2DD7 /* ptrarray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ptrarray.h; path = Dependencies/ldid/libplist/src/ptrarray.h; sourceTree = SOURCE_ROOT; }; - BF0C4E9422A1B3BF009A2DD7 /* Boolean.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Boolean.cpp; path = Dependencies/ldid/libplist/src/Boolean.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E9522A1B3BF009A2DD7 /* bplist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bplist.c; path = Dependencies/ldid/libplist/src/bplist.c; sourceTree = SOURCE_ROOT; }; - BF0C4E9622A1B3BF009A2DD7 /* hashtable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hashtable.h; path = Dependencies/ldid/libplist/src/hashtable.h; sourceTree = SOURCE_ROOT; }; - BF0C4E9722A1B3BF009A2DD7 /* bytearray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bytearray.h; path = Dependencies/ldid/libplist/src/bytearray.h; sourceTree = SOURCE_ROOT; }; - BF0C4E9822A1B3BF009A2DD7 /* Key.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Key.cpp; path = Dependencies/ldid/libplist/src/Key.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E9922A1B3BF009A2DD7 /* time64_limits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = time64_limits.h; path = Dependencies/ldid/libplist/src/time64_limits.h; sourceTree = SOURCE_ROOT; }; - BF0C4E9A22A1B3BF009A2DD7 /* Dictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Dictionary.cpp; path = Dependencies/ldid/libplist/src/Dictionary.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E9B22A1B3BF009A2DD7 /* Integer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Integer.cpp; path = Dependencies/ldid/libplist/src/Integer.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E9C22A1B3BF009A2DD7 /* ptrarray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ptrarray.c; path = Dependencies/ldid/libplist/src/ptrarray.c; sourceTree = SOURCE_ROOT; }; - BF0C4E9D22A1B3BF009A2DD7 /* String.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = String.cpp; path = Dependencies/ldid/libplist/src/String.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4E9E22A1B3BF009A2DD7 /* hashtable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hashtable.c; path = Dependencies/ldid/libplist/src/hashtable.c; sourceTree = SOURCE_ROOT; }; - BF0C4E9F22A1B3BF009A2DD7 /* Data.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Data.cpp; path = Dependencies/ldid/libplist/src/Data.cpp; sourceTree = SOURCE_ROOT; }; - BF0C4EB422A1B3CC009A2DD7 /* node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = node.c; path = Dependencies/ldid/libplist/libcnary/node.c; sourceTree = SOURCE_ROOT; }; - BF0C4EB522A1B3CC009A2DD7 /* cnary.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cnary.c; path = Dependencies/ldid/libplist/libcnary/cnary.c; sourceTree = SOURCE_ROOT; }; - BF0C4EB622A1B3CC009A2DD7 /* node_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = node_list.c; path = Dependencies/ldid/libplist/libcnary/node_list.c; sourceTree = SOURCE_ROOT; }; - BF17BB7222EA839400D7D842 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OpenSSL.xcodeproj; path = Dependencies/OpenSSL/OpenSSL.xcodeproj; sourceTree = SOURCE_ROOT; }; - BF48CFEC229437580004760B /* ALTCertificateRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTCertificateRequest.h; sourceTree = ""; }; - BF48CFED229437580004760B /* ALTCertificateRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTCertificateRequest.m; sourceTree = ""; }; - BF48CFF422944FC60004760B /* ALTAppID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppID.h; sourceTree = ""; }; - BF48CFF522944FC60004760B /* ALTAppID.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAppID.m; sourceTree = ""; }; - BF50E7B622C161630070E17B /* ALTAppGroup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppGroup.h; sourceTree = ""; }; - BF50E7B722C161630070E17B /* ALTAppGroup.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAppGroup.m; sourceTree = ""; }; - BF50E7BD22C163DC0070E17B /* ALTApplication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTApplication.h; sourceTree = ""; }; - BF50E7BE22C163DC0070E17B /* ALTApplication.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ALTApplication.mm; sourceTree = ""; }; - BF50E7C322C1690B0070E17B /* alt_ldid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = alt_ldid.cpp; sourceTree = ""; }; - BF50E7C822C169560070E17B /* alt_ldid.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = alt_ldid.hpp; sourceTree = ""; }; - BF50E7CD22C28F8B0070E17B /* ALTCapabilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTCapabilities.h; sourceTree = ""; }; - BF50E7CE22C28F8B0070E17B /* ALTCapabilities.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTCapabilities.m; sourceTree = ""; }; - BF5AB3992285FDB200DC914B /* AltSign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AltSign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BF5AB39D2285FDB200DC914B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BF5AB3B3228600D100DC914B /* AltSign.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AltSign.h; sourceTree = ""; }; - BF5AB3B72286024D00DC914B /* ALTAccount.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAccount.h; sourceTree = ""; }; - BF5AB3B82286024D00DC914B /* ALTAccount.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAccount.m; sourceTree = ""; }; - BF5AB3BD2286040400DC914B /* NSError+ALTErrors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSError+ALTErrors.h"; sourceTree = ""; }; - BF5AB3BE2286040400DC914B /* NSError+ALTErrors.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSError+ALTErrors.m"; sourceTree = ""; }; - BF5AB3C32286157F00DC914B /* ALTTeam.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTTeam.h; sourceTree = ""; }; - BF5AB3C42286157F00DC914B /* ALTTeam.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTTeam.m; sourceTree = ""; }; - BF5AB3C72286269B00DC914B /* ALTDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTDevice.h; sourceTree = ""; }; - BF5AB3C82286269B00DC914B /* ALTDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTDevice.m; sourceTree = ""; }; - BF5AB3CB228645DF00DC914B /* ALTCertificate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTCertificate.h; sourceTree = ""; }; - BF5AB3CC228645DF00DC914B /* ALTCertificate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTCertificate.m; sourceTree = ""; }; - BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppleAPISession.h; sourceTree = ""; }; - BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAppleAPISession.m; sourceTree = ""; }; - BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ALTModel+Internal.h"; sourceTree = ""; }; - BF9B6373229DCD2A002F0A62 /* libzip_iOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = libzip_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BF9B6376229DCDAC002F0A62 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; }; - BF9B639E229DCF3A002F0A62 /* AltSign.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AltSign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BF9B63F7229E0A9F002F0A62 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = Dependencies/minizip/crypt.h; sourceTree = SOURCE_ROOT; }; - BF9B63F8229E0A9F002F0A62 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ioapi.c; path = Dependencies/minizip/ioapi.c; sourceTree = SOURCE_ROOT; }; - BF9B63F9229E0A9F002F0A62 /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = Dependencies/minizip/zip.h; sourceTree = SOURCE_ROOT; }; - BF9B63FA229E0AA0002F0A62 /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = Dependencies/minizip/ioapi.h; sourceTree = SOURCE_ROOT; }; - BF9B63FB229E0AA0002F0A62 /* mztools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mztools.h; path = Dependencies/minizip/mztools.h; sourceTree = SOURCE_ROOT; }; - BF9B63FC229E0AA0002F0A62 /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unzip.c; path = Dependencies/minizip/unzip.c; sourceTree = SOURCE_ROOT; }; - BF9B63FD229E0AA0002F0A62 /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = Dependencies/minizip/zip.c; sourceTree = SOURCE_ROOT; }; - BF9B63FE229E0AA0002F0A62 /* mztools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mztools.c; path = Dependencies/minizip/mztools.c; sourceTree = SOURCE_ROOT; }; - BF9B63FF229E0AA0002F0A62 /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = Dependencies/minizip/unzip.h; sourceTree = SOURCE_ROOT; }; - BF9B6412229E0CCE002F0A62 /* NSFileManager+Apps.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+Apps.h"; sourceTree = ""; }; - BF9B6413229E0CCE002F0A62 /* NSFileManager+Apps.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+Apps.m"; sourceTree = ""; }; - BF9B6419229E0DF4002F0A62 /* ALTSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ALTSigner.h; sourceTree = ""; }; - BF9B641A229E0DF4002F0A62 /* ALTSigner.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ALTSigner.mm; sourceTree = ""; }; - BF9B641C229E0DF4002F0A62 /* apple.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = apple.pem; sourceTree = ""; }; - BFBAC8892295D90F00587369 /* ALTProvisioningProfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTProvisioningProfile.h; sourceTree = ""; }; - BFBAC88A2295D90F00587369 /* ALTProvisioningProfile.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTProvisioningProfile.m; sourceTree = ""; }; - BFBAC88F2295E05600587369 /* ALTAppleAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppleAPI.h; sourceTree = ""; }; - BFBAC8902295E05600587369 /* ALTAppleAPI.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAppleAPI.m; sourceTree = ""; }; - BFBAC8AA2295ED1900587369 /* libldid.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libldid.a; sourceTree = BUILT_PRODUCTS_DIR; }; - BFBAC8DF2295ED6C00587369 /* ldid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ldid.cpp; path = Dependencies/ldid/ldid.cpp; sourceTree = SOURCE_ROOT; }; - BFBAC8E02295ED6C00587369 /* sha1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sha1.h; path = Dependencies/ldid/sha1.h; sourceTree = SOURCE_ROOT; }; - BFBAC8E12295ED6C00587369 /* ldid.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = ldid.hpp; path = Dependencies/ldid/ldid.hpp; sourceTree = SOURCE_ROOT; }; - BFBAC8E22295ED6C00587369 /* lookup2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lookup2.c; path = Dependencies/ldid/lookup2.c; sourceTree = SOURCE_ROOT; }; - BFBAC8F22295EF0500587369 /* libxml2.2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.2.tbd; path = usr/lib/libxml2.2.tbd; sourceTree = SDKROOT; }; - BFBAC9302295F64600587369 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreCryptoMacros.swift; sourceTree = ""; }; - BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Data+Encryption.swift"; sourceTree = ""; }; - BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ALTAppleAPI+Authentication.swift"; sourceTree = ""; }; - BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAppleAPI_Private.h; sourceTree = ""; }; - BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GSAContext.swift; sourceTree = ""; }; - BFDF2DDB24EDBDC0002C10A8 /* cctest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cctest.h; sourceTree = ""; }; - BFDF2DDC24EDBDC0002C10A8 /* cczp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cczp.h; sourceTree = ""; }; - BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmd4.h; sourceTree = ""; }; - BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_priv.h; sourceTree = ""; }; - BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_sequence.h; sourceTree = ""; }; - BFDF2DE024EDBDC0002C10A8 /* ccz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccz.h; sourceTree = ""; }; - BFDF2DE124EDBDC0002C10A8 /* ccaes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccaes.h; sourceTree = ""; }; - BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cchkdf.h; sourceTree = ""; }; - BFDF2DE324EDBDC0002C10A8 /* ccec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec.h; sourceTree = ""; }; - BFDF2DE424EDBDC0002C10A8 /* cc_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_config.h; sourceTree = ""; }; - BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsrp.h; sourceTree = ""; }; - BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_ecfips_test.h; sourceTree = ""; }; - BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_drbg.h; sourceTree = ""; }; - BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_priv.h; sourceTree = ""; }; - BFDF2DE924EDBDC0002C10A8 /* fipspost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fipspost.h; sourceTree = ""; }; - BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec25519.h; sourceTree = ""; }; - BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdh_priv.h; sourceTree = ""; }; - BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_rsa.h; sourceTree = ""; }; - BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrc4.h; sourceTree = ""; }; - BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdes.h; sourceTree = ""; }; - BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrsa.h; sourceTree = ""; }; - BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_debug.h; sourceTree = ""; }; - BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccblowfish.h; sourceTree = ""; }; - BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccchacha20poly1305_priv.h; sourceTree = ""; }; - BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cczp_priv.h; sourceTree = ""; }; - BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdrbg_impl.h; sourceTree = ""; }; - BFDF2DF524EDBDC0002C10A8 /* ccprime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccprime.h; sourceTree = ""; }; - BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_pbkdf2_prng.h; sourceTree = ""; }; - BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdigest_priv.h; sourceTree = ""; }; - BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccnistkdf.h; sourceTree = ""; }; - BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccasn1.h; sourceTree = ""; }; - BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccripemd.h; sourceTree = ""; }; - BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccchacha20poly1305.h; sourceTree = ""; }; - BFDF2DFC24EDBDC0002C10A8 /* cc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc.h; sourceTree = ""; }; - BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_priv.h; sourceTree = ""; }; - BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_decode_eckey.h; sourceTree = ""; }; - BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrsa_priv.h; sourceTree = ""; }; - BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdh_gp.h; sourceTree = ""; }; - BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_rsafips_test.h; sourceTree = ""; }; - BFDF2E0224EDBDC0002C10A8 /* ccperf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccperf.h; sourceTree = ""; }; - BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder_encode_eckey.h; sourceTree = ""; }; - BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ccsrp.m; sourceTree = ""; }; - BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccn_priv.h; sourceTree = ""; }; - BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccz_priv.h; sourceTree = ""; }; - BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdrbg_factory.h; sourceTree = ""; }; - BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccansikdf.h; sourceTree = ""; }; - BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmd2.h; sourceTree = ""; }; - BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsha1.h; sourceTree = ""; }; - BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccecies.h; sourceTree = ""; }; - BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_memory.h; sourceTree = ""; }; - BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccwrap.h; sourceTree = ""; }; - BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_factory.h; sourceTree = ""; }; - BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrc2.h; sourceTree = ""; }; - BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsrp_gp.h; sourceTree = ""; }; - BFDF2E1124EDBDC0002C10A8 /* cccmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cccmac.h; sourceTree = ""; }; - BFDF2E1224EDBDC0002C10A8 /* ccn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccn.h; sourceTree = ""; }; - BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmd5.h; sourceTree = ""; }; - BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_system.h; sourceTree = ""; }; - BFDF2E1524EDBDC0002C10A8 /* ccmode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode.h; sourceTree = ""; }; - BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec_priv.h; sourceTree = ""; }; - BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng_test.h; sourceTree = ""; }; - BFDF2E1824EDBDC0002C10A8 /* cchmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cchmac.h; sourceTree = ""; }; - BFDF2E1924EDBDC0002C10A8 /* ccpad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccpad.h; sourceTree = ""; }; - BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccecies_priv.h; sourceTree = ""; }; - BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccsha2.h; sourceTree = ""; }; - BFDF2E1C24EDBDC0002C10A8 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; - BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccpbkdf2.h; sourceTree = ""; }; - BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccec25519_priv.h; sourceTree = ""; }; - BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cc_runtime_config.h; sourceTree = ""; }; - BFDF2E2024EDBDC0002C10A8 /* ccdh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdh.h; sourceTree = ""; }; - BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_impl.h; sourceTree = ""; }; - BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_siv.h; sourceTree = ""; }; - BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdrbg.h; sourceTree = ""; }; - BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccmode_siv_priv.h; sourceTree = ""; }; - BFDF2E2524EDBDC0002C10A8 /* cccast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cccast.h; sourceTree = ""; }; - BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccdigest.h; sourceTree = ""; }; - BFDF2E2724EDBDC0002C10A8 /* ccder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccder.h; sourceTree = ""; }; - BFDF2E2824EDBDC0002C10A8 /* ccrng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccrng.h; sourceTree = ""; }; - BFE20E05237C932600409FF7 /* ALTAnisetteData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTAnisetteData.h; sourceTree = ""; }; - BFE20E06237C932600409FF7 /* ALTAnisetteData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTAnisetteData.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - BF5AB3962285FDB200DC914B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BF17BB7322EA839500D7D842 /* UIKit.framework in Frameworks */, - BF9B6375229DCD4D002F0A62 /* libz.tbd in Frameworks */, - BF9B6340229DC9DD002F0A62 /* openssl.framework in Frameworks */, - BFBAC93A2295FCB500587369 /* libxml2.2.tbd in Frameworks */, - BFBAC8F42295EFE300587369 /* libldid.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BF9B6393229DCF3A002F0A62 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BF9B63A5229DCFAD002F0A62 /* openssl.framework in Frameworks */, - BF9B6395229DCF3A002F0A62 /* libz.tbd in Frameworks */, - BF9B6397229DCF3A002F0A62 /* libxml2.2.tbd in Frameworks */, - BF9B6399229DCF3A002F0A62 /* libldid.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BFBAC8A72295ED1900587369 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BFBAC8F32295EF0500587369 /* libxml2.2.tbd in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - BF48CFE0229435CB0004760B /* Dependencies */ = { - isa = PBXGroup; - children = ( - BFDF2DDA24EDBDC0002C10A8 /* corecrypto */, - BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */, - BF9B63D3229DD8E8002F0A62 /* minizip */, - ); - name = Dependencies; - sourceTree = ""; - }; - BF48CFE2229435DB0004760B /* Products */ = { - isa = PBXGroup; - children = ( - BF48CFE7229435DB0004760B /* openssl.framework */, - BF48CFE9229435DB0004760B /* openssl.framework */, - ); - name = Products; - sourceTree = ""; - }; - BF48CFEA229435F50004760B /* Frameworks */ = { - isa = PBXGroup; - children = ( - BF17BB7222EA839400D7D842 /* UIKit.framework */, - BF9B6376229DCDAC002F0A62 /* libbz2.tbd */, - BF9B6373229DCD2A002F0A62 /* libzip_iOS.framework */, - BFBAC9302295F64600587369 /* libz.tbd */, - BFBAC8F22295EF0500587369 /* libxml2.2.tbd */, - ); - name = Frameworks; - sourceTree = ""; - }; - BF50E7C722C1694A0070E17B /* ldid */ = { - isa = PBXGroup; - children = ( - BF50E7C822C169560070E17B /* alt_ldid.hpp */, - BF50E7C322C1690B0070E17B /* alt_ldid.cpp */, - ); - path = ldid; - sourceTree = ""; - }; - BF50E7D322C293F80070E17B /* Capabilities */ = { - isa = PBXGroup; - children = ( - BF50E7CD22C28F8B0070E17B /* ALTCapabilities.h */, - BF50E7CE22C28F8B0070E17B /* ALTCapabilities.m */, - ); - path = Capabilities; - sourceTree = ""; - }; - BF50E7D422C29BBF0070E17B /* Apple API */ = { - isa = PBXGroup; - children = ( - BF9B633E229DC27C002F0A62 /* ALTModel+Internal.h */, - BF5AB3B72286024D00DC914B /* ALTAccount.h */, - BF5AB3B82286024D00DC914B /* ALTAccount.m */, - BFE20E05237C932600409FF7 /* ALTAnisetteData.h */, - BFE20E06237C932600409FF7 /* ALTAnisetteData.m */, - BF5AB3C32286157F00DC914B /* ALTTeam.h */, - BF5AB3C42286157F00DC914B /* ALTTeam.m */, - BF5AB3C72286269B00DC914B /* ALTDevice.h */, - BF5AB3C82286269B00DC914B /* ALTDevice.m */, - BF5AB3CB228645DF00DC914B /* ALTCertificate.h */, - BF5AB3CC228645DF00DC914B /* ALTCertificate.m */, - BF48CFEC229437580004760B /* ALTCertificateRequest.h */, - BF48CFED229437580004760B /* ALTCertificateRequest.m */, - BF48CFF422944FC60004760B /* ALTAppID.h */, - BF48CFF522944FC60004760B /* ALTAppID.m */, - BF50E7B622C161630070E17B /* ALTAppGroup.h */, - BF50E7B722C161630070E17B /* ALTAppGroup.m */, - BFBAC8892295D90F00587369 /* ALTProvisioningProfile.h */, - BFBAC88A2295D90F00587369 /* ALTProvisioningProfile.m */, - ); - path = "Apple API"; - sourceTree = ""; - }; - BF5AB38F2285FDB200DC914B = { - isa = PBXGroup; - children = ( - BF5AB39B2285FDB200DC914B /* AltSign */, - BFBAC8AB2295ED1900587369 /* ldid */, - BF5AB39A2285FDB200DC914B /* Products */, - BF48CFEA229435F50004760B /* Frameworks */, - ); - sourceTree = ""; - }; - BF5AB39A2285FDB200DC914B /* Products */ = { - isa = PBXGroup; - children = ( - BF5AB3992285FDB200DC914B /* AltSign.framework */, - BFBAC8AA2295ED1900587369 /* libldid.a */, - BF9B639E229DCF3A002F0A62 /* AltSign.framework */, - ); - name = Products; - sourceTree = ""; - }; - BF5AB39B2285FDB200DC914B /* AltSign */ = { - isa = PBXGroup; - children = ( - BF5AB3B3228600D100DC914B /* AltSign.h */, - BFBAC8992295E1A200587369 /* Apple API */, - BF5AB3C2228604E700DC914B /* Model */, - BF9B6418229E0DF4002F0A62 /* Signing */, - BF50E7D322C293F80070E17B /* Capabilities */, - BF50E7C722C1694A0070E17B /* ldid */, - BF5AB3C12286040800DC914B /* Categories */, - BFBD15D024F08CEA002CFC71 /* Extensions */, - BF9B641B229E0DF4002F0A62 /* Resources */, - BF48CFE0229435CB0004760B /* Dependencies */, - BF5AB39D2285FDB200DC914B /* Info.plist */, - ); - path = AltSign; - sourceTree = ""; - }; - BF5AB3C12286040800DC914B /* Categories */ = { - isa = PBXGroup; - children = ( - BF5AB3BD2286040400DC914B /* NSError+ALTErrors.h */, - BF5AB3BE2286040400DC914B /* NSError+ALTErrors.m */, - BF9B6412229E0CCE002F0A62 /* NSFileManager+Apps.h */, - BF9B6413229E0CCE002F0A62 /* NSFileManager+Apps.m */, - ); - path = Categories; - sourceTree = ""; - }; - BF5AB3C2228604E700DC914B /* Model */ = { - isa = PBXGroup; - children = ( - BF50E7BD22C163DC0070E17B /* ALTApplication.h */, - BF50E7BE22C163DC0070E17B /* ALTApplication.mm */, - BF50E7D422C29BBF0070E17B /* Apple API */, - ); - path = Model; - sourceTree = ""; - }; - BF9B63D3229DD8E8002F0A62 /* minizip */ = { - isa = PBXGroup; - children = ( - BF9B63F7229E0A9F002F0A62 /* crypt.h */, - BF9B63F8229E0A9F002F0A62 /* ioapi.c */, - BF9B63FA229E0AA0002F0A62 /* ioapi.h */, - BF9B63FE229E0AA0002F0A62 /* mztools.c */, - BF9B63FB229E0AA0002F0A62 /* mztools.h */, - BF9B63FC229E0AA0002F0A62 /* unzip.c */, - BF9B63FF229E0AA0002F0A62 /* unzip.h */, - BF9B63FD229E0AA0002F0A62 /* zip.c */, - BF9B63F9229E0A9F002F0A62 /* zip.h */, - ); - name = minizip; - sourceTree = ""; - }; - BF9B6418229E0DF4002F0A62 /* Signing */ = { - isa = PBXGroup; - children = ( - BF9B6419229E0DF4002F0A62 /* ALTSigner.h */, - BF9B641A229E0DF4002F0A62 /* ALTSigner.mm */, - ); - path = Signing; - sourceTree = ""; - }; - BF9B641B229E0DF4002F0A62 /* Resources */ = { - isa = PBXGroup; - children = ( - BF9B641C229E0DF4002F0A62 /* apple.pem */, - ); - path = Resources; - sourceTree = ""; - }; - BFBAC8992295E1A200587369 /* Apple API */ = { - isa = PBXGroup; - children = ( - BFBAC88F2295E05600587369 /* ALTAppleAPI.h */, - BFD80D532380A00B00B9C227 /* ALTAppleAPI_Private.h */, - BFBAC8902295E05600587369 /* ALTAppleAPI.m */, - BFBD15CC24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift */, - BF5D43F4237F53BB00EC8745 /* ALTAppleAPISession.h */, - BF5D43F5237F53BB00EC8745 /* ALTAppleAPISession.m */, - BFDF2DD424EDBA78002C10A8 /* GSAContext.swift */, - ); - path = "Apple API"; - sourceTree = ""; - }; - BFBAC8AB2295ED1900587369 /* ldid */ = { - isa = PBXGroup; - children = ( - BFBAC8E12295ED6C00587369 /* ldid.hpp */, - BFBAC8DF2295ED6C00587369 /* ldid.cpp */, - BFBAC8E22295ED6C00587369 /* lookup2.c */, - BFBAC8E02295ED6C00587369 /* sha1.h */, - BFBAC8B32295ED3600587369 /* libplist */, - BFBAC8E52295EE2500587369 /* libcnary */, - ); - path = ldid; - sourceTree = ""; - }; - BFBAC8B32295ED3600587369 /* libplist */ = { - isa = PBXGroup; - children = ( - BF0C4E9122A1B3BF009A2DD7 /* Array.cpp */, - BF0C4E8F22A1B3BE009A2DD7 /* base64.c */, - BF0C4E8622A1B3BE009A2DD7 /* base64.h */, - BF0C4E9422A1B3BF009A2DD7 /* Boolean.cpp */, - BF0C4E9522A1B3BF009A2DD7 /* bplist.c */, - BF0C4E8922A1B3BE009A2DD7 /* bytearray.c */, - BF0C4E9722A1B3BF009A2DD7 /* bytearray.h */, - BF0C4E9F22A1B3BF009A2DD7 /* Data.cpp */, - BF0C4E8822A1B3BE009A2DD7 /* Date.cpp */, - BF0C4E9A22A1B3BF009A2DD7 /* Dictionary.cpp */, - BF0C4E9E22A1B3BF009A2DD7 /* hashtable.c */, - BF0C4E9622A1B3BF009A2DD7 /* hashtable.h */, - BF0C4E9B22A1B3BF009A2DD7 /* Integer.cpp */, - BF0C4E9822A1B3BF009A2DD7 /* Key.cpp */, - BF0C4E8522A1B3BE009A2DD7 /* Node.cpp */, - BF0C4E8D22A1B3BE009A2DD7 /* plist.c */, - BF0C4E8B22A1B3BE009A2DD7 /* plist.h */, - BF0C4E9C22A1B3BF009A2DD7 /* ptrarray.c */, - BF0C4E9322A1B3BF009A2DD7 /* ptrarray.h */, - BF0C4E8722A1B3BE009A2DD7 /* Real.cpp */, - BF0C4E9022A1B3BE009A2DD7 /* strbuf.h */, - BF0C4E9D22A1B3BF009A2DD7 /* String.cpp */, - BF0C4E8C22A1B3BE009A2DD7 /* Structure.cpp */, - BF0C4E9922A1B3BF009A2DD7 /* time64_limits.h */, - BF0C4E8A22A1B3BE009A2DD7 /* time64.c */, - BF0C4E8E22A1B3BE009A2DD7 /* time64.h */, - BF0C4E8422A1B3BE009A2DD7 /* Uid.cpp */, - BF0C4E9222A1B3BF009A2DD7 /* xplist.c */, - ); - name = libplist; - sourceTree = ""; - }; - BFBAC8E52295EE2500587369 /* libcnary */ = { - isa = PBXGroup; - children = ( - BF0C4EB522A1B3CC009A2DD7 /* cnary.c */, - BF0C4EB622A1B3CC009A2DD7 /* node_list.c */, - BF0C4EB422A1B3CC009A2DD7 /* node.c */, - ); - name = libcnary; - sourceTree = ""; - }; - BFBD15D024F08CEA002CFC71 /* Extensions */ = { - isa = PBXGroup; - children = ( - BFBD15C924F06BA5002CFC71 /* Data+Encryption.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - BFDF2DDA24EDBDC0002C10A8 /* corecrypto */ = { - isa = PBXGroup; - children = ( - BFBD15C624F04396002CFC71 /* CoreCryptoMacros.swift */, - BFDF2DDB24EDBDC0002C10A8 /* cctest.h */, - BFDF2DDC24EDBDC0002C10A8 /* cczp.h */, - BFDF2DDD24EDBDC0002C10A8 /* ccmd4.h */, - BFDF2DDE24EDBDC0002C10A8 /* ccrng_priv.h */, - BFDF2DDF24EDBDC0002C10A8 /* ccrng_sequence.h */, - BFDF2DE024EDBDC0002C10A8 /* ccz.h */, - BFDF2DE124EDBDC0002C10A8 /* ccaes.h */, - BFDF2DE224EDBDC0002C10A8 /* cchkdf.h */, - BFDF2DE324EDBDC0002C10A8 /* ccec.h */, - BFDF2DE424EDBDC0002C10A8 /* cc_config.h */, - BFDF2DE524EDBDC0002C10A8 /* ccsrp.h */, - BFDF2DE624EDBDC0002C10A8 /* ccrng_ecfips_test.h */, - BFDF2DE724EDBDC0002C10A8 /* ccrng_drbg.h */, - BFDF2DE824EDBDC0002C10A8 /* cc_priv.h */, - BFDF2DE924EDBDC0002C10A8 /* fipspost.h */, - BFDF2DEA24EDBDC0002C10A8 /* ccec25519.h */, - BFDF2DEB24EDBDC0002C10A8 /* ccdh_priv.h */, - BFDF2DEC24EDBDC0002C10A8 /* ccder_rsa.h */, - BFDF2DED24EDBDC0002C10A8 /* ccrc4.h */, - BFDF2DEE24EDBDC0002C10A8 /* ccdes.h */, - BFDF2DEF24EDBDC0002C10A8 /* ccrsa.h */, - BFDF2DF024EDBDC0002C10A8 /* cc_debug.h */, - BFDF2DF124EDBDC0002C10A8 /* ccblowfish.h */, - BFDF2DF224EDBDC0002C10A8 /* ccchacha20poly1305_priv.h */, - BFDF2DF324EDBDC0002C10A8 /* cczp_priv.h */, - BFDF2DF424EDBDC0002C10A8 /* ccdrbg_impl.h */, - BFDF2DF524EDBDC0002C10A8 /* ccprime.h */, - BFDF2DF624EDBDC0002C10A8 /* ccrng_pbkdf2_prng.h */, - BFDF2DF724EDBDC0002C10A8 /* ccdigest_priv.h */, - BFDF2DF824EDBDC0002C10A8 /* ccnistkdf.h */, - BFDF2DF924EDBDC0002C10A8 /* ccasn1.h */, - BFDF2DFA24EDBDC0002C10A8 /* ccripemd.h */, - BFDF2DFB24EDBDC0002C10A8 /* ccchacha20poly1305.h */, - BFDF2DFC24EDBDC0002C10A8 /* cc.h */, - BFDF2DFD24EDBDC0002C10A8 /* ccder_priv.h */, - BFDF2DFE24EDBDC0002C10A8 /* ccder_decode_eckey.h */, - BFDF2DFF24EDBDC0002C10A8 /* ccrsa_priv.h */, - BFDF2E0024EDBDC0002C10A8 /* ccdh_gp.h */, - BFDF2E0124EDBDC0002C10A8 /* ccrng_rsafips_test.h */, - BFDF2E0224EDBDC0002C10A8 /* ccperf.h */, - BFDF2E0324EDBDC0002C10A8 /* ccder_encode_eckey.h */, - BFDF2E0424EDBDC0002C10A8 /* ccsrp.m */, - BFDF2E0524EDBDC0002C10A8 /* ccn_priv.h */, - BFDF2E0624EDBDC0002C10A8 /* ccz_priv.h */, - BFDF2E0724EDBDC0002C10A8 /* ccdrbg_factory.h */, - BFDF2E0824EDBDC0002C10A8 /* ccansikdf.h */, - BFDF2E0924EDBDC0002C10A8 /* ccmd2.h */, - BFDF2E0A24EDBDC0002C10A8 /* ccsha1.h */, - BFDF2E0B24EDBDC0002C10A8 /* ccecies.h */, - BFDF2E0C24EDBDC0002C10A8 /* cc_memory.h */, - BFDF2E0D24EDBDC0002C10A8 /* ccwrap.h */, - BFDF2E0E24EDBDC0002C10A8 /* ccmode_factory.h */, - BFDF2E0F24EDBDC0002C10A8 /* ccrc2.h */, - BFDF2E1024EDBDC0002C10A8 /* ccsrp_gp.h */, - BFDF2E1124EDBDC0002C10A8 /* cccmac.h */, - BFDF2E1224EDBDC0002C10A8 /* ccn.h */, - BFDF2E1324EDBDC0002C10A8 /* ccmd5.h */, - BFDF2E1424EDBDC0002C10A8 /* ccrng_system.h */, - BFDF2E1524EDBDC0002C10A8 /* ccmode.h */, - BFDF2E1624EDBDC0002C10A8 /* ccec_priv.h */, - BFDF2E1724EDBDC0002C10A8 /* ccrng_test.h */, - BFDF2E1824EDBDC0002C10A8 /* cchmac.h */, - BFDF2E1924EDBDC0002C10A8 /* ccpad.h */, - BFDF2E1A24EDBDC0002C10A8 /* ccecies_priv.h */, - BFDF2E1B24EDBDC0002C10A8 /* ccsha2.h */, - BFDF2E1C24EDBDC0002C10A8 /* module.modulemap */, - BFDF2E1D24EDBDC0002C10A8 /* ccpbkdf2.h */, - BFDF2E1E24EDBDC0002C10A8 /* ccec25519_priv.h */, - BFDF2E1F24EDBDC0002C10A8 /* cc_runtime_config.h */, - BFDF2E2024EDBDC0002C10A8 /* ccdh.h */, - BFDF2E2124EDBDC0002C10A8 /* ccmode_impl.h */, - BFDF2E2224EDBDC0002C10A8 /* ccmode_siv.h */, - BFDF2E2324EDBDC0002C10A8 /* ccdrbg.h */, - BFDF2E2424EDBDC0002C10A8 /* ccmode_siv_priv.h */, - BFDF2E2524EDBDC0002C10A8 /* cccast.h */, - BFDF2E2624EDBDC0002C10A8 /* ccdigest.h */, - BFDF2E2724EDBDC0002C10A8 /* ccder.h */, - BFDF2E2824EDBDC0002C10A8 /* ccrng.h */, - ); - name = corecrypto; - path = Dependencies/corecrypto; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - BF5AB3942285FDB200DC914B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BFDF2E3D24EDBDC1002C10A8 /* ccsrp.h in Headers */, - BFBAC8912295E05600587369 /* ALTAppleAPI.h in Headers */, - BFDF2E6324EDBDC1002C10A8 /* ccnistkdf.h in Headers */, - BFDF2E5324EDBDC1002C10A8 /* cc_debug.h in Headers */, - BFDF2EBD24EDBDC1002C10A8 /* ccdigest.h in Headers */, - BFDF2E3124EDBDC1002C10A8 /* ccrng_sequence.h in Headers */, - BFDF2EB524EDBDC1002C10A8 /* ccmode_siv.h in Headers */, - BFDF2E4324EDBDC1002C10A8 /* cc_priv.h in Headers */, - BFDF2E7124EDBDC1002C10A8 /* ccrsa_priv.h in Headers */, - BFDF2EAD24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */, - BFE20E07237C932600409FF7 /* ALTAnisetteData.h in Headers */, - BFDF2E8F24EDBDC1002C10A8 /* ccmode_factory.h in Headers */, - BFDF2E6F24EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */, - BFDF2E9524EDBDC1002C10A8 /* cccmac.h in Headers */, - BFDF2E8B24EDBDC1002C10A8 /* cc_memory.h in Headers */, - BFDF2E2924EDBDC1002C10A8 /* cctest.h in Headers */, - BFDF2E2B24EDBDC1002C10A8 /* cczp.h in Headers */, - BFDF2E9124EDBDC1002C10A8 /* ccrc2.h in Headers */, - BFDF2E6924EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */, - BFDF2E4724EDBDC1002C10A8 /* ccec25519.h in Headers */, - BFDF2E2D24EDBDC1002C10A8 /* ccmd4.h in Headers */, - BFDF2E8524EDBDC1002C10A8 /* ccmd2.h in Headers */, - BF9B6400229E0AA0002F0A62 /* crypt.h in Headers */, - BFBAC88B2295D90F00587369 /* ALTProvisioningProfile.h in Headers */, - BF5AB3B92286024D00DC914B /* ALTAccount.h in Headers */, - BFDF2E4F24EDBDC1002C10A8 /* ccdes.h in Headers */, - BFDF2E9F24EDBDC1002C10A8 /* ccec_priv.h in Headers */, - BFDF2E7D24EDBDC1002C10A8 /* ccn_priv.h in Headers */, - BFDF2EA324EDBDC1002C10A8 /* cchmac.h in Headers */, - BFDF2E5124EDBDC1002C10A8 /* ccrsa.h in Headers */, - BFD80D542380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */, - BFDF2E3F24EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */, - BFDF2E5B24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */, - BFDF2E8124EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */, - BFDF2E5924EDBDC1002C10A8 /* cczp_priv.h in Headers */, - BF50E7BF22C163DC0070E17B /* ALTApplication.h in Headers */, - BFDF2E9724EDBDC1002C10A8 /* ccn.h in Headers */, - BFDF2E4124EDBDC1002C10A8 /* ccrng_drbg.h in Headers */, - BFDF2E5F24EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */, - BFDF2E4D24EDBDC1002C10A8 /* ccrc4.h in Headers */, - BFDF2E3324EDBDC1002C10A8 /* ccz.h in Headers */, - BF5AB3BF2286040400DC914B /* NSError+ALTErrors.h in Headers */, - BFDF2E9D24EDBDC1002C10A8 /* ccmode.h in Headers */, - BF5AB3CD228645DF00DC914B /* ALTCertificate.h in Headers */, - BFDF2E8724EDBDC1002C10A8 /* ccsha1.h in Headers */, - BFDF2E9324EDBDC1002C10A8 /* ccsrp_gp.h in Headers */, - BFDF2E3924EDBDC1002C10A8 /* ccec.h in Headers */, - BFDF2EB324EDBDC1002C10A8 /* ccmode_impl.h in Headers */, - BFDF2E7F24EDBDC1002C10A8 /* ccz_priv.h in Headers */, - BFDF2E6724EDBDC1002C10A8 /* ccripemd.h in Headers */, - BF48CFEE229437580004760B /* ALTCertificateRequest.h in Headers */, - BF50E7CF22C28F8B0070E17B /* ALTCapabilities.h in Headers */, - BFDF2E9924EDBDC1002C10A8 /* ccmd5.h in Headers */, - BF9B6408229E0AA0002F0A62 /* mztools.h in Headers */, - BFDF2E8924EDBDC1002C10A8 /* ccecies.h in Headers */, - BFDF2EA724EDBDC1002C10A8 /* ccecies_priv.h in Headers */, - BFDF2E3B24EDBDC1002C10A8 /* cc_config.h in Headers */, - BFDF2E7324EDBDC1002C10A8 /* ccdh_gp.h in Headers */, - BF5AB3C92286269B00DC914B /* ALTDevice.h in Headers */, - BF9B6404229E0AA0002F0A62 /* zip.h in Headers */, - BFDF2EA124EDBDC1002C10A8 /* ccrng_test.h in Headers */, - BF9B641D229E0DF5002F0A62 /* ALTSigner.h in Headers */, - BF9B6414229E0CCE002F0A62 /* NSFileManager+Apps.h in Headers */, - BF50E7B822C161630070E17B /* ALTAppGroup.h in Headers */, - BF9B6410229E0AA0002F0A62 /* unzip.h in Headers */, - BFDF2EA524EDBDC1002C10A8 /* ccpad.h in Headers */, - BFDF2EBF24EDBDC1002C10A8 /* ccder.h in Headers */, - BFDF2E2F24EDBDC1002C10A8 /* ccrng_priv.h in Headers */, - BFDF2E4924EDBDC1002C10A8 /* ccdh_priv.h in Headers */, - BFDF2EB724EDBDC1002C10A8 /* ccdrbg.h in Headers */, - BFDF2E7524EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */, - BFDF2EA924EDBDC1002C10A8 /* ccsha2.h in Headers */, - BFDF2EB924EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */, - BFDF2EBB24EDBDC1002C10A8 /* cccast.h in Headers */, - BFDF2E6124EDBDC1002C10A8 /* ccdigest_priv.h in Headers */, - BFDF2E6D24EDBDC1002C10A8 /* ccder_priv.h in Headers */, - BF9B6406229E0AA0002F0A62 /* ioapi.h in Headers */, - BFDF2E3724EDBDC1002C10A8 /* cchkdf.h in Headers */, - BFDF2E9B24EDBDC1002C10A8 /* ccrng_system.h in Headers */, - BFDF2EAB24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */, - BFDF2E5524EDBDC1002C10A8 /* ccblowfish.h in Headers */, - BFDF2E6B24EDBDC1002C10A8 /* cc.h in Headers */, - BFDF2E7924EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */, - BFDF2E4524EDBDC1002C10A8 /* fipspost.h in Headers */, - BFDF2E5D24EDBDC1002C10A8 /* ccprime.h in Headers */, - BFDF2E8D24EDBDC1002C10A8 /* ccwrap.h in Headers */, - BFDF2EC124EDBDC1002C10A8 /* ccrng.h in Headers */, - BFDF2E8324EDBDC1002C10A8 /* ccansikdf.h in Headers */, - BFDF2E4B24EDBDC1002C10A8 /* ccder_rsa.h in Headers */, - BFDF2E5724EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */, - BF9B633F229DC27C002F0A62 /* ALTModel+Internal.h in Headers */, - BF5AB3B5228600D100DC914B /* AltSign.h in Headers */, - BFDF2E3524EDBDC1002C10A8 /* ccaes.h in Headers */, - BFDF2E7724EDBDC1002C10A8 /* ccperf.h in Headers */, - BFDF2EAF24EDBDC1002C10A8 /* cc_runtime_config.h in Headers */, - BFDF2EB124EDBDC1002C10A8 /* ccdh.h in Headers */, - BF5AB3C52286157F00DC914B /* ALTTeam.h in Headers */, - BF5D43F6237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */, - BF48CFF622944FC60004760B /* ALTAppID.h in Headers */, - BFDF2E6524EDBDC1002C10A8 /* ccasn1.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BF9B637D229DCF3A002F0A62 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BFDF2E3E24EDBDC1002C10A8 /* ccsrp.h in Headers */, - BF9B637E229DCF3A002F0A62 /* ALTAppleAPI.h in Headers */, - BFDF2E6424EDBDC1002C10A8 /* ccnistkdf.h in Headers */, - BFDF2E5424EDBDC1002C10A8 /* cc_debug.h in Headers */, - BFDF2EBE24EDBDC1002C10A8 /* ccdigest.h in Headers */, - BFDF2E3224EDBDC1002C10A8 /* ccrng_sequence.h in Headers */, - BFDF2EB624EDBDC1002C10A8 /* ccmode_siv.h in Headers */, - BFDF2E4424EDBDC1002C10A8 /* cc_priv.h in Headers */, - BFDF2E7224EDBDC1002C10A8 /* ccrsa_priv.h in Headers */, - BFDF2EAE24EDBDC1002C10A8 /* ccec25519_priv.h in Headers */, - BFE20E08237C932600409FF7 /* ALTAnisetteData.h in Headers */, - BFDF2E9024EDBDC1002C10A8 /* ccmode_factory.h in Headers */, - BFDF2E7024EDBDC1002C10A8 /* ccder_decode_eckey.h in Headers */, - BFDF2E9624EDBDC1002C10A8 /* cccmac.h in Headers */, - BFDF2E8C24EDBDC1002C10A8 /* cc_memory.h in Headers */, - BFDF2E2A24EDBDC1002C10A8 /* cctest.h in Headers */, - BFDF2E2C24EDBDC1002C10A8 /* cczp.h in Headers */, - BFDF2E9224EDBDC1002C10A8 /* ccrc2.h in Headers */, - BFDF2E6A24EDBDC1002C10A8 /* ccchacha20poly1305.h in Headers */, - BFDF2E4824EDBDC1002C10A8 /* ccec25519.h in Headers */, - BFDF2E2E24EDBDC1002C10A8 /* ccmd4.h in Headers */, - BFDF2E8624EDBDC1002C10A8 /* ccmd2.h in Headers */, - BF9B6401229E0AA0002F0A62 /* crypt.h in Headers */, - BF9B637F229DCF3A002F0A62 /* ALTProvisioningProfile.h in Headers */, - BF9B6380229DCF3A002F0A62 /* ALTAccount.h in Headers */, - BFDF2E5024EDBDC1002C10A8 /* ccdes.h in Headers */, - BFDF2EA024EDBDC1002C10A8 /* ccec_priv.h in Headers */, - BFDF2E7E24EDBDC1002C10A8 /* ccn_priv.h in Headers */, - BFDF2EA424EDBDC1002C10A8 /* cchmac.h in Headers */, - BFDF2E5224EDBDC1002C10A8 /* ccrsa.h in Headers */, - BFD80D552380A00B00B9C227 /* ALTAppleAPI_Private.h in Headers */, - BFDF2E4024EDBDC1002C10A8 /* ccrng_ecfips_test.h in Headers */, - BFDF2E5C24EDBDC1002C10A8 /* ccdrbg_impl.h in Headers */, - BFDF2E8224EDBDC1002C10A8 /* ccdrbg_factory.h in Headers */, - BFDF2E5A24EDBDC1002C10A8 /* cczp_priv.h in Headers */, - BF50E7C022C163DC0070E17B /* ALTApplication.h in Headers */, - BFDF2E9824EDBDC1002C10A8 /* ccn.h in Headers */, - BFDF2E4224EDBDC1002C10A8 /* ccrng_drbg.h in Headers */, - BFDF2E6024EDBDC1002C10A8 /* ccrng_pbkdf2_prng.h in Headers */, - BFDF2E4E24EDBDC1002C10A8 /* ccrc4.h in Headers */, - BFDF2E3424EDBDC1002C10A8 /* ccz.h in Headers */, - BF9B6381229DCF3A002F0A62 /* NSError+ALTErrors.h in Headers */, - BFDF2E9E24EDBDC1002C10A8 /* ccmode.h in Headers */, - BF9B6382229DCF3A002F0A62 /* ALTCertificate.h in Headers */, - BFDF2E8824EDBDC1002C10A8 /* ccsha1.h in Headers */, - BFDF2E9424EDBDC1002C10A8 /* ccsrp_gp.h in Headers */, - BFDF2E3A24EDBDC1002C10A8 /* ccec.h in Headers */, - BFDF2EB424EDBDC1002C10A8 /* ccmode_impl.h in Headers */, - BFDF2E8024EDBDC1002C10A8 /* ccz_priv.h in Headers */, - BFDF2E6824EDBDC1002C10A8 /* ccripemd.h in Headers */, - BF9B6383229DCF3A002F0A62 /* ALTCertificateRequest.h in Headers */, - BF50E7D022C28F8B0070E17B /* ALTCapabilities.h in Headers */, - BFDF2E9A24EDBDC1002C10A8 /* ccmd5.h in Headers */, - BF9B6409229E0AA0002F0A62 /* mztools.h in Headers */, - BFDF2E8A24EDBDC1002C10A8 /* ccecies.h in Headers */, - BFDF2EA824EDBDC1002C10A8 /* ccecies_priv.h in Headers */, - BFDF2E3C24EDBDC1002C10A8 /* cc_config.h in Headers */, - BFDF2E7424EDBDC1002C10A8 /* ccdh_gp.h in Headers */, - BF9B6384229DCF3A002F0A62 /* ALTDevice.h in Headers */, - BF9B6405229E0AA0002F0A62 /* zip.h in Headers */, - BFDF2EA224EDBDC1002C10A8 /* ccrng_test.h in Headers */, - BF9B641E229E0DF5002F0A62 /* ALTSigner.h in Headers */, - BF9B6415229E0CCE002F0A62 /* NSFileManager+Apps.h in Headers */, - BF50E7B922C161630070E17B /* ALTAppGroup.h in Headers */, - BF9B6411229E0AA0002F0A62 /* unzip.h in Headers */, - BFDF2EA624EDBDC1002C10A8 /* ccpad.h in Headers */, - BFDF2EC024EDBDC1002C10A8 /* ccder.h in Headers */, - BFDF2E3024EDBDC1002C10A8 /* ccrng_priv.h in Headers */, - BFDF2E4A24EDBDC1002C10A8 /* ccdh_priv.h in Headers */, - BFDF2EB824EDBDC1002C10A8 /* ccdrbg.h in Headers */, - BFDF2E7624EDBDC1002C10A8 /* ccrng_rsafips_test.h in Headers */, - BFDF2EAA24EDBDC1002C10A8 /* ccsha2.h in Headers */, - BFDF2EBA24EDBDC1002C10A8 /* ccmode_siv_priv.h in Headers */, - BFDF2EBC24EDBDC1002C10A8 /* cccast.h in Headers */, - BFDF2E6224EDBDC1002C10A8 /* ccdigest_priv.h in Headers */, - BFDF2E6E24EDBDC1002C10A8 /* ccder_priv.h in Headers */, - BF9B6407229E0AA0002F0A62 /* ioapi.h in Headers */, - BFDF2E3824EDBDC1002C10A8 /* cchkdf.h in Headers */, - BFDF2E9C24EDBDC1002C10A8 /* ccrng_system.h in Headers */, - BFDF2EAC24EDBDC1002C10A8 /* ccpbkdf2.h in Headers */, - BFDF2E5624EDBDC1002C10A8 /* ccblowfish.h in Headers */, - BFDF2E6C24EDBDC1002C10A8 /* cc.h in Headers */, - BFDF2E7A24EDBDC1002C10A8 /* ccder_encode_eckey.h in Headers */, - BFDF2E4624EDBDC1002C10A8 /* fipspost.h in Headers */, - BFDF2E5E24EDBDC1002C10A8 /* ccprime.h in Headers */, - BFDF2E8E24EDBDC1002C10A8 /* ccwrap.h in Headers */, - BFDF2EC224EDBDC1002C10A8 /* ccrng.h in Headers */, - BFDF2E8424EDBDC1002C10A8 /* ccansikdf.h in Headers */, - BFDF2E4C24EDBDC1002C10A8 /* ccder_rsa.h in Headers */, - BFDF2E5824EDBDC1002C10A8 /* ccchacha20poly1305_priv.h in Headers */, - BF9B6385229DCF3A002F0A62 /* ALTModel+Internal.h in Headers */, - BF9B6386229DCF3A002F0A62 /* AltSign.h in Headers */, - BFDF2E3624EDBDC1002C10A8 /* ccaes.h in Headers */, - BFDF2E7824EDBDC1002C10A8 /* ccperf.h in Headers */, - BFDF2EB024EDBDC1002C10A8 /* cc_runtime_config.h in Headers */, - BFDF2EB224EDBDC1002C10A8 /* ccdh.h in Headers */, - BF9B6387229DCF3A002F0A62 /* ALTTeam.h in Headers */, - BF5D43F7237F53BB00EC8745 /* ALTAppleAPISession.h in Headers */, - BF9B6388229DCF3A002F0A62 /* ALTAppID.h in Headers */, - BFDF2E6624EDBDC1002C10A8 /* ccasn1.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - BF5AB3982285FDB200DC914B /* AltSign */ = { - isa = PBXNativeTarget; - buildConfigurationList = BF5AB3A12285FDB200DC914B /* Build configuration list for PBXNativeTarget "AltSign" */; - buildPhases = ( - BF5AB3942285FDB200DC914B /* Headers */, - BF5AB3952285FDB200DC914B /* Sources */, - BF5AB3962285FDB200DC914B /* Frameworks */, - BF5AB3972285FDB200DC914B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - BF4586B622987AE400BD7491 /* PBXTargetDependency */, - ); - name = AltSign; - productName = AltSign; - productReference = BF5AB3992285FDB200DC914B /* AltSign.framework */; - productType = "com.apple.product-type.framework"; - }; - BF9B6378229DCF3A002F0A62 /* AltSign-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = BF9B639B229DCF3A002F0A62 /* Build configuration list for PBXNativeTarget "AltSign-macOS" */; - buildPhases = ( - BF9B637D229DCF3A002F0A62 /* Headers */, - BF9B6389229DCF3A002F0A62 /* Sources */, - BF9B6393229DCF3A002F0A62 /* Frameworks */, - BF9B639A229DCF3A002F0A62 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - BF9B63A1229DCFA4002F0A62 /* PBXTargetDependency */, - ); - name = "AltSign-macOS"; - productName = AltSign; - productReference = BF9B639E229DCF3A002F0A62 /* AltSign.framework */; - productType = "com.apple.product-type.framework"; - }; - BFBAC8A92295ED1900587369 /* ldid */ = { - isa = PBXNativeTarget; - buildConfigurationList = BFBAC8B02295ED1900587369 /* Build configuration list for PBXNativeTarget "ldid" */; - buildPhases = ( - BFBAC8A62295ED1900587369 /* Sources */, - BFBAC8A72295ED1900587369 /* Frameworks */, - BFBAC8A82295ED1900587369 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ldid; - productName = ldid; - productReference = BFBAC8AA2295ED1900587369 /* libldid.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BF5AB3902285FDB200DC914B /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1020; - ORGANIZATIONNAME = "Riley Testut"; - TargetAttributes = { - BF5AB3982285FDB200DC914B = { - CreatedOnToolsVersion = 10.2.1; - LastSwiftMigration = 1200; - }; - BF9B6378229DCF3A002F0A62 = { - LastSwiftMigration = 1200; - }; - BFBAC8A92295ED1900587369 = { - CreatedOnToolsVersion = 10.2.1; - }; - }; - }; - buildConfigurationList = BF5AB3932285FDB200DC914B /* Build configuration list for PBXProject "AltSign" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = BF5AB38F2285FDB200DC914B; - productRefGroup = BF5AB39A2285FDB200DC914B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = BF48CFE2229435DB0004760B /* Products */; - ProjectRef = BF48CFE1229435DB0004760B /* OpenSSL.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - BF5AB3982285FDB200DC914B /* AltSign */, - BFBAC8A92295ED1900587369 /* ldid */, - BF9B6378229DCF3A002F0A62 /* AltSign-macOS */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - BF48CFE7229435DB0004760B /* openssl.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = openssl.framework; - remoteRef = BF48CFE6229435DB0004760B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - BF48CFE9229435DB0004760B /* openssl.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = openssl.framework; - remoteRef = BF48CFE8229435DB0004760B /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - BF5AB3972285FDB200DC914B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF9B6421229E0DF5002F0A62 /* apple.pem in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BF9B639A229DCF3A002F0A62 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF9B6422229E0DF5002F0A62 /* apple.pem in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BF5AB3952285FDB200DC914B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF9B641F229E0DF5002F0A62 /* ALTSigner.mm in Sources */, - BFBD15CA24F06BA5002CFC71 /* Data+Encryption.swift in Sources */, - BF48CFF0229438C10004760B /* ALTCertificateRequest.m in Sources */, - BFBAC88C2295D90F00587369 /* ALTProvisioningProfile.m in Sources */, - BF5AB3C62286157F00DC914B /* ALTTeam.m in Sources */, - BF5D43F8237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */, - BF5AB3CA2286269B00DC914B /* ALTDevice.m in Sources */, - BF9B640E229E0AA0002F0A62 /* mztools.c in Sources */, - BFBD15CD24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */, - BFBAC8922295E05600587369 /* ALTAppleAPI.m in Sources */, - BFDF2DD524EDBA78002C10A8 /* GSAContext.swift in Sources */, - BF50E7BA22C161630070E17B /* ALTAppGroup.m in Sources */, - BF9B6416229E0CCE002F0A62 /* NSFileManager+Apps.m in Sources */, - BF48CFF722944FC60004760B /* ALTAppID.m in Sources */, - BFDF2E7B24EDBDC1002C10A8 /* ccsrp.m in Sources */, - BF9B640A229E0AA0002F0A62 /* unzip.c in Sources */, - BF5AB3CE228645DF00DC914B /* ALTCertificate.m in Sources */, - BFBD15C724F04396002CFC71 /* CoreCryptoMacros.swift in Sources */, - BF5AB3BA2286024D00DC914B /* ALTAccount.m in Sources */, - BF50E7C122C163DC0070E17B /* ALTApplication.mm in Sources */, - BF9B6402229E0AA0002F0A62 /* ioapi.c in Sources */, - BF9B640C229E0AA0002F0A62 /* zip.c in Sources */, - BFE20E09237C932600409FF7 /* ALTAnisetteData.m in Sources */, - BF5AB3C02286040400DC914B /* NSError+ALTErrors.m in Sources */, - BF50E7D122C28F8B0070E17B /* ALTCapabilities.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BF9B6389229DCF3A002F0A62 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF9B6420229E0DF5002F0A62 /* ALTSigner.mm in Sources */, - BFBD15C824F04396002CFC71 /* CoreCryptoMacros.swift in Sources */, - BF9B638A229DCF3A002F0A62 /* ALTCertificateRequest.m in Sources */, - BF9B638B229DCF3A002F0A62 /* ALTProvisioningProfile.m in Sources */, - BF9B638C229DCF3A002F0A62 /* ALTTeam.m in Sources */, - BF5D43F9237F53BB00EC8745 /* ALTAppleAPISession.m in Sources */, - BF9B638D229DCF3A002F0A62 /* ALTDevice.m in Sources */, - BF9B640F229E0AA0002F0A62 /* mztools.c in Sources */, - BFBD15CB24F06BA5002CFC71 /* Data+Encryption.swift in Sources */, - BF9B638E229DCF3A002F0A62 /* ALTAppleAPI.m in Sources */, - BFDF2DD624EDBA78002C10A8 /* GSAContext.swift in Sources */, - BF50E7BB22C161630070E17B /* ALTAppGroup.m in Sources */, - BF9B6417229E0CCE002F0A62 /* NSFileManager+Apps.m in Sources */, - BF9B638F229DCF3A002F0A62 /* ALTAppID.m in Sources */, - BFDF2E7C24EDBDC1002C10A8 /* ccsrp.m in Sources */, - BF9B640B229E0AA0002F0A62 /* unzip.c in Sources */, - BFBD15CE24F06C04002CFC71 /* ALTAppleAPI+Authentication.swift in Sources */, - BF9B6390229DCF3A002F0A62 /* ALTCertificate.m in Sources */, - BF9B6391229DCF3A002F0A62 /* ALTAccount.m in Sources */, - BF50E7C222C163DC0070E17B /* ALTApplication.mm in Sources */, - BF9B6403229E0AA0002F0A62 /* ioapi.c in Sources */, - BF9B640D229E0AA0002F0A62 /* zip.c in Sources */, - BFE20E0A237C932600409FF7 /* ALTAnisetteData.m in Sources */, - BF9B6392229DCF3A002F0A62 /* NSError+ALTErrors.m in Sources */, - BF50E7D222C28F8B0070E17B /* ALTCapabilities.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BFBAC8A62295ED1900587369 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF0C4EAE22A1B3BF009A2DD7 /* Dictionary.cpp in Sources */, - BF0C4EAA22A1B3BF009A2DD7 /* xplist.c in Sources */, - BF0C4EB222A1B3BF009A2DD7 /* hashtable.c in Sources */, - BF0C4EB122A1B3BF009A2DD7 /* String.cpp in Sources */, - BF0C4EAD22A1B3BF009A2DD7 /* Key.cpp in Sources */, - BF0C4EB022A1B3BF009A2DD7 /* ptrarray.c in Sources */, - BF0C4EA622A1B3BF009A2DD7 /* Structure.cpp in Sources */, - BF0C4EAF22A1B3BF009A2DD7 /* Integer.cpp in Sources */, - BF50E7C622C169290070E17B /* alt_ldid.cpp in Sources */, - BF0C4EA822A1B3BF009A2DD7 /* base64.c in Sources */, - BF0C4EA022A1B3BF009A2DD7 /* Uid.cpp in Sources */, - BFBAC8E42295ED6C00587369 /* lookup2.c in Sources */, - BF0C4EB722A1B3CC009A2DD7 /* node.c in Sources */, - BF0C4EA522A1B3BF009A2DD7 /* time64.c in Sources */, - BF0C4EA922A1B3BF009A2DD7 /* Array.cpp in Sources */, - BF0C4EA422A1B3BF009A2DD7 /* bytearray.c in Sources */, - BF0C4EAB22A1B3BF009A2DD7 /* Boolean.cpp in Sources */, - BF0C4EA722A1B3BF009A2DD7 /* plist.c in Sources */, - BF0C4EB922A1B3CC009A2DD7 /* node_list.c in Sources */, - BF0C4EA322A1B3BF009A2DD7 /* Date.cpp in Sources */, - BF0C4EA122A1B3BF009A2DD7 /* Node.cpp in Sources */, - BF0C4EB322A1B3BF009A2DD7 /* Data.cpp in Sources */, - BF0C4EB822A1B3CC009A2DD7 /* cnary.c in Sources */, - BF0C4EAC22A1B3BF009A2DD7 /* bplist.c in Sources */, - BF0C4EA222A1B3BF009A2DD7 /* Real.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - BF4586B622987AE400BD7491 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "OpenSSL (iOS)"; - targetProxy = BF4586B522987AE400BD7491 /* PBXContainerItemProxy */; - }; - BF9B63A1229DCFA4002F0A62 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "OpenSSL (macOS)"; - targetProxy = BF9B63A0229DCFA4002F0A62 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - BF5AB39F2285FDB200DC914B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - DEBUG, - "CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "\"$(SRCROOT)/Dependencies/OpenSSL/ios/include\"", - "\"$(SRCROOT)/Dependencies\"", - ); - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MODULEMAP_FILE = module.modulemap; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION"; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_INCLUDE_PATHS = "\"${SRCROOT}/Dependencies/corecrypto\" \"${SRCROOT}/AltSign\""; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - BF5AB3A02285FDB200DC914B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = "CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "\"$(SRCROOT)/Dependencies/OpenSSL/ios/include\"", - "\"$(SRCROOT)/Dependencies\"", - ); - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MODULEMAP_FILE = module.modulemap; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - OTHER_CFLAGS = "-DCORECRYPTO_DONOT_USE_TRANSPARENT_UNION"; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_INCLUDE_PATHS = "\"${SRCROOT}/Dependencies/corecrypto\" \"${SRCROOT}/AltSign\""; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - BF5AB3A22285FDB200DC914B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = NO; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = AltSign/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltSign; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - BF5AB3A32285FDB200DC914B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = NO; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = AltSign/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltSign; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - BF9B639C229DCF3A002F0A62 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = NO; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = AltSign/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltSign; - PRODUCT_NAME = AltSign; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - BF9B639D229DCF3A002F0A62 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = NO; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = AltSign/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltSign; - PRODUCT_NAME = AltSign; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - BFBAC8B12295ED1900587369 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 6XVY5G3U44; - GCC_WARN_INHIBIT_ALL_WARNINGS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/Dependencies/ldid/libplist/include\"", - "\"$(SRCROOT)/Dependencies/ldid/libplist/src\"", - "\"$(SRCROOT)/Dependencies/ldid/libplist/libcnary/include\"", - "\"${SDKROOT}/usr/include/libxml2\"", - ); - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.14; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - BFBAC8B22295ED1900587369 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 6XVY5G3U44; - GCC_WARN_INHIBIT_ALL_WARNINGS = YES; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/Dependencies/ldid/libplist/include\"", - "\"$(SRCROOT)/Dependencies/ldid/libplist/src\"", - "\"$(SRCROOT)/Dependencies/ldid/libplist/libcnary/include\"", - "\"${SDKROOT}/usr/include/libxml2\"", - ); - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.14; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - BF5AB3932285FDB200DC914B /* Build configuration list for PBXProject "AltSign" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BF5AB39F2285FDB200DC914B /* Debug */, - BF5AB3A02285FDB200DC914B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - BF5AB3A12285FDB200DC914B /* Build configuration list for PBXNativeTarget "AltSign" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BF5AB3A22285FDB200DC914B /* Debug */, - BF5AB3A32285FDB200DC914B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - BF9B639B229DCF3A002F0A62 /* Build configuration list for PBXNativeTarget "AltSign-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BF9B639C229DCF3A002F0A62 /* Debug */, - BF9B639D229DCF3A002F0A62 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - BFBAC8B02295ED1900587369 /* Build configuration list for PBXNativeTarget "ldid" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BFBAC8B12295ED1900587369 /* Debug */, - BFBAC8B22295ED1900587369 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BF5AB3902285FDB200DC914B /* Project object */; -} diff --git a/AltSign.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AltSign.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 150efde..0000000 --- a/AltSign.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/AltSign.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AltSign.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/AltSign.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/AltSign.xcodeproj/xcshareddata/xcschemes/AltSign-macOS.xcscheme b/AltSign.xcodeproj/xcshareddata/xcschemes/AltSign-macOS.xcscheme deleted file mode 100644 index 8fdecc7..0000000 --- a/AltSign.xcodeproj/xcshareddata/xcschemes/AltSign-macOS.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AltSign.xcodeproj/xcshareddata/xcschemes/AltSign.xcscheme b/AltSign.xcodeproj/xcshareddata/xcschemes/AltSign.xcscheme deleted file mode 100644 index f8e2ce4..0000000 --- a/AltSign.xcodeproj/xcshareddata/xcschemes/AltSign.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AltSign.xcodeproj/xcshareddata/xcschemes/ldid.xcscheme b/AltSign.xcodeproj/xcshareddata/xcschemes/ldid.xcscheme deleted file mode 100644 index adfa49a..0000000 --- a/AltSign.xcodeproj/xcshareddata/xcschemes/ldid.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AltSign/Categories/NSBundle+Resources.h b/AltSign/Categories/NSBundle+Resources.h new file mode 100644 index 0000000..3c9b349 --- /dev/null +++ b/AltSign/Categories/NSBundle+Resources.h @@ -0,0 +1,19 @@ +// +// NSBundle+Resources.h +// AltSign +// +// Created by Riley Testut on 9/2/20. +// Copyright © 2020 Riley Testut. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (Resources) + +@property (class, nonatomic, readonly) NSBundle *resourcesBundle; + +@end + +NS_ASSUME_NONNULL_END diff --git a/AltSign/Categories/NSBundle+Resources.m b/AltSign/Categories/NSBundle+Resources.m new file mode 100644 index 0000000..9ed579b --- /dev/null +++ b/AltSign/Categories/NSBundle+Resources.m @@ -0,0 +1,24 @@ +// +// NSBundle+Resources.m +// AltSign +// +// Created by Riley Testut on 9/2/20. +// Copyright © 2020 Riley Testut. All rights reserved. +// + +#import "NSBundle+Resources.h" + +#import + +@implementation NSBundle (Resources) + ++ (NSBundle *)resourcesBundle +{ +#if SWIFT_PACKAGE + return SWIFTPM_MODULE_BUNDLE; +#else + return [NSBundle bundleForClass:[ALTAppleAPI class]]; +#endif +} + +@end diff --git a/AltSign/Info.plist b/AltSign/Info.plist deleted file mode 100644 index e1fe4cf..0000000 --- a/AltSign/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/AltSign/Signing/ALTSigner.mm b/AltSign/Signing/ALTSigner.mm index 5d99d6b..54954ba 100644 --- a/AltSign/Signing/ALTSigner.mm +++ b/AltSign/Signing/ALTSigner.mm @@ -15,8 +15,9 @@ #import "NSFileManager+Apps.h" #import "NSError+ALTErrors.h" +#import "NSBundle+Resources.h" -#include "ldid.hpp" +#import "alt_ldid.hpp" #include @@ -25,7 +26,7 @@ std::string CertificatesContent(ALTCertificate *altCertificate) { - NSURL *pemURL = [[NSBundle bundleForClass:ALTSigner.class] URLForResource:@"apple" withExtension:@"pem"]; + NSURL *pemURL = [NSBundle.resourcesBundle URLForResource:@"apple" withExtension:@"pem"]; NSData *altCertificateP12Data = [altCertificate p12Data]; diff --git a/AltSign/Apple API/ALTAppleAPI+Authentication.swift b/AltSign/Sources/ALTAppleAPI+Authentication.swift similarity index 99% rename from AltSign/Apple API/ALTAppleAPI+Authentication.swift rename to AltSign/Sources/ALTAppleAPI+Authentication.swift index 3b21007..7a01490 100644 --- a/AltSign/Apple API/ALTAppleAPI+Authentication.swift +++ b/AltSign/Sources/ALTAppleAPI+Authentication.swift @@ -8,9 +8,8 @@ import Foundation -#if !INCLUDE_PRIVATE_API -import AltSign.Private -#endif +@_exported import CAltSign +import CAltSign.Private public extension ALTAppleAPI { diff --git a/AltSign/Extensions/Data+Encryption.swift b/AltSign/Sources/Data+Encryption.swift similarity index 100% rename from AltSign/Extensions/Data+Encryption.swift rename to AltSign/Sources/Data+Encryption.swift diff --git a/AltSign/Apple API/GSAContext.swift b/AltSign/Sources/GSAContext.swift similarity index 100% rename from AltSign/Apple API/GSAContext.swift rename to AltSign/Sources/GSAContext.swift diff --git a/AltSign/AltSign.h b/AltSign/include/AltSign.h similarity index 92% rename from AltSign/AltSign.h rename to AltSign/include/AltSign.h index 54f48e4..1680c67 100644 --- a/AltSign/AltSign.h +++ b/AltSign/include/AltSign.h @@ -10,10 +10,6 @@ #import #import -#if INCLUDE_PRIVATE_API -#import -#endif - // Signing #import diff --git a/AltSign/include/AltSign/ALTAccount.h b/AltSign/include/AltSign/ALTAccount.h new file mode 120000 index 0000000..661d898 --- /dev/null +++ b/AltSign/include/AltSign/ALTAccount.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTAccount.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTAnisetteData.h b/AltSign/include/AltSign/ALTAnisetteData.h new file mode 120000 index 0000000..cad4d6c --- /dev/null +++ b/AltSign/include/AltSign/ALTAnisetteData.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTAnisetteData.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTAppGroup.h b/AltSign/include/AltSign/ALTAppGroup.h new file mode 120000 index 0000000..9a36f2c --- /dev/null +++ b/AltSign/include/AltSign/ALTAppGroup.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTAppGroup.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTAppID.h b/AltSign/include/AltSign/ALTAppID.h new file mode 120000 index 0000000..714e239 --- /dev/null +++ b/AltSign/include/AltSign/ALTAppID.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTAppID.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTAppleAPI.h b/AltSign/include/AltSign/ALTAppleAPI.h new file mode 120000 index 0000000..dab67d7 --- /dev/null +++ b/AltSign/include/AltSign/ALTAppleAPI.h @@ -0,0 +1 @@ +../../Apple API/ALTAppleAPI.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTAppleAPISession.h b/AltSign/include/AltSign/ALTAppleAPISession.h new file mode 120000 index 0000000..815e232 --- /dev/null +++ b/AltSign/include/AltSign/ALTAppleAPISession.h @@ -0,0 +1 @@ +../../Apple API/ALTAppleAPISession.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTAppleAPI_Private.h b/AltSign/include/AltSign/ALTAppleAPI_Private.h new file mode 120000 index 0000000..320833a --- /dev/null +++ b/AltSign/include/AltSign/ALTAppleAPI_Private.h @@ -0,0 +1 @@ +../../Apple API/ALTAppleAPI_Private.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTApplication.h b/AltSign/include/AltSign/ALTApplication.h new file mode 120000 index 0000000..244fea6 --- /dev/null +++ b/AltSign/include/AltSign/ALTApplication.h @@ -0,0 +1 @@ +../../Model/ALTApplication.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTCapabilities.h b/AltSign/include/AltSign/ALTCapabilities.h new file mode 120000 index 0000000..c7b9067 --- /dev/null +++ b/AltSign/include/AltSign/ALTCapabilities.h @@ -0,0 +1 @@ +../../Capabilities/ALTCapabilities.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTCertificate.h b/AltSign/include/AltSign/ALTCertificate.h new file mode 120000 index 0000000..2085d25 --- /dev/null +++ b/AltSign/include/AltSign/ALTCertificate.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTCertificate.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTCertificateRequest.h b/AltSign/include/AltSign/ALTCertificateRequest.h new file mode 120000 index 0000000..6b6fef1 --- /dev/null +++ b/AltSign/include/AltSign/ALTCertificateRequest.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTCertificateRequest.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTDevice.h b/AltSign/include/AltSign/ALTDevice.h new file mode 120000 index 0000000..c123d93 --- /dev/null +++ b/AltSign/include/AltSign/ALTDevice.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTDevice.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTModel+Internal.h b/AltSign/include/AltSign/ALTModel+Internal.h new file mode 120000 index 0000000..e8eb844 --- /dev/null +++ b/AltSign/include/AltSign/ALTModel+Internal.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTModel+Internal.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTProvisioningProfile.h b/AltSign/include/AltSign/ALTProvisioningProfile.h new file mode 120000 index 0000000..2401758 --- /dev/null +++ b/AltSign/include/AltSign/ALTProvisioningProfile.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTProvisioningProfile.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTSigner.h b/AltSign/include/AltSign/ALTSigner.h new file mode 120000 index 0000000..0f76abc --- /dev/null +++ b/AltSign/include/AltSign/ALTSigner.h @@ -0,0 +1 @@ +../../Signing/ALTSigner.h \ No newline at end of file diff --git a/AltSign/include/AltSign/ALTTeam.h b/AltSign/include/AltSign/ALTTeam.h new file mode 120000 index 0000000..9d9b053 --- /dev/null +++ b/AltSign/include/AltSign/ALTTeam.h @@ -0,0 +1 @@ +../../Model/Apple API/ALTTeam.h \ No newline at end of file diff --git a/AltSign/include/AltSign/NSBundle+Resources.h b/AltSign/include/AltSign/NSBundle+Resources.h new file mode 120000 index 0000000..dcb1fb7 --- /dev/null +++ b/AltSign/include/AltSign/NSBundle+Resources.h @@ -0,0 +1 @@ +../../Categories/NSBundle+Resources.h \ No newline at end of file diff --git a/AltSign/include/AltSign/NSError+ALTErrors.h b/AltSign/include/AltSign/NSError+ALTErrors.h new file mode 120000 index 0000000..82ce6eb --- /dev/null +++ b/AltSign/include/AltSign/NSError+ALTErrors.h @@ -0,0 +1 @@ +../../Categories/NSError+ALTErrors.h \ No newline at end of file diff --git a/AltSign/include/AltSign/NSFileManager+Apps.h b/AltSign/include/AltSign/NSFileManager+Apps.h new file mode 120000 index 0000000..50ff649 --- /dev/null +++ b/AltSign/include/AltSign/NSFileManager+Apps.h @@ -0,0 +1 @@ +../../Categories/NSFileManager+Apps.h \ No newline at end of file diff --git a/AltSign/include/module.modulemap b/AltSign/include/module.modulemap new file mode 100644 index 0000000..4c1c24b --- /dev/null +++ b/AltSign/include/module.modulemap @@ -0,0 +1,12 @@ +module CAltSign { + umbrella header "AltSign.h" + export * + + explicit module Private { + header "AltSign/ALTAppleAPI_Private.h" + header "AltSign/ALTModel+Internal.h" + header "AltSign/ALTCertificateRequest.h" + header "AltSign/NSBundle+Resources.h" + export * + } +} diff --git a/Dependencies/OpenSSL b/Dependencies/OpenSSL index d3c021d..a58a499 160000 --- a/Dependencies/OpenSSL +++ b/Dependencies/OpenSSL @@ -1 +1 @@ -Subproject commit d3c021d85fb7a68eff9dc907b7e48f3615a43124 +Subproject commit a58a4990ea1bd0f6be4e77244d6e23a21bc1346b diff --git a/Dependencies/corecrypto/CoreCryptoMacros.swift b/Dependencies/corecrypto/Sources/CoreCryptoMacros.swift similarity index 65% rename from Dependencies/corecrypto/CoreCryptoMacros.swift rename to Dependencies/corecrypto/Sources/CoreCryptoMacros.swift index 20e6d43..9069c30 100644 --- a/Dependencies/corecrypto/CoreCryptoMacros.swift +++ b/Dependencies/corecrypto/Sources/CoreCryptoMacros.swift @@ -6,42 +6,41 @@ // Copyright © 2020 Riley Testut. All rights reserved. // -import Foundation -import CoreCrypto +@_exported import CCoreCrypto /// Reimplementations of various CoreCrypto macros that are unavailable in Swift. -func ccdigest_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int +public func ccdigest_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int { (stateSize + MemoryLayout.size + blockSize + MemoryLayout.size) } -func ccdigest_di_size(_ digestInfo: UnsafePointer) -> Int +public func ccdigest_di_size(_ digestInfo: UnsafePointer) -> Int { ccdigest_ctx_size(digestInfo.pointee.state_size, digestInfo.pointee.block_size) } -func ccsrp_gpbuf_size(_ group: ccdh_const_gp_t) -> Int +public func ccsrp_gpbuf_size(_ group: ccdh_const_gp_t) -> Int { ccdh_ccn_size(group) * 4 } -func ccsrp_dibuf_size(_ digestInfo: UnsafePointer) -> Int +public func ccsrp_dibuf_size(_ digestInfo: UnsafePointer) -> Int { digestInfo.pointee.output_size * 4 } -func ccsrp_sizeof_srp(_ digestInfo: UnsafePointer, _ group: ccdh_const_gp_t) -> Int +public func ccsrp_sizeof_srp(_ digestInfo: UnsafePointer, _ group: ccdh_const_gp_t) -> Int { MemoryLayout.size + ccsrp_gpbuf_size(group) + ccsrp_dibuf_size(digestInfo) } -func cchmac_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int +public func cchmac_ctx_size(_ stateSize: Int, _ blockSize: Int) -> Int { ccdigest_ctx_size(stateSize, blockSize) + stateSize } -func cchmac_di_size(_ digestInfo: UnsafePointer) -> Int +public func cchmac_di_size(_ digestInfo: UnsafePointer) -> Int { if #available(iOS 14, macOS 11, *) { diff --git a/Dependencies/corecrypto/ccsrp.m b/Dependencies/corecrypto/Sources/ccsrp.m similarity index 100% rename from Dependencies/corecrypto/ccsrp.m rename to Dependencies/corecrypto/Sources/ccsrp.m diff --git a/Dependencies/corecrypto/cc.h b/Dependencies/corecrypto/include/corecrypto/cc.h similarity index 100% rename from Dependencies/corecrypto/cc.h rename to Dependencies/corecrypto/include/corecrypto/cc.h diff --git a/Dependencies/corecrypto/cc_config.h b/Dependencies/corecrypto/include/corecrypto/cc_config.h similarity index 100% rename from Dependencies/corecrypto/cc_config.h rename to Dependencies/corecrypto/include/corecrypto/cc_config.h diff --git a/Dependencies/corecrypto/cc_debug.h b/Dependencies/corecrypto/include/corecrypto/cc_debug.h similarity index 100% rename from Dependencies/corecrypto/cc_debug.h rename to Dependencies/corecrypto/include/corecrypto/cc_debug.h diff --git a/Dependencies/corecrypto/cc_memory.h b/Dependencies/corecrypto/include/corecrypto/cc_memory.h similarity index 100% rename from Dependencies/corecrypto/cc_memory.h rename to Dependencies/corecrypto/include/corecrypto/cc_memory.h diff --git a/Dependencies/corecrypto/cc_priv.h b/Dependencies/corecrypto/include/corecrypto/cc_priv.h similarity index 100% rename from Dependencies/corecrypto/cc_priv.h rename to Dependencies/corecrypto/include/corecrypto/cc_priv.h diff --git a/Dependencies/corecrypto/cc_runtime_config.h b/Dependencies/corecrypto/include/corecrypto/cc_runtime_config.h similarity index 100% rename from Dependencies/corecrypto/cc_runtime_config.h rename to Dependencies/corecrypto/include/corecrypto/cc_runtime_config.h diff --git a/Dependencies/corecrypto/ccaes.h b/Dependencies/corecrypto/include/corecrypto/ccaes.h similarity index 100% rename from Dependencies/corecrypto/ccaes.h rename to Dependencies/corecrypto/include/corecrypto/ccaes.h diff --git a/Dependencies/corecrypto/ccansikdf.h b/Dependencies/corecrypto/include/corecrypto/ccansikdf.h similarity index 100% rename from Dependencies/corecrypto/ccansikdf.h rename to Dependencies/corecrypto/include/corecrypto/ccansikdf.h diff --git a/Dependencies/corecrypto/ccasn1.h b/Dependencies/corecrypto/include/corecrypto/ccasn1.h similarity index 100% rename from Dependencies/corecrypto/ccasn1.h rename to Dependencies/corecrypto/include/corecrypto/ccasn1.h diff --git a/Dependencies/corecrypto/ccblowfish.h b/Dependencies/corecrypto/include/corecrypto/ccblowfish.h similarity index 100% rename from Dependencies/corecrypto/ccblowfish.h rename to Dependencies/corecrypto/include/corecrypto/ccblowfish.h diff --git a/Dependencies/corecrypto/cccast.h b/Dependencies/corecrypto/include/corecrypto/cccast.h similarity index 100% rename from Dependencies/corecrypto/cccast.h rename to Dependencies/corecrypto/include/corecrypto/cccast.h diff --git a/Dependencies/corecrypto/ccchacha20poly1305.h b/Dependencies/corecrypto/include/corecrypto/ccchacha20poly1305.h similarity index 100% rename from Dependencies/corecrypto/ccchacha20poly1305.h rename to Dependencies/corecrypto/include/corecrypto/ccchacha20poly1305.h diff --git a/Dependencies/corecrypto/ccchacha20poly1305_priv.h b/Dependencies/corecrypto/include/corecrypto/ccchacha20poly1305_priv.h similarity index 100% rename from Dependencies/corecrypto/ccchacha20poly1305_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccchacha20poly1305_priv.h diff --git a/Dependencies/corecrypto/cccmac.h b/Dependencies/corecrypto/include/corecrypto/cccmac.h similarity index 100% rename from Dependencies/corecrypto/cccmac.h rename to Dependencies/corecrypto/include/corecrypto/cccmac.h diff --git a/Dependencies/corecrypto/ccder.h b/Dependencies/corecrypto/include/corecrypto/ccder.h similarity index 100% rename from Dependencies/corecrypto/ccder.h rename to Dependencies/corecrypto/include/corecrypto/ccder.h diff --git a/Dependencies/corecrypto/ccder_decode_eckey.h b/Dependencies/corecrypto/include/corecrypto/ccder_decode_eckey.h similarity index 100% rename from Dependencies/corecrypto/ccder_decode_eckey.h rename to Dependencies/corecrypto/include/corecrypto/ccder_decode_eckey.h diff --git a/Dependencies/corecrypto/ccder_encode_eckey.h b/Dependencies/corecrypto/include/corecrypto/ccder_encode_eckey.h similarity index 100% rename from Dependencies/corecrypto/ccder_encode_eckey.h rename to Dependencies/corecrypto/include/corecrypto/ccder_encode_eckey.h diff --git a/Dependencies/corecrypto/ccder_priv.h b/Dependencies/corecrypto/include/corecrypto/ccder_priv.h similarity index 100% rename from Dependencies/corecrypto/ccder_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccder_priv.h diff --git a/Dependencies/corecrypto/ccder_rsa.h b/Dependencies/corecrypto/include/corecrypto/ccder_rsa.h similarity index 100% rename from Dependencies/corecrypto/ccder_rsa.h rename to Dependencies/corecrypto/include/corecrypto/ccder_rsa.h diff --git a/Dependencies/corecrypto/ccdes.h b/Dependencies/corecrypto/include/corecrypto/ccdes.h similarity index 100% rename from Dependencies/corecrypto/ccdes.h rename to Dependencies/corecrypto/include/corecrypto/ccdes.h diff --git a/Dependencies/corecrypto/ccdh.h b/Dependencies/corecrypto/include/corecrypto/ccdh.h similarity index 100% rename from Dependencies/corecrypto/ccdh.h rename to Dependencies/corecrypto/include/corecrypto/ccdh.h diff --git a/Dependencies/corecrypto/ccdh_gp.h b/Dependencies/corecrypto/include/corecrypto/ccdh_gp.h similarity index 100% rename from Dependencies/corecrypto/ccdh_gp.h rename to Dependencies/corecrypto/include/corecrypto/ccdh_gp.h diff --git a/Dependencies/corecrypto/ccdh_priv.h b/Dependencies/corecrypto/include/corecrypto/ccdh_priv.h similarity index 100% rename from Dependencies/corecrypto/ccdh_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccdh_priv.h diff --git a/Dependencies/corecrypto/ccdigest.h b/Dependencies/corecrypto/include/corecrypto/ccdigest.h similarity index 100% rename from Dependencies/corecrypto/ccdigest.h rename to Dependencies/corecrypto/include/corecrypto/ccdigest.h diff --git a/Dependencies/corecrypto/ccdigest_priv.h b/Dependencies/corecrypto/include/corecrypto/ccdigest_priv.h similarity index 100% rename from Dependencies/corecrypto/ccdigest_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccdigest_priv.h diff --git a/Dependencies/corecrypto/ccdrbg.h b/Dependencies/corecrypto/include/corecrypto/ccdrbg.h similarity index 100% rename from Dependencies/corecrypto/ccdrbg.h rename to Dependencies/corecrypto/include/corecrypto/ccdrbg.h diff --git a/Dependencies/corecrypto/ccdrbg_factory.h b/Dependencies/corecrypto/include/corecrypto/ccdrbg_factory.h similarity index 100% rename from Dependencies/corecrypto/ccdrbg_factory.h rename to Dependencies/corecrypto/include/corecrypto/ccdrbg_factory.h diff --git a/Dependencies/corecrypto/ccdrbg_impl.h b/Dependencies/corecrypto/include/corecrypto/ccdrbg_impl.h similarity index 100% rename from Dependencies/corecrypto/ccdrbg_impl.h rename to Dependencies/corecrypto/include/corecrypto/ccdrbg_impl.h diff --git a/Dependencies/corecrypto/ccec.h b/Dependencies/corecrypto/include/corecrypto/ccec.h similarity index 100% rename from Dependencies/corecrypto/ccec.h rename to Dependencies/corecrypto/include/corecrypto/ccec.h diff --git a/Dependencies/corecrypto/ccec25519.h b/Dependencies/corecrypto/include/corecrypto/ccec25519.h similarity index 100% rename from Dependencies/corecrypto/ccec25519.h rename to Dependencies/corecrypto/include/corecrypto/ccec25519.h diff --git a/Dependencies/corecrypto/ccec25519_priv.h b/Dependencies/corecrypto/include/corecrypto/ccec25519_priv.h similarity index 100% rename from Dependencies/corecrypto/ccec25519_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccec25519_priv.h diff --git a/Dependencies/corecrypto/ccec_priv.h b/Dependencies/corecrypto/include/corecrypto/ccec_priv.h similarity index 100% rename from Dependencies/corecrypto/ccec_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccec_priv.h diff --git a/Dependencies/corecrypto/ccecies.h b/Dependencies/corecrypto/include/corecrypto/ccecies.h similarity index 100% rename from Dependencies/corecrypto/ccecies.h rename to Dependencies/corecrypto/include/corecrypto/ccecies.h diff --git a/Dependencies/corecrypto/ccecies_priv.h b/Dependencies/corecrypto/include/corecrypto/ccecies_priv.h similarity index 100% rename from Dependencies/corecrypto/ccecies_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccecies_priv.h diff --git a/Dependencies/corecrypto/cchkdf.h b/Dependencies/corecrypto/include/corecrypto/cchkdf.h similarity index 100% rename from Dependencies/corecrypto/cchkdf.h rename to Dependencies/corecrypto/include/corecrypto/cchkdf.h diff --git a/Dependencies/corecrypto/cchmac.h b/Dependencies/corecrypto/include/corecrypto/cchmac.h similarity index 100% rename from Dependencies/corecrypto/cchmac.h rename to Dependencies/corecrypto/include/corecrypto/cchmac.h diff --git a/Dependencies/corecrypto/ccmd2.h b/Dependencies/corecrypto/include/corecrypto/ccmd2.h similarity index 100% rename from Dependencies/corecrypto/ccmd2.h rename to Dependencies/corecrypto/include/corecrypto/ccmd2.h diff --git a/Dependencies/corecrypto/ccmd4.h b/Dependencies/corecrypto/include/corecrypto/ccmd4.h similarity index 100% rename from Dependencies/corecrypto/ccmd4.h rename to Dependencies/corecrypto/include/corecrypto/ccmd4.h diff --git a/Dependencies/corecrypto/ccmd5.h b/Dependencies/corecrypto/include/corecrypto/ccmd5.h similarity index 100% rename from Dependencies/corecrypto/ccmd5.h rename to Dependencies/corecrypto/include/corecrypto/ccmd5.h diff --git a/Dependencies/corecrypto/ccmode.h b/Dependencies/corecrypto/include/corecrypto/ccmode.h similarity index 100% rename from Dependencies/corecrypto/ccmode.h rename to Dependencies/corecrypto/include/corecrypto/ccmode.h diff --git a/Dependencies/corecrypto/ccmode_factory.h b/Dependencies/corecrypto/include/corecrypto/ccmode_factory.h similarity index 100% rename from Dependencies/corecrypto/ccmode_factory.h rename to Dependencies/corecrypto/include/corecrypto/ccmode_factory.h diff --git a/Dependencies/corecrypto/ccmode_impl.h b/Dependencies/corecrypto/include/corecrypto/ccmode_impl.h similarity index 100% rename from Dependencies/corecrypto/ccmode_impl.h rename to Dependencies/corecrypto/include/corecrypto/ccmode_impl.h diff --git a/Dependencies/corecrypto/ccmode_siv.h b/Dependencies/corecrypto/include/corecrypto/ccmode_siv.h similarity index 100% rename from Dependencies/corecrypto/ccmode_siv.h rename to Dependencies/corecrypto/include/corecrypto/ccmode_siv.h diff --git a/Dependencies/corecrypto/ccmode_siv_priv.h b/Dependencies/corecrypto/include/corecrypto/ccmode_siv_priv.h similarity index 100% rename from Dependencies/corecrypto/ccmode_siv_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccmode_siv_priv.h diff --git a/Dependencies/corecrypto/ccn.h b/Dependencies/corecrypto/include/corecrypto/ccn.h similarity index 100% rename from Dependencies/corecrypto/ccn.h rename to Dependencies/corecrypto/include/corecrypto/ccn.h diff --git a/Dependencies/corecrypto/ccn_priv.h b/Dependencies/corecrypto/include/corecrypto/ccn_priv.h similarity index 100% rename from Dependencies/corecrypto/ccn_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccn_priv.h diff --git a/Dependencies/corecrypto/ccnistkdf.h b/Dependencies/corecrypto/include/corecrypto/ccnistkdf.h similarity index 100% rename from Dependencies/corecrypto/ccnistkdf.h rename to Dependencies/corecrypto/include/corecrypto/ccnistkdf.h diff --git a/Dependencies/corecrypto/ccpad.h b/Dependencies/corecrypto/include/corecrypto/ccpad.h similarity index 100% rename from Dependencies/corecrypto/ccpad.h rename to Dependencies/corecrypto/include/corecrypto/ccpad.h diff --git a/Dependencies/corecrypto/ccpbkdf2.h b/Dependencies/corecrypto/include/corecrypto/ccpbkdf2.h similarity index 100% rename from Dependencies/corecrypto/ccpbkdf2.h rename to Dependencies/corecrypto/include/corecrypto/ccpbkdf2.h diff --git a/Dependencies/corecrypto/ccperf.h b/Dependencies/corecrypto/include/corecrypto/ccperf.h similarity index 100% rename from Dependencies/corecrypto/ccperf.h rename to Dependencies/corecrypto/include/corecrypto/ccperf.h diff --git a/Dependencies/corecrypto/ccprime.h b/Dependencies/corecrypto/include/corecrypto/ccprime.h similarity index 100% rename from Dependencies/corecrypto/ccprime.h rename to Dependencies/corecrypto/include/corecrypto/ccprime.h diff --git a/Dependencies/corecrypto/ccrc2.h b/Dependencies/corecrypto/include/corecrypto/ccrc2.h similarity index 100% rename from Dependencies/corecrypto/ccrc2.h rename to Dependencies/corecrypto/include/corecrypto/ccrc2.h diff --git a/Dependencies/corecrypto/ccrc4.h b/Dependencies/corecrypto/include/corecrypto/ccrc4.h similarity index 100% rename from Dependencies/corecrypto/ccrc4.h rename to Dependencies/corecrypto/include/corecrypto/ccrc4.h diff --git a/Dependencies/corecrypto/ccripemd.h b/Dependencies/corecrypto/include/corecrypto/ccripemd.h similarity index 100% rename from Dependencies/corecrypto/ccripemd.h rename to Dependencies/corecrypto/include/corecrypto/ccripemd.h diff --git a/Dependencies/corecrypto/ccrng.h b/Dependencies/corecrypto/include/corecrypto/ccrng.h similarity index 100% rename from Dependencies/corecrypto/ccrng.h rename to Dependencies/corecrypto/include/corecrypto/ccrng.h diff --git a/Dependencies/corecrypto/ccrng_drbg.h b/Dependencies/corecrypto/include/corecrypto/ccrng_drbg.h similarity index 100% rename from Dependencies/corecrypto/ccrng_drbg.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_drbg.h diff --git a/Dependencies/corecrypto/ccrng_ecfips_test.h b/Dependencies/corecrypto/include/corecrypto/ccrng_ecfips_test.h similarity index 100% rename from Dependencies/corecrypto/ccrng_ecfips_test.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_ecfips_test.h diff --git a/Dependencies/corecrypto/ccrng_pbkdf2_prng.h b/Dependencies/corecrypto/include/corecrypto/ccrng_pbkdf2_prng.h similarity index 100% rename from Dependencies/corecrypto/ccrng_pbkdf2_prng.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_pbkdf2_prng.h diff --git a/Dependencies/corecrypto/ccrng_priv.h b/Dependencies/corecrypto/include/corecrypto/ccrng_priv.h similarity index 100% rename from Dependencies/corecrypto/ccrng_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_priv.h diff --git a/Dependencies/corecrypto/ccrng_rsafips_test.h b/Dependencies/corecrypto/include/corecrypto/ccrng_rsafips_test.h similarity index 100% rename from Dependencies/corecrypto/ccrng_rsafips_test.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_rsafips_test.h diff --git a/Dependencies/corecrypto/ccrng_sequence.h b/Dependencies/corecrypto/include/corecrypto/ccrng_sequence.h similarity index 100% rename from Dependencies/corecrypto/ccrng_sequence.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_sequence.h diff --git a/Dependencies/corecrypto/ccrng_system.h b/Dependencies/corecrypto/include/corecrypto/ccrng_system.h similarity index 100% rename from Dependencies/corecrypto/ccrng_system.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_system.h diff --git a/Dependencies/corecrypto/ccrng_test.h b/Dependencies/corecrypto/include/corecrypto/ccrng_test.h similarity index 100% rename from Dependencies/corecrypto/ccrng_test.h rename to Dependencies/corecrypto/include/corecrypto/ccrng_test.h diff --git a/Dependencies/corecrypto/ccrsa.h b/Dependencies/corecrypto/include/corecrypto/ccrsa.h similarity index 100% rename from Dependencies/corecrypto/ccrsa.h rename to Dependencies/corecrypto/include/corecrypto/ccrsa.h diff --git a/Dependencies/corecrypto/ccrsa_priv.h b/Dependencies/corecrypto/include/corecrypto/ccrsa_priv.h similarity index 100% rename from Dependencies/corecrypto/ccrsa_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccrsa_priv.h diff --git a/Dependencies/corecrypto/ccsha1.h b/Dependencies/corecrypto/include/corecrypto/ccsha1.h similarity index 100% rename from Dependencies/corecrypto/ccsha1.h rename to Dependencies/corecrypto/include/corecrypto/ccsha1.h diff --git a/Dependencies/corecrypto/ccsha2.h b/Dependencies/corecrypto/include/corecrypto/ccsha2.h similarity index 100% rename from Dependencies/corecrypto/ccsha2.h rename to Dependencies/corecrypto/include/corecrypto/ccsha2.h diff --git a/Dependencies/corecrypto/ccsrp.h b/Dependencies/corecrypto/include/corecrypto/ccsrp.h similarity index 100% rename from Dependencies/corecrypto/ccsrp.h rename to Dependencies/corecrypto/include/corecrypto/ccsrp.h diff --git a/Dependencies/corecrypto/ccsrp_gp.h b/Dependencies/corecrypto/include/corecrypto/ccsrp_gp.h similarity index 100% rename from Dependencies/corecrypto/ccsrp_gp.h rename to Dependencies/corecrypto/include/corecrypto/ccsrp_gp.h diff --git a/Dependencies/corecrypto/cctest.h b/Dependencies/corecrypto/include/corecrypto/cctest.h similarity index 100% rename from Dependencies/corecrypto/cctest.h rename to Dependencies/corecrypto/include/corecrypto/cctest.h diff --git a/Dependencies/corecrypto/ccwrap.h b/Dependencies/corecrypto/include/corecrypto/ccwrap.h similarity index 100% rename from Dependencies/corecrypto/ccwrap.h rename to Dependencies/corecrypto/include/corecrypto/ccwrap.h diff --git a/Dependencies/corecrypto/ccz.h b/Dependencies/corecrypto/include/corecrypto/ccz.h similarity index 100% rename from Dependencies/corecrypto/ccz.h rename to Dependencies/corecrypto/include/corecrypto/ccz.h diff --git a/Dependencies/corecrypto/ccz_priv.h b/Dependencies/corecrypto/include/corecrypto/ccz_priv.h similarity index 100% rename from Dependencies/corecrypto/ccz_priv.h rename to Dependencies/corecrypto/include/corecrypto/ccz_priv.h diff --git a/Dependencies/corecrypto/cczp.h b/Dependencies/corecrypto/include/corecrypto/cczp.h similarity index 100% rename from Dependencies/corecrypto/cczp.h rename to Dependencies/corecrypto/include/corecrypto/cczp.h diff --git a/Dependencies/corecrypto/cczp_priv.h b/Dependencies/corecrypto/include/corecrypto/cczp_priv.h similarity index 100% rename from Dependencies/corecrypto/cczp_priv.h rename to Dependencies/corecrypto/include/corecrypto/cczp_priv.h diff --git a/Dependencies/corecrypto/fipspost.h b/Dependencies/corecrypto/include/corecrypto/fipspost.h similarity index 100% rename from Dependencies/corecrypto/fipspost.h rename to Dependencies/corecrypto/include/corecrypto/fipspost.h diff --git a/Dependencies/corecrypto/include/module.modulemap b/Dependencies/corecrypto/include/module.modulemap new file mode 100644 index 0000000..4d09cf4 --- /dev/null +++ b/Dependencies/corecrypto/include/module.modulemap @@ -0,0 +1,14 @@ +module CCoreCrypto [system] { + header "corecrypto/ccsrp.h" + header "corecrypto/ccdrbg.h" + header "corecrypto/ccsrp_gp.h" + header "corecrypto/ccdigest.h" + header "corecrypto/ccsha2.h" + header "corecrypto/ccpbkdf2.h" + header "corecrypto/cchmac.h" + header "corecrypto/ccaes.h" + header "corecrypto/ccpad.h" + header "corecrypto/ccn.h" + + export * +} diff --git a/Dependencies/corecrypto/module.modulemap b/Dependencies/corecrypto/module.modulemap deleted file mode 100644 index d112500..0000000 --- a/Dependencies/corecrypto/module.modulemap +++ /dev/null @@ -1,14 +0,0 @@ -module CoreCrypto [system] { - header "ccsrp.h" - header "ccdrbg.h" - header "ccsrp_gp.h" - header "ccdigest.h" - header "ccsha2.h" - header "ccpbkdf2.h" - header "cchmac.h" - header "ccaes.h" - header "ccpad.h" - header "ccn.h" - - export * -} diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..91ac34d --- /dev/null +++ b/Package.swift @@ -0,0 +1,176 @@ +// swift-tools-version:5.3 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import Foundation +import PackageDescription + +let package = Package( + name: "AltSign", + platforms: [ + .iOS(.v12), + .macOS(.v10_14), + ], + products: [ + .library( + name: "AltSign-Dynamic", + type: .dynamic, + targets: ["AltSign", "CAltSign", "CoreCrypto", "CCoreCrypto", "ldid", "ldid-core", "OpenSSL"] + ), + .library( + name: "AltSign-Static", + targets: ["AltSign", "CAltSign", "CoreCrypto", "CCoreCrypto", "ldid", "ldid-core"] + ), + ], + dependencies: [], + targets: [ + .binaryTarget( + name: "OpenSSL", + path: "Dependencies/OpenSSL/Frameworks/OpenSSL.xcframework" + ), + + .target( + name: "ldid-core", + path: "Dependencies/ldid", + exclude: [ + "ldid.hpp", + "ldid.cpp", + "version.sh", + "COPYING", + "control.sh", + "control", + "ios.sh", + "make.sh", + "deb.sh", + "plist.sh", + "libplist/include", + "libplist/include/Makefile.am", + "libplist/fuzz", + "libplist/cython", + "libplist/m4", + "libplist/test", + "libplist/tools", + "libplist/AUTHORS", + "libplist/autogen.sh", + "libplist/configure.ac", + "libplist/COPYING", + "libplist/COPYING.LESSER", + "libplist/doxygen.cfg.in", + "libplist/Makefile.am", + "libplist/NEWS", + "libplist/README.md", + "libplist/src/Makefile.am", + "libplist/src/libplist++.pc.in", + "libplist/src/libplist.pc.in", + "libplist/libcnary/cnary.c", + "libplist/libcnary/COPYING", + "libplist/libcnary/Makefile.am", + "libplist/libcnary/README", + ], + sources: [ + "lookup2.c", + "libplist/src", + "libplist/libcnary", + "libplist/libcnary/src", + ], + publicHeadersPath: "", + cSettings: [ + .headerSearchPath("libplist/include"), + .headerSearchPath("libplist/src"), + .headerSearchPath("libplist/libcnary/include"), + .headerSearchPath("../OpenSSL/ios/include"), + ] + ), + .target( + name: "ldid", + dependencies: ["ldid-core"], + path: "AltSign/ldid", + exclude: [ + "alt_ldid.hpp", + ], + sources: [ + "alt_ldid.cpp", + ], + publicHeadersPath: "", + cSettings: [ + .headerSearchPath("../../Dependencies/ldid"), + .headerSearchPath("../../Dependencies/ldid/libplist/include"), + .headerSearchPath("../../Dependencies/ldid/libplist/src"), + .headerSearchPath("../../Dependencies/ldid/libplist/libcnary/include"), + .headerSearchPath("../../Dependencies/OpenSSL/ios/include"), + ] + ), + + .target( + name: "CCoreCrypto", + path: "Dependencies/corecrypto", + exclude: [ + "Sources/CoreCryptoMacros.swift" + ], + cSettings: [ + .headerSearchPath("include/corecrypto"), + .define("CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1") + ] + ), + .target( + name: "CoreCrypto", + dependencies: ["CCoreCrypto"], + path: "Dependencies/corecrypto/Sources", + exclude: [ + "ccsrp.m" + ], + sources: [ + "CoreCryptoMacros.swift" + ], + cSettings: [ + .define("CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1") + ] + ), + + .target( + name: "CAltSign", + dependencies: ["CoreCrypto", "ldid"], + path: "", + exclude: [ + "AltSign/ldid/alt_ldid.cpp", + "AltSign/ldid/alt_ldid.hpp", + "AltSign/Sources", + "AltSign/include/module.modulemap", + "Dependencies/corecrypto", + "Dependencies/ldid", + "Dependencies/OpenSSL", + "Dependencies/minizip/iowin32.c", + "Dependencies/minizip/Makefile", + "Dependencies/minizip/minizip.c", + "Dependencies/minizip/miniunz.c", + "Dependencies/minizip/ChangeLogUnzip", + ], + resources: [.copy("AltSign/Resources/apple.pem")], + publicHeadersPath: "AltSign/include", + cSettings: [ + .headerSearchPath("AltSign/**"), + .headerSearchPath("AltSign/ldid"), + .headerSearchPath("Dependencies/minizip"), + .headerSearchPath("AltSign/Capabilities"), + .headerSearchPath("Dependencies/OpenSSL/ios/include"), + .headerSearchPath("Dependencies/ldid/libplist/include"), + .headerSearchPath("Dependencies/ldid"), + ], + linkerSettings: [ + .linkedFramework("UIKit", .when(platforms: [.iOS])), + .linkedFramework("Security"), + ] + ), + .target( + name: "AltSign", + dependencies: ["CAltSign"], + path: "AltSign/Sources", + cSettings: [ + .headerSearchPath("Dependencies/minizip"), + .define("CORECRYPTO_DONOT_USE_TRANSPARENT_UNION=1"), + ] + ) + ], + + cLanguageStandard: CLanguageStandard.gnu11, + cxxLanguageStandard: .cxx14 +) diff --git a/module.modulemap b/module.modulemap deleted file mode 100644 index 7a25d9f..0000000 --- a/module.modulemap +++ /dev/null @@ -1,12 +0,0 @@ -framework module AltSign { - umbrella header "AltSign.h" - export * - module * { export * } - - explicit module Private { - private header "ALTAppleAPI_Private.h" - private header "ALTModel+Internal.h" - private header "ALTCertificateRequest.h" - export * - } -} From 229e7d5751d9b56c284b283e64ede9b1468f6dc1 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 22 Sep 2020 13:41:20 -0700 Subject: [PATCH 06/20] Adds ALTProvisioningProfile initializer with NSDataReadingOptions Primarily used by AltDaemon to memory map provisioning profiles so it can remain under system daemon memory limit. --- AltSign/Model/Apple API/ALTProvisioningProfile.h | 2 ++ AltSign/Model/Apple API/ALTProvisioningProfile.m | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/AltSign/Model/Apple API/ALTProvisioningProfile.h b/AltSign/Model/Apple API/ALTProvisioningProfile.h index 01a6004..205d95e 100644 --- a/AltSign/Model/Apple API/ALTProvisioningProfile.h +++ b/AltSign/Model/Apple API/ALTProvisioningProfile.h @@ -36,7 +36,9 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, nonatomic, readonly) NSData *data; - (nullable instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER; + - (nullable instancetype)initWithURL:(NSURL *)fileURL; +- (nullable instancetype)initWithURL:(NSURL *)fileURL options:(NSDataReadingOptions)options error:(NSError *_Nullable *)error; - (instancetype)init NS_UNAVAILABLE; diff --git a/AltSign/Model/Apple API/ALTProvisioningProfile.m b/AltSign/Model/Apple API/ALTProvisioningProfile.m index 1db7a03..64d515b 100644 --- a/AltSign/Model/Apple API/ALTProvisioningProfile.m +++ b/AltSign/Model/Apple API/ALTProvisioningProfile.m @@ -44,7 +44,20 @@ - (nullable instancetype)initWithResponseDictionary:(NSDictionary *)responseDict - (nullable instancetype)initWithURL:(NSURL *)fileURL { - NSData *data = [NSData dataWithContentsOfURL:fileURL]; + NSError *error = nil; + self = [self initWithURL:fileURL options:0 error:&error]; + + if (self == nil) + { + NSLog(@"Error loading provisioning profile from disk: %@", error); + } + + return self; +} + +- (nullable instancetype)initWithURL:(NSURL *)fileURL options:(NSDataReadingOptions)options error:(NSError **)error +{ + NSData *data = [NSData dataWithContentsOfURL:fileURL options:options error:error]; if (data == nil) { return nil; From 5231c5ade2468c1363c23319bcdff645e76005c6 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 23 Sep 2020 11:46:15 -0700 Subject: [PATCH 07/20] Fixes crash when parsing some provisioning profiles Adds null-pointer checks to prevent dereferencing null pointer if profile is in unexpected format. --- AltSign/Model/Apple API/ALTProvisioningProfile.m | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/AltSign/Model/Apple API/ALTProvisioningProfile.m b/AltSign/Model/Apple API/ALTProvisioningProfile.m index 64d515b..b3b5168 100644 --- a/AltSign/Model/Apple API/ALTProvisioningProfile.m +++ b/AltSign/Model/Apple API/ALTProvisioningProfile.m @@ -231,25 +231,25 @@ - (id)copyWithZone:(NSZone *)zone /* Start parsing */ unsigned char *pointer = (unsigned char *)encodedData.bytes; - if (*pointer != ASN1_SEQUENCE) + if (!pointer || *pointer != ASN1_SEQUENCE) { return nil; } pointer = advanceToNextItem(pointer); - if (*pointer != ASN1_OBJECT_IDENTIFIER) + if (!pointer || *pointer != ASN1_OBJECT_IDENTIFIER) { return nil; } pointer = skipNextItem(pointer); - if (*pointer != ASN1_CONTAINER) + if (!pointer || *pointer != ASN1_CONTAINER) { return nil; } pointer = advanceToNextItem(pointer); - if (*pointer != ASN1_SEQUENCE) + if (!pointer || *pointer != ASN1_SEQUENCE) { return nil; } @@ -262,25 +262,25 @@ - (id)copyWithZone:(NSZone *)zone pointer = skipNextItem(pointer); } - if (*pointer != ASN1_SEQUENCE) + if (!pointer || *pointer != ASN1_SEQUENCE) { return nil; } pointer = advanceToNextItem(pointer); - if (*pointer != ASN1_OBJECT_IDENTIFIER) + if (!pointer || *pointer != ASN1_OBJECT_IDENTIFIER) { return nil; } pointer = skipNextItem(pointer); - if (*pointer != ASN1_CONTAINER) + if (!pointer || *pointer != ASN1_CONTAINER) { return nil; } pointer = advanceToNextItem(pointer); - if (*pointer != ASN1_OCTET_STRING) + if (!pointer || *pointer != ASN1_OCTET_STRING) { return nil; } From 7e5f899b7c694df4f9431c6c71224ce437e55049 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 7 Oct 2020 10:19:29 -0700 Subject: [PATCH 08/20] Fixes mismatched URLs when reading and applying entitlements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes “/var/“ vs “/private/var/“ mismatched URLs by first resolving symbolic links. --- AltSign/Signing/ALTSigner.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/AltSign/Signing/ALTSigner.mm b/AltSign/Signing/ALTSigner.mm index 54954ba..0c5798e 100644 --- a/AltSign/Signing/ALTSigner.mm +++ b/AltSign/Signing/ALTSigner.mm @@ -242,7 +242,8 @@ - (NSProgress *)signAppAtURL:(NSURL *)appURL provisioningProfiles:(NSArray Date: Thu, 15 Oct 2020 11:09:52 -0700 Subject: [PATCH 09/20] Fixes invalid code signature on iOS 14.2 --- Dependencies/ldid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/ldid b/Dependencies/ldid index 4f9427f..5d6dd84 160000 --- a/Dependencies/ldid +++ b/Dependencies/ldid @@ -1 +1 @@ -Subproject commit 4f9427f833b16bacfae248bd99e463d0e7cc0589 +Subproject commit 5d6dd8420526e503223acd86962e23a40cffa0e5 From 05b99b5d0326d1756f7e9c8dc6d31ee3dd415722 Mon Sep 17 00:00:00 2001 From: osy Date: Sun, 1 Nov 2020 18:41:22 -0800 Subject: [PATCH 10/20] Option to disable private entitlement copying On iOS 14, app entitlements are checked on installation. This makes it difficult to distribute a single IPA for both < iOS 13.5 with psychic paper and >= iOS 13.5 where the entitlements should be ignored. --- AltSign/Model/ALTApplication.h | 2 ++ AltSign/Signing/ALTSigner.mm | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/AltSign/Model/ALTApplication.h b/AltSign/Model/ALTApplication.h index a28b010..3dac7e9 100644 --- a/AltSign/Model/ALTApplication.h +++ b/AltSign/Model/ALTApplication.h @@ -40,6 +40,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, readonly) NSURL *fileURL; +@property (nonatomic, assign) BOOL hasPrivateEntitlements; + - (nullable instancetype)initWithFileURL:(NSURL *)fileURL; @end diff --git a/AltSign/Signing/ALTSigner.mm b/AltSign/Signing/ALTSigner.mm index 54954ba..5937143 100644 --- a/AltSign/Signing/ALTSigner.mm +++ b/AltSign/Signing/ALTSigner.mm @@ -214,18 +214,20 @@ - (NSProgress *)signAppAtURL:(NSURL *)appURL provisioningProfiles:(NSArray"]; - NSRange commentEndRange = [app.entitlementsString rangeOfString:@""]; - if (commentStartRange.location != NSNotFound && commentEndRange.location != NSNotFound && commentEndRange.location > commentStartRange.location) + if (app.hasPrivateEntitlements) { - // Most likely using private (commented out) entitlements to exploit Psychic Paper https://github.com/Siguza/psychicpaper - // Assume they know what they are doing and extract private entitlements to merge with profile's. - - NSRange commentRange = NSMakeRange(commentStartRange.location, (commentEndRange.location + commentEndRange.length) - commentStartRange.location); - NSString *commentedEntitlements = [app.entitlementsString substringWithRange:commentRange]; - - additionalEntitlements = commentedEntitlements; + NSRange commentStartRange = [app.entitlementsString rangeOfString:@""]; + NSRange commentEndRange = [app.entitlementsString rangeOfString:@""]; + if (commentStartRange.location != NSNotFound && commentEndRange.location != NSNotFound && commentEndRange.location > commentStartRange.location) + { + // Most likely using private (commented out) entitlements to exploit Psychic Paper https://github.com/Siguza/psychicpaper + // Assume they know what they are doing and extract private entitlements to merge with profile's. + + NSRange commentRange = NSMakeRange(commentStartRange.location, (commentEndRange.location + commentEndRange.length) - commentStartRange.location); + NSString *commentedEntitlements = [app.entitlementsString substringWithRange:commentRange]; + + additionalEntitlements = commentedEntitlements; + } } NSData *entitlementsData = [NSPropertyListSerialization dataWithPropertyList:profile.entitlements format:NSPropertyListXMLFormat_v1_0 options:0 error:&error]; From 2856e479c3447b361b98bfc2b5489841f997ebe1 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 3 Nov 2020 13:58:10 -0800 Subject: [PATCH 11/20] Updates ldid to support 0x20400 code signature version Allows apps to once again use JIT on iOS 14.2 and later. --- Dependencies/ldid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/ldid b/Dependencies/ldid index 5d6dd84..8d913c9 160000 --- a/Dependencies/ldid +++ b/Dependencies/ldid @@ -1 +1 @@ -Subproject commit 5d6dd8420526e503223acd86962e23a40cffa0e5 +Subproject commit 8d913c96b4b314f91aa808adf98f30157112f354 From b027505dcc228aa854272f55bb4fcd31cdf2d96e Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 11 Nov 2020 13:45:44 -0800 Subject: [PATCH 12/20] Adds Apple TV support --- AltSign/Apple API/ALTAppleAPI.h | 9 ++--- AltSign/Apple API/ALTAppleAPI.m | 58 ++++++++++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/AltSign/Apple API/ALTAppleAPI.h b/AltSign/Apple API/ALTAppleAPI.h index 30cfd46..5ad1e17 100644 --- a/AltSign/Apple API/ALTAppleAPI.h +++ b/AltSign/Apple API/ALTAppleAPI.h @@ -9,6 +9,7 @@ #import #import "ALTCapabilities.h" +#import "ALTDevice.h" @class ALTAppleAPISession; @@ -32,12 +33,12 @@ NS_ASSUME_NONNULL_BEGIN completionHandler:(void (^)(NSArray *_Nullable teams, NSError *_Nullable error))completionHandler; /* Devices */ -- (void)fetchDevicesForTeam:(ALTTeam *)team session:(ALTAppleAPISession *)session +- (void)fetchDevicesForTeam:(ALTTeam *)team types:(ALTDeviceType)types session:(ALTAppleAPISession *)session completionHandler:(void (^)(NSArray *_Nullable devices, NSError *_Nullable error))completionHandler; -- (void)registerDeviceWithName:(NSString *)name identifier:(NSString *)identifier team:(ALTTeam *)team session:(ALTAppleAPISession *)session +- (void)registerDeviceWithName:(NSString *)name identifier:(NSString *)identifier type:(ALTDeviceType)type team:(ALTTeam *)team session:(ALTAppleAPISession *)session completionHandler:(void (^)(ALTDevice *_Nullable device, NSError *_Nullable error))completionHandler -NS_SWIFT_NAME(registerDevice(name:identifier:team:session:completionHandler:)); +NS_SWIFT_NAME(registerDevice(name:identifier:type:team:session:completionHandler:)); /* Certificates */ - (void)fetchCertificatesForTeam:(ALTTeam *)team session:(ALTAppleAPISession *)session @@ -75,7 +76,7 @@ NS_SWIFT_NAME(revoke(_:for:session:completionHandler:)); completionHandler:(void (^)(BOOL success, NSError *_Nullable error))completionHandler; /* Provisioning Profiles */ -- (void)fetchProvisioningProfileForAppID:(ALTAppID *)appID team:(ALTTeam *)team session:(ALTAppleAPISession *)session +- (void)fetchProvisioningProfileForAppID:(ALTAppID *)appID deviceType:(ALTDeviceType)deviceType team:(ALTTeam *)team session:(ALTAppleAPISession *)session completionHandler:(void (^)(ALTProvisioningProfile *_Nullable provisioningProfile, NSError *_Nullable error))completionHandler; - (void)deleteProvisioningProfile:(ALTProvisioningProfile *)provisioningProfile forTeam:(ALTTeam *)team session:(ALTAppleAPISession *)session diff --git a/AltSign/Apple API/ALTAppleAPI.m b/AltSign/Apple API/ALTAppleAPI.m index 8febecb..e7a4baf 100644 --- a/AltSign/Apple API/ALTAppleAPI.m +++ b/AltSign/Apple API/ALTAppleAPI.m @@ -100,7 +100,8 @@ - (void)fetchTeamsForAccount:(ALTAccount *)account session:(ALTAppleAPISession * #pragma mark - Devices - -- (void)fetchDevicesForTeam:(ALTTeam *)team session:(ALTAppleAPISession *)session completionHandler:(void (^)(NSArray * _Nullable, NSError * _Nullable))completionHandler +- (void)fetchDevicesForTeam:(ALTTeam *)team types:(ALTDeviceType)types session:(ALTAppleAPISession *)session + completionHandler:(void (^)(NSArray *_Nullable devices, NSError *_Nullable error))completionHandler { NSURL *URL = [NSURL URLWithString:@"ios/listDevices.action" relativeToURL:self.baseURL]; @@ -128,6 +129,12 @@ - (void)fetchDevicesForTeam:(ALTTeam *)team session:(ALTAppleAPISession *)sessio return nil; } + if ((types & device.type) != device.type) + { + // Device type doesn't match the ones we requested, so ignore it. + continue; + } + [devices addObject:device]; } return devices; @@ -137,11 +144,32 @@ - (void)fetchDevicesForTeam:(ALTTeam *)team session:(ALTAppleAPISession *)sessio }]; } -- (void)registerDeviceWithName:(NSString *)name identifier:(NSString *)identifier team:(ALTTeam *)team session:(ALTAppleAPISession *)session completionHandler:(void (^)(ALTDevice * _Nullable, NSError * _Nullable))completionHandler +- (void)registerDeviceWithName:(NSString *)name identifier:(NSString *)identifier type:(ALTDeviceType)type team:(ALTTeam *)team session:(ALTAppleAPISession *)session + completionHandler:(void (^)(ALTDevice *_Nullable device, NSError *_Nullable error))completionHandler { NSURL *URL = [NSURL URLWithString:@"ios/addDevice.action" relativeToURL:self.baseURL]; - [self sendRequestWithURL:URL additionalParameters:@{@"deviceNumber": identifier, @"name": name} session:session team:team completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { + NSMutableDictionary *parameters = [@{ + @"deviceNumber": identifier, + @"name": name, + } mutableCopy]; + + switch (type) + { + case ALTDeviceTypeiPhone: + case ALTDeviceTypeiPad: + parameters[@"DTDK_Platform"] = @"ios"; + break; + + case ALTDeviceTypeAppleTV: + parameters[@"DTDK_Platform"] = @"tvos"; + parameters[@"subPlatform"] = @"tvOS"; + break; + + default: break; + } + + [self sendRequestWithURL:URL additionalParameters:parameters session:session team:team completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { if (responseDictionary == nil) { completionHandler(nil, requestError); @@ -583,11 +611,31 @@ - (void)assignAppID:(ALTAppID *)appID toGroups:(NSArray *)groups #pragma mark - Provisioning Profiles - -- (void)fetchProvisioningProfileForAppID:(ALTAppID *)appID team:(ALTTeam *)team session:(ALTAppleAPISession *)session completionHandler:(void (^)(ALTProvisioningProfile * _Nullable, NSError * _Nullable))completionHandler +- (void)fetchProvisioningProfileForAppID:(ALTAppID *)appID deviceType:(ALTDeviceType)deviceType team:(ALTTeam *)team session:(ALTAppleAPISession *)session + completionHandler:(void (^)(ALTProvisioningProfile *_Nullable provisioningProfile, NSError *_Nullable error))completionHandler { NSURL *URL = [NSURL URLWithString:@"ios/downloadTeamProvisioningProfile.action" relativeToURL:self.baseURL]; - [self sendRequestWithURL:URL additionalParameters:@{@"appIdId": appID.identifier} session:session team:team completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { + NSMutableDictionary *parameters = [@{ + @"appIdId": appID.identifier, + } mutableCopy]; + + switch (deviceType) + { + case ALTDeviceTypeiPhone: + case ALTDeviceTypeiPad: + parameters[@"DTDK_Platform"] = @"ios"; + break; + + case ALTDeviceTypeAppleTV: + parameters[@"DTDK_Platform"] = @"tvos"; + parameters[@"subPlatform"] = @"tvOS"; + break; + + default: break; + } + + [self sendRequestWithURL:URL additionalParameters:parameters session:session team:team completionHandler:^(NSDictionary *responseDictionary, NSError *requestError) { if (responseDictionary == nil) { completionHandler(nil, requestError); From 8ce86befc8621c290ef916f8694a0ffc3cd99f14 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Fri, 29 Jan 2021 15:21:15 -0600 Subject: [PATCH 13/20] Updates apple.pem to latest WWDR intermediate certificate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As of January 28, 2021, Apple began signing provisioning profiles with a new WWDR intermediate certificate. This broke all apps installed with AltStore after that date, but updating our local certificate to match Apple’s fixes the issue. --- AltSign/Resources/apple.pem | 75 ++++++++++++------------------------- 1 file changed, 24 insertions(+), 51 deletions(-) diff --git a/AltSign/Resources/apple.pem b/AltSign/Resources/apple.pem index 681ea31..dfe580c 100644 --- a/AltSign/Resources/apple.pem +++ b/AltSign/Resources/apple.pem @@ -1,53 +1,26 @@ -----BEGIN CERTIFICATE----- -MIIEuzCCA6OgAwIBAgIBAjANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzET -MBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMDYwNDI1MjE0 -MDM2WhcNMzUwMjA5MjE0MDM2WjBiMQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBw -bGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx -FjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDkkakJH5HbHkdQ6wXtXnmELes2oldMVeyLGYne+Uts9QerIjAC6Bg+ -+FAJ039BqJj50cpmnCRrEdCju+QbKsMflZ56DKRHi1vUFjczy8QPTc4UadHJGXL1 -XQ7Vf1+b8iUDulWPTV0N8WQ1IxVLFVkds5T39pyez1C6wVhQZ48ItCD3y6wsIG9w -tj8BMIy3Q88PnT3zK0koGsj+zrW5DtleHNbLPbU6rfQPDgCSC7EhFi501TwN22IW -q6NxkkdTVcGvL0Gz+PvjcM3mo0xFfh9Ma1CWQYnEdGILEINBhzOKgbEwWOxaBDKM -aLOPHd5lc/9nXmW8Sdh2nzMUZaF3lMktAgMBAAGjggF6MIIBdjAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUK9BpR5R2Cf70a40uQKb3 -R01/CF4wHwYDVR0jBBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wggERBgNVHSAE -ggEIMIIBBDCCAQAGCSqGSIb3Y2QFATCB8jAqBggrBgEFBQcCARYeaHR0cHM6Ly93 -d3cuYXBwbGUuY29tL2FwcGxlY2EvMIHDBggrBgEFBQcCAjCBthqBs1JlbGlhbmNl -IG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0 -YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBj -b25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZp -Y2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMA0GCSqGSIb3DQEBBQUAA4IBAQBc -NplMLXi37Yyb3PN3m/J20ncwT8EfhYOFG5k9RzfyqZtAjizUsZAS2L70c5vu0mQP -y3lPNNiiPvl4/2vIB+x9OYOLUyDTOMSxv5pPCmv/K/xZpwUJfBdAVhEedNO3iyM7 -R6PVbyTi69G3cN8PReEnyvFteO3ntRcXqNx+IjXKJdXZD9Zr1KIkIxH3oayPc4Fg -xhtbCS+SsvhESPBgOJ4V9T0mZyCKM2r3DYLP3uujL/lTaltkwGMzd/c6ByxW69oP -IQ7aunMZT7XZNn/Bh1XZp5m5MkL72NVxnn6hUrcbvZNCJBIqxw8dtk2cXmPIS4AX -UKqK1drk/NAJBzewdXUh ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIEIjCCAwqgAwIBAgIIAd68xDltoBAwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE -BhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTEz -MDIwNzIxNDg0N1oXDTIzMDIwNzIxNDg0N1owgZYxCzAJBgNVBAYTAlVTMRMwEQYD -VQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxv -cGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3Bl -ciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDKOFSmy1aqyCQ5SOmM7uxfuH8mkbw0U3rOfGOA -YXdkXqUHI7Y5/lAtFVZYcC1+xG7BSoU+L/DehBqhV8mvexj/avoVEkkVCBmsqtsq -Mu2WY2hSFT2Miuy/axiV4AOsAX2XBWfODoWVN2rtCbauZ81RZJ/GXNG8V25nNYB2 -NqSHgW44j9grFU57Jdhav06DwY3Sk9UacbVgnJ0zTlX5ElgMhrgWDcHld0WNUEi6 -Ky3klIXh6MSdxmilsKP8Z35wugJZS3dCkTm59c3hTO/AO0iMpuUhXf1qarunFjVg -0uat80YpyejDi+l5wGphZxWy8P3laLxiX27Pmd3vG2P+kmWrAgMBAAGjgaYwgaMw -HQYDVR0OBBYEFIgnFwmpthhgi+zruvZHWcVSVKO3MA8GA1UdEwEB/wQFMAMBAf8w -HwYDVR0jBBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wLgYDVR0fBCcwJTAjoCGg -H4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9vdC5jcmwwDgYDVR0PAQH/BAQDAgGG -MBAGCiqGSIb3Y2QGAgEEAgUAMA0GCSqGSIb3DQEBBQUAA4IBAQBPz+9Zviz1smwv -j+4ThzLoBTWobot9yWkMudkXvHcs1Gfi/ZptOllc34MBvbKuKmFysa/Nw0Uwj6OD -Dc4dR7Txk4qjdJukw5hyhzs+r0ULklS5MruQGFNrCk4QttkdUGwhgAqJTleMa1s8 -Pab93vcNIx0LSiaHP7qRkkykGRIZbVf1eliHe2iK5IaMSuviSRSqpd1VAKmuu0sw -ruGgsbwpgOYJd+W+NKIByn/c4grmO7i77LpilfMFY0GCzQ87HUyVpNur+cmV6U/k -TecmmYHpvPm0KdIBembhLoz2IYrF+Hjhga6/05Cdqa3zr/04GpZnMBxRpVzscYqC -tGwPDBUf +MIIEUTCCAzmgAwIBAgIQfK9pCiW3Of57m0R6wXjF7jANBgkqhkiG9w0BAQsFADBi +MQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBw +bGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3Qg +Q0EwHhcNMjAwMjE5MTgxMzQ3WhcNMzAwMjIwMDAwMDAwWjB1MUQwQgYDVQQDDDtB +cHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTELMAkGA1UECwwCRzMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJ +BgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2PWJ/KhZ +C4fHTJEuLVaQ03gdpDDppUjvC0O/LYT7JF1FG+XrWTYSXFRknmxiLbTGl8rMPPbW +BpH85QKmHGq0edVny6zpPwcR4YS8Rx1mjjmi6LRJ7TrS4RBgeo6TjMrA2gzAg9Dj ++ZHWp4zIwXPirkbRYp2SqJBgN31ols2N4Pyb+ni743uvLRfdW/6AWSN1F7gSwe0b +5TTO/iK1nkmw5VW/j4SiPKi6xYaVFuQAyZ8D0MyzOhZ71gVcnetHrg21LYwOaU1A +0EtMOwSejSGxrC5DVDDOwYqGlJhL32oNP/77HK6XF8J4CjDgXx9UO0m3JQAaN4LS +VpelUkl8YDib7wIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0j +BBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wRAYIKwYBBQUHAQEEODA2MDQGCCsG +AQUFBzABhihodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLWFwcGxlcm9vdGNh +MC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuYXBwbGUuY29tL3Jvb3QuY3Js +MB0GA1UdDgQWBBQJ/sAVkPmvZAqSErkmKGMMl+ynsjAOBgNVHQ8BAf8EBAMCAQYw +EAYKKoZIhvdjZAYCAQQCBQAwDQYJKoZIhvcNAQELBQADggEBAK1lE+j24IF3RAJH +Qr5fpTkg6mKp/cWQyXMT1Z6b0KoPjY3L7QHPbChAW8dVJEH4/M/BtSPp3Ozxb8qA +HXfCxGFJJWevD8o5Ja3T43rMMygNDi6hV0Bz+uZcrgZRKe3jhQxPYdwyFot30ETK +XXIDMUacrptAGvr04NM++i+MZp+XxFRZ79JI9AeZSWBZGcfdlNHAwWx/eCHvDOs7 +bJmCS1JgOLU5gm3sUjFTvg+RTElJdI+mUcuER04ddSduvfnSXPN/wmwLCTbiZOTC +NwMUGdXqapSqqdv+9poIZ4vvK7iqF0mDr8/LvOnP6pVxsLRFoszlh6oKw0E6eVza +UDSdlTs= -----END CERTIFICATE----- From 1c6f8c36a4e0b94696c853e26f214cc92f748676 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Mon, 1 Feb 2021 16:24:29 -0600 Subject: [PATCH 14/20] Embeds Apple certificates directly in code Allows AltSign to be linked as static library without additional resources. --- AltSign/Categories/NSBundle+Resources.h | 19 ----- AltSign/Categories/NSBundle+Resources.m | 24 ------ AltSign/Resources/apple.pem | 26 ------ AltSign/Signing/ALTSigner.mm | 86 +++++++++++++++++--- AltSign/include/AltSign/NSBundle+Resources.h | 1 - AltSign/include/module.modulemap | 1 - Package.swift | 1 - 7 files changed, 74 insertions(+), 84 deletions(-) delete mode 100644 AltSign/Categories/NSBundle+Resources.h delete mode 100644 AltSign/Categories/NSBundle+Resources.m delete mode 100644 AltSign/Resources/apple.pem delete mode 120000 AltSign/include/AltSign/NSBundle+Resources.h diff --git a/AltSign/Categories/NSBundle+Resources.h b/AltSign/Categories/NSBundle+Resources.h deleted file mode 100644 index 3c9b349..0000000 --- a/AltSign/Categories/NSBundle+Resources.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// NSBundle+Resources.h -// AltSign -// -// Created by Riley Testut on 9/2/20. -// Copyright © 2020 Riley Testut. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface NSBundle (Resources) - -@property (class, nonatomic, readonly) NSBundle *resourcesBundle; - -@end - -NS_ASSUME_NONNULL_END diff --git a/AltSign/Categories/NSBundle+Resources.m b/AltSign/Categories/NSBundle+Resources.m deleted file mode 100644 index 9ed579b..0000000 --- a/AltSign/Categories/NSBundle+Resources.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// NSBundle+Resources.m -// AltSign -// -// Created by Riley Testut on 9/2/20. -// Copyright © 2020 Riley Testut. All rights reserved. -// - -#import "NSBundle+Resources.h" - -#import - -@implementation NSBundle (Resources) - -+ (NSBundle *)resourcesBundle -{ -#if SWIFT_PACKAGE - return SWIFTPM_MODULE_BUNDLE; -#else - return [NSBundle bundleForClass:[ALTAppleAPI class]]; -#endif -} - -@end diff --git a/AltSign/Resources/apple.pem b/AltSign/Resources/apple.pem deleted file mode 100644 index dfe580c..0000000 --- a/AltSign/Resources/apple.pem +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEUTCCAzmgAwIBAgIQfK9pCiW3Of57m0R6wXjF7jANBgkqhkiG9w0BAQsFADBi -MQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBw -bGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3Qg -Q0EwHhcNMjAwMjE5MTgxMzQ3WhcNMzAwMjIwMDAwMDAwWjB1MUQwQgYDVQQDDDtB -cHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTELMAkGA1UECwwCRzMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJ -BgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2PWJ/KhZ -C4fHTJEuLVaQ03gdpDDppUjvC0O/LYT7JF1FG+XrWTYSXFRknmxiLbTGl8rMPPbW -BpH85QKmHGq0edVny6zpPwcR4YS8Rx1mjjmi6LRJ7TrS4RBgeo6TjMrA2gzAg9Dj -+ZHWp4zIwXPirkbRYp2SqJBgN31ols2N4Pyb+ni743uvLRfdW/6AWSN1F7gSwe0b -5TTO/iK1nkmw5VW/j4SiPKi6xYaVFuQAyZ8D0MyzOhZ71gVcnetHrg21LYwOaU1A -0EtMOwSejSGxrC5DVDDOwYqGlJhL32oNP/77HK6XF8J4CjDgXx9UO0m3JQAaN4LS -VpelUkl8YDib7wIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0j -BBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wRAYIKwYBBQUHAQEEODA2MDQGCCsG -AQUFBzABhihodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLWFwcGxlcm9vdGNh -MC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuYXBwbGUuY29tL3Jvb3QuY3Js -MB0GA1UdDgQWBBQJ/sAVkPmvZAqSErkmKGMMl+ynsjAOBgNVHQ8BAf8EBAMCAQYw -EAYKKoZIhvdjZAYCAQQCBQAwDQYJKoZIhvcNAQELBQADggEBAK1lE+j24IF3RAJH -Qr5fpTkg6mKp/cWQyXMT1Z6b0KoPjY3L7QHPbChAW8dVJEH4/M/BtSPp3Ozxb8qA -HXfCxGFJJWevD8o5Ja3T43rMMygNDi6hV0Bz+uZcrgZRKe3jhQxPYdwyFot30ETK -XXIDMUacrptAGvr04NM++i+MZp+XxFRZ79JI9AeZSWBZGcfdlNHAwWx/eCHvDOs7 -bJmCS1JgOLU5gm3sUjFTvg+RTElJdI+mUcuER04ddSduvfnSXPN/wmwLCTbiZOTC -NwMUGdXqapSqqdv+9poIZ4vvK7iqF0mDr8/LvOnP6pVxsLRFoszlh6oKw0E6eVza -UDSdlTs= ------END CERTIFICATE----- diff --git a/AltSign/Signing/ALTSigner.mm b/AltSign/Signing/ALTSigner.mm index 3e2f5ce..5149877 100644 --- a/AltSign/Signing/ALTSigner.mm +++ b/AltSign/Signing/ALTSigner.mm @@ -15,7 +15,6 @@ #import "NSFileManager+Apps.h" #import "NSError+ALTErrors.h" -#import "NSBundle+Resources.h" #import "alt_ldid.hpp" @@ -24,10 +23,66 @@ #include #include +const char *AppleRootCertificateData = "" +"-----BEGIN CERTIFICATE-----\n" +"MIIEuzCCA6OgAwIBAgIBAjANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzET\n" +"MBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlv\n" +"biBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMDYwNDI1MjE0\n" +"MDM2WhcNMzUwMjA5MjE0MDM2WjBiMQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBw\n" +"bGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx\n" +"FjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\n" +"ggEKAoIBAQDkkakJH5HbHkdQ6wXtXnmELes2oldMVeyLGYne+Uts9QerIjAC6Bg+\n" +"+FAJ039BqJj50cpmnCRrEdCju+QbKsMflZ56DKRHi1vUFjczy8QPTc4UadHJGXL1\n" +"XQ7Vf1+b8iUDulWPTV0N8WQ1IxVLFVkds5T39pyez1C6wVhQZ48ItCD3y6wsIG9w\n" +"tj8BMIy3Q88PnT3zK0koGsj+zrW5DtleHNbLPbU6rfQPDgCSC7EhFi501TwN22IW\n" +"q6NxkkdTVcGvL0Gz+PvjcM3mo0xFfh9Ma1CWQYnEdGILEINBhzOKgbEwWOxaBDKM\n" +"aLOPHd5lc/9nXmW8Sdh2nzMUZaF3lMktAgMBAAGjggF6MIIBdjAOBgNVHQ8BAf8E\n" +"BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUK9BpR5R2Cf70a40uQKb3\n" +"R01/CF4wHwYDVR0jBBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wggERBgNVHSAE\n" +"ggEIMIIBBDCCAQAGCSqGSIb3Y2QFATCB8jAqBggrBgEFBQcCARYeaHR0cHM6Ly93\n" +"d3cuYXBwbGUuY29tL2FwcGxlY2EvMIHDBggrBgEFBQcCAjCBthqBs1JlbGlhbmNl\n" +"IG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0\n" +"YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBj\n" +"b25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZp\n" +"Y2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMA0GCSqGSIb3DQEBBQUAA4IBAQBc\n" +"NplMLXi37Yyb3PN3m/J20ncwT8EfhYOFG5k9RzfyqZtAjizUsZAS2L70c5vu0mQP\n" +"y3lPNNiiPvl4/2vIB+x9OYOLUyDTOMSxv5pPCmv/K/xZpwUJfBdAVhEedNO3iyM7\n" +"R6PVbyTi69G3cN8PReEnyvFteO3ntRcXqNx+IjXKJdXZD9Zr1KIkIxH3oayPc4Fg\n" +"xhtbCS+SsvhESPBgOJ4V9T0mZyCKM2r3DYLP3uujL/lTaltkwGMzd/c6ByxW69oP\n" +"IQ7aunMZT7XZNn/Bh1XZp5m5MkL72NVxnn6hUrcbvZNCJBIqxw8dtk2cXmPIS4AX\n" +"UKqK1drk/NAJBzewdXUh\n" +"-----END CERTIFICATE-----\n"; + +const char *AppleWWDRCertificateData = "" +"-----BEGIN CERTIFICATE-----\n" +"MIIEUTCCAzmgAwIBAgIQfK9pCiW3Of57m0R6wXjF7jANBgkqhkiG9w0BAQsFADBi\n" +"MQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBw\n" +"bGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3Qg\n" +"Q0EwHhcNMjAwMjE5MTgxMzQ3WhcNMzAwMjIwMDAwMDAwWjB1MUQwQgYDVQQDDDtB\n" +"cHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9u\n" +"IEF1dGhvcml0eTELMAkGA1UECwwCRzMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJ\n" +"BgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2PWJ/KhZ\n" +"C4fHTJEuLVaQ03gdpDDppUjvC0O/LYT7JF1FG+XrWTYSXFRknmxiLbTGl8rMPPbW\n" +"BpH85QKmHGq0edVny6zpPwcR4YS8Rx1mjjmi6LRJ7TrS4RBgeo6TjMrA2gzAg9Dj\n" +"+ZHWp4zIwXPirkbRYp2SqJBgN31ols2N4Pyb+ni743uvLRfdW/6AWSN1F7gSwe0b\n" +"5TTO/iK1nkmw5VW/j4SiPKi6xYaVFuQAyZ8D0MyzOhZ71gVcnetHrg21LYwOaU1A\n" +"0EtMOwSejSGxrC5DVDDOwYqGlJhL32oNP/77HK6XF8J4CjDgXx9UO0m3JQAaN4LS\n" +"VpelUkl8YDib7wIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0j\n" +"BBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wRAYIKwYBBQUHAQEEODA2MDQGCCsG\n" +"AQUFBzABhihodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLWFwcGxlcm9vdGNh\n" +"MC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuYXBwbGUuY29tL3Jvb3QuY3Js\n" +"MB0GA1UdDgQWBBQJ/sAVkPmvZAqSErkmKGMMl+ynsjAOBgNVHQ8BAf8EBAMCAQYw\n" +"EAYKKoZIhvdjZAYCAQQCBQAwDQYJKoZIhvcNAQELBQADggEBAK1lE+j24IF3RAJH\n" +"Qr5fpTkg6mKp/cWQyXMT1Z6b0KoPjY3L7QHPbChAW8dVJEH4/M/BtSPp3Ozxb8qA\n" +"HXfCxGFJJWevD8o5Ja3T43rMMygNDi6hV0Bz+uZcrgZRKe3jhQxPYdwyFot30ETK\n" +"XXIDMUacrptAGvr04NM++i+MZp+XxFRZ79JI9AeZSWBZGcfdlNHAwWx/eCHvDOs7\n" +"bJmCS1JgOLU5gm3sUjFTvg+RTElJdI+mUcuER04ddSduvfnSXPN/wmwLCTbiZOTC\n" +"NwMUGdXqapSqqdv+9poIZ4vvK7iqF0mDr8/LvOnP6pVxsLRFoszlh6oKw0E6eVza\n" +"UDSdlTs=\n" +"-----END CERTIFICATE-----\n"; + std::string CertificatesContent(ALTCertificate *altCertificate) { - NSURL *pemURL = [NSBundle.resourcesBundle URLForResource:@"apple" withExtension:@"pem"]; - NSData *altCertificateP12Data = [altCertificate p12Data]; BIO *inputP12Buffer = BIO_new(BIO_s_mem()); @@ -40,14 +95,21 @@ X509 *certificate; PKCS12_parse(inputP12, "", &key, &certificate, NULL); - // Open .pem from file. - auto pemFile = fopen(pemURL.path.fileSystemRepresentation, "r"); - - // Extract certificates from .pem. + // Prepare certificate chain of trust. auto *certificates = sk_X509_new(NULL); - while (auto certificate = PEM_read_X509(pemFile, NULL, NULL, NULL)) + + BIO *rootCertificateBuffer = BIO_new_mem_buf(AppleRootCertificateData, strlen(AppleRootCertificateData)); + auto rootCertificate = PEM_read_bio_X509(rootCertificateBuffer, NULL, NULL, NULL); + if (rootCertificate != NULL) { - sk_X509_push(certificates, certificate); + sk_X509_push(certificates, rootCertificate); + } + + BIO *wwdrCertificateBuffer = BIO_new_mem_buf(AppleWWDRCertificateData, strlen(AppleWWDRCertificateData)); + auto wwdrCertificate = PEM_read_bio_X509(wwdrCertificateBuffer, NULL, NULL, NULL); + if (wwdrCertificate != NULL) + { + sk_X509_push(certificates, wwdrCertificate); } // Create new .p12 in memory with private key and certificate chain. @@ -66,12 +128,12 @@ PKCS12_free(inputP12); PKCS12_free(outputP12); + BIO_free(wwdrCertificateBuffer); + BIO_free(rootCertificateBuffer); + BIO_free(inputP12Buffer); BIO_free(outputP12Buffer); - // Close files - fclose(pemFile); - std::string output((const char *)p12Data.bytes, (size_t)p12Data.length); return output; } diff --git a/AltSign/include/AltSign/NSBundle+Resources.h b/AltSign/include/AltSign/NSBundle+Resources.h deleted file mode 120000 index dcb1fb7..0000000 --- a/AltSign/include/AltSign/NSBundle+Resources.h +++ /dev/null @@ -1 +0,0 @@ -../../Categories/NSBundle+Resources.h \ No newline at end of file diff --git a/AltSign/include/module.modulemap b/AltSign/include/module.modulemap index 4c1c24b..7af9cab 100644 --- a/AltSign/include/module.modulemap +++ b/AltSign/include/module.modulemap @@ -6,7 +6,6 @@ module CAltSign { header "AltSign/ALTAppleAPI_Private.h" header "AltSign/ALTModel+Internal.h" header "AltSign/ALTCertificateRequest.h" - header "AltSign/NSBundle+Resources.h" export * } } diff --git a/Package.swift b/Package.swift index 91ac34d..9b54e36 100644 --- a/Package.swift +++ b/Package.swift @@ -144,7 +144,6 @@ let package = Package( "Dependencies/minizip/miniunz.c", "Dependencies/minizip/ChangeLogUnzip", ], - resources: [.copy("AltSign/Resources/apple.pem")], publicHeadersPath: "AltSign/include", cSettings: [ .headerSearchPath("AltSign/**"), From 74c08fc9dd3801a87c3716688d6ac0acabefea79 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Mon, 1 Feb 2021 20:42:59 -0600 Subject: [PATCH 15/20] Detects correct WWDR intermediate certificate Some Apple IDs (especially paid developer accounts) are still using the legacy WWDR certificate, so we now choose the correct one to use at runtime. --- AltSign/Signing/ALTSigner.mm | 44 ++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/AltSign/Signing/ALTSigner.mm b/AltSign/Signing/ALTSigner.mm index 5149877..a286a01 100644 --- a/AltSign/Signing/ALTSigner.mm +++ b/AltSign/Signing/ALTSigner.mm @@ -81,6 +81,33 @@ "UDSdlTs=\n" "-----END CERTIFICATE-----\n"; +const char *LegacyAppleWWDRCertificateData = "" +"-----BEGIN CERTIFICATE-----\n" +"MIIEIjCCAwqgAwIBAgIIAd68xDltoBAwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE\n" +"BhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRp\n" +"ZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTEz\n" +"MDIwNzIxNDg0N1oXDTIzMDIwNzIxNDg0N1owgZYxCzAJBgNVBAYTAlVTMRMwEQYD\n" +"VQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxv\n" +"cGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3Bl\n" +"ciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3\n" +"DQEBAQUAA4IBDwAwggEKAoIBAQDKOFSmy1aqyCQ5SOmM7uxfuH8mkbw0U3rOfGOA\n" +"YXdkXqUHI7Y5/lAtFVZYcC1+xG7BSoU+L/DehBqhV8mvexj/avoVEkkVCBmsqtsq\n" +"Mu2WY2hSFT2Miuy/axiV4AOsAX2XBWfODoWVN2rtCbauZ81RZJ/GXNG8V25nNYB2\n" +"NqSHgW44j9grFU57Jdhav06DwY3Sk9UacbVgnJ0zTlX5ElgMhrgWDcHld0WNUEi6\n" +"Ky3klIXh6MSdxmilsKP8Z35wugJZS3dCkTm59c3hTO/AO0iMpuUhXf1qarunFjVg\n" +"0uat80YpyejDi+l5wGphZxWy8P3laLxiX27Pmd3vG2P+kmWrAgMBAAGjgaYwgaMw\n" +"HQYDVR0OBBYEFIgnFwmpthhgi+zruvZHWcVSVKO3MA8GA1UdEwEB/wQFMAMBAf8w\n" +"HwYDVR0jBBgwFoAUK9BpR5R2Cf70a40uQKb3R01/CF4wLgYDVR0fBCcwJTAjoCGg\n" +"H4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9vdC5jcmwwDgYDVR0PAQH/BAQDAgGG\n" +"MBAGCiqGSIb3Y2QGAgEEAgUAMA0GCSqGSIb3DQEBBQUAA4IBAQBPz+9Zviz1smwv\n" +"j+4ThzLoBTWobot9yWkMudkXvHcs1Gfi/ZptOllc34MBvbKuKmFysa/Nw0Uwj6OD\n" +"Dc4dR7Txk4qjdJukw5hyhzs+r0ULklS5MruQGFNrCk4QttkdUGwhgAqJTleMa1s8\n" +"Pab93vcNIx0LSiaHP7qRkkykGRIZbVf1eliHe2iK5IaMSuviSRSqpd1VAKmuu0sw\n" +"ruGgsbwpgOYJd+W+NKIByn/c4grmO7i77LpilfMFY0GCzQ87HUyVpNur+cmV6U/k\n" +"TecmmYHpvPm0KdIBembhLoz2IYrF+Hjhga6/05Cdqa3zr/04GpZnMBxRpVzscYqC\n" +"tGwPDBUf\n" +"-----END CERTIFICATE-----\n"; + std::string CertificatesContent(ALTCertificate *altCertificate) { NSData *altCertificateP12Data = [altCertificate p12Data]; @@ -98,14 +125,27 @@ // Prepare certificate chain of trust. auto *certificates = sk_X509_new(NULL); - BIO *rootCertificateBuffer = BIO_new_mem_buf(AppleRootCertificateData, strlen(AppleRootCertificateData)); + BIO *rootCertificateBuffer = BIO_new_mem_buf(AppleRootCertificateData, (int)strlen(AppleRootCertificateData)); + BIO *wwdrCertificateBuffer = nil; + + unsigned long issuerHash = X509_issuer_name_hash(certificate); + if (issuerHash == 0x817d2f7a) + { + // Use legacy WWDR certificate. + wwdrCertificateBuffer = BIO_new_mem_buf(LegacyAppleWWDRCertificateData, (int)strlen(LegacyAppleWWDRCertificateData)); + } + else + { + // Use latest WWDR certificate. + wwdrCertificateBuffer = BIO_new_mem_buf(AppleWWDRCertificateData, (int)strlen(AppleWWDRCertificateData)); + } + auto rootCertificate = PEM_read_bio_X509(rootCertificateBuffer, NULL, NULL, NULL); if (rootCertificate != NULL) { sk_X509_push(certificates, rootCertificate); } - BIO *wwdrCertificateBuffer = BIO_new_mem_buf(AppleWWDRCertificateData, strlen(AppleWWDRCertificateData)); auto wwdrCertificate = PEM_read_bio_X509(wwdrCertificateBuffer, NULL, NULL, NULL); if (wwdrCertificate != NULL) { From 451588f56f8581162e70deff070a7bc743d657db Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Fri, 26 Feb 2021 13:39:40 -0600 Subject: [PATCH 16/20] Adds ALTApplication.bundle --- AltSign/Model/ALTApplication.h | 1 + AltSign/Model/ALTApplication.mm | 15 ++++----------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/AltSign/Model/ALTApplication.h b/AltSign/Model/ALTApplication.h index 3dac7e9..48d2151 100644 --- a/AltSign/Model/ALTApplication.h +++ b/AltSign/Model/ALTApplication.h @@ -39,6 +39,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, readonly) NSString *entitlementsString; @property (nonatomic, copy, readonly) NSURL *fileURL; +@property (nonatomic, readonly) NSBundle *bundle; @property (nonatomic, assign) BOOL hasPrivateEntitlements; diff --git a/AltSign/Model/ALTApplication.mm b/AltSign/Model/ALTApplication.mm index 2c98e67..be48eb7 100644 --- a/AltSign/Model/ALTApplication.mm +++ b/AltSign/Model/ALTApplication.mm @@ -118,8 +118,9 @@ - (instancetype)initWithFileURL:(NSURL *)fileURL { iconName = infoDictionary[@"CFBundleIconFile"]; } - } + } + _bundle = bundle; _fileURL = [fileURL copy]; _name = [name copy]; _bundleIdentifier = [bundleIdentifier copy]; @@ -135,19 +136,13 @@ - (instancetype)initWithFileURL:(NSURL *)fileURL #if TARGET_OS_IPHONE - (UIImage *)icon { - NSBundle *bundle = [NSBundle bundleWithURL:self.fileURL]; - if (bundle == nil) - { - return nil; - } - NSString *iconName = self.iconName; if (iconName == nil) { return nil; } - UIImage *icon = [UIImage imageNamed:iconName inBundle:bundle compatibleWithTraitCollection:nil]; + UIImage *icon = [UIImage imageNamed:iconName inBundle:self.bundle compatibleWithTraitCollection:nil]; return icon; } #endif @@ -205,11 +200,9 @@ - (ALTProvisioningProfile *)provisioningProfile - (NSSet *)appExtensions { - NSBundle *bundle = [NSBundle bundleWithURL:self.fileURL]; - NSMutableSet *appExtensions = [NSMutableSet set]; - NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtURL:bundle.builtInPlugInsURL includingPropertiesForKeys:nil options:NSDirectoryEnumerationSkipsSubdirectoryDescendants errorHandler:nil]; + NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtURL:self.bundle.builtInPlugInsURL includingPropertiesForKeys:nil options:NSDirectoryEnumerationSkipsSubdirectoryDescendants errorHandler:nil]; for (NSURL *fileURL in enumerator) { if (![fileURL.pathExtension.lowercaseString isEqualToString:@"appex"]) From ae857dc3783161b48b02adf69db4a477b99cf39b Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 19 May 2021 15:58:19 -0700 Subject: [PATCH 17/20] Adds ALTDevice.osVersion --- AltSign/Model/Apple API/ALTDevice.h | 21 +++++++++++++++++++++ AltSign/Model/Apple API/ALTDevice.m | 26 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/AltSign/Model/Apple API/ALTDevice.h b/AltSign/Model/Apple API/ALTDevice.h index e06db85..985ae46 100644 --- a/AltSign/Model/Apple API/ALTDevice.h +++ b/AltSign/Model/Apple API/ALTDevice.h @@ -8,6 +8,26 @@ #import +// NS_SWIFT_NAME can only prefix types with types from same module. +// Re-declare NSOperatingSystemVersion as _NSOperatingSystemVersion, +// which will still map to OperatingSystemVersion in Swift. +typedef NSOperatingSystemVersion _NSOperatingSystemVersion; + +#ifdef __cplusplus +extern "C" { +#endif + +NS_SWIFT_NAME(_NSOperatingSystemVersion.unknown) +extern const NSOperatingSystemVersion NSOperatingSystemVersionUnknown; + +NS_SWIFT_NAME(NSOperatingSystemVersion.init(string:)) +extern NSOperatingSystemVersion NSOperatingSystemVersionFromString(NSString *osVersionString); + +#ifdef __cplusplus +} +#endif + + typedef NS_OPTIONS(NSInteger, ALTDeviceType) { ALTDeviceTypeiPhone NS_SWIFT_NAME(iphone) = 1 << 1, @@ -25,6 +45,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy) NSString *name; @property (nonatomic, copy) NSString *identifier; @property (nonatomic) ALTDeviceType type; +@property (nonatomic) NSOperatingSystemVersion osVersion; - (instancetype)init NS_UNAVAILABLE; - (instancetype)initWithName:(NSString *)name identifier:(NSString *)identifier type:(ALTDeviceType)type NS_DESIGNATED_INITIALIZER; diff --git a/AltSign/Model/Apple API/ALTDevice.m b/AltSign/Model/Apple API/ALTDevice.m index bea36cd..365ae7d 100644 --- a/AltSign/Model/Apple API/ALTDevice.m +++ b/AltSign/Model/Apple API/ALTDevice.m @@ -8,6 +8,31 @@ #import "ALTDevice.h" +#ifdef __cplusplus +extern "C" { +#endif + +NSOperatingSystemVersion const NSOperatingSystemVersionUnknown = (NSOperatingSystemVersion){0, 0, 0}; + +NSOperatingSystemVersion NSOperatingSystemVersionFromString(NSString *osVersionString) +{ + NSArray *versionComponents = [osVersionString componentsSeparatedByString:@"."]; + + NSInteger majorVersion = [versionComponents.firstObject integerValue]; + NSInteger minorVersion = (versionComponents.count > 1) ? [versionComponents[1] integerValue] : 0; + NSInteger patchVersion = (versionComponents.count > 2) ? [versionComponents[2] integerValue] : 0; + + NSOperatingSystemVersion osVersion; + osVersion.majorVersion = majorVersion; + osVersion.minorVersion = minorVersion; + osVersion.patchVersion = patchVersion; + return osVersion; +} + +#ifdef __cplusplus +} +#endif + @implementation ALTDevice - (instancetype)initWithName:(NSString *)name identifier:(NSString *)identifier type:(ALTDeviceType)type @@ -82,6 +107,7 @@ - (NSUInteger)hash - (nonnull id)copyWithZone:(nullable NSZone *)zone { ALTDevice *device = [[ALTDevice alloc] initWithName:self.name identifier:self.identifier type:self.type]; + device.osVersion = self.osVersion; return device; } From 5dc5d72f3954ea86b2cd0b4e570490424d3f83b5 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Thu, 20 May 2021 12:50:22 -0700 Subject: [PATCH 18/20] Adds -[NSFileManager unzipArchiveAtURL:] to unzip non-app archives --- ...FileManager+Apps.h => NSFileManager+Zip.h} | 6 +- ...FileManager+Apps.m => NSFileManager+Zip.m} | 55 +++++++++++-------- AltSign/Signing/ALTSigner.mm | 2 +- AltSign/include/AltSign.h | 2 +- AltSign/include/AltSign/NSFileManager+Apps.h | 1 - AltSign/include/AltSign/NSFileManager+Zip.h | 1 + 6 files changed, 38 insertions(+), 29 deletions(-) rename AltSign/Categories/{NSFileManager+Apps.h => NSFileManager+Zip.h} (71%) rename AltSign/Categories/{NSFileManager+Apps.m => NSFileManager+Zip.m} (93%) delete mode 120000 AltSign/include/AltSign/NSFileManager+Apps.h create mode 120000 AltSign/include/AltSign/NSFileManager+Zip.h diff --git a/AltSign/Categories/NSFileManager+Apps.h b/AltSign/Categories/NSFileManager+Zip.h similarity index 71% rename from AltSign/Categories/NSFileManager+Apps.h rename to AltSign/Categories/NSFileManager+Zip.h index 488b003..39aaa3e 100644 --- a/AltSign/Categories/NSFileManager+Apps.h +++ b/AltSign/Categories/NSFileManager+Zip.h @@ -1,5 +1,5 @@ // -// NSFileManager+Apps.h +// NSFileManager+Zip.h // AltSign // // Created by Riley Testut on 5/28/19. @@ -10,7 +10,9 @@ NS_ASSUME_NONNULL_BEGIN -@interface NSFileManager (Apps) +@interface NSFileManager (Zip) + +- (BOOL)unzipArchiveAtURL:(NSURL *)archiveURL toDirectory:(NSURL *)directoryURL error:(NSError **)error; - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)directoryURL error:(NSError **)error; - (nullable NSURL *)zipAppBundleAtURL:(NSURL *)appBundleURL error:(NSError **)error; diff --git a/AltSign/Categories/NSFileManager+Apps.m b/AltSign/Categories/NSFileManager+Zip.m similarity index 93% rename from AltSign/Categories/NSFileManager+Apps.m rename to AltSign/Categories/NSFileManager+Zip.m index d2da4cf..46a0a6b 100644 --- a/AltSign/Categories/NSFileManager+Apps.m +++ b/AltSign/Categories/NSFileManager+Zip.m @@ -1,12 +1,12 @@ // -// NSFileManager+Apps.m +// NSFileManager+Zip.m // AltSign // // Created by Riley Testut on 5/28/19. // Copyright © 2019 Riley Testut. All rights reserved. // -#import "NSFileManager+Apps.h" +#import "NSFileManager+Zip.h" #import "NSError+ALTErrors.h" @@ -20,15 +20,15 @@ #define READ_BUFFER_SIZE 8192 #define MAX_FILENAME 512 -@implementation NSFileManager (Apps) +@implementation NSFileManager (Zip) -- (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)directoryURL error:(NSError **)error +- (BOOL)unzipArchiveAtURL:(NSURL *)archiveURL toDirectory:(NSURL *)directoryURL error:(NSError **)error { - unzFile zipFile = unzOpen(ipaURL.fileSystemRepresentation); + unzFile zipFile = unzOpen(archiveURL.fileSystemRepresentation); if (zipFile == NULL) { - *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileNoSuchFileError userInfo:@{NSURLErrorKey: ipaURL}]; - return nil; + *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileNoSuchFileError userInfo:@{NSURLErrorKey: archiveURL}]; + return NO; } FILE *outputFile = nil; @@ -46,10 +46,10 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir unz_global_info zipInfo; if (unzGetGlobalInfo(zipFile, &zipInfo) != UNZ_OK) { - *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadCorruptFileError userInfo:@{NSURLErrorKey: ipaURL}]; + *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadCorruptFileError userInfo:@{NSURLErrorKey: archiveURL}]; finish(); - return nil; + return NO; } NSProgress *progress = [NSProgress progressWithTotalUnitCount:zipInfo.number_entry]; @@ -63,10 +63,10 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir if (unzGetCurrentFileInfo(zipFile, &info, cFilename, ALTMaxFilenameLength, NULL, 0, NULL, 0) != UNZ_OK) { - *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:@{NSURLErrorKey: ipaURL}]; + *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:@{NSURLErrorKey: archiveURL}]; finish(); - return nil; + return NO; } NSString *filename = [[NSString alloc] initWithCString:cFilename encoding:NSUTF8StringEncoding]; @@ -79,7 +79,7 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:@{NSFilePathErrorKey: filename}]; finish(); - return nil; + return NO; } } @@ -106,18 +106,18 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir if (directoryError != nil) { *error = directoryError; - return nil; + return NO; } } else { - // File + // File if (unzOpenCurrentFile(zipFile) != UNZ_OK) { *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:@{NSURLErrorKey: fileURL}]; finish(); - return nil; + return NO; } NSURL *parentDirectory = [fileURL URLByDeletingLastPathComponent]; @@ -127,7 +127,7 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir if (directoryError != nil) { *error = directoryError; - return nil; + return NO; } } @@ -138,7 +138,7 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileWriteUnknownError userInfo:@{NSURLErrorKey: fileURL, NSUnderlyingErrorKey: underlyingError}]; finish(); - return nil; + return NO; } int result = UNZ_OK; @@ -152,7 +152,7 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:@{NSURLErrorKey: fileURL}]; finish(); - return nil; + return NO; } size_t count = fwrite(buffer, result, 1, outputFile); @@ -161,7 +161,7 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileWriteUnknownError userInfo:@{NSURLErrorKey: fileURL}]; finish(); - return nil; + return NO; } } while (result > 0); @@ -170,7 +170,7 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir if (![self setAttributes:@{NSFilePosixPermissions: @(permissions)} ofItemAtPath:fileURL.path error:error]) { finish(); - return nil; + return NO; } fclose(outputFile); @@ -188,18 +188,27 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownError userInfo:@{NSURLErrorKey: fileURL}]; finish(); - return nil; + return NO; } } } finish(); + return YES; +} + +- (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)directoryURL error:(NSError **)error +{ + if (![self unzipArchiveAtURL:ipaURL toDirectory:directoryURL error:error]) + { + return nil; + } + NSURL *payloadDirectory = [directoryURL URLByAppendingPathComponent:@"Payload"]; NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:payloadDirectory.path error:error]; if (contents == nil) { - finish(); return nil; } @@ -212,7 +221,6 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir if (![[NSFileManager defaultManager] moveItemAtURL:appBundleURL toURL:outputURL error:error]) { - finish(); return nil; } @@ -221,7 +229,6 @@ - (nullable NSURL *)unzipAppBundleAtURL:(NSURL *)ipaURL toDirectory:(NSURL *)dir { *error = deleteError; - finish(); return nil; } diff --git a/AltSign/Signing/ALTSigner.mm b/AltSign/Signing/ALTSigner.mm index a286a01..5c06aaf 100644 --- a/AltSign/Signing/ALTSigner.mm +++ b/AltSign/Signing/ALTSigner.mm @@ -13,7 +13,7 @@ #import "ALTProvisioningProfile.h" #import "ALTApplication.h" -#import "NSFileManager+Apps.h" +#import "NSFileManager+Zip.h" #import "NSError+ALTErrors.h" #import "alt_ldid.hpp" diff --git a/AltSign/include/AltSign.h b/AltSign/include/AltSign.h index 1680c67..2fd4228 100644 --- a/AltSign/include/AltSign.h +++ b/AltSign/include/AltSign.h @@ -26,7 +26,7 @@ // Categories #import -#import +#import // Capabilities #import diff --git a/AltSign/include/AltSign/NSFileManager+Apps.h b/AltSign/include/AltSign/NSFileManager+Apps.h deleted file mode 120000 index 50ff649..0000000 --- a/AltSign/include/AltSign/NSFileManager+Apps.h +++ /dev/null @@ -1 +0,0 @@ -../../Categories/NSFileManager+Apps.h \ No newline at end of file diff --git a/AltSign/include/AltSign/NSFileManager+Zip.h b/AltSign/include/AltSign/NSFileManager+Zip.h new file mode 120000 index 0000000..21fbacb --- /dev/null +++ b/AltSign/include/AltSign/NSFileManager+Zip.h @@ -0,0 +1 @@ +../../Categories/NSFileManager+Zip.h \ No newline at end of file From 12389079187b574d507cc994176c2419df1c607d Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Fri, 11 Jun 2021 11:35:56 -0700 Subject: [PATCH 19/20] =?UTF-8?q?Fixes=20=E2=80=9Cunsupported=20code=20sig?= =?UTF-8?q?nature=20version=E2=80=9D=20error=20on=20iOS=2015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit iOS 15 requires a new code signature that embeds the raw entitlements directly into the binary, which coexists with the previous property list-based entitlements format. --- Dependencies/ldid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/ldid b/Dependencies/ldid index 8d913c9..2bd9970 160000 --- a/Dependencies/ldid +++ b/Dependencies/ldid @@ -1 +1 @@ -Subproject commit 8d913c96b4b314f91aa808adf98f30157112f354 +Subproject commit 2bd997097f3d88527f7ef6da1d46801a6bb96eac From 5257dd59c1f33b92e3f386e9d6fd61173515c52a Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Fri, 23 Jul 2021 14:00:29 -0700 Subject: [PATCH 20/20] Adds ALTProvisioningProfile.teamName --- AltSign/Model/Apple API/ALTProvisioningProfile.h | 2 ++ AltSign/Model/Apple API/ALTProvisioningProfile.m | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/AltSign/Model/Apple API/ALTProvisioningProfile.h b/AltSign/Model/Apple API/ALTProvisioningProfile.h index 205d95e..696e55b 100644 --- a/AltSign/Model/Apple API/ALTProvisioningProfile.h +++ b/AltSign/Model/Apple API/ALTProvisioningProfile.h @@ -22,7 +22,9 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, nonatomic, readonly) NSUUID *UUID; @property (copy, nonatomic, readonly) NSString *bundleIdentifier; + @property (copy, nonatomic, readonly) NSString *teamIdentifier; +@property (copy, nonatomic, readonly) NSString *teamName; @property (copy, nonatomic, readonly) NSDate *creationDate; @property (copy, nonatomic, readonly) NSDate *expirationDate; diff --git a/AltSign/Model/Apple API/ALTProvisioningProfile.m b/AltSign/Model/Apple API/ALTProvisioningProfile.m index b3b5168..8fa9a59 100644 --- a/AltSign/Model/Apple API/ALTProvisioningProfile.m +++ b/AltSign/Model/Apple API/ALTProvisioningProfile.m @@ -82,6 +82,7 @@ - (nullable instancetype)initWithData:(NSData *)data NSUUID *UUID = [[NSUUID alloc] initWithUUIDString:dictionary[@"UUID"]]; NSString *teamIdentifier = [dictionary[@"TeamIdentifier"] firstObject]; + NSString *teamName = dictionary[@"TeamName"]; NSDate *creationDate = dictionary[@"CreationDate"]; NSDate *expirationDate = dictionary[@"ExpirationDate"]; @@ -89,7 +90,7 @@ - (nullable instancetype)initWithData:(NSData *)data NSDictionary *entitlements = dictionary[@"Entitlements"]; NSArray *deviceIDs = dictionary[@"ProvisionedDevices"]; - if (name == nil || UUID == nil || teamIdentifier == nil || creationDate == nil || expirationDate == nil || entitlements == nil || deviceIDs == nil) + if (name == nil || UUID == nil || teamIdentifier == nil || teamName == nil || creationDate == nil || expirationDate == nil || entitlements == nil || deviceIDs == nil) { return nil; } @@ -102,6 +103,7 @@ - (nullable instancetype)initWithData:(NSData *)data _UUID = [UUID copy]; _teamIdentifier = [teamIdentifier copy]; + _teamName = [teamName copy]; _creationDate = [creationDate copy]; _expirationDate = [expirationDate copy];