-/*
- * Copyright (c) 2008-2009 Apple Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
-#ifndef _SECURITY_SECTASK_H_
-#define _SECURITY_SECTASK_H_
-
-#include <CoreFoundation/CoreFoundation.h>
-#include <mach/message.h>
-#include <Security/SecCode.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/*!
- @typedef SecTaskRef
- @abstract CFType used for representing a task
-*/
-typedef struct __SecTask *SecTaskRef;
-
-/*!
- @function SecTaskGetTypeID
- @abstract Returns the type ID for CF instances of SecTask.
- @result A CFTypeID for SecTask
-*/
-CFTypeID SecTaskGetTypeID(void);
-
-/*!
- @function SecTaskCreateWithAuditToken
- @abstract Create a SecTask object for the task that sent the mach message
- represented by the audit token.
- @param token The audit token of a mach message
- @result The newly created SecTask object or NULL on error. The caller must
- CFRelease the returned object.
-*/
-SecTaskRef SecTaskCreateWithAuditToken(CFAllocatorRef allocator, audit_token_t token);
-
-/*!
- @function SecTaskCreateFromSelf
- @abstract Create a SecTask object for the current task.
- @result The newly created SecTask object or NULL on error. The caller must
- CFRelease the returned object.
-*/
-SecTaskRef SecTaskCreateFromSelf(CFAllocatorRef allocator);
-
-/*!
- @function SecTaskCopyValueForEntitlement
- @abstract Returns the value of a single entitlement for the represented
- task.
- @param task A previously created SecTask object
- @param entitlement The name of the entitlement to be fetched
- @param error On a NULL return, this may be contain a CFError describing
- the problem. This argument may be NULL if the caller is not interested in
- detailed errors.
- @result The value of the specified entitlement for the process or NULL if
- the entitlement value could not be retrieved. The type of the returned
- value will depend on the entitlement specified. The caller must release
- the returned object.
- @discussion A NULL return may indicate an error, or it may indicate that
- the entitlement is simply not present. In the latter case, no CFError is
- returned.
-*/
-CFTypeRef SecTaskCopyValueForEntitlement(SecTaskRef task, CFStringRef entitlement, CFErrorRef *error);
-
-/*!
- @function SecTaskCopyValuesForEntitlements
- @abstract Returns the values of multiple entitlements for the represented
- task.
- @param task A previously created SecTask object
- @param entitlements An array of entitlement names to be fetched
- @param error On a NULL return, this will contain a CFError describing
- the problem. This argument may be NULL if the caller is not interested in
- detailed errors. If a requested entitlement is not present for the
- returned dictionary, the entitlement is not set on the task. The caller
- must CFRelease the returned value
-*/
-CFDictionaryRef SecTaskCopyValuesForEntitlements(SecTaskRef task, CFArrayRef entitlements, CFErrorRef *error);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* !_SECURITY_SECTASK_H_ */