53 bool save(uint32_t definitionId,
54 uint16_t definitionVersion,
56 const uint8_t *expectedSha256);
57 bool load(uint32_t definitionId,
58 uint16_t definitionVersion,
62 bool contains(uint32_t definitionId, uint16_t definitionVersion)
const;
63 bool erase(uint32_t definitionId, uint16_t definitionVersion);
66 bool beginStagedSave(uint32_t definitionId,
67 uint16_t definitionVersion,
69 const uint8_t *sha256,
76 uint32_t definitionId,
77 uint16_t definitionVersion,
82 uint32_t definitionId,
83 uint16_t definitionVersion,
85 const uint8_t *sha256);
89 bool calculateAndVerify(
const char *json,
91 const uint8_t *expectedSha256,
92 uint8_t *calculatedSha256)
const;
93 bool readActiveHeader(uint8_t index,
95 uint8_t *activeVariant =
nullptr,
96 uint16_t *chunkCount =
nullptr,
97 uint16_t *chunkSize =
nullptr)
const;
98 bool loadAndRepairActiveHeader(uint8_t index,
100 uint8_t *activeVariant =
nullptr,
101 uint16_t *chunkCount =
nullptr,
102 uint16_t *chunkSize =
nullptr)
const;
103 bool loadHeader(uint8_t index,
106 uint16_t *chunkCount =
nullptr,
107 uint16_t *chunkSize =
nullptr)
const;
108 bool saveSlot(uint8_t index,
109 uint32_t definitionId,
110 uint16_t definitionVersion,
113 const uint8_t *sha256);
114 bool saveHeader(uint8_t index,
119 bool loadPayload(uint8_t slot,
125 size_t jsonSize)
const;
126 bool eraseChunks(uint8_t index, uint8_t variant);
127 bool eraseVariant(uint8_t index, uint8_t variant);
128 bool eraseLegacySlot(uint8_t index);
129 bool eraseSlot(uint8_t index);
130 bool setActiveVariant(uint8_t index, uint8_t variant);
131 bool variantExists(uint8_t index, uint8_t variant)
const;
132 bool slotExists(uint8_t index)
const;
133 int findSlot(uint32_t definitionId,
134 uint16_t definitionVersion,
136 int findFreeSlot()
const;
137 static uint8_t otherVariant(uint8_t variant);
138 static bool isValidVariant(uint8_t variant);
140 static bool makeActKey(uint8_t index,
char *output,
size_t outputSize);
141 static bool makeHeaderKey(uint8_t index,
145 static bool makeChunkKey(uint8_t index,
150 static bool makeLegacyHeaderKey(uint8_t index,
153 static bool makeLegacyChunkKey(uint8_t index,