ssl-p12

-(void)startSSL{
     // Read .p12 file
    NSString *path = [[NSBundle mainBundle] pathForResource:@"cloudscreen-prod" ofType:@"p12"];
    NSData *pkcs12data = [[NSData alloc] initWithContentsOfFile:path];

     // Import .p12 data
    CFArrayRef keyref = NULL;
    OSStatus sanityChesk = SecPKCS12Import((__bridge CFDataRef)pkcs12data,
                                           (__bridge CFDictionaryRef)[NSDictionary
                                                                      dictionaryWithObject:@"3437563"
                                                                      forKey:(__bridge id)kSecImportExportPassphrase],
                                           &keyref);

    if (sanityChesk != noErr) {

        NSLog(@"Error while importing pkcs12 [%@]", [[NSNumber numberWithInt:sanityChesk]stringValue]);
    } //else
    //        NSLog(@"Success opening p12 certificate.");

    // Identity
    CFDictionaryRef identityDict = CFArrayGetValueAtIndex(keyref, 0);
    SecIdentityRef identityRef = (SecIdentityRef)CFDictionaryGetValue(identityDict,kSecImportItemIdentity);
        // Cert
    SecCertificateRef cert = NULL;
    OSStatus status = SecIdentityCopyCertificate(identityRef, &cert);
    if (status)
        NSLog(@"SecIdentityCopyCertificate failed.");

    // the certificates array, containing the identity then the root certificate
    NSArray *myCerts = [[NSArray alloc] initWithObjects:(__bridge id)identityRef, (__bridge id)cert, nil];

    NSDictionary *sslset = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                            (id)kCFBooleanFalse,kCFStreamSSLValidatesCertificateChain,
                            myCerts,kCFStreamSSLCertificates,
                            //                            @"192.168.0.121", kCFStreamSSLPeerName,
                            kCFStreamSocketSecurityLevelNegotiatedSSL,kCFStreamSSLLevel,
                            kCFStreamSocketSecurityLevelNegotiatedSSL,kCFStreamPropertySocketSecurityLevel,
                            kCFBooleanTrue,kCFStreamPropertyShouldCloseNativeSocket,
                            kCFBooleanFalse,kCFStreamSSLIsServer,
                            nil];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值