apple-codesign 0.24.0

Pure Rust interface to code signing on Apple platforms
Documentation
```
$ rcodesign generate-self-signed-certificate --help
Generate a self-signed certificate that can be used for code signing.

This command will generate a new key pair using the algorithm of choice
then create an X.509 certificate wrapper for it that is signed with the
just-generated private key. The created X.509 certificate has extensions
that mark it as appropriate for code signing.

Certificates generated with this command can be useful for local testing.
However, because it is a self-signed certificate and isn't signed by a
trusted certificate authority, Apple operating systems may refuse to
load binaries signed with it.

By default the command prints 2 PEM encoded blocks. One block is for the
X.509 public certificate. The other is for the PKCS#8 private key (which
can include the public key).

The `--pem-filename` argument can be specified to write the generated
certificate pair to a pair of files. The destination files will have
`.crt` and `.key` appended to the value provided.

When the certificate is written to a file, it isn't printed to stdout.


Usage: rcodesign[EXE] generate-self-signed-certificate [OPTIONS] --person-name <PERSON_NAME>

Options:
      --algorithm <ALGORITHM>
          Which key type to use
          
          [default: rsa]
          [possible values: ecdsa, ed25519, rsa]

  -v, --verbose...
          Increase logging verbosity. Can be specified multiple times

      --profile <PROFILE>
          [default: apple-development]
          [possible values: mac-installer-distribution, apple-distribution, apple-development, developer-id-application, developer-id-installer]

      --team-id <TEAM_ID>
          Team ID (this is a short string attached to your Apple Developer account)
          
          [default: unset]

      --person-name <PERSON_NAME>
          The name of the person this certificate is for

      --country-name <COUNTRY_NAME>
          Country Name (C) value for certificate identifier
          
          [default: XX]

      --validity-days <VALIDITY_DAYS>
          How many days the certificate should be valid for
          
          [default: 365]

      --pem-filename <PEM_FILENAME>
          Base name of files to write PEM encoded certificate to

      --pem-unified-filename <PEM_UNIFIED_FILENAME>
          Filename to write PEM encoded private key and public certificate to

      --p12-file <P12_PATH>
          Filename to write a PKCS#12 / p12 / PFX encoded certificate to

      --p12-password <P12_PASSWORD>
          Password to use to encrypt --p12-path.
          
          If not provided you will be prompted for a password.

  -h, --help
          Print help (see a summary with '-h')

```

```
$ rcodesign generate-self-signed-certificate --profile apple-development --person-name 'Johnny Apple'
-----BEGIN CERTIFICATE-----
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
[..]
-----END PRIVATE KEY-----

```

Try a PKCS#12 file

```
$ rcodesign generate-self-signed-certificate --profile apple-development --person-name 'Johnny Apple' --p12-file test.p12 --p12-password password
writing PKCS#12 certificate to test.p12

```