Objective-C wrapper around SecCertificateRef with caching accessors.
Requires ARC. Tested on OS X 10.13+.
#import <MOLCertificate/MOLCertificate.h>
- (MOLCertificate *)certificateFromFile:(NSString *)filePath {
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
return [[MOLCertificate alloc] initWithCertificateDataPEM:fileData];
}
- (BOOL)validateCertificate:(MOLCertificate *)cert {
if ([cert.validFrom compare:[NSDate date]) == NSOrderedDescending) {
NSLog(@"Certificate has expired");
return NO;
}
if (! [cert.commonName isEqual:@"My Certificate"]) {
NSLog(@"Certificate is not named the way I expected");
return YES;
}
if (! [cert.countryName isEqual:@"US"]) {
NSLog(@"This certificate is very un-American.");
}
}
Add the following line to your Podfile:
pod 'MOLCertificate'
Using Bazel
Add the following to your WORKSPACE:
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "MOLCertificate",
remote = "https://github.com/google/macops-molcertificate.git",
tag = "v2.0",
)
And in your BUILD file, add MOLCertificate as a dependency:
objc_library( name = "MyAwesomeApp_lib", srcs = ["src/MyAwesomeApp.m", "src/MyAwesomeApp.h"], deps = ["@MOLCertificate//:MOLCertificate"], )
Reference documentation is at CocoaDocs.org:
http://cocoadocs.org/docsets/MOLCertificate
Patches to this library are very much welcome. Please see the CONTRIBUTING file.