2012-12-24 2 views
3

SecKeyGeneratePair으로 생성 된 RSA 공개 키를 pkcs # 8 형식으로 내보내려면 어떻게해야합니까?iOS에서 pkcs # 1 형식으로 공개 키를 내 보냅니 까?

저는 RSA 비공개/공개 키 쌍을 생성하고, 콘텐츠에 서명하고, 공개 키를 pkcs # 8 형식으로 내보내 서버로 보낼 수 있어야하는 iOS 앱을 작성하고 있습니다. 지금까지 SecKeyGeneratePair으로 내 페어를 생성하고 내 공개 키와 비공개 키를 SecItemCopyMatching으로 검색하고 SecKeyRawSign으로 서명했습니다. 모두 잘 작동하고있는 것으로 보이며 서명은 SecKeyRawVerify으로 테스트하는 데만 유효합니다. 하지만 불행히도 pkcs # 8에서 공개 키를 올바르게 내보내는 방법에 대해서는 완전히 비어 있습니다.

도움을 주셔서 감사합니다.

답변

2

경험상, iOS 보안 프레임 워크에서 지원하지 않는 무언가를 수행해야하는 경우 자신의 OpenSSL 사본을 만들어 프로젝트에 링크하십시오. iOS는 분명히 OpenSSL을 내부적으로 사용하지만 응용 프로그램 개발자에게는 OpenSSL이 거의 노출되지 않습니다.

많은 OpenSSL-for-iOS 프로젝트 중 하나 (예 : this one)를 가져 와서 시작하십시오.

OpenSSL을 직접 사용하면 여러 가지 장점이 있습니다. 그 중 일부는 많은 샘플 코드와 온라인 설명서가 http://openssl.org에 있으며, 암호화 관련 사항에 필요한 모든 작업을 수행 할 수 있습니다.

업데이트는 : Cocopods를 통해 사용할 수 OpenSSL을 여러 버전이 있습니다 : OpenSSLOpenSSL-Universal이 iOS 또는 OSX 프로젝트 훨씬 쉽게로 OpenSSL을 가져 오기를해야한다.

+0

이것은 매우 좋은 의견/제안 이었지만 틀림없이 쉽게 해결할 수있는 솔루션이 있었고 마침내이 특별한 경우를 더 잘 이해하게되었습니다. – joshOfAllTrades

+0

해결책을 찾았 기쁘다. –

2

http://blog.wingsofhermes.org/?p=42에 설명 된 프로세스는 외부 라이브러리를 추가 할 필요없이 쉽게 형식이 지정된 rsa 공개 키를 쉽게 내보낼 수 있습니다. 요컨대, iOS는 적절한 인코딩을하지 않고 키를 내보내는 것을 제외하고는 올바르게 작업하고있었습니다.

찾을 가능성이 가장 쉬운 게시물이 아니므로이 링크를 사용하면 누군가에게 시간을 절약 할 수 있습니다.

관련 문제