iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用安全框架在Objective-C中以编程方式创建x509证书大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力寻找一种方法,使用安全框架以编程方式(自签名)在Objective-C中创建x509证书.我没有在我的项目中使用OpenSSl.所以我不能虑使用OpenSSl.以下是我已经创建的一些内容

>创建RSA密钥对.使用 – (void)generateKeyPairPlease函数Apple’s docs
>使用ios-csr(https://github.com/ateska/ios-csr)创建CSR.请参阅以下代码

SCCSR *sccsr = [[SCCSR alloc]init];
sccsr.commonName = @"some name";
sccsr.organizationName = @"some organisation";

NSData *certificaterequest = [sccsr build:pPublicKey privateKey:privateKey];
NSString *str = [certificaterequest base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

NSString *strCertificaterequest = @"-----BEGIN CERTIFICATE requEST-----\n";
strCertificaterequest = [strCertificaterequest StringByAppendingString:str];
strCertificaterequest = [strCertificaterequest StringByAppendingString:@"\n-----END CERTIFICATE requEST-----\n"];

>现在我需要创建X509证书(自签名).我使用下面的代码.

// Convert to Base64 data
NSData *base64Data = [certificaterequest base64EncodedDataWithOptions:0];
SecCertificateRef cer = SecCertificateCreateWithData ( NULL,(__bridge CFDataRef) base64Data);
NSLog(@"%@",cer);

> cer似乎是NULl.SecCertificateCreateWithData需要“按照the documentation”的“X.509证书的D DER(可分辨编码规则)表示”.

我的方法是否正确?重申:我有一个RSA密钥对(公钥和私钥),成功生成了CSR(证书签名请求).现在我需要以编程方式生成X509证书.

我使用的是6.2(6C131E)和iOS SDK 8.2.

解决方法

我认为实际上不可能使用安全框架. AFAICT,在iOS / OSX上执行此操作的唯一方法是使用(已弃用的)CDSA库或(已弃用的)OpenSSL库.

在@L_874_15@有一个库可以做到这一点,但是它使用了一些(已弃用的)CDSA / CSSA调用,并且依赖于很多同一作者的实用程序/库函数,我发现它们没有用.

我建议您在bugreporter.apple.com上提交一个错误来表达您希望能够生成x.509证书.我有

编辑:MYCrypto作者(snej)还有一个简化版本MYAnonymousIdentity,它采用预先创建的x.509自签名证书,并使用最少的SDK调用将新的RSA密钥/签名注入现有证书.它还使用了他的一些实用程序/库的东西,但是我已经为我自己的项目删除所有这些,你可以找到修改后的代码,我用来生成预先安装的证书的脚本(以及包含所有内容的头文件)修改补偿):https://github.com/Hammerspoon/hammerspoon/tree/master/extensions/httpserver

大佬总结

以上是大佬教程为你收集整理的ios – 使用安全框架在Objective-C中以编程方式创建x509证书全部内容,希望文章能够帮你解决ios – 使用安全框架在Objective-C中以编程方式创建x509证书所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。