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 تعداد

السمات العامة

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
دالة استدعاء الخطأ الأساسي.
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

دالة استدعاء الخطأ الأساسي.

يتم استدعاء هذه الدالة عند تلقي رسالة خطأ رئيسية.

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() أكثر من مرة.

تقبل هذه الطريقة أي شكل من أشكال معرف المفتاح، بما في ذلك "None" (بدون). ويتم تجاهل أرقام تعريف المفاتيح التي لا تذكر أسماء مفاتيح فعلية.

التفاصيل
المَعلمات
[in] peerNodeId
معرِّف عقدة Weave للنظير الذي تمت مشاركة المفتاح معه.
[in] keyId
معرّف المفتاح الذي يجب إلغاء حجزه.

ReserveKey

void ReserveKey(
  uint64_t peerNodeId,
  uint16_t keyId
)

إجراء حجز على مفتاح تشفير رسالة

تُستخدَم حجوزات المفاتيح للإشارة إلى أنّ مفتاحًا معيّنًا قيد الاستخدام باستمرار ويجب الاحتفاظ به. تجدر الإشارة إلى أنّ حجز مفتاح لا يضمن إزالة المفتاح من خلال إجراء صريح مثل تلقّي رسالة خطأ KeyError.

لكل حجز يتم إجراؤه على مفتاح معيّن، يجب إجراء استدعاء مطابق لـ ReleaseKey().

تقبل هذه الطريقة أي شكل من أشكال معرف المفتاح، بما في ذلك "None" (بدون). ويتم تجاهل أرقام تعريف المفاتيح التي لا تذكر أسماء مفاتيح فعلية.

التفاصيل
المَعلمات
[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 جديدة أو البحث عن جلسة 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
)

يتم استدعاء هذه الطريقة لإنشاء جلسة 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
)