Ich versuche, die Attribute eines Schlüsselbundelements zu erhalten. Dieser Code sollte alle verfügbaren Attribute nachschlagen und dann deren Tags und Inhalte ausdrucken.Attribute von Keychain-Elementen abrufen
Laut the docs sollte ich Tags wie 'cdat' sehen, aber sie sehen nur wie ein Index aus (d. H. Das erste Tag ist 0, das nächste ist 1). Das macht es ziemlich nutzlos, da ich nicht sagen kann, welches Attribut ich suche.
SecItemClass itemClass;
SecKeychainItemCopyAttributesAndData(itemRef, NULL, &itemClass, NULL, NULL, NULL);
SecKeychainRef keychainRef;
SecKeychainItemCopyKeychain(itemRef, &keychainRef);
SecKeychainAttributeInfo *attrInfo;
SecKeychainAttributeInfoForItemID(keychainRef, itemClass, &attrInfo);
SecKeychainAttributeList *attributes;
SecKeychainItemCopyAttributesAndData(itemRef, attrInfo, NULL, &attributes, 0, NULL);
for (int i = 0; i < attributes->count; i ++)
{
SecKeychainAttribute attr = attributes->attr[i];
NSLog(@"%08x %@", attr.tag, [NSData dataWithBytes:attr.data length:attr.length]);
}
SecKeychainFreeAttributeInfo(attrInfo);
SecKeychainItemFreeAttributesAndData(attributes, NULL);
CFRelease(itemRef);
CFRelease(keychainRef);
Danke, dass Sie erklären, wie Sie mit den generischen Klassen umgehen können. Die Dokumentation für "SecKeychainAttributeInfoForItemID" lässt viel zu wünschen übrig. –