#include <inttypes.h>
#include <syslog.h>
#include <utilities/SecCFWrappers.h>
+#include <xpc/private.h>
#include <sys/sysctl.h>
#if TARGET_OS_OSX
/* These won't exist until we unify codesigning */
-#include "SecCode.h"
-#include "SecCodePriv.h"
-#include "SecRequirement.h"
+#include <Security/SecCode.h>
+#include <Security/SecCodePriv.h>
+#include <Security/SecRequirement.h>
#endif /* TARGET_OS_OSX */
struct __SecTask {
return task;
}
+_Nullable SecTaskRef
+SecTaskCreateWithXPCMessage(xpc_object_t _Nonnull message)
+{
+ audit_token_t token;
+
+ if (message == NULL || xpc_get_type(message) != XPC_TYPE_DICTIONARY) {
+ return NULL;
+ }
+ xpc_dictionary_get_audit_token(message, &token);
+
+ return SecTaskCreateWithAuditToken(NULL, token);
+}
+
+
+
struct csheader {
uint32_t magic;
uint32_t length;
return values;
}
-#if TARGET_OS_OSX
+#if SEC_OS_OSX
/*
* Determine if the given task meets a specified requirement.
*/
return status;
}
-#endif /* TARGET_OS_OSX */
+#endif /* SEC_OS_OSX */
Boolean SecTaskEntitlementsValidated(SecTaskRef task) {
// TODO: Cache the result