README.md
Rendering markdown...
@import Darwin;
@import Foundation;
// http://newosxbook.com/src.jl?tree=listings&file=Vol.III/mistool.c
extern int MISValidateSignatureAndCopyInfo(CFStringRef File, CFDictionaryRef Opts, CFDictionaryRef* Info);
extern CFStringRef kMISValidationOptionRespectUppTrustAndAuthorization;
extern CFStringRef kMISValidationOptionAllowAdHocSigning;
extern CFStringRef kMISValidationOptionLogResourceErrors;
extern CFStringRef kMISValidationOptionOnlineAuthorization;
extern CFStringRef kMISValidationOptionValidateSignatureOnly;
int main(int argc, char** argv) {
NSDictionary* info = nil;
NSDictionary* dict = @{
//(__bridge NSString*)kMISValidationOptionRespectUppTrustAndAuthorization : @YES,
// HACK
//(__bridge NSString*)kMISValidationOptionAllowAdHocSigning : @NO,
(__bridge NSString*)kMISValidationOptionLogResourceErrors : @YES,
(__bridge NSString*)kMISValidationOptionOnlineAuthorization : @YES,
(__bridge NSString*)kMISValidationOptionValidateSignatureOnly: @YES,
};
NSString* path = argc == 2? [NSString stringWithUTF8String:argv[1]]: @"/Applications/Firefox.app/Contents/MacOS/firefox";
unsigned long long status = MISValidateSignatureAndCopyInfo(
(__bridge CFStringRef) path,
(__bridge CFDictionaryRef)dict, (__bridge CFDictionaryRef*)&info);
NSLog(@"status = %llx info = %@", status, info);
}