#ifndef _EAP8021X_EAPKEYCHAINUTIL_H
#define _EAP8021X_EAPKEYCHAINUTIL_H
#include <CoreFoundation/CFData.h>
#include <Security/SecBase.h>
#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacErrors.h>
#include <TargetConditionals.h>
#if TARGET_OS_EMBEDDED
typedef struct OpaqueSecKeychainRef *SecKeychainRef;
typedef struct OpaqueSecKeychainItemRef *SecKeychainItemRef;
typedef struct OpaqueSecAccessRef *SecAccessRef;
#include <Security/SecItem.h>
#else
#include <Security/SecKeychain.h>
#include <Security/SecAccess.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(SecKeychainRef keychain,
SecAccessRef access,
CFStringRef unique_id_str,
CFDataRef label,
CFDataRef description,
CFDataRef user,
CFDataRef password);
OSStatus
EAPSecKeychainPasswordItemCreateUniqueWithAccess(SecKeychainRef keychain,
SecAccessRef access,
CFDataRef label,
CFDataRef description,
CFDataRef user,
CFDataRef password,
CFStringRef * unique_id_str);
OSStatus
EAPSecKeychainPasswordItemCreate(SecKeychainRef keychain,
CFStringRef unique_id_str,
CFDictionaryRef values);
OSStatus
EAPSecKeychainPasswordItemCreateUnique(SecKeychainRef keychain,
CFDictionaryRef values,
CFStringRef * req_unique_id);
OSStatus
EAPSecKeychainPasswordItemSet(SecKeychainRef keychain,
CFStringRef unique_id_str,
CFDataRef password);
OSStatus
EAPSecKeychainPasswordItemSet2(SecKeychainRef keychain,
CFStringRef unique_id_str,
CFDictionaryRef values);
OSStatus
EAPSecKeychainPasswordItemCopy(SecKeychainRef keychain,
CFStringRef unique_id_str,
CFDataRef * ret_password);
OSStatus
EAPSecKeychainPasswordItemCopy2(SecKeychainRef keychain,
CFStringRef unique_id_str,
CFArrayRef keys,
CFDictionaryRef * ret_values);
OSStatus
EAPSecKeychainPasswordItemRemove(SecKeychainRef keychain,
CFStringRef unique_id_str);
#endif