2016-06-09 121 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