WalletPasses.Apple.PKCS7 (wallet_passes v0.5.0)

Copy Markdown View Source

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

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

Summary

Functions

alg_id(args \\ [])

(macro)

alg_id(record, args)

(macro)

content_info(args \\ [])

(macro)

content_info(record, args)

(macro)

encap_content_info(args \\ [])

(macro)

encap_content_info(record, args)

(macro)

issuer_serial(args \\ [])

(macro)

issuer_serial(record, args)

(macro)

sign(data, cert_pem, key_pem, extra_certs_pem)

@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(args \\ [])

(macro)

signed_data(record, args)

(macro)

signer_info_rec(args \\ [])

(macro)

signer_info_rec(record, args)

(macro)