118 Commits

Author SHA1 Message Date
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
Ariel Abreu
bf1385e233
Partial Darling build of Security-59306.61.1
This is only the *build* of the Security framework. It does not link yet, and I also have not tried building the various executables yet.

This one required lots of edits in various places throughout the Darling codebase. It seems Apple has really changed things up from 10.13 to 10.15.

A great example of the huge difference is that libDER is no longer included with Security! I had to import it from the last version it was released and modify it slightly to fit the updated code.
Yet another example of Apple being bipolar towards open-source. I wonder what kind of secrets they could be hiding in a library made for working with an *open standard*, smh.

Also, since 10.15 included the drop of 32-bit support, Apple has now made use of many more "modern" Objective-C runtime features, such as automatic ivar synthesis.
Since we want to keep 32-bit app support in Darling but also support newer 64-bit apps and frameworks, I've put the sources using the new features into x86_64-only object libraries.
That way, we only build them for 64-bit and they're available in the 64-bit part of the final "fat" framework. This is fine because those brand new sources aren't used by any old 32-bit code (and 32-bit code can't be updated to use it, either).

Also, I'd like to point out that Apple's code uses such a mess of includes that it's ridiculous (and this is for all their projects, not just Security). Some sources require more includes than the ones listed in Xcode.
2020-07-15 11:30:18 -04:00
Ariel Abreu
c74333ad6d
Security-59306.61.1 2020-07-06 07:59:58 -04:00
Ariel Abreu
29f42375ee
Initial update to clean up include directories
"initial" because there might some additional modifications necessary later on
2020-05-14 12:57:44 -04:00
Thomas A
a4f5c297a6 Include LocalAuthentication header folder 2020-05-05 10:11:00 -07:00
Thomas A
e425d3866d Include CryptoTokenKit header folder 2020-05-04 21:26:39 -07:00
Luboš Doležel
3ecba7e588
Merge pull request #3 from facekapow/build-secd-trustd
Get `secd` and `trustd` to build
2020-04-19 12:43:47 +02:00
Ariel Abreu
6d333db00c
Merge branch 'master' into build-secd-trustd 2020-04-14 23:27:49 -04:00
Lubos Dolezel
16d14586fb Try a different approach 2020-04-13 12:45:18 +02:00
Lubos Dolezel
6447b76fc5 Reverse the link order again 2020-04-13 12:26:01 +02:00
Lubos Dolezel
3bec0f7d3f Another build fix attempt, because I can't reproduce it locally 2020-04-13 12:01:28 +02:00
Lubos Dolezel
760ea43aab Try to fix a build problem on Jenkins 2020-04-12 22:56:34 +02:00
Lubos Dolezel
f0f3b718b0 Fix a build problem 2020-04-12 20:57:05 +02:00
Ariel Abreu
4f070c85e0
Properly name secd and trustd 2020-04-08 20:11:33 -04:00
Ariel Abreu
b1722c1765
Get trustd and secd to build 2020-04-08 19:51:04 -04:00
Lubos Dolezel
b763dc9e68 Almost build /usr/libexec/securityd 2020-04-08 10:30:49 +02:00
Lubos Dolezel
04e3811f63 Build the 'security' command line tool 2020-04-01 22:50:17 +02:00
Andrew Hyatt
190edd4b44
Merge pull request #2 from CuriousTommy/remove_undefined
Remove undefined argument, Added Stubs, and Fixed DEPENDENCIES list
2020-03-31 08:21:51 -04:00
Thomas A
735c2346e0 Remove undefined argument, Added Stubs, and Fixed DEPENDENCIES list 2020-03-28 13:13:25 -07:00
Andrew Hyatt
30f90ed6e9
Add missing constant 2020-03-19 18:35:58 -04:00
Andrew Hyatt
466393c7aa
Clean up build output 2020-03-06 15:30:01 -05:00
Lubos Dolezel
1896db842b Reduce the amount of undefined symbols 2020-02-26 23:22:20 +01:00
Sergey Bugaev
2e611a40d5 Don't run securityd at load 2019-02-23 14:59:13 +03:00
Sergey Bugaev
250e8a5ce4 Disable IOKit notification handling 2019-02-23 14:56:50 +03:00
Sergey Bugaev
1d7eef9a7e Disable UID check 2019-02-23 14:56:50 +03:00
Sergey Bugaev
c543d9f835 Disable auditing 2019-02-23 14:56:50 +03:00
Sergey Bugaev
21687cb12e Install mdsinfo resources 2019-02-23 14:50:32 +03:00
Sergey Bugaev
f49949be7d Create /System/Library/Security 2019-02-23 14:50:07 +03:00
Andrew Hyatt
fb45cb0460 Fix install location of securityd 2019-01-15 13:56:12 -05:00
Andrew Hyatt
1619da17c7 Build securityd
darlinghq/darling#463
2019-01-15 00:18:09 -05:00
Andrew Hyatt
adcaa94dd2 Build securityd 2019-01-13 22:42:58 -05:00
Andrew Hyatt
976379d436 Fix _kSecAttrAccess not being exported
The issue is that the exported symbols list from Apple is
preprocessed. For whatever reason, it isn't being properly
preprocessed. The solution was to join the #included
ones together manually and get rid of the #if, etc.
The result of this is SEC_MANUAL.exp.

darlinghq/darling#445
2019-01-06 01:21:14 -05:00
Andrew Hyatt
0db0acec47 Create missing symlink 2018-01-16 21:22:18 -08:00
Viktor Oreshkin
0cacc90a39 Fix build clang5 r292518 (C++ DR1310) 2017-11-01 21:49:54 +03:00
Andrew Hyatt
7a8917ecd6 Properly export symbols 2017-08-21 20:00:07 -07:00
Andrew Hyatt
c94c4e3db3 Link to CF using the new way 2017-08-10 17:45:22 -07:00
Lubos Dolezel
6071c49698 Use -dead_strip, eliminate some unresolved symbols 2017-08-08 22:22:59 +02:00
Andrew Hyatt
c67c1b26db Switch every component over to being a static library 2017-08-07 15:25:37 -07:00
Andrew Hyatt
0435b20ca0 The security build completes and links now
It still won't run and is in a broken state due to various symbol issues
2017-07-21 21:17:03 -07:00
Andrew Hyatt
1c110e1231 Complete building of all components
Now they just need to be linked
2017-07-16 15:02:38 -07:00
Andrew Hyatt
8acb6f8090 Build more, including libsecurity_keychain 2017-07-16 12:39:43 -07:00
Andrew Hyatt
51ca9ae1ad Build libsecurity_cryptkit 2017-07-15 13:38:29 -07:00
Andrew Hyatt
51c40bb5c0 Build more of Security 2017-07-03 20:18:57 -07:00
Andrew Hyatt
5a114b54a2 Build more of Security 2017-06-26 10:03:25 -07:00
Andrew Hyatt
ccc0cdd180 Build libsecurity_apple_file_dl 2017-06-25 12:11:46 -07:00
Viktor Oreshkin
86e2a990c3 Fix build -- use C++14 for cspdl 2017-06-25 12:24:52 +03:00
Andrew Hyatt
a9580d0e8d Build more parts 2017-06-24 13:51:34 -07:00
Andrew Hyatt
9c1f27e7c8 Build libsecurity_apple_csp 2017-06-13 20:41:20 -07:00
Andrew Hyatt
0ffb2ff435 Build some more Security components
liblogging, libsecipc_client, and libSecureObjectSync.
This is the last of the stuff in OSX/sec.
2017-06-13 19:50:15 -07:00
Andrew Hyatt
443ca774d3 Build more components of Security 2017-06-13 13:47:26 -07:00