赞
踩
authmanager模块是鸿蒙系统为设备提供认证机制的模块。模块内主要的功能包括报文的接收,解密,加密,发送;包头的建立,包头的分析和封装;双向链表的各种操作函数等等
数据包的三种类型:
MODULE_AUTH_SDK 加密数据类型
MODULE_TRUST_ENGINE 可信传输类型,直接传输
MODULE_CONNECTION 进行ip或id的设备认证的连接
在wifi_auth_manager.c中的onDataReceived()函数正是根据三种数据包的模式调用不同的数据接收函数
包类型的宏定义
WifiEventTrigger()函数
流程: 通过CoapGetIp()获取本地设备WiFi连接后的IP地址并存放到deviceinfo.deviceip中,然后开启软总线,将设备的信息登记到本地中
StartListener()
两个参数,一个是回调函数BaseListener *callback和const char *ip,主要是先初始化监听的listener,创建一个WaitProcess线程,利用select函数进行监听控制,返回结果>0时时,调用
PorcessAuthData()函数完成对建立的连接的数据的收发和处理,两个具体的处理函数是在结构体BaseListener中定义的两个函数一个是onConnectEvent(为新建立的设备建立AuthConnNode结点并插入双向链表中)一个是onDataEvent(对AuthConnNode节点中的数据进行处理包括头信息的解析和封装等)
StartSession(const char *ip)
该函数是为全局变量g_sessionMgr申请空间并初始化,根据参数创建socket的描述符并进行会话监听,通过StartSelectLoop函数创建线程,同样调用select函数进行监听,返回值大于0是,调用ProcessData函数,socket创建了session则处理数据,否则创建新的session
4. 重要的结构体List双向循环链表和相关的函数
设备之间的通信,双方首先完成信任关系的绑定,生成公钥,然后基于存储在本地的端对端身份公钥相互进行认证,每次通信时完成双方身份认证及会话密钥的确认,然后使用设备间的会话密钥来进行数据的加密和解密
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。