#ifndef _EAP8021X_EAPKEYCHAINUTIL_H
#define _EAP8021X_EAPKEYCHAINUTIL_H
#include <TargetConditionals.h>
#include <CoreFoundation/CoreFoundation.h>
#if TARGET_OS_OSX
typedef SecKeychainRef EAPSecKeychainRef;
typedef SecKeychainItemRef EAPSecKeychainItemRef;
typedef SecAccessRef EAPSecAccessRef;
#else
typedef CFTypeRef EAPSecKeychainRef;
typedef CFTypeRef EAPSecKeychainItemRef;
typedef CFTypeRef EAPSecAccessRef;
#include <Security/SecItem.h>
#endif
#if ! TARGET_OS_EMBEDDED
#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacErrors.h>
#endif
#if ! TARGET_OS_EMBEDDED
const CFStringRef kEAPSecKeychainPropTrustedApplications;
const CFStringRef kEAPSecKeychainPropAllowRootAccess;
const CFStringRef kEAPSecKeychainPropLabel;
const CFStringRef kEAPSecKeychainPropDescription;
const CFStringRef kEAPSecKeychainPropAccount;
const CFStringRef kEAPSecKeychainPropPassword;
#endif
OSStatus
EAPSecKeychainPasswordItemCreateWithAccess(EAPSecKeychainRef keychain,
EAPSecAccessRef access,
CFStringRef unique_id_str,
CFDataRef label,
CFDataRef description,
CFDataRef user,
CFDataRef password);
OSStatus
EAPSecKeychainPasswordItemCreateUniqueWithAccess(EAPSecKeychainRef keychain,
EAPSecAccessRef access,
CFDataRef label,
CFDataRef description,
CFDataRef user,
CFDataRef password,
CFStringRef * unique_id_str);
OSStatus
EAPSecKeychainPasswordItemCreate(EAPSecKeychainRef keychain,
CFStringRef unique_id_str,
CFDictionaryRef values);
OSStatus
EAPSecKeychainPasswordItemCreateUnique(EAPSecKeychainRef keychain,
CFDictionaryRef values,
CFStringRef * req_unique_id);
OSStatus
EAPSecKeychainPasswordItemSet(EAPSecKeychainRef keychain,
CFStringRef unique_id_str,
CFDataRef password);
OSStatus
EAPSecKeychainPasswordItemSet2(EAPSecKeychainRef keychain,
CFStringRef unique_id_str,
CFDictionaryRef values);
OSStatus
EAPSecKeychainPasswordItemCopy(EAPSecKeychainRef keychain,
CFStringRef unique_id_str,
CFDataRef * ret_password);
OSStatus
EAPSecKeychainPasswordItemCopy2(EAPSecKeychainRef keychain,
CFStringRef unique_id_str,
CFArrayRef keys,
CFDictionaryRef * ret_values);
OSStatus
EAPSecKeychainPasswordItemRemove(EAPSecKeychainRef keychain,
CFStringRef unique_id_str);
#endif