}
#endif
+extern "C" Boolean SecKeyIsCDSAKey(SecKeyRef ref);
+
/*
* Determine if incoming itemRef can be considered for
* this mechanism; throw if not.
CFTypeID id = CFGetTypeID(itemRef);
if((id == gTypes().ItemImpl.typeID) ||
(id == gTypes().Certificate.typeID) ||
- (id == gTypes().KeyItem.typeID)) {
+ (id == SecKeyGetTypeID() && SecKeyIsCDSAKey((SecKeyRef)itemRef))) {
return;
}
else {
CFStringRef attrName,
CFDataRef attrValue) /* NULL means delete the attribute */
{
-#if SECTRUST_OSX
-#warning This needs to detect SecCertificateRef items, and when it does, SecKeychainItemDelete must be updated
-#endif
+ // <rdar://25635468>
+ //%%% This needs to detect SecCertificateRef items, and when it does, SecKeychainItemDelete must be updated
+
BEGIN_SECAPI
if((itemRef == NULL) || (attrName == NULL)) {
CFStringRef attrName,
CFDataRef *attrValue) /* RETURNED */
{
-#if SECTRUST_OSX
-#warning This needs to detect SecCertificateRef items
-#endif
+ // <rdar://25635468>
+ //%%% This needs to detect SecCertificateRef items
+
BEGIN_SECAPI
if((itemRef == NULL) || (attrName == NULL) || (attrValue == NULL)) {
CFArrayRef *attrValues) /* optional, RETURNED, each element is a
* CFDataRef */
{
-#if SECTRUST_OSX
-#warning This needs to detect SecCertificateRef items, and when it does, SecKeychainItemDelete must be updated
-#endif
+ // <rdar://25635468>
+ //%%% This needs to detect SecCertificateRef items, and when it does, SecKeychainItemDelete must be updated
+
BEGIN_SECAPI
if((itemRef == NULL) || (attrNames == NULL)) {