Crypto驱动产品参考手册

缩写词注解

缩写词

英文全称

中文解释

HSM

Hardware Security Module

硬件安全模块

SHA

Secure Hash Algorithm

安全哈希算法

AES

Advanced Encrytion Standard

高级加密标准

RSA

Rivest-Shamir-Adleman

RSA加密算法

简介

18f546fb3eee2733661889deea92a13

图1-1 Crypto Driver协议栈架构图

在AUTOSAR加密协议栈中,Crypto Driver处于最底层,为加密功能的最终处理模块。Crypto Driver会执行上层下发的算法任务,计算完成后把结果通过回调函数的方式通知到上层模块。加密算法可通过软件或者硬件HSM模块实现。在本文档中Crypto Driver主要指为软件方式实现的加密算法。

Crypto Driver能够向上层提供多种加密算法,如散列算法SHA、对称加密AES、非对称加密RSA以及随机数生成等。

参考资料

[1] AUTOSAR_SWS_CryptoDriver.pdf,R19-11

[2] AUTOSAR_SWS_CryptoServiceManager.pdf,R19-11

功能描述

秘钥功能

秘钥功能介绍

加密算法包含了对称加密与非对称加密。

对称加密,即使用A秘钥进行加密得出的密文,一样可以通过A秘钥进行解密,如果截获秘钥和算法,即可通过密文计算出明文。

非对称加密指双方用不同的秘钥加密和解密明文,通信双方都要有自己公钥和私钥。

秘钥功能主要就是涉及到秘钥的保存与获取,包括公钥和私钥的生成等。

秘钥功能实现

秘钥通过Crypto_KeyElementSet把Key Element设置到内部Ram中,然后通过调用Crypto_KeySetValid把指定的key设置为有效。

秘钥功能首先需要在Crypto中配置CryptoKeys,然后配置CryptoKeys->CryptoKeyTypes->CryptoKeyElements,不同的算法所需要的的Key Elements是不一样的,可参考[SWS_Csm_01022]规范,如下图:

image1

图2-1 MAC算法所需Key Elements示意图

如MAC所示,使用时就可以配置3个KeyElement,分别为CRYPTO_KE_MAC_KEY(1),CRYPTO_KE_MAC_PROOF(2)以及CRYPTO_KE_KEYGENERATE_SEED(16)。

加密算法

算法介绍

HASH算法

HASH(哈希)算法为不需要秘钥的算法,哈希算法又称杂凑算法,能将一定长度的消息计算出固定长度的字符串(又称消息摘要)。SHA包含5个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四者并称为SHA-2。SHA-1最大计算明文长度为2^64bit,属于分组算法,分组长度为512bit,产生的信息摘要长度为160bit,也就是20个字节。

AES对称加密算法

AES的处理单位是字节,128位的输入明文分组P和输入密钥K都被分成16个字节,分别记为P = P0 P1 … P15 和 K = K0 K1 … K15。如,明文分组为P = abcdefghijklmnop,其中的字符a对应P0,p对应P15。一般地,明文分组用字节为单位的正方形矩阵描述,称为状态矩阵。在算法的每一轮中,状态矩阵的内容不断发生变化,最后的结果作为密文输出。

RSA非对称加密算法

非对称加密指双方用不同的KEY加密和解密明文,通信双方都要有自己公共密钥和私有密钥。举个例子比较容易理解,我们们假设通信双方分别是A,B。 A拥有KEY_A1(私钥),KEY_A2(公钥)。 B拥有KEY_B1(私钥),KEY_B2(公钥)。公钥和私钥的特点是,经过其中任何一把加密过的明文,只能用另外一把才能够解开。也就是说经过KEY_A1加密过的明文,只有KEY_A2才能够解密,反之亦然。

MAC算法

MAC算法, SecOc比较常使用的算法,即带秘密密钥的Hash算法。消息的散列值由只有通信双方知道的秘钥K来控制。此时Hash值称作MAC。 先对报文第一个64bit加密,得到64bit的加密后数据data1,接着再拿加密后的data1与报文第二个64bit数据进行按位异或,得到同样长64bit的数据data2,再用Key对data2加密,得到加密后的数据data3,再拿data3与报文第三个64bit数据进行按位异或,同样的处理依次类推,直到最后会得到一个64bit的数据,这个算法就叫做MAC算法。

算法实现

加密算法均是参考开源库算法,此处对于细节不多加介绍。唯一需要注意的是对称加密与非对称加密的实现。对称加密与非对称加密在crypto driver中均是通过Encrypt和Decrypt实现,在CSM中配置CsmPrimitives时的CsmEncryptAlgorithmFamily需要配置为CRYPTO_ALGOFAM_AES和CRYPTO_ALGOFAM_RSA的区别。

当配置CRYPTO_ALGOFAM_RSA时,调用Csm_Encrypt传入的resultLengthPtr长度必须为128,且必须先调用Csm_KeyGenerate生成执行算法所需的公钥和私钥。

队列功能

队列介绍

由于软件加密算法可能比较耗时,所以个别的算法可以配置为异步模式,即把内容传给下层后,下层不会直接运算,而是会根据下层的功能机制,在后续的mainfunction中对加密任务进行计算,并通过回调函数返回给上层。

由于异步加密任务可能存在延迟,例如未完成一次计算,又传入了很多其它的加密任务,这时可以启用队列功能。队列功能打开后,便可以同时缓存多个加密任务,每次在Crypto_Mainfunction中去依次执行缓存队列中的加密任务。

队列实现

通过配置项CryptoQueueSize定义队列大小。CSM和Crypto Driver中均可定义队列,两者的功能大体一致,一般情况下是两者选其一即可。

源文件描述

表3-1 Crypto组件文件描述

文件

说明

Crypto_Cfg.h

定义Crypto Driver模块预编译时用到的配置参数。

Crypto_Cfg.c

定义Crypto Driver模块中PC配置参数。

Crypto.h

Crypto模块头文 件,包含了API函数的扩展声明并定义了端口的数据结构。

Crypto.c

Crypto模块源文件,包含了外部API函数的实现。

Cry pto_internal.c

定义内部函数的实现,如查找配置,缓存拷贝等

Cry pto_internal.h

定义内部数据结构,内部函数声明等

Crypto_Types.h

定义规范中定义的数据结构等

C rypto_MemMap.h

定义数据、代码所用的Memmap段

AES、dh 、Hash等文件夹

开源加密库算法的实现文件


image2

图3-1 Crypto组件头文件交互图

API接口

类型定义

Crypto_ConfigType类型定义

名称

Crypto_ConfigType

类型

structure

范围

描述

加密驱动的配置pb配置数据类型

输入函数描述

输入模块

API

Det

Det_ReportError

Nvm

NvM_SetRamBlockStatus

NvM_WriteBlock

静态接口函数定义

Crypto_Init函数定义

函 数名称:

Crypto_Init

函 数原型:

void Crypto_Init (

const Crypto_ConfigType* configPtr

)

服 务编号:

0x00

同 步/异步:

同步

是否 可重入:

输 入参数:

config Ptr:传入的PB配置数据

值 域:

输入输 出参数:

输 出参数:

返回值:

功 能概述:

Crypto模块初始化

Crypto_GetVersionInfo函数定义

函 数名称:

Crypto_Init

函 数原型:

void Crypto_GetVersionInfo (

Std_VersionInfoType* versioninfo

)

服 务编号:

0x01

同 步/异步:

同步

是否 可重入:

输 入参数:

versioninfor:用 于储存版本信息的变量

值 域:

输入输 出参数:

输 出参数:

返回值:

功 能概述:

获 取Crypto模块版本信息

Crypto_ProcessJob函数定义

函 数名称:

Crypto_ProcessJob

函 数原型:

Std_ReturnType Crypto_ProcessJob (

uint32 objectId,

Crypto_JobType* job

)

服 务编号:

0x03

同 步/异步:

依赖于Job的配置

是否 可重入:

输 入参数:

objectId

值 域:

依赖于配置

job

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

C RYPTO_E_KEY_NOT_VALID

CRYPT O_E_KEY_SIZE_MISMATCH

C RYPTO_E_KEY_READ_FAIL

CR YPTO_E_KEY_WRITE_FAIL

CRYPT O_E_KEY_NOT_AVAILABLE

CRYPT O_E_ENTROPY_EXHAUSTED

CRYPTO_E_JOB_CANCELED

CRYPTO_E_KEY_EMPTY

功 能概述:

依赖于Jo b配置参数,处理crypto primitive(进行 实际的算法调用、处理 ,如果是同步任务,还 会得到加密后的结果)

Crypto_CancelJob函数定义

函 数名称:

Crypto_CancelJob

函 数原型:

Std_ReturnType Crypto_CancelJob (

uint32 objectId,

Crypto_JobType* job

)

服 务编号:

0x0e

同 步/异步:

同步

是否 可重入:

输 入参数:

objectId

值 域:

依赖于配置

job

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_JOB_CANCELED

功 能概述:

移除 队列里面所有的异步Job ,并且 撤销当前正在处理的Job

Crypto_KeyElementSet函数定义

函 数名称:

Crypto_KeyElementSet

函 数原型:

Std_ReturnType Crypto_KeyElementSet (

uint32 cryptoKeyId,

uint32 keyElementId,

const uint8* keyPtr,

uint32 keyLength

)

服 务编号:

0x04

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId依赖于配置

keyElementId

keyPtr

keyLength

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

CR YPTO_E_KEY_WRITE_FAIL

CRYPT O_E_KEY_NOT_AVAILABLE

CRYPT O_E_KEY_SIZE_MISMATCH

功 能概述:

把 keyPtr指定的秘钥写入 cryptoKeyId对应的Key Element中

Crypto_KeySetValid函数定义

函 数名称:

Crypto_KeySetValid

函 数原型:

Std_ReturnType Crypto_KeySetValid (

uint32 cryptoKeyId

)

服 务编号:

0x05

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId依赖于配置

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

功 能概述:

设置cryptoKey Id指定的Key状态为有效

Crypto_KeySetInvalid函数定义

函 数名称:

Crypto_KeySetInvalid

函 数原型:

Std_ReturnType Crypto_KeySetInvalid (

uint32 cryptoKeyId

)

服 务编号:

0x15

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId依赖于配置

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

功 能概述:

设置cryptoKey Id指定的Key状态为无效

Crypto_KeyElementGet函数定义

函 数名称:

Crypto_KeyElementGet

函 数原型:

Std_ReturnType Crypto_KeyElementGet (

uint32 cryptoKeyId,

uint32 keyElementId,

uint8* resultPtr,

uint32* resultLengthPtr

)

服 务编号:

0x06

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId依赖于配置

keyElementId

输入输 出参数:

resultLengthPtr

输 出参数:

resultPtr

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

CRYPT O_E_KEY_NOT_AVAILABLE

C RYPTO_E_KEY_READ_FAIL

CRYPTO_E_KEY_EMPTY

功 能概述:

获取cryptoKeyId-> k eyElementId的秘钥信息

Crypto_KeyGetStatus函数定义

函 数名称:

Crypto_KeyGetStatus

函 数原型:

Std_ReturnType Crypto_KeyGetStatus (

uint32 cryptoKeyId,

C rypto_KeyStatusType* keyStatusPtr

)

服 务编号:

0x14

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId依赖于配置

输入输 出参数:

输 出参数:

keyStatusPtr

返回值:

E_OK

E_NOT_OK

功 能概述:

返回cryp toKeyId对应秘钥的状态

Crypto_KeyElementCopy函数定义

函 数名称:

Crypto_KeyElementCopy

函 数原型:

Std_ReturnType Crypto_KeyElementCopy (

uint32 cryptoKeyId,

uint32 keyElementId,

uint32 targetCryptoKeyId,

uint32 targetKeyElementId

)

服 务编号:

0x0f

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId/ targe tCryptoKeyId依赖于配置

keyElementId

targetCryptoKeyId

targetKeyElementId

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

CRYPT O_E_KEY_NOT_AVAILABLE

C RYPTO_E_KEY_READ_FAIL

CR YPTO_E_KEY_WRITE_FAIL

CRYPT O_E_KEY_SIZE_MISMATCH

CRYPTO_E_KEY_EMPTY

功 能概述:

拷贝cryptoKeyId-> k eyElementId中的秘钥值 到targetCryptoKeyId-> t argetKeyElementId中去

Crypto_KeyElementCopyPartial函数定义

函 数名称:

Crypto_ KeyElementCopyPartial

函 数原型:

Std_ReturnType Crypto_ KeyElementCopyPartial (

uint32 cryptoKeyId,

uint32 keyElementId,

uint32 ke yElementSourceOffset,

uint32 ke yElementTargetOffset,

uint32 keyElementCopyLength,

uint32 targetCryptoKeyId,

uint32 targetKeyElementId

)

服 务编号:

0x13

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId/ targe tCryptoKeyId依赖于配置

keyElementId

k eyElementSourceOffset

k eyElementTargetOffset

keyElementCopyLength

targetCryptoKeyId

targetKeyElementId

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

CRYPT O_E_KEY_NOT_AVAILABLE

C RYPTO_E_KEY_READ_FAIL

CR YPTO_E_KEY_WRITE_FAIL

CRYPT O_E_KEY_SIZE_MISMATCH

CRYPTO_E_KEY_EMPTY

功 能概述:

拷贝cryptoKeyId-> keyElementId中的部分 秘钥值(由keyElementS ourceOffset、keyEleme ntTargetOffset和keyEl ementCopyLength确定) 到targetCryptoKeyId-> t argetKeyElementId中去

Crypto_KeyCopy函数定义

函 数名称:

Crypto_KeyCopy

函 数原型:

Std_ReturnType Crypto_KeyCopy (

uint32 cryptoKeyId,

uint32 targetCryptoKeyId

)

服 务编号:

0x10

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId/ targe tCryptoKeyId依赖于配置

targetCryptoKeyId

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

CRYPT O_E_KEY_NOT_AVAILABLE

C RYPTO_E_KEY_READ_FAIL

CR YPTO_E_KEY_WRITE_FAIL

CRYPT O_E_KEY_SIZE_MISMATCH

CRYPTO_E_KEY_EMPTY

功 能概述:

拷贝 cryptoKeyId中所有Key element到 targetCryptoKeyId中去

Crypto_KeyElementIdsGet函数定义

函 数名称:

Cr ypto_KeyElementIdsGet

函 数原型:

Std_ReturnType Cr ypto_KeyElementIdsGet (

uint32 cryptoKeyId,

uint32* keyElementIdsPtr,

uint32* k eyElementIdsLengthPtr

)

服 务编号:

0x11

同 步/异步:

同步

是否 可重入:

输 入参数:

cryptoKeyId

值 域:

依赖于配置

输入输 出参数:

k eyElementIdsLengthPtr

输 出参数:

keyElementIdsPtr

返回值:

E_OK

E_NOT_OK

CRYPTO_E_BUSY

功 能概述:

用于 检索给定key中哪些Key element可用的信息

Crypto_RandomSeed函数定义

函 数名称:

Crypto_RandomSeed

函 数原型:

Std_ReturnType Crypto_RandomSeed (

uint32 cryptoKeyId,

const uint8* seedPtr,

uint32 seedLength

)

服 务编号:

0x0d

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

cryptoKeyId依赖于配置

seedPtr

seedLength

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

C RYPTO_E_KEY_NOT_VALID

功 能概述:

生成内部种子,用于 cryptoKeyId指定的秘钥

Crypto_KeyGenerate函数定义

函 数名称:

Crypto_KeyGenerate

函 数原型:

Std_ReturnType Crypto_KeyGenerate (

uint32 cryptoKeyId

)

服 务编号:

0x07

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

依赖于配置

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

C RYPTO_E_KEY_NOT_VALID

CRYPTO_E_BUSY

CRYPTO_E_KEY_EMPTY

功 能概述:

生成key material,并存储到 cryptoKeyId指定的Key

Crypto_KeyDerive函数定义

函 数名称:

Crypto_KeyDerive

函 数原型:

Std_ReturnType Crypto_KeyDerive (

uint32 cryptoKeyId,

uint32 targetCryptoKeyId

)

服 务编号:

0x08

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

依赖于配置

targetCryptoKeyId

输入输 出参数:

输 出参数:

返回值:

E_OK

E_NOT_OK

C RYPTO_E_KEY_NOT_VALID

CRYPTO_E_BUSY

CRYPTO_E_KEY_EMPTY

功 能概述:

通过使用由加密 cryp toKeyId标识的给定targ etCryptoKeyId密钥中的 密钥元素来派生新密钥

Crypto_KeyExchangeCalcPubVal函数定义

函 数名称:

Crypto_ KeyExchangeCalcPubVal

函 数原型:

Std_ReturnType Crypto_ KeyExchangeCalcPubVal (

uint32 cryptoKeyId,

uint8* publicValuePtr,

uint32* publicValueLengthPtr

)

服 务编号:

0x09

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

依赖于配置

输入输 出参数:

publicValueLengthPtr

输 出参数:

publicValuePtr

返回值:

E_OK

E_NOT_OK

C RYPTO_E_KEY_NOT_VALID

CRYPTO_E_BUSY

CRYPTO_E_KEY_EMPTY

功 能概述:

计算公钥交换的公钥值 ,并将公钥存储在公钥 值指针指向的内存位置

Crypto_KeyExchangeCalcPubVal函数定义

函 数名称:

Crypto_ KeyExchangeCalcSecret

函 数原型:

Std_ReturnType Crypto_ KeyExchangeCalcSecret (

uint32 cryptoKeyId,

const uint8* p artnerPublicValuePtr,

uint32 par tnerPublicValueLength

)

服 务编号:

0x0a

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

cryptoKeyId

值 域:

依赖于配置

输入输 出参数:

par tnerPublicValueLength

输 出参数:

partnerPublicValuePtr

返回值:

E_OK

E_NOT_OK

C RYPTO_E_KEY_NOT_VALID

CRYPTO_E_BUSY

CRYPTO_E_KEY_EMPTY

功 能概述:

使用由cryptoKeyId 和partner公钥标识的密 钥的密钥材料计算用于 密钥交换的共享密钥。 共享密钥作为密钥 元素存储在同一密钥中

Crypto_KeyExchangeCalcPubVal函数定义

函 数名称:

Crypto_MainFunction

函 数原型:

void Crypto_MainFunction (

void

)

服 务编号:

0x0c

同 步/异步:

同步

是否 可重入:

是(同一个cryp toKeyId是不可重入的)

输 入参数:

值 域:

输入输 出参数:

输 出参数:

返回值:

功 能概述:

Crypto的调度函数, 主要用于处理异步任务

可配置函数定义

无。

配置

CryptoGeneral

image3

图5-1 CryptoGeneral容器配置图

表5‑1 CryptoGeneral属性描述

UI名称

描述

CryptoDev ErrorDetect

取值范围

TRUE/FALSE

默认取值

FALSE

参数描述

是否 使能开发错误检查

依赖关系

Crypt oInstanceId

取值范围

0..255

默认取值

参数描述

加密驱动 程序的实例ID,此 ID 用于 识别多个加密驱动 程序,以防在同一 ECU 中 使用多个加密驱动

依赖关系

Cr yptoMainFun ctionPeriod

取值范围

0..INF

默认取值

参数描述

表 示调用Crypto_Ma inFunction的周期

依赖关系

CryptoVer sionInfoApi

取值范围

TRUE/FALSE

默认取值

FALSE

参数描述

表示是否 使能版本获取API

依赖关系

CryptoEcucP artitionRef

取值范围

引用 到EcucPartition

默认取值

参数描述

映射Crypt o驱动到partition

依赖关系

仅存在于 多核多分区系统中

CryptoDriverObject

image4

图5-2 CryptoDriverObjec容器配置图

表5‑2 CryptoDriverObject属性描述

UI名称

描述

CryptoDri verObjectId

取值范围

Uint32

默认取值

参数描述

加密驱动对象ID

依赖关系

Cryp toQueueSize

取值范围

Uint32

默认取值

参数描述

定义队列的长度

依赖关系

Cry ptoDefaultR andomKeyRef

取值范围

引用[CryptoKey][

默认取值

参数描述

密钥包含为随机 数生成器提供种子 所必需的关键元素

依赖关系

CryptoDef aultRandomP rimitiveRef

取值范围

引用[ CryptoPrimitive]

默认取值

参数描述

对 配置默认随机数生 成器的原语的引用

依赖关系

C ryptoDriver ObjectEcucP artitionRef

取值范围

引用[ EcucPartition ]

默认取值

参数描述

表示此Cr yptoDriverObject 处于哪一个分区中

依赖关系

仅 在多核系统中配置

CryptoP rimitiveRef

取值范围

引用[ CryptoPrimitive ]

默认取值

参数描述

加密服务的预配置

依赖关系

CryptoKeyElement

image5

图5-3 CryptoKeyElement容器配置图

表5‑3 CryptoKeyElement属性描述

UI名称

描述

C ryptoKeyEle mentAllowPa rtialAccess

取值范围

TRUE/FALSE

默认取值

无FALSE

参数描述

表示此KeyElement 是否允许被局部访 问,访问的长度小 于CryptoKeyEleme ntSize配置的长度

依赖关系

CryptoKeyEl ementFormat

取值范围

默认取值

参数描述

定义 KeyElement的格式

依赖关系

CryptoK eyElementId

取值范围

Uint32

默认取值

参数描述

定义 KeyElement的索引

依赖关系

ID值依赖于算法 ,如MAC算法可配 置ID分别为1,2,16

参考 [SWS_Csm_01022]

image6

Cry ptoKeyEleme ntInitValue

取值范围

默认取值

参数描述

用于 startup时填充key element初始值

依赖关系

仅适用于RAM Key,ROM key存 在NVRAM中,无法 被修改(CryptoK eyElementPersist = FALSE)

C ryptoKeyEle mentPersist

取值范围

TRUE/FALSE

默认取值

FALSE

参数描述

表示 是否需要将此key el ement存储到NVRAM

依赖关系

Cryp toKeyElemen tReadAccess

取值范围

C RYPTO_RA_ALLOWED

默认取值

CRYPTO_RA_DENIED

CRY PTO_RA_ENCRYPTED

CRYPTO_ RA_INTERNAL_COPY

参数描述

定义此Key e lement的访问权限

依赖关系

CryptoKey ElementSize

取值范围

Uint32

默认取值

参数描述

定义此key element的长度

依赖关系

Crypt oKeyElement WriteAccess

取值范围

C RYPTO_WA_ALLOWED

默认取值

CRYPTO_WA_DENIED

CRY PTO_WA_ENCRYPTED

CRYPTO_ WA_INTERNAL_COPY

参数描述

定义此Key element的写权限

依赖关系

CryptoKeyType

image7

图5-4 CryptoKeyType容器配置图

表5‑4 CryptoKeyType属性描述

UI名称

描述

CryptoKe yElementRef

取值范围

引用[ CryptoKeyElement ]

默认取值

参数描述

表示此CryptoKe yType包含哪些Key element

依赖关系

CryptoKey

image8

图5-5 CryptoKey容器配置图

表5‑5 CryptoKey属性描述

UI名称

描述

CryptoKeyId

取值范围

Uint32

默认取值

参数描述

Crypto 秘钥索引

依赖关系

Crypt oKeyTypeRef

取值范围

引用[ CryptoKeyType ]

默认取值

参数描述

表示此Crypto Key包含哪 些CryptoKeyType

依赖关系

CryptoPrimitive

image9

图5-6 CryptoPrimitive容器配置图

表5‑6 CryptoPrimitive属性描述

UI名称

描述

CryptoPr imitiveAlgo rithmFamily

取值范围

Enumeration

默认取值

参数描述

确定用于加 密服务的算法系列

依赖关系

Crypto PrimitiveAl gorithmMode

取值范围

Enumeration

默认取值

参数描述

确定用于加 密服务的算法模式

依赖关系

Crypto PrimitiveAl gorithmSeco ndaryFamily

取值范围

Enumeration

默认取值

参数描述

确定用于加密服 务的算法二级系列

依赖关系

CryptoPrimi tiveService

取值范围

Enumeration

默认取值

参数描述

确定用于定 义功能的加密服务

依赖关系