首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用的套接字上的NSStream SSL

使用的套接字上的NSStream SSL
EN

Stack Overflow用户
提问于 2010-02-10 23:04:09
回答 1查看 6.9K关注 0票数 8

我正在编写一个在iphone上使用NSStream的SSL函数的应用程序。我知道SSL正在工作,因为我可以使用SSL直接连接服务器。

我遇到了一个问题,使用starttls的协议要求我在套接字上使用unsecured进行通信,发送starttls命令,然后对SSL重用相同的套接字。据我所知,nsstream连接不能重用,并且在打开连接后不能在它们上启动SSL。

我想创建我自己的socket,手动在上面通信,然后使用现有的socket设置一个NSstream,并以这种方式启动SSL。但是,套接字上的通信似乎将其置于无法在其上启动SSL的状态。对nsstream使用套接字的任何尝试都会导致错误。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-06 12:34:32

这才是正确的做法。虽然这样做(在套接字连接后设置属性)是没有文档记录的,但这是我的Monal xmpp客户端直接编写的代码,并且苹果在应用商店中从未给我带来过任何问题。

代码语言:javascript
复制
 NSInputStream *iStream;
NSOutputStream *oStream;


CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)server, port, &iStream, &oStream);


[iStream open];
    [oStream open];

连接打开后,您将获得NSStreamEventOpenCompleted,并且startTLS命令已从客户端发送到主机:

代码语言:javascript
复制
NSDictionary *settings = [ [NSDictionary alloc ] 
                                  initWithObjectsAndKeys:
                                  [NSNumber numberWithBool:YES], @"kCFStreamSSLAllowsExpiredCertificates",
                                  [NSNumber numberWithBool:YES], @"kCFStreamSSLAllowsExpiredRoots",
                                  [NSNumber numberWithBool:YES], @"kCFStreamSSLAllowsAnyRoot",
                                  [NSNumber numberWithBool:NO], @"kCFStreamSSLValidatesCertificateChain",
                                  [NSNull null],@"kCFStreamSSLPeerName",
                                  @"kCFStreamSocketSecurityLevelNegotiatedSSL", 
                                  @"kCFStreamSSLLevel",
                                  nil ];
        CFReadStreamSetProperty((CFReadStreamRef)iStream, 
                                @"kCFStreamPropertySSLSettings", (CFTypeRef)settings);
        CFWriteStreamSetProperty((CFWriteStreamRef)oStream, 
                                 @"kCFStreamPropertySSLSettings", (CFTypeRef)settings);
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2237735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档