mirror of
https://github.com/darlinghq/darling-security.git
synced 2024-11-30 07:20:44 +00:00
Apple's Security framework
cb0695c5a0
I had to change up quite a few things in other libraries/frameworks in terms of how they're built/linked; specifically, I had to change up Foundation, CFNetwork, and CoreTLS. Basically, Apple makes them all depend on each other, so I had to make some of them circular (and the Security framework, too). I had some issues with this at first because making Foundation a circular library caused the linker to segfault trying to link the 64-bit firstpass (weird, I know). So instead, I decided to make CFNetwork circular with no siblings (which is perfectly okay), just to make it run a firstpass with no dependencies, then link Foundation to that. Then, Security links to Foundation normally and everybody's happy. I also had to build `libcoretls_cfhelpers`, which depends on Security, but Security also depends on it, so I think you can guess what I had to do. (In case you can't guess: I had to make coretls_cfhelpers a circular library, as well as Security, too). Also `libsecurity_keychain/lib/CCallbackMgr.cp` is not misspelled; it came with the `.cp` extension, but I had to tell the compiler that it's a C++ file (not sure why the non-standard extension, but whatever). |
||
---|---|---|
Analytics | ||
base | ||
CircleJoinRequested | ||
cmake | ||
CMS | ||
codesign_wrapper | ||
cssm | ||
derived_src | ||
dtlsEcho | ||
experiment | ||
featureflags | ||
header_symlinks | ||
ISACLProtectedItems | ||
keychain | ||
KeychainCircle | ||
KeychainEntitledTestApp_ios | ||
KeychainEntitledTestApp_mac | ||
KeychainSyncAccountNotification | ||
KeychainSyncAccountUpdater | ||
KVSKeychainSyncingProxy | ||
lib | ||
libDER | ||
libsecurity_smime | ||
Modules | ||
ntlm | ||
OCMockUmbrella | ||
OSX | ||
protocol | ||
RegressionTests | ||
resources/en.lproj | ||
secacltests | ||
secdtests | ||
secdxctests | ||
sectask | ||
Security/Security.xcodeproj/project.xcworkspace | ||
security-sysdiagnose | ||
Security.xcodeproj | ||
securityd | ||
SecurityTests | ||
SecurityTool | ||
SharedMocks | ||
SharedWebCredentialViewService | ||
SOSCCAuthPlugin | ||
sslViewer | ||
supd | ||
supdctl | ||
tests | ||
trust | ||
xcconfig | ||
xcscripts | ||
CMakeLists.txt | ||
CSSMOID.exp-in | ||
README | ||
README-TRIESTE.md | ||
README.keychain | ||
rio.yml | ||
SecureObjectSync-Info.plist | ||
Security-Info.plist | ||
Security.exp-in | ||
TestPlan.xctestplan | ||
TODO |
Update Feb 25, 2019 This project has many aggregate top-level targets. These map directly to build system aliases of Security in the obvious way: Alias macOS Target iOS Target bridgeOS Target tvOS Target watchOS Target -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Security | Security_frameworks_osx | Security_frameworks_ios | Security_frameworks_bridge | Security_frameworks_tvos | Security_frameworks_watchos Security_executables_core | Security_executables_core_osx | Security_executables_core_ios | | Security_executables_core_tvos | Security_executables_core_watchos Security_executables | Security_executables_osx | Security_executables_ios | Security_executables_bridge | Security_executables_tvos | Security_executables_watchos Security_internal | Security_internal_osx | Security_internal_ios | | Security_internal_tvos | Security_internal_watchos Security_executables_Swift | Security_executables_Swift | Security_executables_Swift | | Security_executables_Swift | Security_tests | Security_tests_osx | Security_tests_ios | Security_tests_bridge | Security_tests_tvos | Security_tests_watchos Security_executables_darwinos_only | Security_executables_darwinos_only_osx | Security_executables_darwinos_only_ios | | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Security_frameworks targets are for frameworks, dynamic libraries, or libraries that should be in the (public or private) SDK. Security_executables_core targets are for binaries (particularly daemons) that are absolutely necessary for base operation of any variant of the OS, including the recovery OS. If you are unsure, do not put your target here. Security_executables targets are for binaries that ship in customer images. These are daemons, tools, services, plug-ins, apps, etc. Security_internal targets are for non-test binaries that ship in internal images (e.g. /AppleInternal/*, /usr/local/*). These are usually tools and internal apps. Security_executables_Swift is for any and all Swift targets. Security_tests targets are for test binaries that ship in the TestsSupport dmg. These are usually xctests and test executables and test apps. Security_executables_darwinos_only targets are for binaries that should only ship in very special variants of the OS. If you are unsure, do not put your target here. Security_all targets aggregate all of the above targets for each platform and are used by the local Xcode schemes. Update Dec 1, 2016 This project currently does not build without internal headers that are not public. Update June 17, 2014 Here lie the iOS and OS X versions of Security, including securityd and SecurityTool for OS X. ----------- Projects in Security Last update Dec 1 2005 Standalone crypto libs ---------------------- libCert/ Library to parse and verify X509 certificates. Uses libgRSA, libDER, libMD5, and libSHA1. libDER/ DER decoding library, ROM_capable, no malloc. libGiants/ General purpose ROM-capable giantIntegers package. No malloc. Performs unsigned arithmetic ONLY as of Nov. 28 2005. libgRSA/ Full ROM-capable RSA package based on libGiants. Provided to Mike Smith and Chris Aycock 8/23/05. Converted to unsigned libGiants circa 11/30/05. libScripts/ Scripts to build and test all of these libraries. ==== To regenerate strings file run: genstrings -u -o resources/en.lproj -s SecString OSX/sec/Security/SecFrameworkStrings.h in the top level dir.