2012-01-15 2 views

답변

0

다양한 질문으로 날 지점하시기 바랍니다! 이 코딩을 수행했다면 먼저 키 체인 서비스를 사용하여 솔루션을 생각해보십시오.

먼저 키 체인 항목을 가져와야합니다. 말해, `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

안녕하세요, 답변 해 주셔서 감사합니다. 둘 다 도움이됩니다. 인증서가 키 체인에 저장되지 않았으므로 첫 번째 방법을 사용할 수 없습니다. 인증서를 파일로 저장합니다. 나는 openssl을 앞두고 간단하고 간단합니다. 단계 : 1) d2i_PKCS12_fp API를 사용하여 PKCS12를 가져옵니다. 2) PKCS12_parse API를 사용하여 x509를 구문 분석하고 가져옵니다. 3) 마지막으로 X509_get_notAfter를 사용하여 x509에서 만료 날짜를 가져옵니다. 사과가 왜 iOS에서 SecGetResult 및 기타 유용한 API를 다듬 었는지 잘 모르겠습니다. – user1150393

+0

확실하지는 않지만 PKCS12 외에도 다른 종류의 인증서를 처리해야하기 때문에 Apple이 제공하는 코드는 최대한 많은 종류의 인증서를 처리 할 수 ​​있도록 가능한 많이 일반화해야합니다. –

관련 문제