OSX KeyChain выбрасывает при попытке подписать данные

Я получаю эту странную ошибку, о которой я не могу найти никакой дополнительной информации, когда мой код Objective C вызывает библиотеку C ++ для подписи данных указанным ключом:

Error Domain=Internal CSSM error Code=-2147416063 "Internal error #80010801 at __SignTransform_block_invoke.17 /Library/Caches/com.apple.xbs/Sources/Security/Security-57740.31.2/OSX/libsecurity_transform/lib/SecSignVerifyTransform.c:279" UserInfo={NSDescription=Internal error #80010801 at __SignTransform_block_invoke.17 /Library/Caches/com.apple.xbs/Sources/Security/Security-57740.31.2/OSX/libsecurity_transform/lib/SecSignVerifyTransform.c:279, Originating Transform=CoreFoundationObject}
libc++abi.dylib: terminating with uncaught exception of type ndn::SecurityException: Fail to sign data

Проблема возникает при втором доступе к закрытому ключу. То есть когда я устанавливаю сертификат и запускаю свое приложение, оно запрашивает у пользователя диалоговое окно «доступ», в котором пользователю предлагается явно разрешить доступ к закрытому ключу, используемому при подписании. После разрешения все работает как положено. Однако на всех последующих запусках я буду испытывать вышеупомянутое исключение. Чтобы приступить к тестированию, мне нужно открыть приложение KeyChain и явно указать «Разрешить всем приложениям доступ к этому элементу» в «Контроль доступа» для этого закрытого ключа. Что не очень хорошая практика. До сих пор я не мог найти объяснения, почему происходит это исключение.

Однако я заметил одну вещь: это происходит только для реализации Какао — я имею в виду, что когда я продублировал код Какао в тестовом приложении C ++, он не падает.

Основная библиотека, которая выполняет подписывание использует этот Функция подписи OSX.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]