Google is committed to advancing racial equity for Black communities. See how.

nl::Weave::DeviceLayer::Internal::FactoryProvisioningBase

#include <src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FactoryProvisioning.h>

Supports device factory provisioning at boot time.

Summary

The factory provisioning feature allows factory or developer-supplied provisioning information to be injected into a device at boot time and automatically stored in persistent storage. Provisioning information is written into device memory (typically RAM) by an external tool, where it is picked by the OpenWeave initialization code and stored into persistent storage early in the boot process.

The factory provisioning feature allows the following values to be set:

  • Device Serial number
  • Manufacturer-assigned Device Id
  • Manufacturer-assigned Device Certificate
  • Manufacturer-assigned Device Key
  • Pairing Code
  • Product Revision
  • Manufacturing Date

This template class provides a default base implementation of the device provisioning feature that can be specialized as needed by compile-time derivation.

Public functions

ProvisionDeviceFromRAM(uint8_t *memRangeStart, uint8_t *memRangeEnd)

Protected functions

LocateProvisioningData(uint8_t *memRangeStart, uint8_t *memRangeEnd, uint8_t *& dataStart, size_t & dataLen)
bool
StoreProvisioningData(TLV::TLVReader & reader)
StoreProvisioningValue(uint8_t tagNum, TLV::TLVReader & reader)

Public functions

ProvisionDeviceFromRAM

WEAVE_ERROR ProvisionDeviceFromRAM(
  uint8_t *memRangeStart,
  uint8_t *memRangeEnd
)

Protected functions

LocateProvisioningData

bool LocateProvisioningData(
  uint8_t *memRangeStart,
  uint8_t *memRangeEnd,
  uint8_t *& dataStart,
  size_t & dataLen
)

StoreProvisioningData

WEAVE_ERROR StoreProvisioningData(
  TLV::TLVReader & reader
)

StoreProvisioningValue

WEAVE_ERROR StoreProvisioningValue(
  uint8_t tagNum,
  TLV::TLVReader & reader
)