ExIcaoVds.SignatureVerifier behaviour (ex_icao_vds v0.3.2)

Copy Markdown

Verifies a VDS signature against trust material resolved by a TrustResolver.

The default implementation supports ECDSA P-256/SHA-256 and P-384/SHA-384 using Erlang's :crypto module. Custom implementations can be injected via verifier: in the configuration.

Summary

Callbacks

Verify payload against signature_zone using trust_material.

Functions

Default ECDSA verification using :crypto.

Callbacks

verify_signature(payload, signature_zone, trust_material, opts)

@callback verify_signature(
  payload :: binary(),
  signature_zone :: ExIcaoVds.SignatureZone.t(),
  trust_material :: term(),
  opts :: keyword()
) :: {:ok, :valid} | {:error, ExIcaoVds.Error.t()}

Verify payload against signature_zone using trust_material.

Functions

verify(payload, sz, trust_material, opts \\ [])

@spec verify(binary(), ExIcaoVds.SignatureZone.t(), term(), keyword()) ::
  {:ok, :valid} | {:error, ExIcaoVds.Error.t()}

Default ECDSA verification using :crypto.

trust_material must be {:public_key, ec_point_binary, curve_atom} or {:certificate, cert_der, _chain}.