中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

搜索附件  
汽车工程师之家 附件中心 结构原理专业知识特区 『汽车控制器VCU/BMS/MCU/域控』 Autosar Crypto Driver学习笔记(二)w26.jpg
左侧广告
附件中心&附件聚合2.0
For Discuz! X2.5 © hgcad.com

Autosar Crypto Driver学习笔记(二)w26.jpg

 

Autosar Crypto Driver学习笔记(二):


    Crypto Driver


      Function definitions

      Scheduled functions

      Containers and configuration parameters


Crypto Driver

Function definitions

介绍了Autosar标准定义的函数
General API

Crypto_Init


初始化Crypto Driver
Crypto_GetVersionInfo


读取Crypto Driver版本
Job Processing Interface

Crypto_ProcessJob




如果模块未初始化,并且启用了Crypto Driver的开发错误检测,则函数Crypto_ProcessJob将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK

如果参数objectId超出范围,并且启用了Crypto Driver的开发错误检测,则该函数Crypto_ProcessJob将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果参数job是空指针,并且启用了Crypto Driver的开发错误检测,则函数Crypto_ProcessJob将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK。

如果加密驱动对象不支持参数job->jobPrimitiveInfo->primitiveInfo-service,并且启用了Crypto Driver的开发错误检测,则函数Crypto_ProcessJob将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果参数job->jobPrimitiveInfo->primitiveInfo->service is set to  CRYPTO_KEYSETVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE,  CRYPTO_KEYEXCHANGECALCPUBVAL or CRYPTO_KEYEXCHANGECALCSECRET,则参数 job->cryptoKeyId必须在范围内,否则 Crypto_ProcessJob报告CRYPTO_E_PARAM_HANDLE to DET并返回E_NOT_OK

如果参数r job->jobPrimitiveInfo->primitiveInfo->service is set to  CRYPTO_KEYDERIVE,则参数job->cryptoTargetKeyId必须在范围内,否则 Crypto_ProcessJob报告CRYPTO_E_PARAM_HANDLE to DET并返回E_NOT_OK

如果 job->jobPrimitiveInfo->primitiveInfo- >service is set to CRYPTO_HASH or CRYPTO_MACGENERATE,则需要输入参数job->jobPrimitiveInfo->primitiveInfo->resultLength,如果job的result length小于所选算法的result length,则将结果的最高有效位截断为配置的result length

如果参数job->jobPrimitiveInfo->primitiveInfo->algorithm不被Crypto Driver支持,且开启了开发错误检测,则Crypto_ProcessJob需要报告CRYPTO_E_PARAM_HANDLE to the DET且返回 E_NOT_OK.

根据job->jobPrimitiveInfo-> primitiveInfo->service中配置的加密服务,需要将job->jobPrimitiveInput的不同参数设置为有效值。SWS_Crypto_00071中的表指定了服务在不同模式下需要或可选的参数

如果需要一个指向缓冲区的指针作为参数,但它是一个空指针,如果启用了加密驱动程序的开发错误检测,则Crypto_ProcessJob()函数将向DET报告CRYPTO_E_PARAM_POINTER且返回E_NOT_OK

如果处理服务请求需要长度信息(作为变量或指针),但指示的长度值为零,并且如果启用了Crypto Driver的开发错误检测,则Crypto_ProcessJob()函数会报告CRYPTO_E_PARAM_VALUE给DET并返回E_NOT_OK。


*:服务名称来源于Crypto_ServiceInfoType (job struct的一部分)

**:在输入重定向的情况下,使用相应的 key element作为输入,而不是使用inputBuffer。

***:在输出重定向的情况下,使用相应的 key element作为输出,而不是outputBuffer

S:Start模式下需要的成员。

U: Update模式下需要的成员。

F:Finish模式所需成员。

G:Finish模式下的可选成员。

除CRYPTO_HASH和CRYPTO_RANDOMGENERATE外,在Crypto_ServiceInfoType中列出的所有加密服务都需要一个密钥表示为密钥标识符

在下表中列出了作业的不同输入和输出缓冲区的内容。jobPrimitiveInputOutputType指定:


*:服务名称来源于Crypto_ServiceInfoType。

**:在输入重定向的情况下,使用相应的 key element作为输入,而不是使用inputBuffer。

***:在输出重定向的情况下,使用相应的 key element作为输出,而不是 outputbuffer

如果crypto primitive需要输入数据,则其内存位置由指针job->jobPrimitiveInput.inputPtr引用。在调用Crypto_ProcessJob时,该数据的长度存储在job-> jobPrimitiveInput.inputLength中。

如果输入被重定向到一个key element,则必须使用相应key element的输入缓冲区。

如果 crypto primitive需要为结果提供缓冲区,则其内存位置由指针job->jobPrimitiveInput.outputPtr引用。在调用这个函数时,job->jobPrimitiveInput.outputLengthPtr应该包含相关缓冲区的大小。当请求完成时,将存储返回值的实际长度

如果输出被重定向到一个key element,则必须使用相应key element的输出缓冲区。

如果选择了随机生成器服务和对应的熵,则函数返回CRYPTO_E_ENTROPY_EXHAUSTED。函数Crypto_ProcessJob应该另外报告运行时错误CRYPTO_E_RE_ENTROPY_EXHAUSTED。
Job Cancellation Interface


该接口从队列中删除提供的作业,并在可能的情况下取消对该作业的处理。
Key Management Interface

注意:如果要修改的实际key element直接映射到flash,那么在调用key管理函数时可能会有更大的延迟(同步操作)

如果底层加密硬件不允许在处理作业的同时执行密钥管理功能,则密钥管理功能应等待当前作业执行,然后开始处理密钥管理功能

注意:必须确保作业的处理速度足够快,以避免密钥管理功能必须等待很长时间。

还建议对作业使用CRYPTO_OPERATIONMODE_SINGLECALL。
Key Setting Interface密钥设置接口

Crypto_KeyElementSet

加密驱动程序仅在以下情况下执行此操作

CryptoKeyElement/CryptoKeyElementWriteAccess设置为

CRYPTO_WA_ALLOWED或CRYPTO_WA_ENCRYPTED。

注意:如果key元素引用了SHE-key,建议设置

CryptoKeyElementWriteAccess to CRYPTO_WA_ENCRYPTED。密钥本身必须以M1M2M3格式的she密钥提供。




cryptoKeyId:保存要设置key id(包含对应的key element)

keyElement Id :保存要设置的key element的id

keyPtr:key数据指针

keyLength:key element长度

注意:此服务以同步方式工作。然而,key material 有可能驻留在 flash memory中。因此,执行这个函数可能需要一些时间

如果尚未初始化Crypto Driver,并且启用了加密驱动程序的开发错误检测,则该函数

Crypto_KeyElementSet将向DET报告CRYPTO_E_UNINIT并返回

E_NOT_OK。

如果cryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则Crypto_KeyElementSet函数将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果参数keyElementId超出范围,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyElementSet将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果参数keyPtr是空指针,并且启用了加密驱动程序的开发错误检测,则该函数

Crypto_KeyElementSet将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK。

如果keyLength为零,并且启用了加密驱动程序的开发错误检测,则函数Crypto_KeyElementSet将向DET报告CRYPTO_E_PARAM_VALUE并返回E_NOT_OK。
Crypto_KeySetValid


将由cryptoKeyId标识的密钥的密钥状态设置为有效

如果模块尚未初始化并且启用了加密驱动程序的开发错误检测,则函数Crypto_KeySetValid将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK。

如果cryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则Crypto_KeyElementSet函数将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果Crypto Driver没有检测到错误,服务Crypto_KeySetValid()将密钥cryptoKeyId设置为“valid”
Key Extraction Interface密钥提取接口

Crypto_KeyElementGet

加密驱动程序仅在以下情况下执行此操作

CryptoKeyElement/CryptoKeyElementReadAccess设置为

CRYPTO_RA_ALLOWED或CRYPTO_RA_ENCRYPTED。

注意:从SHE硬件读取密钥是不可能的,除非它是SHE RAMKey。在本例中,读取SHEKey将提供M1M2M3。在本例中,密钥元素应该设置为CRYPTO_RA_ENCRYPTED。




如果函数Crypto_KeyElementGet返回CRYPTO_E_KEY_NOT_AVAILABLE,则该函数应另外报告运行时错误CRYPTO_E_RE_KEY_NOT_AVAILABLE。

如果函数Crypto_KeyElementGet返回CRYPTO_E_KEY_READ_FAIL,函数将额外报告运行时错误CRYPTO_E_RE_KEY_READ_FAIL

如果模块尚未初始化,并且启用了加密驱动程序的开发错误检测,则函数Crypto_KeyElementGet将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK

如果cryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则Crypto_KeyElementGet函数将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果参数keyElementId超出范围,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyElementGet将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果resultPtr参数为空指针,并且启用了加密驱动程序的开发错误检测,则该函数

Crypto_KeyElementGet将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK。

如果参数resultLengthPtr为空指针,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyElementGet将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK

如果该值(由resultLengthPtr指向)为零,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyElementGet将向DET报告CRYPTO_E_PARAM_VALUE并返回E_NOT_OK

如果Crypto Driver没有检测到错误,服务Crypto_KeyElementGet()将检索key element的值并将其存储在由resultPtr指向的缓冲区中。

指针resultPtr保存着存放键元素数据的内存位置。在调用这个函数时,resultLengthPtr应该包含resultPtr提供的缓冲区的大小。当请求完成时,将存储返回值的实际长度。
Key Copying Interface密钥拷贝接口

Crypto_KeyElementCopy




将key element复制到同一加密驱动程序中的另一个key element。注意:如果实际的key element直接映射到flash,调用此函数(同步操作)时可能会有更大的延迟。
Crypto_KeyElementCopyPartial




将key element复制到同一加密驱动程序中的另一个key element.

keyElementSourceOffset和keyElementCopyLength允许将源key element的一部分复制到目标中。目标key的偏移量也可以用这个函数指定

注意:如果实际的key element直接映射到闪存,调用此函数(同步操作)时可能会有更大的延迟。

如果尚未初始化加密驱动程序,并且启用了加密驱动程序的开发错误检测,则该函数

Crypto_KeyElementCopyPartial将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK。

如果cryptoKeyId, keyElementId, targetKeyElementId或targetCryptoKeyId超出范围,并且如果启用了加密驱动程序的开发错误检测,则该函数将Crypto_KeyElementCopyPartial报告CRYPTO_E_PARAM_HANDLE给DET并返回E_NOT_OK。

如果使用keyElementId指定的密钥元素的总长度小于keyElementSourceOffset + keyElementCopyLength,则Crypto_KeyElementCopyPartial将返回

CRYPTO_E_KEY_SIZE_MISMATCH。

如果targetCryptoKeyId引用的key的targetKeyElementId指定的key element的最大可用缓冲区小于keyElementTargetOffset + keyElementCopyLength,则函数Crypto_KeyElementCopyPartial返回CRYPTO_E_KEY_SIZE_MISMATCH。

如果加密驱动程序未检测到错误,则函数

Crypto_KeyElementCopyPartial将keyElementSourceOffset偏移量和keyElementCopyLength指定长度的keyelemententid所引用的key element的一部分复制到targetCryptoKeyId所引用的key的targetKeyElementId所引用的key element。

如果目标key element的当前长度大于或等于(keyElementTargetOffset + keyElementCopyLength),则key element的长度保持不变

如果目标key element的当前长度小于

(keyElementTargetOffset + keyElementCopyLength)且key element的最大长度大于或等于(keyElementTargetOffset + keyElementCopyLength),则将源数据复制到目标key element中,并将长度设置为(keyElementTargetOffset + keyElementCopyLength)。
Crypto_KeyCopy





将密钥及其所有元素复制到同一加密驱动程序中的另一个密钥。注意:如果实际的key element直接映射到闪存,调用此函数(同步操作)时可能会有更大的延迟。

如果尚未初始化加密驱动程序,并且启用了加密驱动程序的开发错误检测,则函数Crypto_KeyCopy将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK

如果cryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则Crypto_KeyCopy函数将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果targetCryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则函数Crypto_KeyCopy应向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果 Crypto Driver没有检测到错误,则该函数应将cryptoKeyId引用的密钥中的所有key elements复制到targetCryptoKeyId引用的密钥中。
Crypto_KeyElementIdsGet


如果加密驱动程序尚未初始化,并且加密驱动程序的开发错误检测已启用,则该函数

Crypto_KeyElementIdsGet将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK

如果cryptoKeyId超出范围,并且如果启用了加密驱动程序的开发错误检测,则该功能

Crypto_KeyElementIdsGet将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果加密驱动程序没有检测到错误,则该函数将由cryptoKeyId标识的密钥中可用的 key  elements的所有id存储到keyElementIdsPtr提供的数组中。它还将elements的数量存储到由keyElementIdsLengthPtr指向的值

注意:当CRYIF应该将整个密钥从一个Crypto Driver复制到另一个Crypto Driver时,CRYIF需要此函数。
Key Generation Interface密钥生成接口

Crypto_RandomSeed


如果模块尚未初始化,并且启用了加密驱动程序的开发错误检测,则函数Crypto_RandomSeed将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK。

如果参数cryptoKeyId超出范围,并且如果启用了加密驱动程序的开发错误检测,则该函数Crypto_RandomSeed将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果参数seedPtr为空指针,并且启用了加密驱动程序的开发错误检测,则该函数

Crypto_RandomSeed将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK。

如果seedLength为零,并且启用了加密驱动程序的开发错误检测,则将报告Crypto_RandomSeed函数将CRYPTO_E_PARAM_VALUE转换为DET并返回E_NOT_OK

如果Crypto Driver没有检测到错误,服务Crypto_RandomSeed()将使用从熵源派生的种子状态提供给定的密钥。随机数生成器的内部状态存储在key元素中

CRYPTO_KE_RANDOM_SEED
Crypto_KeyGenerate


如果模块尚未初始化,并且启用了加密驱动程序的开发错误检测,则函数Crypto_KeyGenerate将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK

如果参数cryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则返回该函数Crypto_KeyGenerate将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果加密驱动程序未检测到错误,则该服务Crypto_KeyGenerate()生成相应的密钥。
Key Derivation Interface密钥派生接口

Crypto_KeyDerive


如果模块尚未初始化,并且启用了加密驱动程序的开发错误检测,则函数crypto_keyderived应向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK。

如果参数cryptoKeyId超出范围,并且如果启用了加密驱动程序的开发错误检测,则该函数crypto_keyderived将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK。

如果参数targetCryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则该函数crypto_keyderived将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果加密驱动程序未检测到任何错误,则服务crypto_keyderived()通过salt和password派生一个 key element

密钥派生服务需要salt和password来派生新密钥。因此,salt和password作为key element在由cryptoKeyId引用的密钥中。
Key Exchange Interface密钥交换接口

Crypto_KeyExchangeCalcPubVal




如果模块尚未初始化并且启用了加密驱动程序的开发错误检测:函数Crypto_KeyExchangeCalcPubVal将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK。

如果参数cryptoKeyId超出范围,并且如果启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyExchangeCalcPubVal将向DET报告CRYPTO_E_PARAM_HANDLE并返回E_NOT_OK

如果参数publicValuePtr是空指针,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyExchangeCalcPubVal将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK

如果参数pubValueLengthPtr是空指针,并且如果启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyExchangeCalcPubVal将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK。

如果由pubValueLengthPtr指向的值为零,并且如果启用了加密驱动程序的开发错误检测,则该函数将Crypto_KeyExchangeCalcPubVal报告CRYPTO_E_PARAM_VALUE给DET并返回E_NOT_OK

如果Crypto Driver没有检测到错误,服务Crypto_KeyExchangeCalcPubVal()计算当前作业的密钥交换的公共值

指针publicValuePtr保存着存放公共值数据的内存位置。在调用这个函数时,publicValueLengthPtr应该包含由publicValuePtr提供的缓冲区的大小。当请求完成时,将存储返回值的实际长度。
Crypto_KeyExchangeCalcSecret





如果模块尚未初始化,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyExchangeCalcSecret将向DET报告CRYPTO_E_UNINIT并返回E_NOT_OK

如果参数cryptoKeyId超出范围,并且启用了加密驱动程序的开发错误检测,则返回该函数将Crypto_KeyExchangeCalcSecret报告CRYPTO_E_PARAM_HANDLE给DET并返回E_NOT_OK

如果参数partnerPublicValuePtr是空指针,并且如果启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyExchangeCalcSecret将向DET报告CRYPTO_E_PARAM_POINTER并返回E_NOT_OK。。

如果partnerPublicValueLength为零,并且启用了加密驱动程序的开发错误检测,则该函数Crypto_KeyExchangeCalcSecret将向DET报告CRYPTO_E_PARAM_VALUE并返回E_NOT_OK。

如果Crypto未检测到错误,则服务Crypto_KeyExchangeCalcSecret()计算密钥交换的共享密钥,并将其作为密钥元素存储在cryptoKeyId中
Scheduled functions

Crypto_MainFunction

Crypto_MainFunction()对于异步作业处理是必需的。对于同步作业处理,提供main函数是可选的


Containers and configuration parameters

以下章节总结了所有配置参数。

注意:配置容器中的id必须是连续的,无间隙的,且必须从零开始。
Crypto


Crypto配置至少包括CryptoGeneral,CryptoDriverObjects。一般还包括CryptoKeyElements(配置key中的参数),CryptoKeyTypes(关联一个或多个KeyElement),CryptoKeys(包含KeyType和KeyId),CryptoPrimitives(配置具体的安全算法)
CryptoGeneral


CryptoDevErrorDetect:启用开发错误检测


CryptoInstanceId:crypto driver的实例ID。此ID用于识别多个crypto driver,以防在同一ECU中使用多个driver。




CryptoMainFunctionPeriod:配置Crypto_MainFunction周期


CryptoVersionInfoApi:配置是否使用版本读取函数Crypto_GetVersionInfo().

CryptoEcucPartitionRef:将 Crypto driver映射到零或多个ECUC分区,以使该分区中的模块API可用。该模块将作为每个分区中的独立实例运行


CryptoDriverObjects


配置一个或多个CRYPTO Object


CryptoDriverObject




CryptoDriverObjectId:配置Crypto Driver Object的ID,Crypto Driver Object关联不同的crypto primitives

CryptoQueueSize:Crypto Driver中队列的大小。定义Crypto Driver Object队列中的最大作业数。如果设置为0,则在Crypto Driver Object中禁用排队

CryptoDefaultRandomKeyRef:通过关联CryptoDefaultRandomPrimitiveRef实现对CryptoKey的引用。该key包含为随机数生成器提供种子所需的key elements。只有当被CryptoDefaultRandomPrimitiveRef引用的原语需要一个种子值时,才需要设置该元素。



CryptoDefaultRandomPrimitiveRef:这是对配置默认随机数生成器的原语的引用。如果crypto driver object需要执行需要随机数生成器的加密原语,但该原语的配置没有为随机数生成器提供参数,则应使用此默认随机数生成器

示例:加密驱动程序需要基于椭圆曲线生成签名,但是生成签名的原语缺少随机数生成器的信息。

CryptoDriverObjectEcucPartitionRef:将crypto driver object映射到零个或多个ECUC分区。引用的ECUC分区是 Crypto  driver映射到的ECUC分区的子集

注意:像HSM这样的CryptoDriverObjects只能映射到一个分区

CryptoPrimitiveRef:crypto driver object关联的CryptoPrimitive,也就是对应的安全算法
CryptoKeys


CryptoKeys包含多个CryptoKey
CryptoKey


CryptoKeyId:CRYPTO Key的id

CryptoKeyTypeRef:关联CryptoKeyType。CryptoKeyType将关联key elements
CryptoKeyElements


CryptoKeyElements包含一个或多个CryptoKeyElement


CryptoKeyElement


CryptoKeyElementAllowPartialAccess:启用或禁用数据小于元素大小的 key element的写入和读取。

CryptoKeyElementFormat:定义key element的格式。这是用于从驱动程序中提供或提取key data的格式。



CryptoKeyElementId:配置CRYPTO key element的id

CryptoKeyElementInitValue:该值将用于在启动期间填充key element(i)对于所有非持久性关键元素,以及

(ii)对于那些从未被写入的持久性关键元素

CryptoKeyElementPersist:启用或禁用在非易失性存储中持久化关键元素。

True:启用关键元素的持久化。

False:禁用key元素的持久化。



CryptoKeyElementReadAccess:配置KeyElement的Read权限

CRYPTO_RA_DENIED = key element不能从Crypto  Driver外部读取

CRYPTO_RA INTERNAL_COPY = key element可以复制到同一Crypto  Driver中的另一个key element。

CRYPTO_RA_ALLOWED = key element可以作为明文读取

CRYPTO_RA_ENCRYPTED = key element可以被加密读取。例如:SHE Ram-Key导出。

CryptoKeyElementSize:配置KeyElement的大小,byte为单位



CryptoKeyElementWriteAccess:配置KeyElement的写入访问权限

CRYPTO_WA_DENIED = key element不能从Crypto  Driver外部写入

CRYPTO_WA INTERNAL_COPY = key element可以用同一Crypto  Driver中的另一个key element填充。

CRYPTO_WA_ALLOWED = key element可以重写为明文

CRYPTO_WA_ENCRYPTED = key element可以加密写入。例如:SHE载入钥匙
CryptoKeyTypes


CryptoKeyTypes包含一个或多个CryptoKeyType
CryptoKeyType


CryptoKeyElementRef:CryptoKeyType关联Key Element,可以关联一个或多个KeyElement
CryptoPrimitives


CryptoPrimitives包含CryptoPrimitive


CryptoPrimitive




CryptoPrimitiveAlgorithmFamily:确定用于加密服务的算法Family



CryptoPrimitiveAlgorithmMode:配置加密算法的模式



CryptoPrimitiveAlgorithmSecondaryFamily:确定用于加密服务的第二算法Family
CryptoPrimitiveService


CryptoPrimitiveService:确定加密服务的功能

Autosar Crypto Driver学习笔记(二)w26.jpg
         同一主题附件:
    Autosar Crypto Driver学习笔记(二)w1.jpg
    Autosar Crypto Driver学习笔记(二)w2.jpg
    Autosar Crypto Driver学习笔记(二)w3.jpg
    Autosar Crypto Driver学习笔记(二)w4.jpg
    Autosar Crypto Driver学习笔记(二)w5.jpg
    Autosar Crypto Driver学习笔记(二)w6.jpg
    Autosar Crypto Driver学习笔记(二)w7.jpg
    Autosar Crypto Driver学习笔记(二)w8.jpg
    Autosar Crypto Driver学习笔记(二)w9.jpg
    Autosar Crypto Driver学习笔记(二)w10.jpg
    Autosar Crypto Driver学习笔记(二)w11.jpg
    Autosar Crypto Driver学习笔记(二)w12.jpg
    Autosar Crypto Driver学习笔记(二)w13.jpg
    Autosar Crypto Driver学习笔记(二)w14.jpg
    Autosar Crypto Driver学习笔记(二)w15.jpg
    Autosar Crypto Driver学习笔记(二)w16.jpg
    Autosar Crypto Driver学习笔记(二)w17.jpg
    Autosar Crypto Driver学习笔记(二)w18.jpg
    Autosar Crypto Driver学习笔记(二)w19.jpg
    Autosar Crypto Driver学习笔记(二)w20.jpg
    Autosar Crypto Driver学习笔记(二)w21.jpg
    Autosar Crypto Driver学习笔记(二)w22.jpg
    Autosar Crypto Driver学习笔记(二)w23.jpg
    Autosar Crypto Driver学习笔记(二)w24.jpg
    Autosar Crypto Driver学习笔记(二)w25.jpg
    Autosar Crypto Driver学习笔记(二)w26.jpg
    Autosar Crypto Driver学习笔记(二)w27.jpg
    Autosar Crypto Driver学习笔记(二)w28.jpg
    Autosar Crypto Driver学习笔记(二)w29.jpg
    Autosar Crypto Driver学习笔记(二)w30.jpg
    Autosar Crypto Driver学习笔记(二)w31.jpg
    Autosar Crypto Driver学习笔记(二)w32.jpg
    Autosar Crypto Driver学习笔记(二)w33.jpg
    Autosar Crypto Driver学习笔记(二)w34.jpg
    Autosar Crypto Driver学习笔记(二)w35.jpg
    Autosar Crypto Driver学习笔记(二)w36.jpg
    Autosar Crypto Driver学习笔记(二)w37.jpg
    Autosar Crypto Driver学习笔记(二)w38.jpg
    Autosar Crypto Driver学习笔记(二)w39.jpg
    Autosar Crypto Driver学习笔记(二)w40.jpg
    Autosar Crypto Driver学习笔记(二)w41.jpg
    Autosar Crypto Driver学习笔记(二)w42.jpg
    Autosar Crypto Driver学习笔记(二)w43.jpg
    Autosar Crypto Driver学习笔记(二)w44.jpg
    Autosar Crypto Driver学习笔记(二)w45.jpg
    Autosar Crypto Driver学习笔记(二)w46.jpg
    Autosar Crypto Driver学习笔记(二)w47.jpg
    Autosar Crypto Driver学习笔记(二)w48.jpg
    Autosar Crypto Driver学习笔记(二)w49.jpg
    Autosar Crypto Driver学习笔记(二)w50.jpg
    Autosar Crypto Driver学习笔记(二)w51.jpg
    Autosar Crypto Driver学习笔记(二)w52.jpg
    Autosar Crypto Driver学习笔记(二)w53.jpg
    Autosar Crypto Driver学习笔记(二)w54.jpg
    Autosar Crypto Driver学习笔记(二)w55.jpg
    Autosar Crypto Driver学习笔记(二)w56.jpg
    Autosar Crypto Driver学习笔记(二)w57.jpg
    Autosar Crypto Driver学习笔记(二)w58.jpg
    Autosar Crypto Driver学习笔记(二)w59.jpg
    Autosar Crypto Driver学习笔记(二)w60.jpg
    Autosar Crypto Driver学习笔记(二)w61.jpg
    Autosar Crypto Driver学习笔记(二)w62.jpg
    Autosar Crypto Driver学习笔记(二)w63.jpg
    Autosar Crypto Driver学习笔记(二)w64.jpg
    Autosar Crypto Driver学习笔记(二)w65.jpg
    Autosar Crypto Driver学习笔记(二)w66.jpg
    Autosar Crypto Driver学习笔记(二)w67.jpg
    Autosar Crypto Driver学习笔记(二)w68.jpg
    Autosar Crypto Driver学习笔记(二)w69.jpg
    Autosar Crypto Driver学习笔记(二)w70.jpg
    Autosar Crypto Driver学习笔记(二)w71.jpg
    Autosar Crypto Driver学习笔记(二)w72.jpg

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 20-5-2024 02:30 , Processed in 0.250250 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.