/macops-molcodesignchecker

Simple Objective-C code signature validation

Primary LanguageObjective-CApache License 2.0Apache-2.0

MOLCodesignChecker

Provides an easy way to do code signature validation in Objective-C

Usage

#import <MOLCertificate/MOLCertificate.h>
#import <MOLCodesignChecker/MOLCodesignChecker.h>

- (BOOL)validateMySignature {
  MOLCodesignChecker *csInfo = [[MOLCodesignChecker alloc] initWithSelf];
  if (csInfo) {
    // I'm signed! Check the certificate
    NSLog(@"%@, %@", csInfo.leafCertificate, csInfo.leafCertificate.SHA256);
    return YES;
  }
  return NO;
}

- (BOOL)validateFile:(NSString *)filePath {
  MOLCodesignChecker *csInfo = [[MOLCodesignChecker alloc] initWithBinaryPath:filePath];
  if (csInfo) {
    // I'm signed! Check the certificate
    NSLog(@"%@, %@", csInfo.leafCertificate, csInfo.leafCertificate.SHA256);
    return YES;
  }
  return NO;
}

Installation

Using Bazel Modules

Add the following to your MODULE.bazel:

bazel_dep("molcodesignchecker", version = "3.0")
git_override(
    module_name = "molcodesignchecker",
    remote = "https://github.com/google/macops-molcodesignchecker.git",
    tag = "v3.0",
)

Using Bazel WORKSPACE

Add the following to your WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(
    name = "MOLCodesignChecker",
    remote = "https://github.com/google/macops-molcodesignchecker.git",
    tag = "v3.0",
)

Adding dependency in BUILD

In your BUILD file, add MOLCodesignChecker as a dependency:

objc_library(
    name = "MyAwesomeApp_lib",
    srcs = ["src/MyAwesomeApp.m", "src/MyAwesomeApp.h"],
    deps = ["@molcodesignchecker//:MOLCodesignChecker"],
)

Contributing

Patches to this library are very much welcome. Please see the CONTRIBUTING file.