MatterEx.Commissioning (matter_ex v0.3.0)

Copy Markdown View Source

Agent holding transient commissioning state.

Bridges the commissioning clusters (GeneralCommissioning, OperationalCredentials) with the Node/MessageHandler that needs CASE credentials after commissioning completes.

Supports multiple fabrics. Each fabric is stored by its fabric_index (1..254).

Summary

Types

credentials()

@type credentials() :: %{
  fabric_index: non_neg_integer(),
  noc: binary(),
  icac: binary() | nil,
  private_key: binary(),
  ipk: binary(),
  node_id: integer(),
  fabric_id: integer()
}

Functions

arm(name \\ MatterEx.Commissioning)

@spec arm(GenServer.server()) :: :ok

armed?(name \\ MatterEx.Commissioning)

@spec armed?(GenServer.server()) :: boolean()

child_spec(arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

clear_last_added(name \\ MatterEx.Commissioning)

@spec clear_last_added(GenServer.server()) :: :ok

commissioned?(name \\ MatterEx.Commissioning)

@spec commissioned?(GenServer.server()) :: boolean()

complete(name \\ MatterEx.Commissioning)

@spec complete(GenServer.server()) :: :ok

disarm(name \\ MatterEx.Commissioning)

@spec disarm(GenServer.server()) :: :ok

get_admin_subject(name \\ MatterEx.Commissioning)

@spec get_admin_subject(GenServer.server()) :: non_neg_integer() | nil

get_all_credentials(name \\ MatterEx.Commissioning)

@spec get_all_credentials(GenServer.server()) :: [credentials()]

get_credentials()

@spec get_credentials() :: credentials() | nil

get_credentials(fabric_index)

@spec get_credentials(non_neg_integer() | GenServer.server()) :: credentials() | nil

get_credentials(fabric_index, name)

@spec get_credentials(non_neg_integer(), GenServer.server()) :: credentials() | nil

get_fabric_indices(name \\ MatterEx.Commissioning)

@spec get_fabric_indices(GenServer.server()) :: [non_neg_integer()]

get_keypair(name \\ MatterEx.Commissioning)

@spec get_keypair(GenServer.server()) :: {binary(), binary()} | nil

get_root_cert(name \\ MatterEx.Commissioning)

@spec get_root_cert(GenServer.server()) :: binary() | nil

last_added_fabric(name \\ MatterEx.Commissioning)

@spec last_added_fabric(GenServer.server()) :: non_neg_integer() | nil

remove_fabric(fabric_index, name \\ MatterEx.Commissioning)

@spec remove_fabric(non_neg_integer(), GenServer.server()) :: :ok

reset(name \\ MatterEx.Commissioning)

@spec reset(GenServer.server()) :: :ok

start_link(opts \\ [])

@spec start_link(keyword()) :: Agent.on_start()

store_admin_subject(fabric_index, subject, name \\ MatterEx.Commissioning)

@spec store_admin_subject(non_neg_integer(), non_neg_integer(), GenServer.server()) ::
  :ok

store_keypair(keypair, name \\ MatterEx.Commissioning)

@spec store_keypair(
  {binary(), binary()},
  GenServer.server()
) :: :ok

store_noc(fabric_index, noc, icac, ipk, node_id, fabric_id, name \\ MatterEx.Commissioning)

@spec store_noc(
  non_neg_integer(),
  binary(),
  binary() | nil,
  binary(),
  integer(),
  integer(),
  GenServer.server()
) :: :ok

store_root_cert(cert, name \\ MatterEx.Commissioning)

@spec store_root_cert(binary(), GenServer.server()) :: :ok