#apple #macos #codesign

bin+lib apple-codesign

Pure Rust interface to code signing on Apple platforms

11 breaking releases

Uses new Rust 2021

0.19.0 Sep 18, 2022
0.17.0 Aug 7, 2022
0.16.0 Jun 5, 2022
0.10.0 Mar 28, 2022

#320 in Cryptography

Download history 185/week @ 2022-06-08 139/week @ 2022-06-15 173/week @ 2022-06-22 172/week @ 2022-06-29 177/week @ 2022-07-06 156/week @ 2022-07-13 304/week @ 2022-07-20 424/week @ 2022-07-27 357/week @ 2022-08-03 406/week @ 2022-08-10 347/week @ 2022-08-17 636/week @ 2022-08-24 476/week @ 2022-08-31 510/week @ 2022-09-07 708/week @ 2022-09-14 645/week @ 2022-09-21

2,423 downloads per month
Used in 5 crates (3 directly)

MPL-2.0 license

1MB
20K SLoC

apple-codesign

apple-codesign is a crate implementing functionality related to code signing on Apple platforms.

All functionality is implemented in pure Rust and doesn't require any 3rd party or proprietary software nor do we require running on Apple platforms.

We believe this crate provides the most comprehensive implementation of Apple code signing outside the canonical Apple tools. We have support for the following features:

  • Signing Mach-O binaries (the executable file format on Apple operating systems).
  • Signing, notarizing, and stapling directory bundles (e.g. .app directories).
  • Signing, notarizing, and stapling XAR archives / .pkg installers.
  • Signing, notarizing, and stapling DMG disk images.

What this all means is that you can sign, notarize, and release Apple software from anywhere you can get the Rust crate to compile. Linux, Windows, and macOS are officially supported by other operating systems (like BSDs) should work as well.

See the crate documentation at https://docs.rs/apple-codesign/latest/apple_codesign/ and the end-user documentation at https://gregoryszorc.com/docs/apple-codesign/main/ for more.

rcodesign CLI

This crate defines an rcodesign binary which provides a CLI interface to some of the crate's capabilities. To install:

# From a Git checkout
$ cargo run --bin rcodesign -- --help
$ cargo install --bin rcodesign

# Remote install.
$ cargo install --git https://github.com/indygreg/apple-platform-rs --branch main --bin rcodesign apple-codesign

Dependencies

~52MB
~1M SLoC