nl::Weave::Profiles::Security::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::Profiles::Security::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
מצביע למאגר נתונים זמני עם ערך ה-salt של מפתח האפליקציה.
[in] saltLen
אורך ה-salt של מפתח האפליקציה.
[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 של מאגר המפתחות של הפלטפורמה.

GetCurrentUTCTime

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

פונקציות מוגנות

Init

void Init(
  void
)

הפעלת הפרמטרים של מאגר המפתחות של הקבוצה המקומית.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

הפונקציה מחזירה את מזהה המפתח הנוכחי.

מגדיר את משתני החבר המשויכים למפתחות של תקופת הזמן הראשונית לערכי ברירת המחדל בכל פעם ששינוי כלשהו (מחיקה או אחסון) מתרחש בקבוצת מפתחות התקופה של האפליקציה. באחריות המחלקה המשנית שבה מטמיעים את הפונקציות StoreGroupKey(), DeleteGroupKey() ו-DeleteGroupKeysOfAType(), כדי לקרוא לשיטה הזו.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0