2016-06-09 54 views
0

DER證書的問題是非常直截了當。如何才能在osx中​​使用SecurityFramework API創建x509證書。我想使用由SecKeyGeneratePair生成的publicKey創建證書。創建OS X

我只能在實況迄今爲止方法SecCertificateCreateWithData發現,但這已經需要一個X509證書作爲一個參數,所以這不會對我做的伎倆。我找不到任何可以從頭開始創建證書的方法。另外我對這個話題也不是很有經驗,所以很可能我在這裏錯過了一些東西。任何幫助是極大的讚賞。

而且使用OpenSSL或任何過時的API是不是我的項目的選項。

我已經碰到這個問題Creating x509 certificates programmatically in Objective-C using the Security Framework,但由於這是一歲我不知道,如果有可能,現在可能做到這一點,

回答

1

我不認爲它使用的安全框架實際上可能。 AFAICT,在iOS/OSX上執行此操作的唯一方法是使用(不建議使用的)CDSA庫或(不贊成使用的)OpenSSL庫。

有一個庫https://github.com/snej/MYCrypto可以做到這一點,但它使用了一些(不贊成使用的)CDSA/CSSA調用,並且依賴於很多相同作者的實用程序/庫函數,我發現這些函數沒有幫助。

我建議你在提交一個bugreporter.apple.com錯誤來表達自己的願望是能夠產生X.509證書。我有!

編輯:MYCrypto作者(snej)也有一個簡化版本MYAnonymousIdentity,它接受預先創建的x.509自簽名證書,並使用最少的SDK調用將新的RSA密鑰/簽名插入到現有的證書。它還使用了他的一些實用程序/庫文件,但是我已經爲我自己的項目刪除了所有這些內容,並且可以找到修改的代碼,我用來生成預先封裝的證書的腳本(以及包含所有在對修改的偏移量):https://github.com/Hammerspoon/hammerspoon/tree/master/extensions/httpserver

來源:
Creating x509 certificates programmatically in Objective-C using the Security Framework

+0

謝謝你的回答,但是這似乎沒有什麼我正在尋找,因爲我不希望導入特定的鍵,但創建一個使用從SecKeyGeneratePair創建的密鑰的證書,它已經提供了一個SecKeyRef對象。用公鑰或私鑰加密某些東西並不是我面臨的問題。 – mahagony

+0

其他一些問題,可能會幫助:http://stackoverflow.com/questions/29296657/creating-x509-certificates-programmatically-in-objective-c-using-the-security-fr與例如另一種方式:HTTP:// stackoverflow.com/questions/7715426/what-is-the-reason-of-ksectrustresultrecoverabletrustfailure/8937798#8937798希望它可以幫助... – Destrif