分布式软总线/authmanager模块总结

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

分布式软总线authmanager模块总结


对于authmanager的源码解读告一段落那么我们开始从整体去把握整个文件中各个模块的功能和调用关系

整体把握

authmanager模块是鸿蒙系统为设备提供认证机制的模块。模块内主要的功能包括报文的接收解密加密发送包头的建立包头的分析和封装双向链表的各种操作函数等等

各个文件的主要功能

在这里插入图片描述

关键的定义

  1. 数据包的三种类型
    MODULE_AUTH_SDK 加密数据类型
    MODULE_TRUST_ENGINE 可信传输类型直接传输
    MODULE_CONNECTION 进行ip或id的设备认证的连接
    在wifi_auth_manager.c中的onDataReceived()函数正是根据三种数据包的模式调用不同的数据接收函数

  2. 包类型的宏定义
    在这里插入图片描述

主要流程

  1. 信息数据的处理流程
    在这里插入图片描述
  2. 软总线的启动过程
    当接入网络时会触发WifiEventTrigger()调用startBus()开启软总线
    在这里插入图片描述

主要函数的流程

  1. WifiEventTrigger()函数
    在这里插入图片描述
    流程 通过CoapGetIp()获取本地设备WiFi连接后的IP地址并存放到deviceinfo.deviceip中然后开启软总线将设备的信息登记到本地中

  2. StartListener()
    两个参数一个是回调函数BaseListener *callback和const char *ip主要是先初始化监听的listener创建一个WaitProcess线程利用select函数进行监听控制返回结果>0时时调用
    PorcessAuthData()函数完成对建立的连接的数据的收发和处理两个具体的处理函数是在结构体BaseListener中定义的两个函数一个是onConnectEvent(为新建立的设备建立AuthConnNode结点并插入双向链表中)一个是onDataEvent(对AuthConnNode节点中的数据进行处理包括头信息的解析和封装等)
    在这里插入图片描述

  3. StartSession(const char *ip)
    该函数是为全局变量g_sessionMgr申请空间并初始化根据参数创建socket的描述符并进行会话监听通过StartSelectLoop函数创建线程同样调用select函数进行监听返回值大于0是调用ProcessData函数socket创建了session则处理数据否则创建新的session

在这里插入图片描述
4. 重要的结构体List双向循环链表和相关的函数
在这里插入图片描述

总结

设备之间的通信双方首先完成信任关系的绑定生成公钥然后基于存储在本地的端对端身份公钥相互进行认证每次通信时完成双方身份认证及会话密钥的确认然后使用设备间的会话密钥来进行数据的加密和解密

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6