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,工程文件应该没用了,所以去技术手册查一下:
没用,所以去 AutoSAR 的CSM层看一下:
这是明白了~~
就是讲解这个任务是去执行啊,还是更新啊,还是结束。指示任务的状态
我花费时间点在于没看手册,在不断追函数的调用,企图找到mode的最后应用在哪,由于代码量庞大且不熟悉。追了好几遍发现追着追着就丢了。最后只是赋值了一下给其他变量,看不出来实际的作用。
所以,这种宏定义还是查看手册比较好,涉及到宏定义了手册一般都会予以说明...
补充一下。
在看AutoSAR文档的时候,看到了更为详细的相关解释,补充一下内容,方便理解。
在AutoSAR CP 的 Crypto services 的Utilization of Crypto Services文档中,描述:
Streaming Approach vs Single Call Approach.
基本意思是,Start表示job开始,update其实是传入更新的数据,Stop表示job结束。
Streaming: 多用于大量数据加密,不断的通过Update传入大量的数据;
Singlecall:多用于小批量数据加密,一次完成start 、update 、finish三个操作。
在AutoSAR的 CSM 的文档中对该过程进行了解释:
补充,上述内容其实并不是AutoSAR中定义的东西,而是在密码学的相关实现中的用法,几乎所有的密码学算法都分为start update finish 三个流程.Vector在实现相关算法的时候也是按照惯用的方法实现的,因此引入了一些密码学的概念.
比较好的开源加密库,OpenSSL Mbedtls等代码可以详细看一下