ResourceHandleIOS.mm [plain text]
//
// ResourceHandleIPhone.mm
// WebCore
//
// Copyright 2011 Apple Inc. All rights reserved.
//
#import "config.h"
#import "ResourceHandleInternal.h"
#if USE(CFNETWORK)
#import <CFNetwork/CFSocketStreamPriv.h>
#import <Foundation/NSURLRequestPrivate.h>
using namespace WebCore;
namespace WebCore {
CFMutableDictionaryRef ResourceHandle::createSSLPropertiesFromNSURLRequest(const ResourceRequest& request)
{
NSString *host = request.url().host();
NSArray *certArray = [NSURLRequest allowsSpecificHTTPSCertificateForHost:host];
BOOL allowsAnyCertificate = [NSURLRequest allowsAnyHTTPSCertificateForHost:host];
if (!certArray && !allowsAnyCertificate)
return 0;
CFMutableDictionaryRef sslProps = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
if (certArray)
CFDictionarySetValue(sslProps, _kCFStreamSSLTrustedLeafCertificates, (CFTypeRef) certArray);
if (allowsAnyCertificate)
CFDictionarySetValue(sslProps, kCFStreamSSLValidatesCertificateChain, kCFBooleanFalse);
return sslProps;
}
}
#endif