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() مرة واحدة فقط لكل حجز يتم إجراؤه على مفتاح معيّن.

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

التفاصيل
المعلمات
[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
يشير هذا المصطلح إلى الوسيلة المطلوبة التي يجب مصادقة النظير من خلالها. يجب أن يكون هذا أحد أوضاع المصادقة "تاك".
[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
)