# `WalletPasses.Apple.PKCS7`
[🔗](https://gitlab.com/phinnaeus/wallet_passes/blob/main/lib/wallet_passes/apple/pkcs7.ex#L1)

Constructs PKCS#7 SignedData structures for Apple Wallet pass signing.

Uses only Erlang/OTP's `:public_key` and `:crypto` — no external dependencies.

# `alg_id`
*macro* 

# `alg_id`
*macro* 

# `content_info`
*macro* 

# `content_info`
*macro* 

# `encap_content_info`
*macro* 

# `encap_content_info`
*macro* 

# `issuer_serial`
*macro* 

# `issuer_serial`
*macro* 

# `sign`

```elixir
@spec sign(binary(), binary(), binary(), binary()) ::
  {:ok, binary()} | {:error, term()}
```

Signs data and produces a DER-encoded PKCS#7 SignedData structure.

- `data` — the binary content to sign (manifest JSON for Apple Wallet)
- `cert_pem` — PEM-encoded signer certificate
- `key_pem` — PEM-encoded private key for the signer
- `extra_certs_pem` — PEM-encoded additional certificates (e.g., WWDR)

Returns `{:ok, der_binary}` or `{:error, reason}`.

# `signed_data`
*macro* 

# `signed_data`
*macro* 

# `signer_info_rec`
*macro* 

# `signer_info_rec`
*macro* 

---

*Consult [api-reference.md](api-reference.md) for complete listing*
