Apple's Security framework
Go to file
Ariel Abreu cb0695c5a0
Get the update Security framework to link
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).
2020-07-16 13:42:32 -04:00
Analytics Security-59306.61.1 2020-07-06 07:59:58 -04:00
base Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
CircleJoinRequested Security-59306.61.1 2020-07-06 07:59:58 -04:00
cmake Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
CMS Security-59306.61.1 2020-07-06 07:59:58 -04:00
codesign_wrapper Security-57740.52.3 2017-06-03 12:31:08 -07:00
cssm Security-59306.61.1 2020-07-06 07:59:58 -04:00
derived_src Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
dtlsEcho Security-59306.61.1 2020-07-06 07:59:58 -04:00
experiment Security-59306.61.1 2020-07-06 07:59:58 -04:00
featureflags Security-59306.61.1 2020-07-06 07:59:58 -04:00
header_symlinks Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
ISACLProtectedItems Security-59306.61.1 2020-07-06 07:59:58 -04:00
keychain Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
KeychainCircle Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
KeychainEntitledTestApp_ios Security-59306.61.1 2020-07-06 07:59:58 -04:00
KeychainEntitledTestApp_mac Security-59306.61.1 2020-07-06 07:59:58 -04:00
KeychainSyncAccountNotification Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
KeychainSyncAccountUpdater Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
KVSKeychainSyncingProxy Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
lib Security-59306.61.1 2020-07-06 07:59:58 -04:00
libDER Get the update Security framework to link 2020-07-16 13:42:32 -04:00
libsecurity_smime Security-59306.61.1 2020-07-06 07:59:58 -04:00
Modules Security-59306.61.1 2020-07-06 07:59:58 -04:00
ntlm Security-59306.61.1 2020-07-06 07:59:58 -04:00
OCMockUmbrella Security-59306.61.1 2020-07-06 07:59:58 -04:00
OSX Get the update Security framework to link 2020-07-16 13:42:32 -04:00
protocol Security-59306.61.1 2020-07-06 07:59:58 -04:00
RegressionTests Security-59306.61.1 2020-07-06 07:59:58 -04:00
resources/en.lproj Security-59306.61.1 2020-07-06 07:59:58 -04:00
secacltests Security-59306.61.1 2020-07-06 07:59:58 -04:00
secdtests Security-59306.61.1 2020-07-06 07:59:58 -04:00
secdxctests Security-59306.61.1 2020-07-06 07:59:58 -04:00
sectask Security-59306.61.1 2020-07-06 07:59:58 -04:00
Security/Security.xcodeproj/project.xcworkspace Security-59306.61.1 2020-07-06 07:59:58 -04:00
security-sysdiagnose Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
Security.xcodeproj Security-59306.61.1 2020-07-06 07:59:58 -04:00
securityd Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
SecurityTests Security-59306.61.1 2020-07-06 07:59:58 -04:00
SecurityTool Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
SharedMocks Security-59306.61.1 2020-07-06 07:59:58 -04:00
SharedWebCredentialViewService Security-59306.61.1 2020-07-06 07:59:58 -04:00
SOSCCAuthPlugin Security-59306.61.1 2020-07-06 07:59:58 -04:00
sslViewer Security-59306.61.1 2020-07-06 07:59:58 -04:00
supd Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
supdctl Security-59306.61.1 2020-07-06 07:59:58 -04:00
tests Security-59306.61.1 2020-07-06 07:59:58 -04:00
trust Partial Darling build of Security-59306.61.1 2020-07-15 11:30:18 -04:00
xcconfig Security-59306.61.1 2020-07-06 07:59:58 -04:00
xcscripts Security-59306.61.1 2020-07-06 07:59:58 -04:00
CMakeLists.txt Get the update Security framework to link 2020-07-16 13:42:32 -04:00
CSSMOID.exp-in Security-59306.61.1 2020-07-06 07:59:58 -04:00
README Security-59306.61.1 2020-07-06 07:59:58 -04:00
README-TRIESTE.md Security-59306.61.1 2020-07-06 07:59:58 -04:00
README.keychain Security-57337.20.44 2016-02-23 21:19:11 +01:00
rio.yml Security-59306.61.1 2020-07-06 07:59:58 -04:00
SecureObjectSync-Info.plist Security-57337.20.44 2016-02-23 21:19:11 +01:00
Security-Info.plist Security-57740.52.3 2017-06-03 12:31:08 -07:00
Security.exp-in Security-59306.61.1 2020-07-06 07:59:58 -04:00
TestPlan.xctestplan Security-59306.61.1 2020-07-06 07:59:58 -04:00
TODO Security-57337.20.44 2016-02-23 21:19:11 +01:00

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.