CSM中OperationMode的含义

AutoSAR CSM中OperationMode的意思

困扰了好几天的mode含义终于找到是什么意思了,艰难

首先,应用层到CSM层传递参数时

Csm_Encrypt(xxx,CRYPTO_OPERATION_SIGLECALL,...)

发现"CRYPTO_OPERATION_SIGLECALL"不知道什么意思,去到宏定义看一下

#define CRYPTO_OPERATION_SIGLECALL (7u)

但是,宏定义并没有解释什么意思,查看宏定义周围,发现还有

#define CRYPTO_OPERATION_START        (1u)
#define CRYPTO_OPERATION_UPDATE       (2u)
#define CRYPTO_OPERATION_FINSH        (3u)
#define CRYPTO_OPERATION_STREAMSTART  (6u)
CRYPTO_OPERATION_SIGLECALL            (7u)

应当是枚举了Operation的几种模式,在全工程 搜索一下

#define CRYPTO_OPERATION_SIGLECALL (CRYPTO_OPERATION_START  | CRYPTO_OPERATION_UPDATE | CRYPTO_OPERATION_FINSH)
#define CRYPTO_OPERATION_STREAMSTART (CRYPTO_OPERATION_START  | CRYPTO_OPERATION_UPDATE)

这说明基本模式是 START FINSH UPDATE。 ok,工程文件应该没用了,所以去技术手册查一下:

技术手册.png

没用,所以去 AutoSAR 的CSM层看一下:

AutoSAR手册.png

这是明白了~~
就是讲解这个任务是去执行啊,还是更新啊,还是结束。指示任务的状态


我花费时间点在于没看手册,在不断追函数的调用,企图找到mode的最后应用在哪,由于代码量庞大且不熟悉。追了好几遍发现追着追着就丢了。最后只是赋值了一下给其他变量,看不出来实际的作用。
所以,这种宏定义还是查看手册比较好,涉及到宏定义了手册一般都会予以说明...


补充一下。
在看AutoSAR文档的时候,看到了更为详细的相关解释,补充一下内容,方便理解。
在AutoSAR CP 的 Crypto services 的Utilization of Crypto Services文档中,描述:

Streaming Approach vs Single Call Approach.


对操作模式的解释.png

基本意思是,Start表示job开始,update其实是传入更新的数据,Stop表示job结束。
Streaming: 多用于大量数据加密,不断的通过Update传入大量的数据;
Singlecall:多用于小批量数据加密,一次完成start 、update 、finish三个操作。

在AutoSAR的 CSM 的文档中对该过程进行了解释:

操作流程

补充,上述内容其实并不是AutoSAR中定义的东西,而是在密码学的相关实现中的用法,几乎所有的密码学算法都分为start update finish 三个流程.Vector在实现相关算法的时候也是按照惯用的方法实现的,因此引入了一些密码学的概念.
比较好的开源加密库,OpenSSL Mbedtls等代码可以详细看一下

你可能感兴趣的:(CSM中OperationMode的含义)