Re: Problem with NSStream SSL Connection
Re: Problem with NSStream SSL Connection
- Subject: Re: Problem with NSStream SSL Connection
- From: Frederick Cheung <email@hidden>
- Date: Mon, 9 Nov 2009 13:05:07 +0000
On 9 Nov 2009, at 12:47, Ramesh P wrote:
Hi all,
I am using NSStream with SSL property for socket connection. It
works fine when I use the local IP address such as 192.168.1.77. But
if I use any server like www.xyz.com (it has SecurityLevelTLSv1), it
shows an error
error code:-9843, Message:Operation could not be completed.
(NSUnknownErrorDomain error -9843.)
Given the subject matter that error is coming out of SecureTransport,
and in there you have:
/* more errors detected by us */
errSSLHostNameMismatch = -9843, /* peer host name mismatch */
ie the name on the certificate doesn't match the host name you used to
connect to it.
Fred
Here is my code:
NSURL *website = [NSURL URLWithString:@"www.xyz.com"];
NSHost *host = [NSHost hostWithName:[website host]];
if(host) {
NSLog(@"Valid host");
[NSStream getStreamsToHost:host port:443
inputStream:&iStream outputStream:&oStream] ;
[self openStream];
}.
-(void)openStream{
NSMutableDictionary *settings = [NSMutableDictionary
dictionaryWithCapacity:1];
[settings setObject:(NSString *)NSStreamSocketSecurityLevelTLSv1
forKey:(NSString *)kCFStreamSSLLevel];
[settings setObject:[NSNumber numberWithBool:YES] forKey:
(NSString *)kCFStreamSSLAllowsAnyRoot];
[iStream retain];
[iStream setDelegate:self];
[iStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
CFReadStreamSetProperty((CFReadStreamRef)iStream,
kCFStreamPropertySSLSettings, (CFTypeRef)settings);
//[iStream setProperty:NSStreamSocketSecurityLevelTLSv1
forKey:NSStreamSocketSecurityLevelKey];
[iStream open];
[oStream retain];
[oStream setDelegate:self];
[oStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
CFWriteStreamSetProperty((CFWriteStreamRef)oStream,
kCFStreamPropertySSLSettings, (CFTypeRef)settings);
//[oStream setProperty:NSStreamSocketSecurityLevelTLSv1
forKey:NSStreamSocketSecurityLevelKey];
[oStream open];
}
I tried using both NSStream and CFStream. I am getting the same
error in both cases.
NSStreamEventOpenCompleted and NSStreamEventErrorOccurred events are
called.
Please help me in this.
Thanks in advance.
Ramesh.P
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden