nl:: Weave:: WeaveSecurityManager
摘要
构造函数和析构函数 |
|
---|---|
WeaveSecurityManager(void)
|
公共类型 |
|
---|---|
KeyErrorMsgRcvdFunct)(uint16_t keyId, uint8_t encType, uint32_t messageId, uint64_t peerNodeId, WEAVE_ERROR keyErr)
|
typedefvoid(*
关键错误消息处理函数的类型。 |
KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)
|
typedefvoid(*
密钥导出协议完整处理函数的类型。 |
KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)
|
typedefvoid(*
密钥导出协议错误处理函数的类型。 |
SessionErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport *statusReport)
|
typedefvoid(*
|
SessionEstablishedFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
|
typedefvoid(*
|
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)
关键错误消息处理函数的类型。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
KeyExportCompleteFunct
void(* KeyExportCompleteFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t exportedKeyLen)
密钥导出协议完整处理函数的类型。
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
KeyExportErrorFunct
void(* KeyExportErrorFunct)(WeaveSecurityManager *sm, WeaveConnection *con, void *reqState, WEAVE_ERROR localErr, 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
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 )
取消正在进行的会话建立。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
Init
WEAVE_ERROR Init( WeaveExchangeManager & aExchangeMgr, System::Layer & aSystemLayer )
IsKeyError
bool IsKeyError( WEAVE_ERROR err )
检查指定的 Weave 错误代码是否属于关键错误代码。
可调用此函数来确定是否应将密钥错误消息发送给在解码期间找不到正确密钥的消息的发起者。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
OnEncryptedMsgRcvd
void OnEncryptedMsgRcvd( uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType )
ReleaseKey
void ReleaseKey( uint64_t peerNodeId, uint16_t keyId )
释放消息加密密钥预留。
释放之前放置在邮件加密密钥上的预留。
对于在特定键上放置的每个预留,ReleaseKey() 方法只能调用一次。
此方法接受任何形式的密钥 ID,包括 None。系统会忽略未命名实际键的键 ID。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
ReserveKey
void ReserveKey( uint64_t peerNodeId, uint16_t keyId )
针对消息加密密钥进行预留。
密钥预留用于发出信号,表明某个特定密钥正在使用中,应予以保留。请注意,为密钥设置预留并不能保证显式操作(如接收 KeyError 消息)不会删除该密钥。
对于在特定键上放置的每个预留,必须对 ReleaseKey() 进行相应的调用。
此方法接受任何形式的密钥 ID,包括 None。系统会忽略未命名实际键的键 ID。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
SendKeyErrorMsg
WEAVE_ERROR SendKeyErrorMsg( WeaveMessageInfo *rcvdMsgInfo, const IPPacketInfo *rcvdMsgPacketInfo, WeaveConnection *con, WEAVE_ERROR keyErr )
发送按键错误消息。
当收到的 Weave 消息因密钥错误而解码失败时,系统会调用此函数。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
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 会话。
详细信息 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||||
返回值 |
|
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 会话。
详细信息 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||
返回值 |
|
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 会话。
详细信息 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||||
返回值 |
|
WeaveSecurityManager
WeaveSecurityManager( void )