nl::Weave::WeaveSecurityManager

סיכום

בנייה

WeaveSecurityManager(void)

סוגים ציבוריים

KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr) typedef
void(*
סוג הפונקציה לטיפול בהודעות שגיאה עיקריות.
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen) typedef
void(*
סוג הטיפול המלא של פרוטוקול הייצוא של מפתחות.
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport) typedef
void(*
סוג פונקציית הטיפול בשגיאות של פרוטוקול הייצוא של מפתחות.
SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport) typedef
void(*
SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType) typedef
void(*
State טיפוסים בני מנייה (enum)

מאפיינים ציבוריים

CASEUseKnownECDHKey
bool
ExchangeManager
FabricState
IdleSessionTimeout
uint32_t
InitiatorAllowedCASEConfigs
uint8_t
InitiatorAllowedCASECurves
uint8_t
InitiatorAllowedKeyExportConfigs
uint8_t
InitiatorCASEConfig
uint32_t
InitiatorCASECurveId
uint32_t
InitiatorKeyExportConfig
uint8_t
OnKeyErrorMsgRcvd
פונקציית הקריאה החוזרת (callback) של שגיאת המפתח.
OnSessionError
SessionErrorFunct
OnSessionEstablished
SessionEstablishedFunct
ResponderAllowedCASEConfigs
uint8_t
ResponderAllowedCASECurves
uint8_t
ResponderAllowedKeyExportConfigs
uint8_t
SessionEstablishTimeout
uint32_t
State
uint8_t
mCASEEngine
mKeyExport
mPASEEngine
mStartKeyExport_OnComplete
פונקציית הקריאה החוזרת להשלמת פרוטוקול הייצוא של המפתחות.
mStartKeyExport_OnError
פונקציית הקריאה החוזרת לשגיאה בפרוטוקול הייצוא של המפתח.
mStartKeyExport_ReqState
void *
mStartSecureSession_OnComplete
SessionEstablishedFunct
mStartSecureSession_OnError
SessionErrorFunct
mStartSecureSession_ReqState
void *
mTAKEEngine

פונקציות ציבוריות

CancelSessionEstablishment(void *reqState)
ביטול סשן בתהליך שהוא מתבצע.
Init(WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer)
IsKeyError(WEAVE_ERROR err)
bool
הפונקציה בודקת אם קוד השגיאה שצוין של Weave הוא אחד מקודי השגיאות המרכזיים.
OnEncryptedMsgRcvd(uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
void
ReleaseKey(uint64_t peerNodeId, uint16_t keyId)
void
משחררים את ההזמנה של מפתח להצפנת הודעות.
ReserveKey(uint64_t peerNodeId, uint16_t keyId)
void
מבצעים הזמנה באמצעות מפתח להצפנת הודעות.
SendKeyErrorMsg(WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr)
הודעת שגיאה שקשורה למפתח.
SetCASEAuthDelegate(WeaveCASEAuthDelegate *delegate)
void
SetKeyExportDelegate(WeaveKeyExportDelegate *delegate)
void
SetTAKEAuthDelegate(WeaveTAKEChallengerAuthDelegate *delegate)
void
SetTAKETokenAuthDelegate(WeaveTAKETokenAuthDelegate *delegate)
void
Shutdown(void)
StartCASESession(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, WeaveCASEAuthDelegate *authDelegate, uint64_t terminatingNodeId)
השיטה הזו נקראת כדי ליצור סשן CASE חדש או למצוא סשן קיים של CASE.
StartKeyExport(WeaveConnection *con, uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, uint32_t keyId, bool signMessage, void *reqState, KeyExportCompleteFunct onComplete, KeyExportErrorFunct onError, WeaveKeyExportDelegate *keyExportDelegate)
StartPASESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, const uint8_t *pw, uint16_t pwLen)
השיטה הזו נקראת כדי ליצור סשן PASE מאובטח.
StartTAKESession(WeaveConnection *con, WeaveAuthMode requestedAuthMode, void *reqState, SessionEstablishedFunct onComplete, SessionErrorFunct onError, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK, bool sendChallengerId, WeaveTAKEChallengerAuthDelegate *authDelegate)
השיטה הזו נקראת כדי ליצור סשן TAKE מאובטח.

סוגים ציבוריים

KeyErrorMsgRcvdFunct

void(* KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr)

סוג הפונקציה לטיפול בהודעות שגיאה עיקריות.

פרטים
פרמטרים
[in] keyId
מפתח ההצפנה גרם לתגובה של הודעת השגיאה למפתח מהעמית.
[in] encType
סוג ההצפנה שמשויך ל-keyId.
[in] messageId
המזהה של הודעת Weave הוביל לתגובה של השגיאה העיקרית מהעמיתים.
[in] peerNodeId
המזהה של צומת Weave ששלח את הודעת השגיאה המרכזית.
[in] keyErr
קוד השגיאה שהתקבל מהעמית.

KeyExportCompleteFunct

void(* KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)

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

פרטים
פרמטרים
[in] sm
מצביע לאובייקט WeaveSecurityManager.
[in] con
מצביע לאובייקט WeaveConnection.
[in] reqState
מצביע למצב של מבקש בקשת הייצוא של המפתח.
[in] keyId
מזהה המפתח יוצא.
[in] exportedKey
מצביע אל המפתח הסודי שיוצא.
[in] exportedKeyLen
הפניה לאורך המפתח הסודי שמיוצא.

KeyExportErrorFunct

void(* KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)

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

פרטים
פרמטרים
[in] sm
מצביע לאובייקט WeaveSecurityManager.
[in] con
מצביע לאובייקט WeaveConnection.
[in] reqState
מצביע למצב של מבקש בקשת הייצוא של המפתח.
[in] localErr
השגיאה WEAVE_ERROR נתקלה במהלך פרוטוקול ייצוא המפתחות.
[in] statusReport
מצביע אל אובייקט StatusReport אם סטטוס השגיאה התקבל מהעמית.

SessionErrorFunct

void(* SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport)

SessionEstablishedFunct

void(* SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)

מדינה

 State

מאפיינים ציבוריים

CASEUseKnownECDHKey

bool CASEUseKnownECDHKey

ExchangeManager

WeaveExchangeManager * ExchangeManager

FabricState

WeaveFabricState * FabricState

IdleSessionTimeout

uint32_t IdleSessionTimeout

InitiatorAllowedCASEConfigs

uint8_t InitiatorAllowedCASEConfigs

InitiatorAllowedCASECurves

uint8_t InitiatorAllowedCASECurves

InitiatorAllowedKeyExportConfigs

uint8_t InitiatorAllowedKeyExportConfigs

InitiatorCASEConfig

uint32_t InitiatorCASEConfig

InitiatorCASECurveId

uint32_t InitiatorCASECurveId

InitiatorKeyExportConfig

uint8_t InitiatorKeyExportConfig

OnKeyErrorMsgRcvd

KeyErrorMsgRcvdFunct OnKeyErrorMsgRcvd

פונקציית הקריאה החוזרת (callback) של שגיאת המפתח.

מתבצעת קריאה לפונקציה הזו כאשר מתקבלת הודעת שגיאה של מפתח.

OnSessionError

SessionErrorFunct OnSessionError

OnSessionEstablished

SessionEstablishedFunct OnSessionEstablished

ResponderAllowedCASEConfigs

uint8_t ResponderAllowedCASEConfigs

ResponderAllowedCASECurves

uint8_t ResponderAllowedCASECurves

ResponderAllowedKeyExportConfigs

uint8_t ResponderAllowedKeyExportConfigs

SessionEstablishTimeout

uint32_t SessionEstablishTimeout

מדינה

uint8_t State

mCASEEngine

WeaveCASEEngine * mCASEEngine

mKeyExport

WeaveKeyExport * mKeyExport

mPASEEngine

WeavePASEEngine * mPASEEngine

mStartKeyExport_OnComplete

KeyExportCompleteFunct mStartKeyExport_OnComplete

פונקציית הקריאה החוזרת להשלמת פרוטוקול הייצוא של המפתחות.

הקריאה לפונקציה הזו מתבצעת לאחר השלמת תהליך הייצוא של המפתח הסודי.

mStartKeyExport_OnError

KeyExportErrorFunct mStartKeyExport_OnError

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

הפונקציה מופעלת כאשר מתרחשת שגיאה בתהליך ייצוא המפתחות.

mStartKeyExport_ReqState

void * mStartKeyExport_ReqState

mStartSecureSession_OnComplete

SessionEstablishedFunct mStartSecureSession_OnComplete

mStartSecureSession_OnError

SessionErrorFunct mStartSecureSession_OnError

mStartSecureSession_ReqState

void * mStartSecureSession_ReqState

mTAKEEngine

WeaveTAKEEngine * mTAKEEngine

פונקציות ציבוריות

CancelSessionEstablishment

WEAVE_ERROR CancelSessionEstablishment(
  void *reqState
)

ביטול סשן בתהליך שהוא מתבצע.

פרטים
פרמטרים
[in] reqState
ערך מצביע שתואם לערך שסופק על ידי האפליקציה כשהסשן התחיל.
ערכים מוחזרים
WEAVE_NO_ERROR
אם נמצא תהליך תואם של סשן והוא בוטל.
WEAVE_ERROR_INCORRECT_STATE
אם לא היה תהליך הגדרה של סשן, או אם הסשן שמתקיים לא תאם למצב הבקשה שצוין.

אתחול

WEAVE_ERROR Init(
  WeaveExchangeManager & aExchangeMgr,
  System::Layer & aSystemLayer
)

IsKeyError

bool IsKeyError(
  WEAVE_ERROR err
)

הפונקציה בודקת אם קוד השגיאה שצוין של Weave הוא אחד מקודי השגיאות המרכזיים.

מפעילים את הפונקציה הזו כדי לקבוע אם צריך לשלוח הודעת שגיאה חשובה ליוזם ההודעה, שלא נמצא אף מפתח נכון במהלך הפענוח.

פרטים
פרמטרים
[in] err
קוד שגיאה של Weave.
ערכים מוחזרים
true
אם צוין קוד שגיאה של Weave, זו שגיאת מפתח.
false
אחרת.

OnEncryptedMsgRcvd

void OnEncryptedMsgRcvd(
  uint16_t sessionKeyId,
  uint64_t peerNodeId,
  uint8_t encType
)

ReleaseKey

void ReleaseKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

משחררים את ההזמנה של מפתח להצפנת הודעות.

משחררים הזמנות שבוצעו בעבר במפתח להצפנת הודעות.

בכל הזמנה שמבוצעת במפתח מסוים, אין להפעיל את השיטה ReleaseKey() יותר מפעם אחת.

השיטה הזו מקבלת כל סוג של מזהה מפתח, כולל 'ללא'. המערכת מתעלמת ממזהי מפתחות שלא כוללים שמות של מפתחות בפועל.

פרטים
פרמטרים
[in] peerNodeId
מזהה הצומת של Weave של האפליקציה להשוואה שהמפתח שותף איתו.
[in] keyId
המזהה של המפתח שצריך לבטל את ההזמנה שלו.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

מבצעים הזמנה באמצעות מפתח להצפנת הודעות.

הזמנות של מפתחות משמשות כדי לסמן שמפתח מסוים נמצא בשימוש באופן פעיל וצריך לשמור אותו. לתשומת ליבכם: ביצוע הזמנה על מפתח לא מבטיח שהמפתח לא יוסר כתוצאה מפעולה מפורשת, כמו קבלה של הודעת KeyError.

בכל הזמנה שמבוצעת במפתח מסוים, צריך לבצע קריאה תואמת ל-ReleaseKey().

השיטה הזו מקבלת כל סוג של מזהה מפתח, כולל 'ללא'. המערכת מתעלמת ממזהי מפתחות שלא כוללים שמות למפתחות בפועל.

פרטים
פרמטרים
[in] peerNodeId
מזהה הצומת של Weave של האפליקציה להשוואה שהמפתח שותף איתו.
[in] keyId
המזהה של המפתח שצריך לשמור.

SendKeyErrorMsg

WEAVE_ERROR SendKeyErrorMsg(
  WeaveMessageInfo *rcvdMsgInfo,
  const IPPacketInfo *rcvdMsgPacketInfo,
  WeaveConnection *con,
  WEAVE_ERROR keyErr
)

הודעת שגיאה שקשורה למפתח.

הפונקציה קוראת לפונקציה הזו כשפענוח ההודעה של Weave נכשל בגלל שגיאת מפתח.

פרטים
פרמטרים
[in] rcvdMsgInfo
מצביע אל פרטי ההודעה עבור הודעת Weave שהתקבלה.
[in] rcvdMsgPacketInfo
מצביע אל האובייקט IPPacketInfo של הודעת Weave שהתקבלה.
[in] con
מצביע אל האובייקט WeaveConnection.
[in] keyErr
קוד שגיאה של מפתח.
ערכים מוחזרים
WEAVE_ERROR_NO_MEMORY
אם אי אפשר להקצות זיכרון להקשר החדש של ההחלפה או למאגר הנתונים החדש של ההודעות.
WEAVE_ERROR_BUFFER_TOO_SMALL
אם מאגר הנתונים הזמני קטן מדי
WEAVE_NO_ERROR
אם השיטה הצליחה.

SetCASEAuthDelegate

void SetCASEAuthDelegate(
  WeaveCASEAuthDelegate *delegate
)

SetKeyExportDelegate

void SetKeyExportDelegate(
  WeaveKeyExportDelegate *delegate
)

SetTAKEAuthDelegate

void SetTAKEAuthDelegate(
  WeaveTAKEChallengerAuthDelegate *delegate
)

SetTAKETokenAuthDelegate

void SetTAKETokenAuthDelegate(
  WeaveTAKETokenAuthDelegate *delegate
)

כיבוי

WEAVE_ERROR Shutdown(
  void
)

StartCASESession

WEAVE_ERROR StartCASESession(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  WeaveCASEAuthDelegate *authDelegate,
  uint64_t terminatingNodeId
)

השיטה הזו נקראת כדי ליצור סשן CASE חדש או למצוא סשן קיים של CASE.

פרטים
פרמטרים
[in] con
מצביע אל האובייקט WeaveConnection.
[in] peerNodeId
מזהה הצומת של האפליקציה להשוואה.
[in] peerAddr
כתובת ה-IP של הצומת של האפליקציה השכנה.
[in] peerPort
היציאה של הצומת של האפליקציה השכנה.
[in] requestedAuthMode
האמצעים הרצויים שבעזרתם יש לאמת את האפליקציה להשוואה. המצב הזה חייב להיות אחד ממצבי האימות של ה-CASE.
[in] reqState
מצביע אל מצב המבקש.
[in] onComplete
מצביע אל פונקציית הקריאה החוזרת, שתתבצע קריאה לאחר יצירת הסשן המאובטח המבוקש.
[in] onError
מצביע אל פונקציית הקריאה החוזרת, שתיקרא אם יצירת הסשן המבוקש נכשלה.
[in] authDelegate
מצביע לאובייקט בעל הגישה לאימות CASE.
[in] terminatingNodeId
מזהה הצומת של הצומת שמסיים את הסשן. כשהקלט הזה שונה מהקלט kNodeIdNotSpecified, שמציין שנשלחה בקשה לסשן מאובטח משותף.
ערכים מוחזרים
WEAVE_NO_ERROR
הצלחה.

StartKeyExport

WEAVE_ERROR StartKeyExport(
  WeaveConnection *con,
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  uint32_t keyId,
  bool signMessage,
  void *reqState,
  KeyExportCompleteFunct onComplete,
  KeyExportErrorFunct onError,
  WeaveKeyExportDelegate *keyExportDelegate
)

StartPASESession

WEAVE_ERROR StartPASESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  const uint8_t *pw,
  uint16_t pwLen
)

השיטה הזו נקראת כדי ליצור סשן PASE מאובטח.

פרטים
פרמטרים
[in] con
מצביע אל האובייקט WeaveConnection.
[in] requestedAuthMode
האמצעים הרצויים שבעזרתם יש לאמת את האפליקציה להשוואה. זה חייב להיות אחד ממצבי האימות של PASE.
[in] reqState
מצביע אל מצב המבקש.
[in] onComplete
מצביע אל פונקציית הקריאה החוזרת, שתתבצע קריאה לאחר יצירת הסשן המאובטח המבוקש.
[in] onError
מצביע אל פונקציית הקריאה החוזרת, שתיקרא אם יצירת הסשן המבוקש נכשלה.
[in] pw
מצביע אל הסיסמה הסודית של PASE.
[in] pwLen
אורך הסיסמה הסודית של PASE.
ערכים מוחזרים
WEAVE_NO_ERROR
הצלחה.

StartTAKESession

WEAVE_ERROR StartTAKESession(
  WeaveConnection *con,
  WeaveAuthMode requestedAuthMode,
  void *reqState,
  SessionEstablishedFunct onComplete,
  SessionErrorFunct onError,
  bool encryptAuthPhase,
  bool encryptCommPhase,
  bool timeLimitedIK,
  bool sendChallengerId,
  WeaveTAKEChallengerAuthDelegate *authDelegate
)

השיטה הזו נקראת כדי ליצור סשן TAKE מאובטח.

פרטים
פרמטרים
[in] con
מצביע אל האובייקט WeaveConnection.
[in] requestedAuthMode
האמצעים הרצויים שבעזרתם יש לאמת את האפליקציה להשוואה. המצב הזה חייב להיות אחד ממצבי האימות של TAKE.
[in] reqState
מצביע אל מצב המבקש.
[in] onComplete
מצביע אל פונקציית הקריאה החוזרת, שתתבצע קריאה לאחר יצירת הסשן המאובטח המבוקש.
[in] onError
מצביע אל פונקציית הקריאה החוזרת, שתיקרא אם יצירת הסשן המבוקש נכשלה.
[in] encryptAuthPhase
דגל בוליאני שמציין אם שלב אימות הפרוטוקול צריך להיות מוצפן.
[in] encryptCommPhase
דגל בוליאני שמציין אם שלב תקשורת הפרוטוקול צריך להיות מוצפן.
[in] timeLimitedIK
דגל בוליאני שמציין אם מפתח זיהוי (IK) מוגבל בזמן.
[in] sendChallengerId
סימון בוליאני שמציין אם יש לכלול בהודעה את זיהוי המתמודד. אם הוא לא כלול, הערך של מזהה הצומת של Weave ישמש כמזהה של מתמודד.
[in] authDelegate
מצביע לאובייקט בעל הגישה לאתגר האימות של TAKE.
ערכים מוחזרים
WEAVE_NO_ERROR
הצלחה.

WeaveSecurityManager

 WeaveSecurityManager(
  void
)