nl:: بافت:: پروفایل ها:: امنیت:: AppKeys:: GroupKeyStoreBase

این یک کلاس انتزاعی است.

#include <src/lib/profiles/security/WeaveApplicationKeys.h>

تعریف کلاس فروشگاه کلید گروه Weave.

خلاصه

توابع این کلاس برای مدیریت کلیدهای گروه برنامه فراخوانی می شوند.

وراثت

زیر کلاس های مستقیم شناخته شده:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::پروفایل::امنیت::AppKeys::DummyGroupKeyStore

ویژگی های محافظت شده

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

توابع عمومی

Clear (void)=0
virtual WEAVE_ERROR
DeleteGroupKey (uint32_t keyId)=0
virtual WEAVE_ERROR
DeleteGroupKeysOfAType (uint32_t keyType)=0
virtual WEAVE_ERROR
DeriveApplicationKey (uint32_t & appKeyId, const uint8_t *keySalt, uint8_t saltLen, const uint8_t *keyDiversifier, uint8_t diversifierLen, uint8_t *appKey, uint8_t keyBufSize, uint8_t keyLen, uint32_t & appGroupGlobalId)
کلید برنامه را استخراج می کند.
EnumerateGroupKeys (uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId (uint32_t keyId, uint32_t & curKeyId)
شناسه کلید فعلی را برمی‌گرداند.
GetCurrentUTCTime (uint32_t & utcTime)
virtual WEAVE_ERROR
زمان فعلی UTC پلت فرم را در چند ثانیه دریافت کنید.
GetGroupKey (uint32_t keyId, WeaveGroupKey & groupKey)
کلید گروه برنامه را دریافت کنید.
RetrieveGroupKey (uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey (const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

توابع محافظت شده

Init (void)
void
پارامترهای ذخیره کلید گروه محلی را راه اندازی کنید.
OnEpochKeysChange (void)
void
شناسه کلید فعلی را برمی‌گرداند.
RetrieveLastUsedEpochKeyId (void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId (void)=0
virtual WEAVE_ERROR

ویژگی های محافظت شده

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

توابع عمومی

پاک کردن

virtual WEAVE_ERROR Clear(
  void
)=0

DeleteGroupKey

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

DeleteGroupKeysOfAType

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

DeriveApplicationKey

WEAVE_ERROR DeriveApplicationKey(
  uint32_t & appKeyId,
  const uint8_t *keySalt,
  uint8_t saltLen,
  const uint8_t *keyDiversifier,
  uint8_t diversifierLen,
  uint8_t *appKey,
  uint8_t keyBufSize,
  uint8_t keyLen,
  uint32_t & appGroupGlobalId
)

کلید برنامه را استخراج می کند.

سه نوع کلید برنامه پشتیبانی می شود: کلید برنامه فعلی، کلید برنامه چرخان و کلید برنامه ثابت. هنگامی که کلید برنامه فعلی درخواست می شود، تابع بر اساس زمان فعلی سیستم و پارامتر زمان شروع هر کلید دوره، کلید دوره فعلی را پیدا کرده و استفاده می کند.

جزئیات
مولفه های
[in,out] keyId
ارجاع به شناسه کلید درخواستی. هنگامی که کلید برنامه فعلی درخواست می شود، این فیلد به روز می شود تا نوع جدید (کلید کاربردی چرخان) و شناسه کلید دوره واقعی را که برای تولید کلید برنامه استفاده شده است، منعکس کند.
[in] keySalt
اشاره گر به بافر با مقدار نمک کلید کاربردی.
[in] saltLen
طول نمک کلید کاربردی.
[in] keyDiversifier
یک اشاره گر به یک بافر با مقدار متغیر کننده کلید برنامه.
[in] diversifierLen
طول متنوع کننده کلید برنامه.
[out] appKey
اشاره گر به بافری که در آن کلید مشتق شده نوشته خواهد شد.
[in] keyBufSize
طول بافر کلید ارائه شده.
[in] keyLen
طول مطالب کلیدی درخواستی
[out] appGroupGlobalId
شناسه جهانی گروه برنامه کلید مرتبط.
ارزش های بازگشتی
WEAVE_NO_ERROR
در مورد موفقیت
WEAVE_ERROR_BUFFER_TOO_SMALL
اگر اندازه بافر کلید ارائه شده کافی نباشد.
WEAVE_ERROR_INVALID_KEY_ID
اگر کلید درخواستی دارای شناسه کلید نامعتبر باشد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر فروشگاه کلید پلت فرم پارامترهای کلید نامعتبر را برمی گرداند یا شناسه کلید دارای مقدار نامعتبر است.
other
سایر خطاهای پلتفرم خاص که توسط API های فروشگاه کلید پلتفرم برگردانده شده اند.

EnumerateGroupKeys

virtual WEAVE_ERROR EnumerateGroupKeys(
  uint32_t keyType,
  uint32_t *keyIds,
  uint8_t keyIdsArraySize,
  uint8_t & keyCount
)=0

GetCurrentAppKeyId

WEAVE_ERROR GetCurrentAppKeyId(
  uint32_t keyId,
  uint32_t & curKeyId
)

شناسه کلید فعلی را برمی‌گرداند.

کلید دوره فعلی را بر اساس زمان فعلی سیستم و پارامتر زمان شروع هر کلید دوره پیدا می کند. اگر سیستم زمان معتبر و دقیقی نداشته باشد، شناسه کلید دوره آخرین استفاده بازگردانده می شود.

جزئیات
مولفه های
[in] keyId
شناسه کلید برنامه
[out] curKeyId
شناسه کلید فعلی برنامه.
ارزش های بازگشتی
WEAVE_NO_ERROR
در مورد موفقیت
WEAVE_ERROR_INVALID_KEY_ID
اگر شناسه کلید ورودی مقدار نامعتبری داشت.
WEAVE_ERROR_KEY_NOT_FOUND
اگر کلیدهای عصر در فروشگاه کلیدهای پلت فرم یافت نشد.
other
سایر خطاهای پلتفرم خاص که توسط API های فروشگاه کلید پلتفرم برگردانده شده اند.

GetCurrentUTCTtime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

زمان فعلی UTC پلت فرم را در چند ثانیه دریافت کنید.

جزئیات
مولفه های
[out] utcTime
اشاره به ارزش زمان
ارزش های بازگشتی
WEAVE_NO_ERROR
در مورد موفقیت
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
اگر پلتفرم از ساعت واقعی پشتیبانی نمی کند.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
اگر ساعت واقعی سیستم با منبع زمانی دقیق همگام نشده باشد.
other
سایر کدهای خطای Weave یا Platform.

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

کلید گروه برنامه را دریافت کنید.

این تابع کلیدهای گروه برنامه را استخراج یا بازیابی می کند. انواع کلیدهای پشتیبانی شده توسط این تابع عبارتند از: فابریک مخفی، کلید ریشه، کلید دوره، کلید اصلی گروه و کلید میانی.

جزئیات
مولفه های
[in] keyId
شناسه کلید گروه
[out] groupKey
ارجاع به شی کلید گروه.
ارزش های بازگشتی
WEAVE_NO_ERROR
در مورد موفقیت
WEAVE_ERROR_INVALID_KEY_ID
اگر کلید درخواستی دارای شناسه کلید نامعتبر باشد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر فروشگاه کلید پلت فرم پارامترهای کلیدی نامعتبر را برگرداند.
other
سایر خطاهای پلتفرم خاص که توسط API های فروشگاه کلید پلتفرم برگردانده شده اند.

RetrieveGroupKey

virtual WEAVE_ERROR RetrieveGroupKey(
  uint32_t keyId,
  WeaveGroupKey & key
)=0

StoreGroupKey

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

توابع محافظت شده

شروع کنید

void Init(
  void
)

پارامترهای ذخیره کلید گروه محلی را راه اندازی کنید.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

شناسه کلید فعلی را برمی‌گرداند.

هنگامی که هر تغییری (حذف یا ذخیره) در مجموعه کلیدهای دوره کاربردی رخ می دهد، متغیرهای عضو مرتبط با کلیدهای دوره را روی مقادیر پیش فرض تنظیم می کند. مسئولیت فراخوانی این متد بر عهده زیرکلاسی است که توابع StoreGroupKey()، DeleteGroupKey() و DeleteGroupKeysOfAType را پیاده سازی می کند.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0