{"id":19690952,"url":"https://github.com/insidegui/grcodesignatureverifier","last_synced_at":"2025-07-11T13:11:01.999Z","repository":{"id":56912318,"uuid":"51274365","full_name":"insidegui/GRCodeSignatureVerifier","owner":"insidegui","description":"Simple code signature verification for macOS apps","archived":false,"fork":false,"pushed_at":"2016-12-27T18:14:33.000Z","size":10,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-30T23:56:36.196Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/insidegui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-08T01:18:13.000Z","updated_at":"2022-01-15T01:33:08.000Z","dependencies_parsed_at":"2022-08-21T03:20:22.840Z","dependency_job_id":null,"html_url":"https://github.com/insidegui/GRCodeSignatureVerifier","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/insidegui/GRCodeSignatureVerifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insidegui%2FGRCodeSignatureVerifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insidegui%2FGRCodeSignatureVerifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insidegui%2FGRCodeSignatureVerifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insidegui%2FGRCodeSignatureVerifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/insidegui","download_url":"https://codeload.github.com/insidegui/GRCodeSignatureVerifier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insidegui%2FGRCodeSignatureVerifier/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264816647,"owners_count":23668236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T19:07:30.102Z","updated_at":"2025-07-11T13:11:01.976Z","avatar_url":"https://github.com/insidegui.png","language":"Objective-C","readme":"If you want to support my open source projects financially, you can do so by purchasing a copy of [BrowserFreedom](https://getbrowserfreedom.com), [Mediunic](https://itunes.apple.com/app/mediunic-medium-client/id1088945121?mt=12) or sending Bitcoin to `3DH9B42m6k2A89hy1Diz3Vr3cpDNQTQCbJ` 😁\n\n# GRCodeSignatureVerifier\n\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![CocoaPods](https://img.shields.io/cocoapods/v/GRCodeSignatureVerifier.svg)]()\n\nSimple code signature verification for macOS apps.\n\nGRCodeSignatureVerifier can be used to check if an app has been tampered with by verifying its code signature.\n\n[See demo app to learn more](https://github.com/insidegui/GRCodeSignatureVerifierDemo).\n\n[Read the docs](http://cocoadocs.org/docsets/GRCodeSignatureVerifier).\n\n## Example\n\n### Swift\n```swift\nlet verifier = GRCodeSignatureVerifier.sharedInstance()\n\t\n// requirements are optional, but they make the verification stronger\nverifier.codeRequirements = \"identifier = \\\"com.yourcompany.AppName\\\"\"\n\t\nif !verifier.isSignatureValid {\n\tNSLog(\"The app was modified. Exiting... \\(verifier.validationError)\")\n\texit(1)\n}\n```\n\n### Objective-C\n```objc\nGRCodeSignatureVerifier *verifier = [GRCodeSignatureVerifier sharedInstance];\n\nverifier.codeRequirements = @\"identifier = \\\"com.yourcompany.AppName\\\"\";\n\nif (!verifier.isSignatureValid) {\n\tNSLog(\"The app was modified. Exiting... %@\", verifier.validationError);\n\texit(1);\n}\n```\n## Precompiled code requirements\n\nYou can use the tool `csreq` to compile code requirements:\n\n```shell\n$ csreq -r requirements.txt -b requirements.bin\n```\n\nTo use precompiled code requirements you set the `codeRequirementsData` property:\n\n```objc\nverifier.codeRequirementsData = [NSData dataWithContentsOfFile:@\"/path/to/requirements.bin\"];\n```\nTo learn more about what are code requirements and the code requirements language, [check out this document from Apple](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html#//apple_ref/doc/uid/TP40005929-CH5-SW1).\n\n## Installing\n\n### Using Carthage:\n\n```\ngithub \"insidegui/GRCodeSignatureVerifier\" ~\u003e 1.0\n```\n\n### Using CocoaPods:\n\nIf you're unfamiliar with CocoaPods, read [using CocoaPods](http://guides.cocoapods.org/using/using-cocoapods.html).\n\nAdd the following line to your `Podfile`:\n\n```ruby\npod 'GRCodeSignatureVerifier'\n```\n\n### Manually\n\n#### Framework\n\nJust download the code and add `GRCodeSignatureVerifier.framework` to the `Embedded Binaries` section of your app's target config.\n\n#### Directly\n\nAlternatively, you can just drop `GRCodeSignatureVerifier.h` and `GRCodeSignatureVerifier.m` in your app and use it directly.\n\n## ❤️\n\n[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=insidegui\u0026url=https://github.com/insidegui/GRCodeSignatureVerifier.git)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsidegui%2Fgrcodesignatureverifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finsidegui%2Fgrcodesignatureverifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsidegui%2Fgrcodesignatureverifier/lists"}