Merge pull request #1391 from kcharwood/ssl_defaults

Updated ssl pinning mode to have default pinned certificates by default
This commit is contained in:
Mattt Thompson 2013-09-29 15:37:00 -07:00
commit 4081e73892
3 changed files with 12 additions and 0 deletions

View File

@ -154,6 +154,7 @@ static NSArray * AFPublicKeyTrustChainForServerTrust(SecTrustRef serverTrust) {
+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode {
AFSecurityPolicy *securityPolicy = [[self alloc] init];
securityPolicy.SSLPinningMode = pinningMode;
[securityPolicy setPinnedCertificates:[self defaultPinnedCertificates]];
return securityPolicy;
}

View File

@ -31,6 +31,7 @@ static NSString * const AFAppDotNetAPIBaseURLString = @"https://alpha-api.app.ne
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:AFAppDotNetAPIBaseURLString]];
[_sharedClient setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey]];
});
return _sharedClient;

View File

@ -165,4 +165,14 @@ static SecCertificateRef AFUTHTTPBinOrgCertificate() {
XCTAssert(policy.allowInvalidCertificates == NO, @"policyWithPinningMode: should not allow invalid ssl certificates by default.");
}
- (void)testThatSSLPinningPolicyClassMethodContainsDefaultCertificates{
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
XCTAssertNotNil(policy.pinnedCertificates, @"Default certificate array should not be empty for SSL pinning mode policy");
}
- (void)testThatDefaultPinningPolicyClassMethodContainsNoDefaultCertificates{
AFSecurityPolicy *policy = [AFSecurityPolicy defaultPolicy];
XCTAssertNil(policy.pinnedCertificates, @"Default certificate array should be empty for default policy.");
}
@end