Slide 19
Slide 19 text
Load certificate data, prepare
trust evaluation
if (nil == self.certificateData) {
NSString * certificatePath = [[NSBundle mainBundle] pathForResource:@"rootca" ofType:@"crt"];
if (certificatePath != nil) {
self.certificateData = [NSData dataWithContentsOfFile:certificatePath options:0 error:&error];
} else {
isNotValid = YES;
}
}
if (error == nil) {
SecCertificateRef certificate = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)self.certificateData);
if (nil == certificate) {
isNotValid = YES;
} else {
CFMutableArrayRef certificatesArray = CFArrayCreateMutable(NULL, 1, &kCFTypeArrayCallBacks);
CFArraySetValueAtIndex(certificatesArray, 0, (const void *)certificate);
SecTrustSetAnchorCertificates(serverTrustContext, certificatesArray);
SecTrustSetAnchorCertificatesOnly(serverTrustContext, true);
CFRelease(certificatesArray); CFRelease(certificate);
}
}else {
isNotValid = YES;
}