Получение атрибутов объектов связки ключей

Относительно редактирования. Вы не можете сделать его верным. Я предлагаю, чтобы Вы обернули то, что Вы хотите в другой класс (или дополнительный метод) стать ближе к синтаксису, в котором Вы нуждаетесь.

т.е.

public class FlagTestCompare
{
    public static bool Compare(this FlagTest myFlag, FlagTest condition)
    {
         return ((myFlag & condition) == condition);
    }
}
5
задан Nifle 28 July 2009 в 09:31
поделиться

2 ответа

Я думаю, что документация приводит к некоторой путанице.

Числа, которые я вижу, похоже, константы атрибутов элементов цепочки для ключей .

Однако SecKeychainItemCopyAttributesAndData возвращает структуру SecKeychainAttributeList, которая содержит массив SecKeychainAttributes. Из TFD: тег

4-байтовый тег атрибута. См. «Константы атрибутов элемента цепочки для ключей» для допустимых типов атрибутов.

Константы атрибутов (из множества не «для ключей») представляют собой 4-символьные значения, которые я ожидал увидеть.

1
ответ дан 15 December 2019 в 01:08
поделиться

Здесь вам нужно сделать две вещи. Во-первых, вам нужно обработать «общие» itemClasses перед вызовом SecKeychainAttributeInfoForItemID ...

switch (itemClass)
{
    case kSecInternetPasswordItemClass:
        itemClass = CSSM_DL_DB_RECORD_INTERNET_PASSWORD;
        break;
    case kSecGenericPasswordItemClass:
        itemClass = CSSM_DL_DB_RECORD_GENERIC_PASSWORD;
        break;
    case kSecAppleSharePasswordItemClass:
        itemClass = CSSM_DL_DB_RECORD_APPLESHARE_PASSWORD;
        break;
    default:
        // No action required
}

Во-вторых, вам нужно преобразовать attr.tag из FourCharCode в строку, т.е.

NSLog(@"%c%c%c%c %@",
    ((char *)&attr.tag)[3],
    ((char *)&attr.tag)[2],
    ((char *)&attr.tag)[1],
    ((char *)&attr.tag)[0],
    [[[NSString alloc]
        initWithData:[NSData dataWithBytes:attr.data length:attr.length]
        encoding:NSUTF8StringEncoding]
    autorelease]]);

Обратите внимание, что я также вывел данные в виде строки - это почти всегда данные в кодировке UTF8.

3
ответ дан 15 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: