Связка ключей на iOS - PullRequest
0 голосов
/ 05 мая 2020

имеет проблемы с доступом к связке ключей на iOS - код работает с Ma c. Что бы я ни делал, я просто получаю сообщение об ошибке -50 (errSecParam). Любые мысли очень ценятся. спасибо

    CFMutableDictionaryRef query = CFDictionaryCreateMutable( nullptr, 10, nullptr, nullptr );
    CFDictionaryAddValue( query, kSecClass, kSecClassGenericPassword );
    CFDictionaryAddValue( query, kSecAttrService, CFSTR( "test" ) );
    CFDictionaryAddValue( query, kSecAttrAccount, CFSTR( "test" ) );
    CFDictionaryAddValue( query, kSecUseAuthenticationUI, kSecUseAuthenticationUISkip );
    CFDictionaryAddValue( query, kSecAttrAccessControl, kSecAttrAccessible );

    const auto res = SecItemAdd( query, nullptr );

1 Ответ

0 голосов
/ 05 мая 2020

2 проблемы:

  • пара значений ключа kSecUseAuthenticationUI, kSecUseAuthenticationUISkip может использоваться только как опция для SecCopyItemMatching
  • значение: kSecAttrAccessible - это ключ словаря, а не значение. Значение для kSecAttrAccessControl должно быть SecAccessControlRef.

Если вы удалите оба этих параметра, он будет работать. Конечно, вы, вероятно, захотите узнать, какие значения замены необходимы для восстановления вашего первоначального намерения.

Эта информация берется из комментариев в файлах заголовков. Я добавлю ссылки на онлайн-документы, если смогу их найти.

Обновлено с помощью онлайн-ссылок.

...