@@ -37,6 +37,18 @@ CHIP_ERROR LoadKeypairFromRaw(ByteSpan privateKey, ByteSpan publicKey, Crypto::P
37
37
memcpy (serializedKeypair.Bytes () + publicKey.size (), privateKey.data (), privateKey.size ());
38
38
return keypair.Deserialize (serializedKeypair);
39
39
}
40
+
41
+ CHIP_ERROR GetFactoryDataString (const FactoryDataString & str, char * buf, size_t bufSize)
42
+ {
43
+ ReturnErrorCodeIf (bufSize < str.len + 1 , CHIP_ERROR_BUFFER_TOO_SMALL);
44
+ ReturnErrorCodeIf (!str.data , CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND);
45
+
46
+ memcpy (buf, str.data , str.len );
47
+ buf[str.len ] = 0 ;
48
+
49
+ return CHIP_NO_ERROR;
50
+ }
51
+
40
52
} // namespace
41
53
42
54
namespace DeviceLayer {
@@ -230,13 +242,7 @@ CHIP_ERROR FactoryDataProvider<FlashFactoryData>::SetSetupPasscode(uint32_t setu
230
242
template <class FlashFactoryData >
231
243
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetVendorName(char * buf, size_t bufSize)
232
244
{
233
- ReturnErrorCodeIf (bufSize < mFactoryData .vendor_name .len + 1 , CHIP_ERROR_BUFFER_TOO_SMALL);
234
- ReturnErrorCodeIf (!mFactoryData .vendor_name .data , CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND);
235
-
236
- memcpy (buf, mFactoryData .vendor_name .data , mFactoryData .vendor_name .len );
237
- buf[mFactoryData .vendor_name .len ] = 0 ;
238
-
239
- return CHIP_NO_ERROR;
245
+ return GetFactoryDataString (mFactoryData .vendor_name , buf, bufSize);
240
246
}
241
247
242
248
template <class FlashFactoryData >
@@ -250,13 +256,7 @@ CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetVendorId(uint16_t & vendorI
250
256
template <class FlashFactoryData >
251
257
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetProductName(char * buf, size_t bufSize)
252
258
{
253
- ReturnErrorCodeIf (bufSize < mFactoryData .product_name .len + 1 , CHIP_ERROR_BUFFER_TOO_SMALL);
254
- ReturnErrorCodeIf (!mFactoryData .product_name .data , CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND);
255
-
256
- memcpy (buf, mFactoryData .product_name .data , mFactoryData .product_name .len );
257
- buf[mFactoryData .product_name .len ] = 0 ;
258
-
259
- return CHIP_NO_ERROR;
259
+ return GetFactoryDataString (mFactoryData .product_name , buf, bufSize);
260
260
}
261
261
262
262
template <class FlashFactoryData >
@@ -270,31 +270,25 @@ CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetProductId(uint16_t & produc
270
270
template <class FlashFactoryData >
271
271
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetPartNumber(char * buf, size_t bufSize)
272
272
{
273
- return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE ;
273
+ return GetFactoryDataString ( mFactoryData . part_number , buf, bufSize) ;
274
274
}
275
275
276
276
template <class FlashFactoryData >
277
277
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetProductURL(char * buf, size_t bufSize)
278
278
{
279
- return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE ;
279
+ return GetFactoryDataString ( mFactoryData . product_url , buf, bufSize) ;
280
280
}
281
281
282
282
template <class FlashFactoryData >
283
283
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetProductLabel(char * buf, size_t bufSize)
284
284
{
285
- return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE ;
285
+ return GetFactoryDataString ( mFactoryData . product_label , buf, bufSize) ;
286
286
}
287
287
288
288
template <class FlashFactoryData >
289
289
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetSerialNumber(char * buf, size_t bufSize)
290
290
{
291
- ReturnErrorCodeIf (bufSize < mFactoryData .sn .len + 1 , CHIP_ERROR_BUFFER_TOO_SMALL);
292
- ReturnErrorCodeIf (!mFactoryData .sn .data , CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND);
293
-
294
- memcpy (buf, mFactoryData .sn .data , mFactoryData .sn .len );
295
- buf[mFactoryData .sn .len ] = 0 ;
296
-
297
- return CHIP_NO_ERROR;
291
+ return GetFactoryDataString (mFactoryData .sn , buf, bufSize);
298
292
}
299
293
300
294
template <class FlashFactoryData >
@@ -318,13 +312,7 @@ CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetHardwareVersion(uint16_t &
318
312
template <class FlashFactoryData >
319
313
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetHardwareVersionString(char * buf, size_t bufSize)
320
314
{
321
- ReturnErrorCodeIf (bufSize < mFactoryData .hw_ver_str .len + 1 , CHIP_ERROR_BUFFER_TOO_SMALL);
322
- ReturnErrorCodeIf (!mFactoryData .hw_ver_str .data , CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND);
323
-
324
- memcpy (buf, mFactoryData .hw_ver_str .data , mFactoryData .hw_ver_str .len );
325
- buf[mFactoryData .hw_ver_str .len ] = 0 ;
326
-
327
- return CHIP_NO_ERROR;
315
+ return GetFactoryDataString (mFactoryData .hw_ver_str , buf, bufSize);
328
316
}
329
317
330
318
template <class FlashFactoryData >
0 commit comments