// ====================================================================== // File: KCAPI_Cert.cpp // // Operation classes for APIs for working with Certificates // - KCFindX509Certificates // - KCChooseCertificate // // // Copyright: Copyright (c) 2000,2003,2008 Apple Inc. All Rights Reserved. // // Change History (most recent first): // // <1> 3/1/00 em Created. // ====================================================================== #include "KCAPI_Cert.h" #include "KCParamUtility.h" #if TARGET_RT_MAC_MACHO #include <OSServices/KeychainCore.h> #include <OSServices/KeychainCorePriv.h> #include <SecurityHI/KeychainHI.h> #else #include <Keychain.h> #endif #pragma mark - // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ // ₯ COp_KCFindX509Certificates // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ COp_KCFindX509Certificates::COp_KCFindX509Certificates() { } // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ // ₯ Operate // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ OSStatus COp_KCFindX509Certificates::Operate() { #if TARGET_RT_MAC_MACHO throw("KCGetDataNoUI is not implemented"); #else KCRef mKeychain = NULL; CFStringRef mName = NULL; CFStringRef mEmailAddress = NULL; KCCertSearchOptions mOptions; CFMutableArrayRef mCertificateItems; mStatus = ::KCFindX509Certificates( (KCRef)mKeychain, (CFStringRef)mName, (CFStringRef)mEmailAddress, (KCCertSearchOptions)mOptions, (CFMutableArrayRef *)&mCertificateItems); #endif return(mStatus); } #pragma mark - // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ // ₯ COp_KCChooseCertificate // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ COp_KCChooseCertificate::COp_KCChooseCertificate() { } // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ // ₯ Operate // ΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡΡ OSStatus COp_KCChooseCertificate::Operate() { /* CFArrayRef mItems = NULL; KCItemRef mCertificate = NULL; CFArrayRef mPolicyOIDs = NULL; KCVerifyStopOn mStopOn; mStatus = ::KCChooseCertificate( (CFArrayRef)mItems, (KCItemRef *)&mCertificate, (CFArrayRef)mPolicyOIDs, (KCVerifyStopOn)mStopOn); */ printf("WARNING : ChooseCertificate cannot be linked\n"); return(mStatus); }