#ifndef _SCHELPER_CLIENT_H
#define _SCHELPER_CLIENT_H
#include <sys/cdefs.h>
#include <Availability.h>
#include <TargetConditionals.h>
#include <CoreFoundation/CoreFoundation.h>
#define kSCKeychainOptionsAccount CFSTR("Account") // CFString
#define kSCKeychainOptionsDescription CFSTR("Description") // CFString
#define kSCKeychainOptionsLabel CFSTR("Label") // CFString
#define kSCKeychainOptionsPassword CFSTR("Password") // CFData
#define kSCKeychainOptionsUniqueID CFSTR("UniqueID") // CFString
#define kSCHelperAuthAuthorization CFSTR("Authorization") // CFData[AuthorizationExternalForm]
#define kSCHelperAuthCallerInfo CFSTR("CallerInfo") // CFString
enum {
SCHELPER_MSG_AUTH = 1,
SCHELPER_MSG_PREFS_OPEN = 100,
SCHELPER_MSG_PREFS_ACCESS,
SCHELPER_MSG_PREFS_LOCK,
SCHELPER_MSG_PREFS_LOCKWAIT,
SCHELPER_MSG_PREFS_COMMIT,
SCHELPER_MSG_PREFS_APPLY,
SCHELPER_MSG_PREFS_UNLOCK,
SCHELPER_MSG_PREFS_CLOSE,
SCHELPER_MSG_PREFS_SYNCHRONIZE,
SCHELPER_MSG_INTERFACE_REFRESH = 200,
#if !TARGET_OS_IPHONE
SCHELPER_MSG_KEYCHAIN_COPY = 300,
SCHELPER_MSG_KEYCHAIN_EXISTS,
SCHELPER_MSG_KEYCHAIN_REMOVE,
SCHELPER_MSG_KEYCHAIN_SET,
#endif // !TARGET_OS_IPHONE
SCHELPER_MSG_EXIT = 9999
};
__BEGIN_DECLS
Boolean _SCHelperOpen (CFDataRef authorizationData,
mach_port_t *helper_port);
Boolean _SCHelperExec (mach_port_t helper_port,
uint32_t msgID,
CFDataRef data,
uint32_t *status,
CFDataRef *reply);
void _SCHelperClose (mach_port_t *helper_port);
__END_DECLS
#endif