| 1 | //! Apple code signing through App Store Connect. |
| 2 | //! |
| 3 | //! Three parts. [`csr`] generates an RSA key pair and a signing request |
| 4 | //! locally, [`certificate`] asks Apple to certify it, and [`profile`] binds |
| 5 | //! a certificate to an App ID so signing knows which entitlements are |
| 6 | //! allowed. |
| 7 | //! |
| 8 | //! The division of labour is the whole point. Apple never receives, and |
| 9 | //! never returns, a private key. You keep it; they vouch for its public |
| 10 | //! half. A certificate whose key file is lost is permanently unusable, and |
| 11 | //! an expired certificate cannot be renewed, only replaced by a new key |
| 12 | //! pair and a new request. |
| 13 | //! |
| 14 | //! The API calls are an extension trait on |
| 15 | //! [`Client`](smbcloud_ascapi_core::Client), since that type belongs to |
| 16 | //! the core crate. Import [`prelude`] to call them. |
| 17 | |
| 18 | pub mod certificate; |
| 19 | pub mod csr; |
| 20 | pub mod profile; |
| 21 | |
| 22 | pub mod prelude { |
| 23 | pub use crate::certificate::CertificatesApi; |
| 24 | pub use crate::profile::ProfilesApi; |
| 25 | } |