OpenHarmony解读之设备认证:数据接收管理-获取HiChain实例(1)

本文深入解析OpenHarmony设备认证模块,重点讲解HiChain实例获取过程,包括会话标识和回调函数的有效性检查,以及密钥信息初始化的源码分析。
摘要由CSDN通过智能技术生成

一、概述

在OpenHarmony中,设备认证模块作为安全子系统的子模块,负责设备间可信关系的建立、维护、使用、撤销等全生命周期的管理,实现可信设备间的互信认证和安全会话密钥协商,是搭载OpenHarmony的设备进行可信互联的基础平台能力。
在上一篇博客OpenHarmony深度解读之分布式软总线:HiChain机制部分源码解析中提到,HiChain机制是OpenHarmony实现设备互联安全的一种协议机制,接下来的博客将沿着之前的逻辑接着往下分析,重点针对本端接收到的数据包进行更进一步的解析,即进入到真正的设备认证模块的消息解析。在之前进行数据包字段解析之后,字段Module的值在MODULE_HICHAIN到MODULE_AUTH_SDK之间时,将会进入到HiChain机制处理阶段,本文重点介绍HiChain实例的获取阶段,即设备认证的准备阶段。

二、源码分析

这一模块的源码位于:/base/security/deviceauth。

1. HiChain实例的获取主要是在hichain.c文件的get_instance函数中实现的,下面我们一起来详细分析一下这个函数:
/*
函数功能:获取hichain实例
函数参数:
    identity:会话基本信息
    type:hichain设备类型
    call_back:hichain回调函数
函数返回值:
    成功:返回hichain结构体地址
    失败:返回NULL
*/
DLL_API_PUBLIC hc_handle get_instance(const struct session_identity *identity, enum hc_type type,
    const struct hc_call_back *call_back)
{
   
    LOGI("Begin get instance");
    if (check_identity(identity) != HC_OK) {
   //检查hc的基本信息是否符合规范
        LOGE("Identity error");
        return NULL;
    }
    if (check_call_back(call_back) != HC_OK) {
   //检查callback结构体的函数指针是否为空
        LOGE("Call back error");
        return NULL;
    }

#if !(defined(_CUT_STS_) || defined(_CUT_STS_SERVER_) || defined(_CUT_EXCHANGE_) || defined(_CUT_EXCHANGE_SERVER_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值