Estoy tratando de obtener los atributos de un elemento de llavero. Este código debe buscar todos los atributos disponibles, luego imprimir sus etiquetas y contenidos.Cómo obtener atributos de elementos de llavero
Según the docs debería ver etiquetas como 'cdat', pero en su lugar solo parecen un índice (es decir, la primera etiqueta es 0, la siguiente es 1). Esto lo hace bastante inútil ya que no puedo decir qué atributo es el que estoy buscando.
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);
Gracias por explicar cómo manejar las clases de elementos genéricos. La documentación para 'SecKeychainAttributeInfoForItemID' deja mucho que desear. –