2012-01-15 10 views
1

Как получить дату истечения срока действия сертификата PKCS12 с использованием инфраструктуры безопасности iOS? Можно ли использовать openssl? если да, пожалуйста, укажите меня к соответствующего API:Выдать дату истечения срока действия сертификата PKCS12 в iOS

Благодаря

ответ

0

Отличный вопрос! Если бы я делал это кодирование, я бы сначала попытался придумать решение, использующее Keychain Services.

Во-первых, вам нужно взять элемент брелка. Скажем, через `SecItemCopyMatching()'.

Это возвращает ссылку на найденные предметы. Предпочтительно SecCertificateRef (который более подробно описан в руководстве Apple Keychain Services Reference).

Я не вижу простой способ явно получить метаданные (или дату истечения срока) с SecCertificateRef с верхней части головы. There's a code snippet I found on books.google.com из «Программирование IOS 5« Нажатие ограничений: разработка необычных мобильных приложений », называемых« Проверка срока действия сертификата »(страницы 218 & 219 - Я связал его для вас), который в основном проверяет, позволяет ли сертификат использовать использование на основе совпадающих ключей (в их примере это предмет или доменное имя, для вас это будет срок годности). Их техника может помочь вам.

Что касается использования OpenSSL, I found an answer where you can come up with the expiration date from the command line using the openssl tool. Если вы можете получить доступ к своему сертификату, я вполне уверен, что это можно сделать также программно.

+0

Привет, Спасибо за ответ. Оба полезны. – user1150393

+1

Привет, Спасибо за ответ. Оба полезны. Я не мог использовать первый подход, так как сертификат не сохраняется в цепочке ключей. Я сохраняю сертификат в файле. Я пошел вперед с opensl, это просто и прямо. Шаги: 1) Получите PKCS12, используя d2i_PKCS12_fp API. 2) Разбор и выбор x509 с использованием API PKCS12_parse. 3) Наконец, получите дату истечения срока действия от x509, используя X509_get_notAfter. Не знаете, почему яблоко украсило SecGetResult и другие полезные API в iOS. – user1150393

+0

Я не знаю точно, но я предполагаю, что им нужно обрабатывать другие виды сертификатов, кроме PKCS12, поэтому код Apple должен быть достаточно общим, насколько это возможно, чтобы иметь возможность обрабатывать как можно больше видов сертификатов. –

Смежные вопросы