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 או למצוא אותה קיימת.
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)
מתבצעת קריאה לשיטה הזו כדי ליצור סשן Takeout מאובטח.

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

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

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

CASEUsesellerECDHKey

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.
ערכים מוחזרים
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 או למצוא אותה קיימת.

פרטים
פרמטרים
[in] con
מצביע לאובייקט WeaveConnection.
[in] peerNodeId
מזהה הצומת של האפליקציה להשוואה.
[in] peerAddr
כתובת ה-IP של הצומת של אפליקציה להשוואה.
[in] peerPort
היציאה של הצומת של אפליקציה להשוואה.
[in] requestedAuthMode
הדרך הרצויה שבאמצעותה יש לבצע אימות של העמית. המצב הזה חייב להיות אחד מהמצבים של אימות אותיות רישיות.
[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
)

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

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

WeaveSecurityManager

 WeaveSecurityManager(
  void
)