SecIdentitySearch.cpp [plain text]
#include <Security/SecIdentitySearch.h>
#include <Security/IdentityCursor.h>
#include <Security/Identity.h>
#include "SecBridge.h"
CFTypeID
SecIdentitySearchGetTypeID(void)
{
BEGIN_SECAPI
return gTypes().IdentityCursor.typeID;
END_SECAPI1(_kCFRuntimeNotATypeID)
}
OSStatus
SecIdentitySearchCreate(
CFTypeRef keychainOrArray,
CSSM_KEYUSE keyUsage,
SecIdentitySearchRef *searchRef)
{
BEGIN_SECAPI
Required(searchRef);
StorageManager::KeychainList keychains;
globals().storageManager.optionalSearchList(keychainOrArray, keychains);
SecPointer<IdentityCursor> identityCursor(new IdentityCursor (keychains, keyUsage));
*searchRef = identityCursor->handle();
END_SECAPI
}
OSStatus
SecIdentitySearchCopyNext(
SecIdentitySearchRef searchRef,
SecIdentityRef *identityRef)
{
BEGIN_SECAPI
RequiredParam(identityRef);
SecPointer<Identity> identityPtr;
if (!IdentityCursor::required(searchRef)->next(identityPtr))
return errSecItemNotFound;
*identityRef = identityPtr->handle();
END_SECAPI
}