跳转至

Csm

1. 简介和功能概述

本文介绍了软件模块 CSM 加密服务管理器的功能、API 和配置,以对应 CSM 需求规范中的顶级要求。

CSM 需提供同步或异步服务,并实现对所有软件模块的基本加密功能的唯一访问。 CSM 提供一个抽象层,为上层的软件层提供标准化接口以访问这些加解密功能。

由于每个软件模块所需的功能可能不同于其他软件模块所需的功能,所以有可能需要为每个软件模块提供单独配置和初始化 CSM 的服务,同时配置还需包括对 CSM 服务的同步或异步处理的选择。

CSM 模块的构造方法遵循通用方法,当结构和接口的详细规范会限制 CSM 的可用性的范围时,接口和结构就会以通用方式定义。这能为将来的扩展提供了机会。

2. 缩略语

AEAD

Authenticated Encryption with Associated Data,具有关联数据的经过身份验证的加密。

CDD

Complex Device Driver,复杂设备驱动程序

CSM

Crypto Service Manager,加密服务管理器

CRYIF

Crypto Interface,加密接口

CRYPTO

Crypto Driver,加密驱动程序

DET

Default Error Tracer,默认错误跟踪器

HSM

Hardware Security Module,硬件安全模块

HW

Hardware,硬件

SHE

Security Hardware Extension,安全硬件扩展

SW

Software,软件

2.1. 术语表

加密驱动程序对象(Crypto Driver Object)

加密驱动程序实现一个或多个加密驱动程序对象。加密驱动程序对象可以在硬件或软件中提供不同的加密原语。加密驱动程序的每个加密驱动程序对象彼此独立。每个加密驱动对象只有一个工作区(即:只能同时执行一个加密原语)。

密钥(Key)

密钥可以被 Csm 中的作业引用。在加密驱动程序中,每个密钥需要引用特定的密钥类型。

密钥类型(Key Type)

密钥类型由对密钥元素的引用组成。密钥类型通常由加密驱动程序的供应商预先配置。

密钥元素(Key Element)

密钥元素用于存储数据。该数据可以是例如 AES 加密所需的密钥材料或者 IV。它还可用于配置密钥管理功能的行为。不同密钥的密钥元素具有不同的内存区域(NV 和 RAM 区域)。

作业(Job)

作业是一个被配置的CsmJob。除此之外,它也可以是一个密钥、加密原语和参考通道。

通道(Channel)

通道是从加密服务管理器队列通过加密接口到特定加密驱动程序对象的路径。

原语(Primitive)

加密原语是在加密驱动程序对象中实现的已配置加密算法的实例。除此之外,它也可以理解为是 CSM 为应用程序提供的功能,具体强调了底层的算法家族。例如: AES、MD5、RSA 等。或者是底层的算法模式,例如:ECB、CBC 等。

操作(Operation)

一个加密原语的操作声明了应执行加密原语的哪一部分。

共有三种不同的操作模式: * 开始(START):此操作模式表示一个新的加密原语请求,它应取消之前所有相同作业和原语的请求,执行必要的初始化,并检查加密原语是否可被处理。 * 更新(UPDATE):此操作模式表示加密原语需要输入数据。更新操作可能提供中间结果。 * 完成(FINISH):此操作模式表示在此部分之后,所有数据都已完全馈入,加密原语可以完成计算。完成操作可能提供最终结果。

通过连接操作模式参数的相应位,也可以一次执行多个操作。

作业的优先级(Priority)

作业的优先级定义了它的重要性。优先级(即:数值)越高,作业更需立即执行。加密作业的优先级属于配置的一部分。

处理(Processing)

表示作业处理的类型。 * 异步(Asynchronous):调用相应函数时作业不会被立即处理。通常通过回调函数告知调用者作业已完成。 * 同步(Synchronous):调用相应函数时作业会被立即处理。函数返回时结果即可用。

服务(Service)

服务需按照 TR_Glossary 文档中的定义来理解:服务是一种具有已发布的接口和行为规范的操作,涉及功能提供者与潜在客户之间的合同。

3. 相关文档

3.1. 输入文件和相关标准与规范

[1] List of Basic Software Modules

AUTOSAR_TR_BSWModuleList.pdf

[2] Layered Software Architecture

AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

[3] General Requirements on Basic Software Modules

AUTOSAR_SRS_BSWGeneral.pdf

[4] Specification of RTE Software

AUTOSAR_SWS_RTE.pdf

[5] Specification of BSW Scheduler

AUTOSAR_SWS_Scheduler.pdf

[6] Specification of ECU Configuration

AUTOSAR_TPS_ECUConfiguration.pdf

[7] Specification of Memory Mapping

AUTOSAR_SWS_MemoryMapping.pdf

[8] Specification of Default Error Tracer

AUTOSAR_SWS_DefaultErrorTracer.doc.pdf

[9] Specification of Diagnostic Event Manager

AUTOSAR_SWS_DiagnosticEventManager.pdf

[10] Specification of ECU State Manager

AUTOSAR_SWS_ECUStateManager.pdf

[11] Specification of C Implementation Rules

AUTOSAR_TR_CImplementationRules.pdf

[12] Specification of Standard Types

AUTOSAR_SWS_StandardTypes.pdf

[13] AUTOSAR Glossary

AUTOSAR_TR_Glossary.pdf

[14] Requirements on the Crypto Stack

AUTOSAR_SRS_CryptoStack.pdf

[15] Specification of the Crypto Interface

AUTOSAR_SWS_CryptoInterface.pdf

[16] Specification of the Crypto Driver

AUTOSAR_SWS_CryptoDriver.pdf

[17] General Specification of Basic Software Modules

AUTOSAR_SWS_BSWGeneral.pdf

[18] IEC 7498-1 The Basic Model, IEC Norm, 1994

[19] IETF RFC5639 Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation, 2010

[20] IETF RFC6637 Elliptic Curve Cryptography (ECC) in OpenPGP, 2012

3.2. 相关规范

AUTOSAR 提供了基本软件模块的通用规范(SWS BSW General),对加密服务管理器也同样有效。所以 SWS BSW General 规范需被视为加密服务管理器的附加和必需规范。

4. 约束和假设

4.1. 限制

CSM 的某些类型定义以前缀 CRYPTO_ 开头,这将违反 SRS_BSW_00305。这在 4.3.1 版中得到协调。尽管如此,由于 [constr_1050] 第1部分的限制,端口仍然被认为是兼容的。

4.2. 安全隐患

CSM 并未提供适当的用户管理,以防止未经授权访问 CSM 的任何服务。这意味着:如果需要任何访问保护,则必须由应用程序和为CSM服务加密库模块实现。访问权限的保护不属于 CSM 的范畴。

5. 对其他模块的依赖

CSM 需能够访问根据加密接口(CRYIF)规范实现的加密接口 。

CSM 模块应使用加密接口 (CRYIF) 与底层加密驱动程序 (CRYPTO) 的接口来计算加密服务的结果。

加密驱动程序的合并加密库模块或硬件扩展需提供以下的加密例程。例如:SHA-1、RSA、AES、Diffie-Hellman 密钥交换等。

6. 功能规格

Figure7_1

6.1. 基础架构指南

CSM 模块设计是基于 AUTOSAR 分层软件架构(见图 7-1)。在AUTOSAR分层软件架构的基础上,对 CSM 模块架构的描述有助于理解后续章节中 CSM 模块的接口规范和功能。

AUTOSAR 的体系结构由几个层组成,如图 7-1 所示。服务层是基础软件的最高层。它的任务是为应用软件和基础软件模块提供基础服务,即为应用软件和基础软件模块提供最相关的功能。

CSM 是一种提供加密功能的服务,基于依赖于软件库或硬件模块的加密驱动程序。 此外,可以使用多个加密驱动程序进行混合设置。CSM 可通过加密接口 CRYIF 访问不同的加密驱动程序 CryptoDriver。

CSM 作为服务层,为 SW-C 或 BSW 提供密码操作的接口。CSM 的主要任务是对服务进行调度和优先级排序,并调用加密接口 (CryIf) 进行进一步操作。CryIf 将请求调度到加密驱动程序及其静态分配给此服务的加密驱动程序对象。

CSM 使用基于原语(CsmPrimitives)的静态配置来定义加密操作,然后将定义的原语分配给作业配置 (CsmJob),该作业配置确定进一步的属性,如:优先级、异步或同步执行、以及操作需使用什么密钥。需注意的是,密钥始终位于加密驱动程序本身中,CSM 仅使用对它的引用。

密钥和原语的分离允许将用于加密操作(cryptographic operation)和密钥管理(key management)的 API 分开。此设计允许应用程序能够更专注于所需的加密操作,如:MAC 计算和验证。而密钥管理器在配置设置期间提供密钥。

CSM 的 API 大致可以分为两类:直接API(主要用于密钥管理)和基于作业的API(主要用于加解密操作)。

  • 直接 API(Direct API):直接对应于 CryIf 和加密驱动程序中的函数。这些函数只能同步调用。CSM 会将参数从应用程序直接传递给函数调用。
  • 基于作业的 API(Job-based API):使用作业结构 Crypto_JobType,它包含静态和动态参数以及对结构的引用。此数据为加密驱动程序提供执行该作业所需的所有信息。每个使用作业的服务都将使用此结构。服务的所有必要参数将由 CSM 打包到结构的元素中,然后将调用 CryIf,而这又将调用配置的加密驱动程序。

Figure7_2

根据静态配置,作业可以同步或异步运行。加密服务信息、加密算法系列和模式的参数确定了应在加密驱动程序中执行的确切加密算法。

Figure7_3

如果配置参数 CsmPrimitives 中的 AlgorithmFamily、AlgorithmMode 或者 SecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM (0xFF),则CryptoPrimitiveAlgorithmFamilyCustom / CryptoPrimitiveAlgorithmFamilyCustomId 或者 CryptoPrimitiveAlgorithmModeCustom / CryptoPrimitiveAlgorithmModeCustomId 需引用相关在加密驱动程序中的 Crypto_AlgorithmInfoType 中的字段 Family、Mode 或者 SecondaryFamily,而不是自定义(0xFF)值的本身。

6.2. 一般行为

作业是配置的加密原语的实例。对于每个作业,CSM 一次只能处理一个实例。

CSM 模块应允许并行处理不同的作业。

如果请求 CSM 模块的服务,同时相应的作业处于激活(ACTIVE)状态,则作业请求需调用 CryIf_ProcessJob() 并传递返回值。

如果请求 CSM 模块的服务,同时 CSM 作业需要排队,并且队列已满,则应拒绝作业请求,并返回错误 CRYPTO_E_BUSY。

如果配置了异步接口,CSM 模块应提供一个主函数 Csm_MainFunction(),该函数被循环调用以通过状态机控制作业的处理。

6.2.1. 普通操作

为了将单个调用函数和加密服务的流方法结合起来,可通过Mode参数来决定操作的模式。此服务操作是一个标志字段,用于表示操作方式:START、UPDATE 或FINISH。它明确声明需执行什么样的操作。这些操作模式可以混合,一次执行多个操作。下图表显示了此设计的作业的状态机。

Figure7_3_1

注意:

状态的实际事务是在与这些状态一起工作的层中进行的,即:包含在加密驱动程序中。

CSM 加密服务需能通过一次调用处理来支持多种操作模式的输入。

如果设置了 CRYPTO_OPERATIONMODE_START 和 CRYPTO_OPERATIONMODE_FINISH 位并且未设置 CRYPTO_OPERATIONMODE_UPDATE,则 Csm_<Service>() 函数需返回 E_NOT_OK。

注意:

由于单一连贯的方法调用开销较少,所以可以提升性能。因为只需调用一次,而无需多次显式地调用 API,这种方法可用于需要快速处理的小数据输入。

但在使用流方法时,如:START、UPDATE、FINISH 操作时,专用加密驱动程序对象会一直处于等待进一步的输入(UPDATE),直到切换到 FINISH 状态。在此期间 Crypto Driver 实例也无法同时处理其他的作业。

6.2.1.1. 配置

每个加密原语配置都需实现为一个 Crypto_PrimitiveInfoType 类型的常量结构。

每个作业原语配置都需实现为一个 Crypto_JobPrimitiveInfoType 类型的常量结构。

CSM 配置应该可以为每个加密原语创建多个配置。

CSM 配置需支持一个原语对应一个作业。

当创建原语配置时,应该可以从底层加密驱动对象选择所有可用和允许的配置方案。

如果选择异步接口,每个作业原语配置需包含一个回调函数。

6.2.1.2. 同步作业处理

当使用同步接口时,接口函数需在底层加密堆栈模块的支持下能够立即计算出结果。

如果发出同步作业并且优先级大于队列中可用的最高优先级,则 CSM 将会禁止再处理队列中的新作业,直到处理完当前作业后,轮到下一次主函数(Main Function)被调用。

注意:

  1. 一个通道可能包含异步和同步处理类型的作业。如果是这样,虽然同步作业的优先级高于所有异步作业的优先级,但它可能不会被接受进行处理。
  2. 由于底层加密驱动程序 Crypto Driver 可以有自己的队列,所以不能始终确保应用程序提供的最高优先级作业一定会被优先处理。

如果一个同步作业被发出并且优先级低于队列中可用的最高优先级,CSM 将返回 CRYPTO_E_BUSY。

注意:

如果同步作业具有较高的优先级,为了确保同步作业可以被连续地处理,而不必等待其间的异步作业,则可以通过暂停对 CSM 主函数(Main Function)的调用来实现。例如: 调用同步作业期间的访问 critical sections。 同时也需考虑在加密驱动程序对象中禁用队列排队,以确保同步作业能被快速处理。

如果从队列中加载异步作业不应被同步作业暂停,则同步作业的优先级必须小于异步作业。

6.2.1.3. 异步作业处理

如果使用异步接口,接口函数只需将必要的信息转交给底层的加密栈模块处理即可。

当请求的加密服务被处理时,作业原语中所配置的回调函数需被调用,CSM 的用户需得到相应地通知。

6.2.2. 设计说明

CSM 提供两种服务:(1) 加密服务本身;(2) 密钥管理。

6.2.2.1. CSM模块启动

Csm_Init() 请求不负责触发底层 CRYIF 的初始化。假定底层 CRYIF 将由任何适当的实体(例如:BswM)初始化。

使用 CSM 模块的软件组件应负责检查 CSM 模块启动产生的全局错误和状态信息。

6.2.2.2. 加密服务
6.2.2.2.1. CSM 加密服务的使用

CSM 加密服务需提供 Csm_<Service>() API。

应用程序需能够使用操作模式 CRYPTO_OPERATIONMODE_START 调用 Csm_<Service>(),以初始化加密计算。

应用程序需能够使用操作模式 CRYPTO_OPERATIONMODE_UPDATE 任意地(但至少一次)调用 Csm_<Service>(),以将输入数据提供给作业的加密原语。

应用程序需能够使用操作模式 CRYPTO_OPERATIONMODE_FINISH 调用 Csm_<Service>() 以完成加密计算。

以下服务操作需支持 API 指定的操作模式 START、UPDATE 和 FINISH:

  • HASH
  • MACGENERATE
  • MACVERIFY
  • ENCRYPT
  • DECRYPT
  • AEAD_ENCRYPT
  • AEAD_DECRYPT
  • SIGNATUREGENERATE
  • SIGNATUREVERIFY

对于所有其他服务操作,CSM 需将操作模式设置为 CRYPTO_OPERATIONMODE_SINGLECALL,即使 API 不提供操作模式。

注意:

Csm_<Service>() 会使用一个指向 Crypto_JobType 的指针,调用 CryIf_ProcessJob(),其中存储了处理作业所需的所有信息。

此 Crypto_JobType 的一部分是 Crypto_JobPrimitiveInputOutputType,其中存储了有关取决于服务的输入和输出参数的所有信息。从 Csm_<Service>() 的 API 参数到 Crypto_JobPrimitiveInputOutputType 的参数的映射定义,可以在加密驱动程序规范的 [SWS_Crypto_00073] 中找到。

如果 CSM 向加密接口发出服务 CRYPTO_MACGENERATE、CRYPTO_MACVERIFY、CRYPTO_ENCRYPT、CRYPTO_DECRYPT、CRYPTO_AEADENCRYPT、CRYPTO_AEADDECRYPT、 CRYPTO_RANDOMGENERATE、CRYPTO_SIGNATUREGENERATE 或者 CRYPTO_SIGNATUREVERIFY,它需要确保 Crypto_JobType 作业结构中的元素 jobPrimitiveInfo->cryIfKeyId 引用该作业的分配密钥。

Note: The CryIf is responsible to transform this ID to the corresponding key ID of the respective crypto driver.

If one of the primitive services CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL or CRYPTO_KEYEXCHANGECALCSECRET are to be executed, the CSM shall fill in the elements of the structure Csm_JobType->jobPrimitiveInputOutput->cryIfKeyId and, if applicable, Csm_JobType->jobPrimitiveInputOutput->targetCryIfKeyId with the corresponding CryIf key ID.

Note: The CryIf is responsible to transform these IDs to the corresponding key IDs of the respective crypto driver.

注意:

CryIf 负责将这些 ID 转换为相应加密驱动程序的相应密钥 ID。

如果要执行原语服务 CRYPTO_KEYSETVALID、CRYPTO_KEYSETINVALID,、CRYPTO_RANDOMSEED,、CRYPTO_KEYGENERATE、CRYPTO_KEYDERIVE、CRYPTO_KEYEXCHANGECALCPUBVAL 或者 CRYPTO_KEYEXCHANGECALCSECRET ,CSM 需使用相应的 CryIf 密钥 ID 填充结构 Csm_JobType->jobPrimitiveInputOutput->cryIfKeyId 的元素。如果适用,Csm_JobType->jobPrimitiveInputOutput->targetCryIfKeyId 的元素。

注意:

CryIf 负责将这些 ID 转换为相应加密驱动程序的相应密钥 ID。

6.2.2.2.2. 队列

CSM 可能有多个队列,其中作业根据其优先级排列,以处理多个加密请求。从 CSM 队列通过 CryIf 到加密驱动程序对象的路径称为通道。CSM 的每个队列都映射到一个通道以访问加密驱动程序对象的加密原语。队列的大小是可配置的。

为了优化 Crypto Driver Object 的硬件使用,Crypto Driver 中也有一个可选的队列。

加密驱动程序对象表示独立加密设备的实例。包括:硬件或软件。例如:AES 加速器。对于高优先级作业,在 HSM 上可能有一个用于快速 AES 和 CMAC 计算的通道,该通道地终点为加密驱动程序中的本机 AES 计算服务。但也有可能,加密驱动程序对象是一个软件,例如:用户可以使用 RSA 算法加密、解密、签名或验证数据。

Figure7_4

图 7-4 说明了带有通道的 AUTOSAR 分层视图。在此示例中包含一个 HSM 和两个加密驱动程序对象(Crypto Driver Object),包括 HW-AES 和 HW-RSA。同时每个对象都有自己的通道,每个通道都连接到一个 CSM 队列和一个加密驱动程序对象队列。

在这种情况下,两个加密驱动对象都在处理一个加密作业 AES-high 和 RSA,而加密驱动对象的队列又包含一个作业 AES-low。如果 HSM 的 HW-AES 完成了 AES-high 作业,AES-low 作业将作为下一个作业处理。

在此相同设置的场景下,未在处理中或者队列中的作业,具体推导如下:

  • 应用程序有新的作业需要使用 RSA 算法。
  • 如果 RSA 的加密驱动程序对象(Crypto Driver Object)不忙,将立即处理该作业。
  • 如果 RSA 的加密驱动程序对象(Crypto Driver Object)繁忙,加密驱动程序对象的队列未满,则作业将按其优先级顺序列在该队列中。一旦加密驱动对象空闲,就会执行此加密驱动对象队列中优先级最高的作业。
  • 如果 RSA 的加密驱动程序对象(Crypto Driver Object)繁忙,加密驱动程序对象的队列已满,则作业将按优先级顺序存储在 CSM 队列中。
  • 如果 RSA 的加密驱动程序对象(Crypto Driver Object)繁忙,加密驱动程序对象的队列和 CSM 队列都满了,则 CSM 需拒绝请求。
  • 如果 RSA 的加密驱动程序对象(Crypto Driver Object)处于活动状态(active),说明作业已在加密驱动程序中被启动,它处于等待更多数据处理指令(UPDATE)或者完成(FINISH)命令。

CSM 作业进行排队可以在配置参数 CsmQueues 进行配置。同时 CsmQueues 需根据配置的作业优先级对作业进行排序。作业优先级数值越大表明作业的优先级越高。

只有在保证作业结构的数据一致性的情况下,才能将服务操作加入队列。当将具有相同 jobID 的服务添加到队列时,应特别考虑这一点。例如:调用 Csm_SignatureVerify(),随后调用Csm_SaveContextJob()的情况。如果不能保证这一点,服务操作将返回 E_BUSY。

如果具有相同JobID的服务可以被添加到队列中,则这些服务的执行顺序应与传入服务操作请求的顺序相对应。即符合先进先出的顺序。

Csm_<Service>() 函数的行为需如下图所示。

SWS_Csm_01041

因为对于同步作业处理来说,队列排队可能用途不大。所以如果选择了同步作业处理,则建议把队列大小设定为 0。 但是,如果通道同时支持同步和异步作业,则队列排队机制还是有使用的必要。在 Csm_MainFunction() 中,可以将排队的作业传递给给 CRYIF 模块。

如果当前作业的状态为活动状态,CSM 需假设映射的加密驱动程序实例当前正在处理该作业。当调用者希望继续操作(例如:使用 UPDATE 操作提供更多数据),加密驱动程序实例中必须执行合理性地检查(plausibility check)。

6.2.2.3. 密钥管理

属于密钥管理的服务需仅提供 Csm_<Service>() 函数。一个密钥(Key)可以包括一个或多个密钥元素(Key Element)组成。

密钥元素是密钥材料本身。如:

  • 初始化向量(initialization vector)。
  • 随机数生成的种子(a seed for random number generation)。
  • 符合 SHE 标准的证明(the proof of the SHE standard)。

密钥是相应的密钥 ID 在配置中地一个给定的符号名称。Crypto Stack API 使用 CSM 模块中的以下密钥元素索引定义:

Crypto Service key element key element Name key element ID
MAC Key Material CRYPTO_KE_MAC_KEY 1
MAC Proof (SHE) CRYPTO_KE_MAC_PROOF 2
MAC Seed CRYPTO_KE_KEYGENERATE_SEED 16
Signature Key Material CRYPTO_KE_SIGNATURE_KEY 1
Signature ECC curve type CRYPTO_KE_SIGNATURE_CURVETYPE 29
Random Seed State CRYPTO_KE_RANDOM_SEED_STATE 3
Random Algorithm CRYPTO_KE_RANDOM_ALGORITHM 4
Cipher/AEAD Key Material CRYPTO_KE_CIPHER_KEY 1
Cipher/AEAD Proof (SHE) CRYPTO_KE_CIPHER_PROOF 2
Cipher/AEAD Init Vector CRYPTO_KE_CIPHER_IV 5
Cipher/AEAD 2nd Key Material CRYPTO_KE_CIPHER_2NDKEY 7
Key Exchange Base CRYPTO_KE_KEYEXCHANGE_BASE 8
Key Exchange Private Key CRYPTO_KE_KEYEXCHANGE_PRIVKEY 9
Key Exchange Own Public Key CRYPTO_KE_KEYEXCHANGE_OWNPUBKEY 10
Key Exchange Shared Value CRYPTO_KE_KEYEXCHANGE_SHAREDVALUE 1
Key Exchange Algorithm CRYPTO_KE_KEYEXCHANGE_ALGORITHM 12
Key Exchange ECC curve type CRYPTO_KE_KEYEXCHANGE_CURVETYPE 29
Key Derivation Password CRYPTO_KE_KEYDERIVATION_PASSWORD 1
Key Derivation Salt CRYPTO_KE_KEYDERIVATION_SALT 13
Key Derivation Iterations CRYPTO_KE_KEYDERIVATION_ITERATIONS 14
Key Derivation Algorithm CRYPTO_KE_KEYDERIVATION_ALGORITHM 15
Key Derivation ECC curve type CRYPTO_KE_KEYDERIVATION_CURVETYPE 29
Key Generate Key Material CRYPTO_KE_KEYGENERATE_KEY 1
Key Generate Seed CRYPTO_KE_KEYGENERATE_SEED 16
Key Generate Algorithm CRYPTO_KE_KEYGENERATE_ALGORITHM 17
Key Generate ECC curve type CRYPTO_KE_KEYGENERATE_CURVETYPE 29

密钥元素索引可以由供应商进行扩展。

对于包含加密密钥材料的每个密钥元素,所提供密钥的格式应在用于数据交换的配置中指定。例如:对于 Csm_KeyElementGet() 或 Csm_KeyElementSet()。特定加密驱动程序支持的密钥格式是加密驱动程序附带的预配置信息的一部分。

可以使用以下密钥格式:

CRYPTO_KE_FORMAT_BIN_OCTET

密钥以二进制形式作为八位字节值提供。

CRYPTO_KE_FORMAT_BIN_SHEKEYS

SHE 操作的组合输入/输出键(M1+M2+M3)和(M4+M5)。

CRYPTO_KE_FORMAT_BIN_IDENT_PRIVATEKEY_PKCS8

带有标识的 ASN.1 编码形式(BER 编码)的私钥材料。数据以二进制形式提供。

CRYPTO_KE_FORMAT_BIN_IDENT_PUBLICKEY

带有标识的 ASN.1 编码形式(BER 编码)的公钥材料。 数据以二进制形式提供。

CRYPTO_KE_FORMAT_BIN_RSA_PRIVATEKEY

ASN.1 编码形式(BER 编码)的私钥材料。 密钥材料以二进制形式提供。

CRYPTO_KE_FORMAT_BIN_RSA_PUBLICKEY

ASN.1 编码形式(BER 编码)的公钥材料。 密钥材料以二进制形式提供。

octet_in_binary

基本原理:

非对称密钥可以提供或不提供标识。该标识用于唯一标识提供的密钥本身,以便密钥解析器可以检查密钥材料是否合适。如果没有标识,密钥材料必须与为此密钥指定的格式相对应。按照 IETF 标准,密钥的标识作为对象标识符 (OID) 作为 ASN.1 描述的一部分提供。

供应商特定的 keyElementIds 应该从 1000 开始,以避免干扰加密堆栈的未来扩展版本。

注意:

密钥元素 CRYPTO_KE_[…]_ALGORITHM 用于配置密钥管理功能的行为。因为它们独立于作业,所以不能像原语那样配置。

如果密码原语使用椭圆曲线算法,但其算法族和算法模式不能充分指定具体的曲线参数,则应使用 CRYPTO_KE_xxxxx_CURVETYPE 类型的附加密钥元素来提供所需信息。此信息是在运行时通过密钥元素接口设置的。密钥元素的数据应按照[19]和[20]中定义的格式设置其对象标识符。

示例:用于签名生成的 ECC Brainpool 160 P1 密钥的定义。

P2CONST(uint8, AUTOMATIC, MSN_CONST) EccKey = { 
    0x12, 0x23, 0x34, ... 
} ; // The required key value.

// According to RFC5639:
// {iso(1) identified-organization(3) teletrust(36) 
// algorithm(3) signatureAlgorithm(3) ecSign(2) 
// ecStdCurvesAndGeneration(8) ellipticCurve(1)}
// brainpoolP160r1(1)

P2CONST(uint8, AUTOMATIC, MSN_CONST) EccType =
{ 1, 3, 36, 3, 3, 2, 8, 1, 1 } ; //OID definition of ECC Brainpool 160 P1

Csm_KeyElementSet(MyEccKeyId, CRYPTO_KE_SIGNATURE_KEY, EccKey, sizeof(EccKey) );

Csm_KeyElementSet(MyEccKeyId, CRYPTO_KE_SIGNATURE_CURVETYPE, EccType, sizeof(EccType) );

Csm_KeySetValid(MyEccKeyId);
6.2.2.4. 加密作业输入和/或输出的重定向

作业的输入或输出数据可以重定向到密钥元素(Key element)。密钥及其密钥元素重定向到哪个输入输出值,只能编译时静态配置,在运行期间是不允许更改的。

如果作业的输入或输出数据被重定向到密钥元素,即 CsmInOutRedirectionRef 存在,并且相应的输入或输出长度值不为 0,则不应处理该作业并应返回 E_NOT_OK。

如果作业的输入或输出重定向并未用于作业元素(Job Element),即:CsmInOutRedirectionRef 不存在,则 jobRedirectionInfoRef 需被设置为 NULL_PTR。 如果使用重定向元素,即:CsmInOutRedirectionRef 存在,则jobRedirectionInfoRef 应指向 Crypto_JobRedirectionInfoType 结构。

结构 Crypto_JobRedirectionInfoType 包含哪些密钥元素将用于重定向的信息。提供了一个称为 redirectionConfig 的位字段,用于指示重定向哪个输入和/或输出值。

redirectionConfig 的值是一个位编码值,用于指示哪个输入和输出缓冲区被重定向。 如果 redirectionConfig 的最低有效位(第 1 位 或 0x01)被设置为主输入键并且它的元素被重定向,并且 inputKeyId 和 inputKeyElementId 的值必须指示用于输入缓冲区的元素而不是 inputPtr 及其长度。如果设置了第 1 位,则将 secondaryInputBuffer 重定向到已设置的辅助输入键,并且必须设置键和密钥元素。而第 2 位用于第三输入键。第 3 位保留供将来使用。

如果第 4 位被设置,则 outputPtr 被重定向到输出键的输出密钥元素。第 5 位表示将辅助输出缓冲区重定向到辅助键及其密钥元素。如果某个位设置为 0,则输入或输出不应重定向到相关的密钥元素。

示例:00110001 的 redirectionConfig 值表示应从 inputKeyId 的 inputKeyElement 收集输入,输出缓冲区和辅助输出缓冲区应重定向到 outputKeyId 的outputKeyElement 和 secondaryOutputKeyId 的 secondaryOutputKeyElement。

6.2.2.5. 作业上下文接口

作业的上下文接口允许为来自加密驱动程序的特定加密服务保存或恢复工作区的上下文数据。这允许将所有动态创建的数据存储在加密驱动程序中,以便稍后可以恢复它以在保存上下文快照的确切位置继续此前的操作。

同时密钥元素数据不受任何影响。也就是说密钥元素不属于上下文数据的一部分。而且在必要时必须由密钥元素接口进行单独的设置或读取。

在调用 Csm_SaveContextJob() 或 Csm_RestoreContextJob() 时,CSM 需检查相关作业当前是否处于活动状态。

  • 如果作业处于活动状态,操作需按照规范继续下去。
  • 如果作业处于空闲状态,函数需立即返回 E_NOT_OK。

在调用 Csm_SaveContextJob() 或 Csm_RestoreContextJob() 时,CSM 应检查相关作业当前是否正在积极处理数据。这意味着 CSM 已将与此作业相关的操作安排提交给了驱动程序,并正在等待处理响应。在这种情况下,函数需立即返回 E_NOT_OK。

在调用 Csm_SaveContextJob() 或 Csm_RestoreContextJob() 时,CSM 应检查作业是否引用 CsmPrimitive、CsmHash、CsmEncrypt、CsmEncryptAEAD、CsmDecryptAEAD、CsmDecrypt、CsmMacGenerate、CsmMacVerify、CsmSignatureGenerate 或 CsmSignatureVerify。 如果是,操作应按规定继续。否则,不应执行该操作,并且当 CsmDevErrorDetect 设定为 true 时,需将 CSM_E_SERVICE_TYPE 报告给 DET。

6.3. 错误分类

文档[17]《基础软件模块通用规范》的「错误处理」一章详细描述了基础软件的错误处理。最重要的是,它构成了一个由可能发生在 BSW 模块中的五种错误类型组成的分类方案。

在此基础上,以下章节规定了在下面各小节中安排的特定错误。

6.3.1. 开发错误

错误类型 相关错误代码 错误值
API 请求以无效参数调用(空指针) CSM_E_PARAM_POINTER 0x01
Csm 配置 ID 超出范围 CSM_E_PARAM_HANDLE 0x04
CSM 模块初始化之前调用 API 请求 CSM_E_UNINIT 0x05
CSM 模块初始化失败 CSM_E_INIT_FAILED 0x07
API 请求以无效处理模式调用 CSM_E_PROCESSING_MODE 0x08
被调用的 API 请求与作业的服务类型不匹配 CSM_E_SERVICE_TYPE 0x09

6.3.2. 运行时错误

错误类型 相关错误代码 错误值
队列溢出 CSM_E_QUEUE_FULL 0x01

6.3.3. 瞬态故障

没有瞬态故障。

6.3.4. 生产错误

没有生产错误。

6.3.5. 扩展生产错误

没有扩展生产错误。

6.4. 错误检测

当 CSM 未初始化时调用了 CSM API 中除 Csm_Init() 和 Csm_GetVersionInfo() 之外的任何函数,则不应执行该操作,并且在 CsmDevErrorDetect 为 true 时向 DET 报告 CSM_E_UNINIT。

如果向 API 函数传递了空指针,且相应的输入或输出数据未重定向到密钥元素,则不应执行该操作,并且在 CsmDevErrorDetect 为 true 时向 DET 报告 CSM_E_PARAM_POINTER。

如果调用了接口中带有 ID 句柄的 CSM API,且该 ID 句柄超出范围,则不应执行该操作,并且在 CsmDevErrorDetect 为 true 时向 DET 报告 CSM_E_PARAM_HANDLE。

如果调用了接口中带有作业句柄(称为 jobId)的 CSM API,且作业的 Crypto_ServiceInfoType 与所请求的服务不匹配,则不应执行该操作,并且在 CsmDevErrorDetect 为 true 时向 DET 报告 CSM_E_SERVICE_TYPE。

如果 CSM 作业需要排队且队列已满,则应向 DET 报告运行时错误 CSM_E_QUEUE_FULL。

注意:

队列溢出的指示被记录为运行时错误。

6.5. 多核系统

如果 Crypto-Stack 分布在多个分区中,Csm 应允许在不同分区中调用其 <sevice> API。

CsmQueues 需在通过 CsmQueueMainFunctionRef 引用的 MainFunction 中进行处理。

注意:

如果 CsmJob 根本没有在 MainFunction 上下文中处理(如:同步接口),则 MainFunction (通过相应的 CsmQueue)分配到 CsmJob 所被分配到的分区。

Csm 模块需使用适当的机制,以允许从其 CsmJobs 分配到的分区里,调用 Csm_<Service>() API。

7. API规范

7.1. 导入的类型

需仅导入 Std_Types.h 所提供的标准 AUTOSAR 类型。

7.2. 类型定义

7.2.1. Std_ReturnType 的扩展

CSM 模块对 Std_ReturnType 的扩展定义了以下返回码。可通过 Crypto_GeneralTypes.h 获得。

  • CRYPTO_E_BUSY(0x02):服务请求失败,因为服务仍然忙碌。
  • CRYPTO_E_ENTROPY_EXHAUSTED(0x04):服务请求失败,因为随机数生成器的熵已耗尽。
  • CRYPTO_E_KEY_READ_FAIL(0x06):服务请求失败,因为读访问被拒绝。
  • CRYPTO_E_KEY_WRITE_FAIL(0x07):服务请求失败,因为写访问失败。
  • CRYPTO_E_KEY_NOT_AVAILABLE(0x08):服务请求失败,因为至少一个所需的密钥元素不可用。
  • CRYPTO_E_KEY_NOT_VALID(0x09):服务请求失败,因为密钥无效。
  • CRYPTO_E_KEY_SIZE_MISMATCH(0x0A):服务请求失败,因为密钥大小不匹配。
  • CRYPTO_E_JOB_CANCELED(0x0C):服务请求失败,因为作业已被取消。
  • CRYPTO_E_KEY_EMPTY(0x0D):服务请求失败,因为源密钥元素未初始化。
  • CRYPTO_E_CUSTOM_ERROR(0x0E):自定义处理失败。

7.2.2. Csm_ConfigType

结构类型(Structure)。Csm 模块的配置数据结构。元素为实现特定的内容:配置结构的内容是实现特定的。可通过 Csm.h 获得。

7.2.3. Crypto_AlgorithmFamilyType

枚举类型(Enumeration)。算法族(algorithm family)的枚举。取值范围:

枚举值 值 说明
CRYPTO_ALGOFAM_NOT_SET 0x00 未设置算法族
CRYPTO_ALGOFAM_SHA1 0x01 SHA1 哈希
CRYPTO_ALGOFAM_SHA2_224 0x02 SHA2-224 哈希
CRYPTO_ALGOFAM_SHA2_256 0x03 SHA2-256 哈希
CRYPTO_ALGOFAM_SHA2_384 0x04 SHA2-384 哈希
CRYPTO_ALGOFAM_SHA2_512 0x05 SHA2-512 哈希
CRYPTO_ALGOFAM_SHA2_512_224 0x06 SHA2-512/224 哈希
CRYPTO_ALGOFAM_SHA2_512_256 0x07 SHA2-512/256 哈希
CRYPTO_ALGOFAM_SHA3_224 0x08 SHA3-224 哈希
CRYPTO_ALGOFAM_SHA3_256 0x09 SHA3-256 哈希
CRYPTO_ALGOFAM_SHA3_384 0x0a SHA3-384 哈希
CRYPTO_ALGOFAM_SHA3_512 0x0b SHA3-512 哈希
CRYPTO_ALGOFAM_SHAKE128 0x0c SHAKE128 哈希
CRYPTO_ALGOFAM_SHAKE256 0x0d SHAKE256 哈希
CRYPTO_ALGOFAM_RIPEMD160 0x0e RIPEMD 哈希
CRYPTO_ALGOFAM_BLAKE_1_256 0x0f BLAKE-1-256 哈希
CRYPTO_ALGOFAM_BLAKE_1_512 0x10 BLAKE-1-512 哈希
CRYPTO_ALGOFAM_BLAKE_2s_256 0x11 BLAKE-2s-256 哈希
CRYPTO_ALGOFAM_BLAKE_2s_512 0x12 BLAKE-2s-512 哈希
CRYPTO_ALGOFAM_3DES 0x13 3DES 密码
CRYPTO_ALGOFAM_AES 0x14 AES 密码
CRYPTO_ALGOFAM_CHACHA 0x15 ChaCha 密码
CRYPTO_ALGOFAM_RSA 0x16 RSA 密码
CRYPTO_ALGOFAM_ED25519 0x17 ED25519 椭圆曲线
CRYPTO_ALGOFAM_BRAINPOOL 0x18 Brainpool 椭圆曲线
CRYPTO_ALGOFAM_ECCNIST 0x19 NIST ECC 椭圆曲线
CRYPTO_ALGOFAM_RNG 0x1b 随机数生成器
CRYPTO_ALGOFAM_SIPHASH 0x1c SipHash
CRYPTO_ALGOFAM_ECCANSI 0x1e 符合 ANSI X9.62 的椭圆曲线
CRYPTO_ALGOFAM_ECCSEC 0x1f 符合 SECG 的椭圆曲线
CRYPTO_ALGOFAM_DRBG 0x20 符合 NIST SP800-90A 的随机数生成器
CRYPTO_ALGOFAM_FIPS186 0x21 符合 FIPS 186 的随机数生成器
CRYPTO_ALGOFAM_PADDING_PKCS7 0x22 符合 PKCS.7 的密码填充
CRYPTO_ALGOFAM_PADDING_ONEWITHZEROS 0x23 密码填充模式。用 0 填充/校验数据,但数据后的第一位为 1。例如 “DATA” & 0x80 & 0x00...
CRYPTO_ALGOFAM_PBKDF2 0x24 基于口令的密钥派生函数 2(Password-Based Key Derivation Function 2)
CRYPTO_ALGOFAM_KDFX963 0x25 ANSI X9.63 公钥密码学
CRYPTO_ALGOFAM_DH 0x26 Diffie-Hellman
CRYPTO_ALGOFAM_SM2 0x27 SM2 椭圆曲线算法
CRYPTO_ALGOFAM_EEA3 0x28 基于 [x01] 的流密码
CRYPTO_ALGOFAM_SM3 0x29 基于 [x02] 的中国哈希算法
CRYPTO_ALGOFAM_EIA3 0x2A 认证算法 [x01]
CRYPTO_ALGOFAM_HKDF 0x2B 基于 HMAC 的提取-扩展密钥派生函数
CRYPTO_ALGOFAM_ECDSA 0x2C 椭圆曲线数字签名
CRYPTO_ALGOFAM_POLY1305 0x2D MAC 计算算法
CRYPTO_ALGOFAM_X25519 0x2E 用于 ECDH 的椭圆曲线 X25519
CRYPTO_ALGOFAM_ECDH 0x2F 椭圆曲线 Diffie Hellman
CRYPTO_ALGOFAM_CUSTOM 0xff 自定义算法族

可通过 Crypto_GeneralTypes.h 获得。

7.2.4. Crypto_AlgorithmModeType

枚举类型(Enumeration)。算法模式(algorithm mode)的枚举。取值范围:

枚举值 值 说明
CRYPTO_ALGOMODE_NOT_SET 0x00 未设置算法密钥
CRYPTO_ALGOMODE_ECB 0x01 块模式:电子密码本(Electronic Code Book)
CRYPTO_ALGOMODE_CBC 0x02 块模式:密码分组链接(Cipher Block Chaining)
CRYPTO_ALGOMODE_CFB 0x03 块模式:密码反馈模式(Cipher Feedback Mode)
CRYPTO_ALGOMODE_OFB 0x04 块模式:输出反馈模式(Output Feedback Mode)
CRYPTO_ALGOMODE_CTR 0x05 块模式:计数器模式(Counter Mode)
CRYPTO_ALGOMODE_GCM 0x06 块模式:Galois/计数器模式(Galois/Counter Mode)
CRYPTO_ALGOMODE_XTS 0x07 带密文窃取的 XEX 可调块密码(XEX Tweakable Block Cipher with Ciphertext Stealing)
CRYPTO_ALGOMODE_RSAES_OAEP 0x08 RSA 最优非对称加密填充(RSA Optimal Asymmetric Encryption Padding)
CRYPTO_ALGOMODE_RSAES_PKCS1_v1_5 0x09 采用 PKCS#1 v1.5 填充的 RSA 加密/解密
CRYPTO_ALGOMODE_RSASSA_PSS 0x0a RSA 概率签名方案(RSA Probabilistic Signature Scheme)
CRYPTO_ALGOMODE_RSASSA_PKCS1_v1_5 0x0b 采用 PKCS#1 v1.5 的 RSA 签名
CRYPTO_ALGOMODE_8ROUNDS 0x0c 8 轮(例如 ChaCha8)
CRYPTO_ALGOMODE_12ROUNDS 0x0d 12 轮(例如 ChaCha12)
CRYPTO_ALGOMODE_20ROUNDS 0x0e 20 轮(例如 ChaCha20)
CRYPTO_ALGOMODE_HMAC 0x0f 基于哈希的 MAC(Hashed-based MAC)
CRYPTO_ALGOMODE_CMAC 0x10 基于密码的 MAC(Cipher-based MAC)
CRYPTO_ALGOMODE_GMAC 0x11 Galois MAC
CRYPTO_ALGOMODE_CTRDRBG 0x12 基于计数器的确定性随机位生成器(Counter-based Deterministic Random Bit Generator)
CRYPTO_ALGOMODE_SIPHASH_2_4 0x13 Siphash-2-4
CRYPTO_ALGOMODE_SIPHASH_4_8 0x14 Siphash-4-8
CRYPTO_ALGOMODE_PXXXR1 0x15 ANSI R1 曲线
CRYPTO_ALGOMODE_AESKEYWRAP 0x16 AES 密钥包装(AES Key Wrap,RFC 3394)
CRYPTO_ALGOMODE_CUSTOM 0xff 自定义算法模式

可通过 Crypto_GeneralTypes.h 获得。

7.2.5. Crypto_InputOutputRedirectionConfigType

枚举类型(Enumeration)。定义哪些输入/输出参数被重定向到密钥元素。这些值可以组合起来以定义位域。取值范围:

枚举值 值 说明
CRYPTO_REDIRECT_CONFIG_PRIMARY_INPUT 0x01 -
CRYPTO_REDIRECT_CONFIG_SECONDARY_INPUT 0x02 -
CRYPTO_REDIRECT_CONFIG_TERTIARY_INPUT 0x04 -
CRYPTO_REDIRECT_CONFIG_PRIMARY_OUTPUT 0x10 -
CRYPTO_REDIRECT_CONFIG_SECONDARY_OUTPUT 0x20 -

可通过 Crypto_GeneralTypes.h 获得。

7.2.6. Crypto_JobType

结构类型(Structure)。包含取决于作业和加密原语的进一步信息的结构。元素:

元素 类型 说明
jobId uint32 作业结构的标识符。
jobState Crypto_JobStateType 确定当前的作业状态。
jobPrimitiveInputOutput Crypto_JobPrimitiveInputOutputType 包含取决于作业和加密原语的输入和输出信息的结构。
jobPrimitiveInfo const Crypto_JobPrimitiveInfoType* 指向一个结构的指针,该结构包含取决于作业和加密原语的进一步信息。
jobRedirectionInfoRef Crypto_JobRedirectionInfoType* 指向一个结构的指针,该结构包含关于密钥用作作业输入和输出的进一步信息。
cryptoKeyId uint32 加密驱动程序密钥的标识符。该标识符应由加密接口写入。
targetCryptoKeyId uint32 加密驱动程序密钥的目标标识符。该标识符应由加密接口写入。
jobPriority const uint32 指定作业的重要性(数值越高,越重要)。

可通过 Crypto_GeneralTypes.h 获得。

7.2.7. Crypto_JobStateType

枚举类型(Enumeration)。当前作业状态的枚举。取值范围:

枚举值 值 说明
CRYPTO_JOBSTATE_IDLE 0x00 作业处于“空闲”状态。该状态在 Csm_Init() 之后或在“完成”状态结束后到达。
CRYPTO_JOBSTATE_ACTIVE 0x01 作业处于“活动”状态。已经有一些输入或者存在中间结果。该状态在“更新”或“开始”操作结束时到达。

可通过 Crypto_GeneralTypes.h 获得。

7.2.8. Crypto_JobPrimitiveInputOutputType

结构类型(Structure)。包含取决于作业和加密原语的输入和输出信息的结构。元素:

元素 类型 说明
inputPtr const uint8* 指向输入数据的指针。
inputLength uint32 包含以字节为单位的输入长度。
secondaryInputPtr const uint8* 指向第二输入数据的指针(用于 MacVerify、SignatureVerify)。
secondaryInputLength uint32 包含第二输入的长度,以位或字节为单位,取决于所请求的服务。
tertiaryInputPtr const uint8* 指向第三输入数据的指针(用于 MacVerify、SignatureVerify)。
tertiaryInputLength uint32 包含以字节为单位的第三输入长度。
outputPtr uint8* 指向输出数据的指针。
outputLengthPtr uint32* 持有指向一个内存位置的指针,该位置包含以字节为单位的输出长度。
secondaryOutputPtr uint8* 指向第二输出数据的指针。
secondaryOutputLengthPtr uint32* 持有指向一个内存位置的指针,该位置包含以字节为单位的第二输出长度。
verifyPtr Crypto_VerifyResultType* 指向一个持有 Crypto_VerifyResultType 的内存位置的输出指针。
mode Crypto_OperationModeType 要执行的模式/操作的指示器。
cryIfKeyId uint32 保存用于密钥操作服务的 CryIf 密钥 ID。
targetCryIfKeyId uint32 保存用于密钥操作服务的目标 CryIf 密钥 ID。

可通过 Crypto_GeneralTypes.h 获得。

7.2.9. Crypto_JobPrimitiveInfoType

结构类型(Structure)。包含取决于作业和加密原语的进一步信息的结构。元素:

元素 类型 说明
callbackId uint32 回调函数的内部标识符,当所配置的服务完成时由 Csm 调用。
primitiveInfo const Crypto_PrimitiveInfoType* 指向一个结构的指针,该结构包含加密原语的进一步配置。
cryIfKeyId uint32 CryIf 密钥的标识符。
processingType Crypto_ProcessingType 确定同步或异步行为。

可通过 Crypto_GeneralTypes.h 获得。

7.2.10. Crypto_ServiceInfoType

枚举类型(Enumeration)。服务类型的枚举。取值范围:

枚举值 值 说明
CRYPTO_HASH 0x00 哈希服务
CRYPTO_MACGENERATE 0x01 MacGenerate 服务
CRYPTO_MACVERIFY 0x02 MacVerify 服务
CRYPTO_ENCRYPT 0x03 Encrypt 服务
CRYPTO_DECRYPT 0x04 Decrypt 服务
CRYPTO_AEADENCRYPT 0x05 AEADEncrypt 服务
CRYPTO_AEADDECRYPT 0x06 AEADDecrypt 服务
CRYPTO_SIGNATUREGENERATE 0x07 SignatureGenerate 服务
CRYPTO_SIGNATUREVERIFY 0x08 SignatureVerify 服务
CRYPTO_RANDOMGENERATE 0x0B RandomGenerate 服务
CRYPTO_RANDOMSEED 0x0C RandomSeed 服务
CRYPTO_KEYGENERATE 0x0D KeyGenerate 服务
CRYPTO_KEYDERIVE 0x0E KeyDerive 服务
CRYPTO_KEYEXCHANGECALCPUBVAL 0x0F KeyExchangeCalcPubVal 服务
CRYPTO_KEYEXCHANGECALCSECRET 0x10 KeyExchangeCalcSecret 服务
CRYPTO_KEYSETVALID 0x13 KeySetValid 服务
CRYPTO_KEYSETINVALID 0x14 KeySetInvalid 服务
CRYPTO_CUSTOM_SERVICE 0x15 自定义服务作业

可通过 Crypto_GeneralTypes.h 获得。

7.2.11. Crypto_JobRedirectionInfoType

结构类型(Structure)。该结构保存将用作作业输入和输出的密钥和密钥元素的标识符,以及一个指示哪些缓冲区应被重定向到这些密钥元素的位结构。元素:

元素 类型 说明
redirectionConfig uint8 指示哪个缓冲区应被重定向到密钥元素的位结构。可以使用 Crypto_InputOutputRedirectionConfigType 中的值并通过按位或运算进行组合。
inputKeyId uint32 将用作输入的密钥的标识符。
inputKeyElementId uint32 将用作输入的密钥元素的标识符。
secondaryInputKeyId uint32 将用作第二输入的密钥的标识符。
secondaryInputKeyElementId uint32 将用作第二输入的密钥元素的标识符。
tertiaryInputKeyId uint32 将用作第三输入的密钥的标识符。
tertiaryInputKeyElementId uint32 将用作第三输入的密钥元素的标识符。
outputKeyId uint32 将用作输出的密钥的标识符。
outputKeyElementId uint32 将用作输出的密钥元素的标识符。
secondaryOutputKeyId uint32 将用作第二输出的密钥的标识符。
secondaryOutputKeyElementId uint32 将用作第二输出的密钥元素的标识符。

可通过 Crypto_GeneralTypes.h 获得。

7.2.12. Crypto_AlgorithmInfoType

结构类型(Structure)。确定确切算法的结构。注意,并非每个算法都需要指定所有字段。AUTOSAR 应只允许有效的组合。元素:

元素 类型 说明
family Crypto_AlgorithmFamilyType 算法的族。
secondaryFamily Crypto_AlgorithmFamilyType 算法的第二族。
keyLength uint32 该算法所使用的密钥长度(以位为单位)。
mode Crypto_AlgorithmModeType 该算法所使用的操作模式。

可通过 Crypto_GeneralTypes.h 获得。

7.2.13. Crypto_ProcessingType

枚举类型(Enumeration)。处理类型的枚举。取值范围:

枚举值 值 说明
CRYPTO_PROCESSING_ASYNC 0x00 异步作业处理
CRYPTO_PROCESSING_SYNC 0x01 同步作业处理

可通过 Crypto_GeneralTypes.h 获得。

7.2.14. Crypto_PrimitiveInfoType

结构类型(Structure)。包含加密原语的基本信息的结构。元素:

元素 类型 说明
service const Crypto_ServiceInfoType 包含所用服务的枚举,例如 Encrypt。
algorithm const Crypto_AlgorithmInfoType 包含所用算法的信息。

可通过 Crypto_GeneralTypes.h 获得。

7.3. 函数定义

所有函数都不需要是可重入的。关于重入调用情况下的行为,参见第 6.2 章「一般行为」。

7.3.1. 通用接口

7.3.1.1. Csm_Init

说明: 初始化 CSM 模块。 在配置中 Csm 被分配给多个分区(即: Csm_MainFunctions 被映射到分区),Csm 可以为每个分区提供一个初始化函数。可通过Csm.h获得。本服务为同步调用,不可重入。参数 configPtr(in):指向所选配置结构的指针。返回值:无。

void Csm_Init ( 
    const Csm_ConfigType* configPtr 
)

配置指针 configPtr 应始终具有空指针值。

配置指针 configPtr 目前未被使用,因此应将其设置为空指针值。

如果 CSM 模块初始化失败,则在 CsmDevErrorDetect 为 true 时,CSM 应向 DET 报告 CSM_E_INIT_FAILED。

7.3.1.2. Csm_GetVersionInfo

说明: 返回此模块的版本信息。可通过Csm.h获得。本服务为同步调用,可重入。参数 versioninfo(out):指向存储本模块版本信息位置的指针。返回值:无。

void Csm_GetVersionInfo ( 
    Std_VersionInfoType* versioninfo 
)

7.3.2. 哈希接口

加密散列函数是一种确定性过程,它采用任意数据块并返回固定大小的位串,散列值。这样对数据的意外或有意更改将更改散列值。哈希函数的主要特性是无法找到具有给定哈希值的消息或找到具有相同哈希值的两个不同消息。

7.3.2.1. Csm_Hash

说明: 使用给定的数据执行哈希计算并存储哈希。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):包含指向需计算哈希的数据的指针。参数 dataLength(in):包含需哈希的字节数。参数 resultLengthPtr(inout):保存指向存储以字节为单位的输出长度的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。如果提供的长度信息小于哈希结果的总长度,则 resultPtr 将包含被截断的哈希结果。参数 resultPtr(out):包含指向存储哈希值的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败。

Std_ReturnType Csm_Hash ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    uint8* resultPtr, 
    uint32* resultLengthPtr 
)

7.3.3. MAC接口

消息验证码MAC(message authentication code)是用于验证消息的一小段信息。MAC 算法接受密钥和要验证的任意长度消息作为输入,并最终输出 MAC。 MAC 值通过允许验证者(也拥有密钥)检测消息内容的任何更改来保护消息的数据完整性及其真实性。

7.3.3.1. Csm_MacGenerate

说明: 使用给定数据执行 MAC 生成并将 MAC 存储在 MAC 指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):包含指向需计算 MAC 的数据的指针。参数 dataLength(in):包含需哈希的字节数。参数 macLengthPtr(inout):保存指向存储以字节为单位的输出长度的内存位置的指针。调用本函数时,该参数应包含 macPtr 所提供缓冲区的大小;当请求完成时,应存储返回的 MAC 的实际长度。如果提供的长度信息小于 MAC 结果的总长度,则 macPtr 将包含被截断的 MAC 结果。参数 macPtr(out):包含指向存储 MAC 的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_MacGenerate ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    uint8* macPtr, 
    uint32* macLengthPtr 
)
7.3.3.2. Csm_MacVerify

说明: 通过比较是否使用给定数据生成 MAC 来验证给定的 MAC。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):保存指向需验证 MAC 的数据的指针。参数 dataLength(in):包含需验证 MAC 的数据字节数。参数 macPtr(in):保存指向待验证 MAC 的指针。参数 macLength(in):包含待验证 MAC 的长度(以位为单位)。参数 verifyPtr(out):保存指向将持有 MAC 验证结果的内存位置的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_MacVerify ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    const uint8* macPtr, 
    const uint32 macLength, 
    Crypto_VerifyResultType* verifyPtr 
)

7.3.4. 加解密接口

加解密接口(Cipher Interface)可用于对称和非对称加密或解密。此外,还可以将这些接口分别用于压缩和解压缩。

7.3.4.1. Csm_Encrypt

说明: 加密给定数据并将密文存储在结果指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):包含指向待加密数据的指针。参数 dataLength(in):包含待加密的字节数。参数 resultLengthPtr(inout):保存指向存储以字节为单位的输出长度信息的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 resultPtr(out):包含指向存储加密数据位置的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_Encrypt ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    uint8* resultPtr, 
    uint32* resultLengthPtr 
)

对于块密码,应可以传入不是相应块大小倍数的 dataLength。底层加密驱动程序负责处理这些输入数据。

7.3.4.2. Csm_Decrypt

说明: 解密给定的加密数据,并将解密后的明文存储在结果指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):包含指向待解密数据的指针。参数 dataLength(in):包含待解密的字节数。参数 resultLengthPtr(inout):保存指向存储以字节为单位的输出长度信息的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 resultPtr(out):包含指向存储解密数据位置的内存位置的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_Decrypt ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    uint8* resultPtr, 
    uint32* resultLengthPtr 
)

7.3.5. 带关联数据 (AEAD) 接口的认证加密

AEAD(也称为经过身份验证的加密)是一种块密码操作模式,它还允许进行完整性检查(例如:AES-GCM)。

7.3.5.1. Csm_AEADEncrypt

说明: 使用给定的输入数据执行 AEAD 加密,并将密文和 MAC 存储在密文指针和 Tag 指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 plaintextPtr(in):包含指向待加密数据的指针。参数 plaintextLength(in):包含待加密的字节数。参数 associatedDataPtr(in):包含指向关联数据的指针。参数 associatedDataLength(in):包含关联数据的字节数。参数 ciphertextLengthPtr(inout):保存指向存储以字节为单位的密文输出长度的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 tagLengthPtr(inout):保存指向存储以字节为单位的 Tag 输出长度的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 ciphertextPtr(out):包含指向存储加密数据位置的数据的指针。参数 tagPtr(out):包含指向存储 Tag 位置的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_AEADEncrypt ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* plaintextPtr, 
    uint32 plaintextLength, 
    const uint8* associatedDataPtr, 
    uint32 associatedDataLength, 
    uint8* ciphertextPtr, 
    uint32* ciphertextLengthPtr, 
    uint8* tagPtr, 
    uint32* tagLengthPtr 
)
7.3.5.2. Csm_AEADDecrypt

说明: 使用给定数据执行 AEAD 加密,并将密文和 MAC 存储在密文指针和 Tag 指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 ciphertextPtr(in):包含指向待解密数据的指针。参数 ciphertextLength(in):包含待解密的字节数。参数 associatedDataPtr(in):包含指向关联数据的指针。参数 associatedDataLength(in):包含关联数据的长度(以字节为单位)。参数 tagPtr(in):包含指向待验证 Tag 的指针。参数 tagLength(in):包含待验证 Tag 的长度(以字节为单位)。参数 plaintextLengthPtr(inout):保存指向存储以字节为单位的明文输出长度的内存位置的指针。调用本函数时,该参数应包含 plaintextPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 plaintextPtr(out):包含指向存储解密数据位置的内存位置的指针。参数 verifyPtr(out):包含指向验证结果的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_AEADDecrypt ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* ciphertextPtr, 
    uint32 ciphertextLength, 
    const uint8* associatedDataPtr, 
    uint32 associatedDataLength, 
    const uint8* tagPtr, 
    uint32 tagLength, 
    uint8* plaintextPtr, 
    uint32* plaintextLengthPtr, 
    Crypto_VerifyResultType* verifyPtr 
)

7.3.6. 签名接口

数字签名是一种非对称密码术。数字签名在许多方面等同于传统的手写签名。

数字签名可用于验证消息的来源以及证明签名消息的完整性。如果邮件经过数字签名,则签名后邮件中的任何更改都将使签名无效。此外,没有有效的方法来修改消息及其签名以生成具有有效签名的新消息。

7.3.6.1. Csm_SignatureGenerate

说明: 使用给定的数据进行签名计算,并将签名存储在结果指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):包含指向待签名数据的指针。参数 dataLength(in):包含待签名的字节数。参数 signatureLengthPtr(inout):保存指向存储以字节为单位的签名输出长度的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 signaturePtr(out):包含指向存储签名位置的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_SignatureGenerate ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    uint8* signaturePtr, 
    uint32* signatureLengthPtr 
)
7.3.6.2. Csm_SignatureVerify

说明: 通过比较是否使用给定数据生成签名来验证给定的 MAC。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 mode(in):指示要执行的操作模式。参数 dataPtr(in):包含指向待验证数据的指针。参数 dataLength(in):包含数据字节数。参数 signaturePtr(in):保存指向待验证签名的指针。参数 signatureLength(in):包含签名长度(以字节为单位)。参数(inout):无。参数 verifyPtr(out):保存指向将持有签名验证结果的内存位置的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,某个密钥元素的大小错误;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_SignatureVerify ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    const uint8* dataPtr, 
    uint32 dataLength, 
    const uint8* signaturePtr, 
    uint32 signatureLength, 
    Crypto_VerifyResultType* verifyPtr
)

7.3.7. 随机数接口

随机数接口提供随机数的生成。随机数可以由物理设备(真随机数生成器)或计算算法(伪随机数生成器)生成。伪随机数发生器的随机性可以通过适当的种子选择来增加。

注意:

随机生成器的播种方式是项目特定的,超出了本规范的范围。如果适用,应在请求任何随机数之前执行适当的播种操作。建议使用 ECU 集中式熵生成来为随机数生成器提供种子。特别是如果硬件中没有真正的随机数生成器 (TRNG) 可用于生成随机数。

7.3.7.1. Csm_RandomGenerate

说明: 产生一个随机数,存放在结果指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 resultLengthPtr(inout):保存指向存储以字节为单位的结果长度的内存位置的指针。调用本函数时,该参数应包含 resultPtr 所提供缓冲区的大小;当请求完成时,应存储返回的随机数的实际长度。如果提供的长度信息小于随机数结果的总长度,则 resultPtr 将包含被截断的随机数。参数 resultPtr(out):保存指向将持有随机数生成结果的内存位置的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙碌状态;CRYPTO_E_ENTROPY_EXHAUSTED:请求失败,随机数生成器的熵已耗尽。

Std_ReturnType Csm_RandomGenerate ( 
    uint32 jobId, 
    uint8* resultPtr, 
    uint32* resultLengthPtr
)

生成随机数无需流式处理。Csm_RandomGenerate 接口可以被任意频繁地调用以生成多个随机数。

Csm_RandomGenerate() 函数调用的操作模式应设置为 CRYPTO_OPERATIONMODE_SINGLECALL。

7.3.8. 密钥管理接口

以下接口用于密钥管理。基本上,一个密钥包含一个或多个密钥元素。 一个密钥元素可以是多个密钥的一部分。例如:允许从具有一个 keyId 的密码,派生出一个密钥元素,并使用这个派生的密钥元素与另一个 keyId 一起进行加密。

注意:

如果要修改的实际密钥元素直接映射到闪存,调用密钥管理函数(同步操作)时可能会有更大的延迟。

如果调用密钥管理函数,CSM 将禁止处理队列中的新作业,直到下一次调用主函数。

7.3.8.1. 密钥设置接口
7.3.8.1.1. Csm_KeyElementSet

说明: 将给定的密钥元素字节设置为由 keyId 标识的键。可通过Csm.h获得。本服务为同步调用,不可重入。参数 keyId(in):保存需为其设置新材料的密钥的标识符。参数 keyElementId(in):保存待写入密钥元素的标识符。参数 keyElementPtr(in):保存指向待处理密钥元素字节的指针。参数 keyElementLength(in):包含密钥元素字节数。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_WRITE_FAIL:请求失败,因为写访问被拒绝;CRYPTO_E_KEY_NOT_AVAILABLE:请求失败,因为密钥不可用;CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,密钥元素大小与所提供数据的大小不匹配。

Std_ReturnType Csm_KeyElementSet ( 
    uint32 keyId, 
    uint32 keyElementId, 
    const uint8* keyElementPtr, 
    uint32 keyElementLength
)

注意:

如果在调用 Csm_KeyElementSet() API 期间观察到错误,则需将密钥元素的状态视为未知。应用程序可以通过调用 Csm_KeyGetStatus() 显式检查密钥内容的状态。

如果 CSM 未检测到任何错误,服务 Csm_KeyElementSet() 应调用 CryIf_KeyElementSet()。

7.3.8.1.2. Csm_KeySetValid

说明: 将由 keyId 标识的密钥的密钥状态设置为有效。可通过Csm.h获得。本服务为同步调用,不可重入。参数 keyId(in):保存需为其验证新材料的密钥的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态。

Std_ReturnType Csm_KeySetValid ( 
    uint32 keyId 
)

如果 CSM 未检测到任何错误,服务 Csm_KeySetValid() 应调用 CryIf_KeySetValid()。

7.3.8.1.3. Csm_KeySetInvalid

说明: 将密钥状态设置为无效。密钥不能再用于加密操作,直到它再次被设置为有效状态。可通过Csm.h获得。本服务为同步调用,不可重入。参数 keyId(in):保存待失效密钥的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态。

Std_ReturnType Csm_KeySetInvalid ( 
    uint32 keyId 
)

如果 CSM 未检测到任何错误,服务 Csm_KeySetInvalid() 应调用 CryIf_KeySetInvalid()。

7.3.8.2. 密钥状态接口
7.3.8.2.1. Csm_KeyGetStatus

说明: 返回由 keyId 标识的密钥的密钥状态。可通过Csm.h获得。本服务为同步调用,可重入。参数 keyId(in):保存需返回其密钥状态的密钥的标识符。参数(inout):无。参数 keyStatusPtr(out):包含指向存储密钥状态位置的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败。

Std_ReturnType Csm_KeyGetStatus ( 
    uint32 keyId, 
    Crypto_KeyStatusType* keyStatusPtr
)

如果 CSM 未检测到任何错误,服务 Csm_KeyGetStatus() 应调用 CryIf_KeyGetStatus()。

7.3.8.3. 密钥提取接口
7.3.8.3.1. Csm_KeyElementGet

说明: 从由 keyId 标识的密钥的特定密钥元素中检索密钥元素字节,并将密钥元素存储在密钥指针指向的内存位置。可通过Csm.h获得。本服务为同步调用,可重入。参数 keyId(in):保存需从中提取密钥元素的密钥的标识符。参数 keyElementId(in):保存待提取密钥元素的标识符。参数 keyElementLengthPtr(inout):保存指向存储以字节为单位的输出缓冲区长度的内存位置的指针。调用本函数时,该参数应包含 keyElementPtr 的缓冲区长度(以字节为单位);当请求完成时,应存储已写入的输入字节的实际大小。参数 keyElementPtr(out):保存指向密钥元素将被复制到的内存位置的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_AVAILABLE:请求失败,请求的密钥元素不可用;CRYPTO_E_KEY_READ_FAIL:请求失败,因为读访问被拒绝;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyElementGet ( 
    uint32 keyId, 
    uint32 keyElementId, 
    uint8* keyElementPtr, 
    uint32* keyElementLengthPtr 
)

如果 CSM 未检测到任何错误,服务 Csm_KeyElementGet() 应调用 CryIf_KeyElementGet()。

底层加密驱动程序必须决定是否以及如何提取密钥元素字节。

7.3.8.4. 密钥复制接口
7.3.8.4.1. Csm_KeyElementCopy

说明: 此函数将密钥元素从一个密钥复制到目标键。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存其密钥元素作为源元素的密钥的标识符。参数 keyElementId(in):保存作为复制操作源的密钥元素的标识符。参数 targetKeyId(in):保存其密钥元素作为目标元素的密钥的标识符。参数 targetKeyElementId(in):保存作为复制操作目标的密钥元素的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_AVAILABLE:请求失败,请求的密钥元素不可用;CRYPTO_E_KEY_READ_FAIL:请求失败,不允许提取密钥元素;CRYPTO_E_KEY_WRITE_FAIL:请求失败,不允许写入密钥元素;CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,密钥元素大小不兼容;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyElementCopy ( 
    const uint32 keyId, 
    const uint32 keyElementId, 
    const uint32 targetKeyId, 
    const uint32 targetKeyElementId 
)

如果 CSM 未检测到任何错误,且 keyId 与 targetKeyId 位于不同的加密驱动程序中,服务 Csm_KeyElementCopy() 应调用 CryIf_KeyElementCopy() 并传递返回值。

7.3.8.4.2. Csm_KeyCopy

说明: 此函数将所有密钥元素从源密钥复制到目标密钥。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存其密钥元素作为源元素的密钥的标识符。参数 targetKeyId(in):保存其密钥元素作为目标元素的密钥的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_AVAILABLE:请求失败,请求的密钥元素不可用;CRYPTO_E_KEY_READ_FAIL:请求失败,不允许提取密钥元素;CRYPTO_E_KEY_WRITE_FAIL:请求失败,不允许写入密钥元素;CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,密钥元素大小不兼容;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyCopy ( 
    const uint32 keyId, 
    const uint32 targetKeyId 
)

如果 CSM 未检测到任何错误,服务 Csm_KeyCopy() 应调用 CryIf_KeyCopy() 并传递返回值。

注意:

由于在 Csm_KeyCopy 期间,CSM 和 CryIf 并未对密钥元素进行任何预定的检查,例如:

  • 目标密钥元素的大小大于或等于相应源密钥元素的大小
  • 源密钥元素和目标密钥元素的访问权限允许通过 Crypto_KeyElementGet 和 Crypto_KeyElementGet 在不同加密驱动程序之间进行复制

因此在配置不当时,目标密钥可能出现不一致的状态。

这些不一致必须在开发期间识别,并应通过配置加以解决。

7.3.8.4.3. Csm_KeyElementCopyPartial

说明: 将一个密钥元素复制到同一加密驱动程序中的另一个密钥元素。 keyElementSourceOffset 和 keyElementCopyLength 允许仅将源密钥元素的一部分复制到目标中。目标键的偏移量也用这个函数指定。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存其密钥元素作为复制操作源元素的密钥的标识符。参数 keyElementId(in):保存作为复制操作源的密钥元素的标识符。参数 keyElementSourceOffset(in):源密钥元素的偏移量,指示复制操作的起始索引。参数 keyElementTargetOffset(in):目标密钥元素的偏移量,指示复制操作的起始索引。参数 keyElementCopyLength(in):指定要复制的字节数。参数 targetKeyId(in):保存其密钥元素作为目标元素的密钥的标识符。参数 targetKeyElementId(in):保存作为复制操作目标的密钥元素的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_AVAILABLE:请求失败,请求的密钥元素不可用;CRYPTO_E_KEY_READ_FAIL:请求失败,不允许提取密钥元素;CRYPTO_E_KEY_WRITE_FAIL:请求失败,不允许写入密钥元素;CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,密钥元素大小不兼容;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyElementCopyPartial ( 
    uint32 keyId, 
    uint32 keyElementId, 
    uint32 keyElementSourceOffset, 
    uint32 keyElementTargetOffset, 
    uint32 keyElementCopyLength, 
    uint32 targetKeyId, 
    uint32 targetKeyElementId 
)

注意:

通过多次调用 Csm_KeyElementCopyPartial() 并适当地调整 keyElementTargetOffset,可以将部分密钥拼接为一个密钥元素。

如果 CSM 未检测到任何错误,应调用 CryIf_KeyElementCopyPartial() 并传递返回值。

如果目标密钥元素的当前长度大于或等于 (keyElementTargetOffset + keyElementCopyLength),则密钥元素长度保持不变,目标数据将被源数据的内容覆盖。

如果目标密钥元素的当前长度小于 (keyElementTargetOffset + keyElementCopyLength),且密钥元素的最大长度大于或等于 (keyElementTargetOffset + keyElementCopyLength),则应将源数据复制到目标密钥元素中,并且长度应设置为 (keyElementTargetOffset + keyElementCopyLength)。

如果目标密钥元素的最大长度小于 (keyElementTargetOffset + keyElementCopyLength),则不应执行复制操作,函数应返回错误码 CRYPTO_E_KEY_SIZE_MISMATCH。

7.3.8.5. 密钥生成接口

密钥生成接口用于根据密钥元素 CRYPTO_KE_KEYGENERATE_ALGORITHM 中定义的算法生成密钥到密钥元素 CRYPTO_KE_KEYGENERATE_KEY 中。

密钥将会通过位于密钥元素 CRYPTO_KE_KEYGENERATE_SEED 中的随机值生成。

例如:可以使用函数 Csm_RandomGenerate() 生成随机值,并且必须在触发密钥生成之前将其存储在 CRYPTO_KE_KEYGENERATE_SEED 中。

重要的是要检查随机性的质量及其种子的熵,这取决于所使用的硬件和软件协议栈。随机性对生成的密钥材料的质量有重大影响。

Id 为 CRYPTO_KE_KEYGENERATE_ALGORITHM 的密钥元素包含来自 Crypto_AlgorithmFamilyType 的类型。例如 CRYPTO_ALGOFAM_AES、CRYPTO_ALGOFAM_RSA 或 CRYPTO_ALGOFAM_ED25519,允许生成一个充分的密钥。作为反例:算法族类型 CRYPTO_ALGOFAM_SHA2_256 是不充分的,因为它没有提供应生成什么密钥的提示。

对于密钥元素 CRYPTO_KE_KEYGENERATE_KEY,密钥元素配置项 CryptoKeyElement/CryptoKeyElementFormat 表示生成密钥的格式。

7.3.8.5.1. Csm_RandomSeed

说明: 为密钥元素 CRYPTO_KE_RANDOM_SEED 提供随机种子。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存需为其生成新种子的密钥的标识符。参数 seedPtr(in):保存指向包含用于提供种子数据的内存位置的指针。参数 seedLength(in):包含种子的长度(以字节为单位)。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效"。

Std_ReturnType Csm_RandomSeed ( 
    uint32 keyId, 
    const uint8* seedPtr, 
    uint32 seedLength 
)

如果 CSM 未检测到任何错误,服务 Csm_RandomSeed() 应调用 CryIf_RandomSeed()。

7.3.8.5.2. Csm_KeyGenerate

说明: 生成新的密钥材料并将其存储在由 keyId 标识的密钥中。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存需为其生成新材料的密钥的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyGenerate ( 
    uint32 keyId 
)

如果 CSM 未检测到任何错误,服务 Csm_KeyGenerate() 应调用 CryIf_KeyGenerate()。

7.3.8.6. 密钥派生接口

在密码学中,密钥派生函数(或 KDF)是一种函数,它从秘密值(secret value)或者其他已知信息(例如:passphrase 或 cryptographic key)中派生出一个或多个秘密密钥(secret key)。

通过使用 Csm_KeyDeriveKey 接口可以实现受硬件保护的输入键的规范。

7.3.8.6.1. Csm_KeyDerive

说明: 使用由 keyId 标识的给定密钥中的密钥元素派生新密钥。给定的密钥包含密码和盐的密钥元素。派生密钥存储在由 targetCryptoKeyId 标识的密钥的 ID 为 1 的密钥元素中。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存用于密钥派生的密钥的标识符。参数 targetKeyId(in):保存用于存储派生密钥的密钥的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_READ_FAIL:请求失败,不允许提取密钥元素;CRYPTO_E_KEY_WRITE_FAIL:请求失败,不允许写入密钥元素;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,密钥元素大小不兼容;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyDerive ( 
    uint32 keyId, 
    uint32 targetKeyId 
)

如果 CSM 未检测到任何错误,服务 Csm_KeyDerive() 应调用 CryIf_KeyDerive()。

如果加密驱动程序需要密钥派生的迭代次数,则应将其存储在密钥元素 CRYPTO_KE_KEYDERIVATION_ITERATIONS 中。

7.3.8.7. 密钥交换接口

各自拥有私人秘密(private secret)的两个用户可以使用密钥交换协议来获得公共秘密(common secret)。例如:对称密钥算法的密钥,无需告诉对方他们的私人秘密,也没有任何听众能够获得公共秘密或他们的私人秘密。

函数 Csm_KeyExchangeCalcPubVal() / Csm_JobKeyExchangeCalcPubVal() 和 Csm_KeyExchangeCalcSecret() / Csm_JobKeyExchangeCalcSecret() 用于支持 Diffie-Hellman (DH) 密钥交换。这允许两个伙伴 Alice 和 Bob 生成私钥和公钥材料(private and public key material),交换公共部分,以便双方最终可以生成一个公共共享秘密(common shared secret)。这个共享秘密可以被进一步使用,例如用于数据加密或者 MAC 生成的对称数据操作。公钥和私钥材料可以使用基于 RSA 或者椭圆曲线(elliptic-curve diffie-hellman)算法的基于质数的大数。

CSM 密钥交换功能需要一个带有密钥元素的密钥,在加密服务密钥交换行中。密钥元素 CRYPTO_KE_KEYEXCHANGE_BASE、CRYPTO_KE_KEYEXCHANGE_PRIVKEY 和 CRYPTO_KE_KEYEXCHANGE_OWNPUBKEY 用于保存公钥或者私钥材料。这些数值可以是预先定义,并由 Csm_KeyElementSet() 后跟 Csm_KeySetValid() 设置或生成。

例如:这些键值可以通过 Csm_KeyGenerate() 生成,然后调用 Csm_KeyElementCopy() 复制到相应的密钥元素,接着在调用 Csm_KeySetValid() 使其生效。

具体算法示例如下:

  1. 首先 Alice 会调用 Csm_KeyExchangeCalcPubVal() / Csm_JobKeyExchangeCalcPubVal() 函数,并将生产的结果发送给 Bob。数据的交换可能需要被签名(signed)或者加密(enncyrpted),具体方案取决于协议的定义。需要注意,如果 KeyExchangeCalcPubVal 被调用时,并不存在有效的密钥材料(如:密钥无效或者基础密钥元素的长度为 0 的情况),KeyExchangeCalcPubVal 函数需生成必要的密钥材料并正常继续。
  2. 如有需要,Bob 会把收到的 Alice 密钥材料保存到相应的密钥元素中。他还将调用 Csm_KeyExchangeCalcPubVal() 来生成他需要发送给 Alice 的共享值(shared value)。接着 Bob 可以调用 Csm_KeyExchangeCalcSecret() 来生成公共秘密(common secret),并将此数值保存到密钥元素 CRYPTO_KE_KEYEXCHANGE_SHAREDVALUE 中。
  3. 当 Alice 收到 Bob 的公开值(public value)时,它会调用 KeyExchangeCalcSecret() ,并在函数的参数中提供 Bob 的值。公共共享秘密(common shared secret)通过此函数生成,并保存到密钥元素 CRYPTO_KE_KEYEXCHANGE_SHAREDVALUE 中。根据算法的不同,Bob 需要将密钥材料发送给 Alice,以允许她生成公共共享秘密。

密钥元素 CRYPTO_KE_KEYEXCHANGE_ALGORITHM 指定 Diffie-Hellman 算法。密钥元素值的类型为 Crypto_AlgorithmFamily,例如:基于模数的 DH 的 CRYPTO_ALGOFAM_DH 或者 基于 ECDH(E) 的 CRYPTO_ALGOFAM_ED25519。也可以使用附加密钥元素 CRYPTO_KE_KEYEXCHANGE_CURVE 指定附加椭圆曲线参数。

其他密钥元素含义如下:

DH(E) ECDH(E)
CRYPTO_KE_KEYEXCHANGE_BASE Modulo Generator point
CRYPTO_KE_KEYEXCHANGE_PRIVKEY Local exponent Private key
CRYPTO_KE_KEYEXCHANGE_OWNPUBKEY Generator Public key
7.3.8.7.1. Csm_KeyExchangeCalcPubVal

说明: 计算当前用户用于密钥交换的公钥,并将公钥存储在公钥指针指向的内存位置。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存用于密钥交换协议的密钥的标识符。参数 publicValueLengthPtr(inout):保存指向存储公钥长度信息的内存位置的指针。调用本函数时,该参数应包含 publicValuePtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 publicValuePtr(out):包含指向存储公钥位置的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyExchangeCalcPubVal ( 
    uint32 keyId, 
    uint8* publicValuePtr, 
    uint32* publicValueLengthPtr 
)

如果 CSM 未检测到任何错误,服务 Csm_KeyExchangeCalcPubVal() 应调用 CryIf_KeyExchangeCalcPubVal()。

7.3.8.7.2. Csm_KeyExchangeCalcSecret

说明: 计算共享密钥,用于与由keyId标识的密钥的密钥材料和伙伴公钥进行密钥交换。共享密钥存储为同一密钥中的密钥元素。可通过Csm.h获得。本服务为同步调用,针对不同 keyId 可重入。参数 keyId(in):保存用于密钥交换协议的密钥的标识符。参数 partnerPublicValuePtr(in):保存指向包含伙伴公开值的内存位置的指针。参数 partnerPublicValueLength(in):包含伙伴公开值的长度(以字节为单位)。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_KeyExchangeCalcSecret ( 
    uint32 keyId, 
    const uint8* partnerPublicValuePtr, 
    uint32 partnerPublicValueLength
)

如果 CSM 未检测到任何错误,服务 Csm_KeyExchangeCalcSecret() 应调用 CryIf_KeyExchangeCalcSecret()。

7.3.9. 加密原语和方案

7.3.9.1. Csm_JobKeySetValid

说明: 必要时存储密钥,并将 keyId 标识的密钥的密钥状态设置为有效。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态。

Std_ReturnType Csm_JobKeySetValid ( 
    uint32 jobId 
)
7.3.9.2. Csm_JobKeySetInvalid

说明: 将密钥状态设置为无效。密钥不能再用于加密操作,直到它再次被设置为有效状态。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,加密驱动程序对象处于忙碌状态。

Std_ReturnType Csm_JobKeySetInvalid ( 
    uint32 jobId
)
7.3.9.3. Csm_JobRandomSeed

说明: 为用于关联随机数生成器的指定密钥提供新种子。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 seedPtr(in):保存指向包含用于提供种子数据的内存位置的指针。参数 seedLength(in):包含种子的长度(以字节为单位)。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效"。

Std_ReturnType Csm_JobRandomSeed ( 
    uint32 jobId, 
    const uint8* seedPtr, 
    uint32 seedLength 
)
7.3.9.4. Csm_JobKeyGenerate

说明: 生成新的密钥材料并将其存储在由 keyId 标识的密钥中。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_JobKeyGenerate ( 
    uint32 jobId 
)
7.3.9.5. Csm_JobKeyDerive

说明: 使用由 keyId 标识的给定密钥中的密钥元素派生新密钥。给定的密钥包含password和Salt的密钥元素。派生密钥存储在由 targetCryptoKeyId 标识的密钥的 ID 为 1 的密钥元素中。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 targetKeyId(in):保存用于存储派生密钥的密钥的标识符。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态;CRYPTO_E_KEY_READ_FAIL:请求失败,不允许提取密钥元素;CRYPTO_E_KEY_WRITE_FAIL:请求失败,不允许写入密钥元素;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,密钥元素大小不兼容;CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_JobKeyDerive ( 
    uint32 jobId, 
    uint32 targetKeyId 
)
7.3.9.6. Csm_JobKeyExchangeCalcPubVal

说明: 计算当前用户用于密钥交换的公钥,并将公钥存储在公钥指针指向的内存位置。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 publicValueLengthPtr(inout):保存指向存储公钥长度信息的内存位置的指针。调用本函数时,该参数应包含 publicValuePtr 所提供缓冲区的大小;当请求完成时,应存储返回值的实际长度。参数 publicValuePtr(out):包含指向存储公钥位置的数据的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_JobKeyExchangeCalcPubVal ( 
    uint32 jobId, 
    uint8* publicValuePtr, 
    uint32* publicValueLengthPtr 
)
7.3.9.7. Csm_JobKeyExchangeCalcSecret

说明: 计算共享密钥,用于与由keyId标识的密钥的密钥材料和伙伴公钥进行密钥交换。共享密钥存储为同一密钥中的密钥元素。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 partnerPublicValuePtr(in):保存指向包含伙伴公开值的内存位置的指针。参数 partnerPublicValueLength(in):包含伙伴公开值的长度(以字节为单位)。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态;CRYPTO_E_KEY_NOT_VALID:请求失败,密钥状态为"无效";CRYPTO_E_KEY_EMPTY:请求失败,因为源密钥元素未初始化。

Std_ReturnType Csm_JobKeyExchangeCalcSecret ( 
    uint32 jobId, 
    const uint8* partnerPublicValuePtr, 
    uint32 partnerPublicValueLength 
)

7.3.10. 上下文保存和恢复

7.3.10.1. Csm_SaveContextJob

说明: 加密驱动程序将相应加密操作的内部上下文存储到 contextBuffer。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存使用 CSM 服务的作业的标识符。参数 contextBufferLengthPtr(inout):保存指向长度值所在缓冲区的指针。作为输入数据,它提供 contextBufferPtr 中可用数据的最大长度;作为输出数据,它提供 contextBufferPtr 中数据的实际长度(失败时为 0)。参数 contextBufferPtr(out):保存指向应用程序中用于存储上下文数据的缓冲区的指针。返回值:Std_ReturnType,E_OK:成功提供上下文数据;E_NOT_OK:无法提供上下文数据;值无效;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态。

Std_ReturnType Csm_SaveContextJob ( 
    uint32 jobId, 
    uint8* contextBufferPtr, 
    uint32* contextBufferLengthPtr 
)

如果调用 Csm_SaveContextJob() 且作业处于激活状态,CSM 应将 contextBufferPtr 放入 job.PrimitiveInputOutput.outputPtr,并将 contextOutputLengthPtr 放入 job.PrimitiveInputOutput.outputLengthPtr,将 job->jobPrimitiveInputOutput->mode 设置为 CRYPTO_OPERATIONMODE_SAVE_CONTEXT,并使用该作业对应的 ChannelId 和指向作业本身的指针调用 CryIf_ProcessJob()。该函数调用的任何返回值都应回传给应用程序。

7.3.10.2. Csm_RestoreContextJob

说明: 加密驱动程序从 contextBuffer 中提取上下文数据并恢复内部状态,以便此加密服务的进一步加密操作将在获取上下文的确切时间点继续。可通过Csm.h获得。本服务的同步/异步行为取决于配置,可重入。参数 jobId(in):保存需从中请求上下文的作业的标识符。参数 contextBufferPtr(in):保存指向待恢复上下文数据所在缓冲区的指针。参数 contextBufferLength(in):提供 contextBufferPtr 中上下文数据的长度。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:成功恢复上下文数据;E_NOT_OK:无法恢复上下文数据;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态。

Std_ReturnType Csm_RestoreContextJob ( 
    uint32 jobId, 
    uint8* contextBufferPtr, 
    uint32 contextBufferLength 
)

如果调用 Csm_RestoreContextJob() 且作业处于激活状态,CSM 应将 contextBufferPtr 放入 job.PrimitiveInputOutput.inputPtr,并将 contextBufferLength 放入 job.PrimitiveInputOutput.inputLength,将 job->jobPrimitiveInputOutput->mode 设置为 CRYPTO_OPERATIONMODE_RESTORE_CONTEXT,并使用该作业对应的 ChannelId 和指向作业本身的指针调用 CryIf_ProcessJob()。该函数调用的任何返回值都应回传给应用程序。

7.3.11. 作业取消接口

7.3.11.1. Csm_CancelJob

说明: 取消异步或流作业的作业处理。可通过Csm.h获得。本服务为同步调用,不可重入。参数 job(in):保存要取消的作业的标识符。参数 mode(in):未使用,仅为接口兼容性而提供。参数(inout):无。参数(out):无。返回值:Std_ReturnType,E_OK:请求成功。作业已从任意队列中移除,并可能已从加密驱动程序硬件中移除;E_NOT_OK:请求失败;CRYPTO_E_JOB_CANCELED:无法立即取消。取消将在下一个合适的处理步骤中完成,并通过作业的否定关闭回调进行通知。

Std_ReturnType Csm_CancelJob ( 
    uint32 job, 
    Crypto_OperationModeType mode 
)

当 CSM 的开发错误检测启用时:如果对同步作业调用 Csm_CancelJob(),则该函数应报告 CSM_E_PROCESSING_MODE 错误并返回 E_NOT_OK。

CSM 应将作业从其自己的队列中移除,或调用 CryIf_CancelJob() 以取消驱动程序中潜在的作业。

如果 CryIf_CancelJob() 返回 E_OK,则应以结果值 CRYPTO_E_JOB_CANCELED 调用作业的关闭回调 CallbackNotification。

如果 CryIf_CancelJob() 返回 CRYPTO_E_JOB_CANCELED(即作业未被立即取消),CSM 应将作业关闭回调的调用推迟到下一次调用 Csm_CallbackNotification() 时进行。作业关闭回调的结果应为 CRYPTO_E_JOB_CANCELED。

注意:

如果加密驱动程序不支持立即取消作业,应用程序需要等待作业的关闭回调以释放缓冲区。加密驱动程序仍可能写入输出缓冲区。

7.3.12. 自定义服务接口

现有 CSM 服务接口不支持的安全相关服务可以通过自定义服务来实现。该服务的用途未作规定,可以由供应商自定义。建议在加密驱动程序配置文件(Crypto Driver profile)中对齐特定自定义服务的设置(参见 SWS Crypto Driver 第 7.5.2 章 [16])。

7.3.12.1. Csm_CustomService

说明: 分发安全相关作业以在安全环境中进行自定义执行。可通过Csm.h获得。本服务的同步/异步行为取决于配置,针对不同 jobId 可重入。参数 jobId(in):被分发给自定义处理的作业的 ID。参数 mode(in):指示自定义作业要执行的操作模式。参数 targetKeyId(in):保存自定义作业的目标密钥 ID。参数 inputPtr(in):指向输入数据的指针。参数 inputLength(in):包含输入长度(以字节为单位)。参数 secondaryInputPtr(in):指向次级输入数据的指针。参数 secondaryInputLength(in):包含次级输入长度(以字节为单位)。参数 tertiaryInputPtr(in):指向第三级输入数据的指针。参数 tertiaryInputLength(in):包含第三级输入长度(以字节为单位)。参数 outputPtr(out):指向输出数据的指针。参数 outputLengthPtr(out):包含输出长度(以字节为单位)。参数 secondaryOutputPtr(out):指向次级输出数据的指针。参数 secondaryOutputLengthPtr(out):包含次级输出长度(以字节为单位)。参数 verifyPtr(out):指向验证结果的指针。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:请求失败,服务仍处于忙状态;CRYPTO_E_CUSTOM_ERROR:自定义处理失败。

Std_ReturnType Csm_CustomService ( 
    uint32 jobId, 
    Crypto_OperationModeType mode, 
    uint32 targetKeyId, 
    const uint8* inputPtr, 
    uint32 inputLength, 
    const uint8* secondaryInputPtr, 
    uint32 secondaryInputLength, 
    const uint8* tertiaryInputPtr, 
    uint32 tertiaryInputLength, 
    uint8* outputPtr, 
    uint32* outputLengthPtr, 
    uint8* secondaryOutputPtr, 
    uint32* secondaryOutputLengthPtr, 
    Crypto_VerifyResultType* verifyPtr 
)
7.3.12.2. Csm_CustomSync

说明: 请求执行由给定分发 ID 所指定的函数。可通过Csm.h获得。本服务为同步调用,不可重入。参数 dispatchId(in):用于标识请求的唯一 ID。参数 keyId(in):证书所存储的密钥的密钥 ID。参数 keyElementId(in):密钥元素 ID。参数 targetKeyId(in):保存目标密钥 ID。参数 targetKeyElementId(in):-。参数 inputPtr(in):指向输入数据的指针。参数 inputLength(in):包含输入长度(以字节为单位)。参数 outputPtr(out):指向输出数据的指针。参数 outputLengthPtr(out):包含输出长度(以字节为单位)。参数 secondaryOutputPtr(out):指向次级输出数据的指针。参数 secondaryOutputLengthPtr(out):包含次级输出长度(以字节为单位)。返回值:Std_ReturnType,E_OK:请求成功;E_NOT_OK:请求失败;CRYPTO_E_BUSY:服务请求失败,因为服务仍处于忙状态;CRYPTO_E_CUSTOM_ERROR:自定义处理失败。

Std_ReturnType Csm_CustomSync ( 
    uint32 dispatchId, 
    uint32 keyId, 
    uint32 keyElementId, 
    uint32 targetKeyId, 
    uint32 targetKeyElementId, 
    const uint8* inputPtr, 
    uint32 inputLength, 
    uint8* outputPtr, 
    uint32* outputLengthPtr, 
    uint8* secondaryOutputPtr, 
    uint32* secondaryOutputLengthPtr 
)

如果 CSM 未检测到任何错误,服务 Csm_CustomSync 应调用 CryIf_CustomSync()。

7.3.13. 回调通知

7.3.13.1. Csm_CallbackNotification

说明: 通知 CSM 作业已完成。该函数由底层(CRYIF)使用。可通过Csm.h获得。本回调函数为同步调用,可重入。参数 job(in):保存指向已完成的作业的指针。参数 result(in):包含加密操作的结果。参数(inout):无。参数(out):无。返回值:无。

void Csm_CallbackNotification ( 
    Crypto_JobType* job, 
    Crypto_ResultType result 
)

如果 job->jobPrimitiveInputOutput.mode 中设置了 CRYPTO_OPERATIONMODE_FINISH 位,则 Csm_CallbackNotification 应调用已配置的回调函数。

如果 job->jobPrimitiveInputOutput.mode 中设置了 CRYPTO_OPERATIONMODE_FINISH 位,且 CsmProcessingMode 被设置为 CRYPTO_PROCESSING_ASYNC,并且 CsmJobInterfaceUsePort 被设置为 CRYPTO_USE_PORT_OPTIMIZED,则 CSM 应触发 CallbackNotification 服务。

7.3.14. 调度函数

7.3.14.1. Csm_MainFunction

说明: 此 API 被周期性的调用以处理请求的作业。Csm_MainFunction 应检查作业队列以传递给底层 CRYIF。每个已配置的 CsmMainFunction 实例应实施一个 Csm_MainFunction_。 其中是ECU配置中CsmMainFunction配置容器的简称。可通过SchM_Csm.h获得。

void Csm_MainFunction ( 
    void 
)

7.4. 期望接口

7.4.1. 强制接口

API 函数 头文件 描述
CryIf_CancelJob CryIf.h 该接口将作业取消函数分发给已配置的加密驱动程序对象。
CryIf_KeyCopy CryIf.h 此函数应将所有密钥元素从源密钥复制到目标密钥。
CryIf_KeyElementCopy CryIf.h 此函数应将一个密钥元素从一个密钥复制到目标密钥。
CryIf_KeyElementCopyPartial CryIf.h 将一个密钥元素复制到另一个密钥元素。keyElementOffsets 和 keyElementCopyLength 允许仅将源密钥元素的一部分复制到目标密钥元素中。
CryIf_KeyElementGet CryIf.h 此函数应将获取密钥元素函数分发给已配置的加密驱动程序对象。
CryIf_KeyElementSet CryIf.h 此函数应将设置密钥元素函数分发给已配置的加密驱动程序对象。
CryIf_KeyExchangeCalcSecret CryIf.h 此函数应将密钥交换公共共享秘密计算函数分发给已配置的加密驱动程序对象。
CryIf_KeyGenerate CryIf.h 此函数应将密钥生成函数分发给已配置的加密驱动程序对象。
CryIf_KeySetValid CryIf.h 此函数应将设置密钥有效函数分发给已配置的加密驱动程序对象。
CryIf_ProcessJob CryIf.h 该接口将接收到的作业分发给已配置的加密驱动程序对象。
CryIf_RandomSeed CryIf.h 此函数应将随机种子函数分发给已配置的加密驱动程序对象。
Det_ReportRuntimeError Det.h 报告运行时错误的服务。如果已配置了回调(callout),则应调用该回调。

7.4.2. 可选接口

API 函数 头文件 描述
Det_ReportError Det.h 报告开发错误的服务。

7.4.3. 可配置接口

7.4.3.1. <Csm_ApplicationCallbackNotification>

说明: CSM 通知应用程序作业已完成。函数名是可配置的。函数名本身由 "{CsmJob/CsmJobPrimitiveCallbackRef}/CsmCallbackFunc" 派生。可通过Csm.h获得。本回调函数为同步调用,可重入。参数 jobId(in):引发回调的操作的作业 ID。参数 result(in):包含加密操作的结果。返回值:无。

void <Csm_ApplicationCallbackNotification> ( 
    uint32 jobId, 
    Crypto_ResultType result 
)

当异步作业的调用结束时,应在最后调用一次 Csm_ApplicationCallbackNotification,即:给定的操作模式已完全处理完毕、作业因错误而中止或作业已被取消。因此,如果一个作业的调用处理了多个操作模式,即 CRYPTO_OPERATIONMODE_STREAMSTART 或 CRYPTO_OPERATIONMODE_SINGLECALL,则 Csm_ApplicationCallbackNotification 仅被调用一次。

如果满足以下条件,CSM 应调用应用程序回调函数:

({ecuc(Csm/CsmJobs/CsmJob.CsmProcessingMode)} == CRYPTO_PROCESSING_ASYN) && (CsmJob/CsmJobInterfaceUsePort == CRYPTO_USE_FNC) && (CsmJob/CsmJobPrimitiveCallbackRef != 0)

对于服务接口,如果配置了异步处理,则应调用回调服务:

({ecuc(Csm/CsmJobs/CsmJob.CsmProcessingMode)} == CRYPTO_PROCESSING_ASYN) && (CsmJob/CsmJobInterfaceUsePort != CRYPTO_USE_FNC)

7.5. 服务接口

本章是对 Csm 模块规范的补充。规范的其他部分定义了相应基础软件模块的行为和 C 接口,而本章则以 SWC 模板的形式正式规定相应的 AUTOSAR 服务。此处描述的接口将在 VFB 上可见,并用于在应用软件和 Csm 模块之间生成 RTE。

7.5.1. 客户端-服务器接口

7.5.1.1. CsmKeyManagement_{Key}

客户端-服务器接口 CsmKeyManagement_{Key}:

名称 CsmKeyManagement_{Key}
注释 用于执行密钥管理函数的接口。
IsService true
变体 ({ecuc(Csm/CsmKeys/CsmKey.CsmKeyUsePort)} == TRUE) Key = {ecuc(Csm/CsmKeys/CsmKey.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 6 CRYPTO_E_KEY_READ_FAIL 服务请求失败,因为读取访问被拒绝。
可能的错误 7 CRYPTO_E_KEY_WRITE_FAIL 服务请求失败,因为写入访问被拒绝。
可能的错误 8 CRYPTO_E_KEY_NOT_AVAILABLE 服务请求失败,因为密钥不可用。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 KeyCopy:

操作 KeyCopy
注释 此函数应将所有密钥元素从源密钥复制到目标密钥。
映射到 API Csm_KeyCopy
参数 targetKeyId(类型) uint32
参数 targetKeyId(方向) IN
参数 targetKeyId(注释) 保存其密钥元素将作为目标元素的密钥的标识符。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_READ_FAIL CRYPTO_E_KEY_WRITE_FAIL CRYPTO_E_KEY_NOT_AVAILABLE CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY

操作 KeyDerive:

操作 KeyDerive
注释 通过使用给定密钥中的密钥元素来派生新密钥。给定的密钥包含密码和盐的密钥元素。派生的密钥存储在由 targetCryptoKeyId 标识的密钥的 ID 为 1 的密钥元素中。
映射到 API Csm_KeyDerive
参数 targetKeyId(类型) uint32
参数 targetKeyId(方向) IN
参数 targetKeyId(注释) 保存用于存储派生密钥的密钥的标识符。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_READ_FAIL CRYPTO_E_KEY_WRITE_FAIL CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY

操作 KeyElementCopy:

操作 KeyElementCopy
注释 此函数应将一个密钥元素从一个密钥复制到目标密钥
映射到 API Csm_KeyElementCopy
参数 keyElementId(类型) uint32
参数 keyElementId(方向) IN
参数 keyElementId(注释) 保存将作为复制操作源的密钥元素的标识符。
参数 targetKeyId(类型) uint32
参数 targetKeyId(方向) IN
参数 targetKeyId(注释) 保存其密钥元素将作为目标元素的密钥的标识符。
参数 targetKeyElementId(类型) uint32
参数 targetKeyElementId(方向) IN
参数 targetKeyElementId(注释) 保存将作为复制操作目标的密钥元素的标识符。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_READ_FAIL CRYPTO_E_KEY_WRITE_FAIL CRYPTO_E_KEY_NOT_AVAILABLE CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY

操作 KeyElementCopyPartial:

操作 KeyElementCopyPartial
注释 此函数应将一个密钥元素的一部分从一个密钥复制到目标密钥的目标密钥元素的一部分中。
映射到 API Csm_KeyElementCopyPartial
参数 keyElementId(类型) uint32
参数 keyElementId(方向) IN
参数 keyElementId(注释) 保存将作为复制操作源的密钥元素的标识符。
参数 keyElementSourceOffset(类型) uint32
参数 keyElementSourceOffset(方向) IN
参数 keyElementSourceOffset(注释) 这是源密钥元素的偏移量,指示复制操作的起始索引。
参数 keyElementTargetOffset(类型) uint32
参数 keyElementTargetOffset(方向) IN
参数 keyElementTargetOffset(注释) 这是目标密钥元素的偏移量,指示复制操作的起始索引。
参数 keyElementCopyLength(类型) uint32
参数 keyElementCopyLength(方向) IN
参数 keyElementCopyLength(注释) 指定要复制的字节数。
参数 targetKeyId(类型) uint32
参数 targetKeyId(方向) IN
参数 targetKeyId(注释) 保存其密钥元素将作为目标元素的密钥的标识符。
参数 targetKeyElementId(类型) uint32
参数 targetKeyElementId(方向) IN
参数 targetKeyElementId(注释) 保存将作为复制操作目标的密钥元素的标识符。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_READ_FAIL CRYPTO_E_KEY_WRITE_FAIL CRYPTO_E_KEY_NOT_AVAILABLE CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY

操作 KeyElementGet:

操作 KeyElementGet
注释 从密钥的特定密钥元素中检索密钥元素字节,并将该密钥元素存储在提供的缓冲区中。
映射到 API Csm_KeyElementGet
参数 keyElementId(类型) uint32
参数 keyElementId(方向) IN
参数 keyElementId(注释) 保存要读取的密钥元素的标识符。
参数 keyElement(类型) Csm_KeyDataType_{Crypto}
参数 keyElement(方向) OUT
参数 keyElement(注释) 保存要写入的密钥元素字节数据。
参数 keyElementLength(类型) uint32
参数 keyElementLength(方向) INOUT
参数 keyElementLength(注释) 包含密钥元素的字节数。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_READ_FAIL CRYPTO_E_KEY_NOT_AVAILABLE CRYPTO_E_KEY_EMPTY

操作 KeyElementSet:

操作 KeyElementSet
注释 将给定的密钥元素字节设置到密钥。
映射到 API Csm_KeyElementSet
参数 keyElementId(类型) uint32
参数 keyElementId(方向) IN
参数 keyElementId(注释) 保存要写入的密钥元素的标识符。
参数 keyElement(类型) Csm_KeyDataType_{Crypto}
参数 keyElement(方向) IN
参数 keyElement(注释) 保存要处理的密钥元素字节数据。
参数 keyElementLength(类型) uint32
参数 keyElementLength(方向) IN
参数 keyElementLength(注释) 包含密钥元素的字节数。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_WRITE_FAIL CRYPTO_E_KEY_NOT_AVAILABLE CRYPTO_E_KEY_SIZE_MISMATCH

操作 KeyExchangeCalcPubVal:

操作 KeyExchangeCalcPubVal
注释 计算当前用户用于密钥交换的公钥值,并将公钥存储在提供的缓冲区中
映射到 API Csm_KeyExchangeCalcPubVal
参数 publicValue(类型) Csm_KeyDataType_{Crypto}
参数 publicValue(方向) OUT
参数 publicValue(注释) 包含指向应存储公钥值的内存位置的指针。
参数 publicValueLength(类型) uint32
参数 publicValueLength(方向) INOUT
参数 publicValueLength(注释) 保存指向存储公钥值长度(以字节为单位)的内存位置的指针。调用此函数时,该参数应包含 publicValuePtr 提供的缓冲区大小(以字节为单位)。请求完成后,应存储返回值的实际长度。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY

操作 KeyExchangeCalcSecret:

操作 KeyExchangeCalcSecret
注释 使用由 keyId 标识的密钥的密钥材料和伙伴公钥计算用于密钥交换的共享秘密密钥。共享秘密密钥作为密钥元素存储在同一密钥中。
映射到 API Csm_KeyExchangeCalcSecret
参数 partnerPublicValue(类型) Csm_KeyDataType_{Crypto}
参数 partnerPublicValue(方向) IN
参数 partnerPublicValue(注释) 保存指向包含伙伴公钥值的内存位置的指针
参数 partnerPublicValueLength(类型) uint32
参数 partnerPublicValueLength(方向) IN
参数 partnerPublicValueLength(注释) 包含伙伴公钥值的字节数
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY

操作 KeyGenerate:

操作 KeyGenerate
注释 生成新的密钥材料并将其存储在由 keyId 标识的密钥中。
映射到 API Csm_KeyGenerate
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY

操作 KeyGetStatus:

操作 KeyGetStatus
注释 返回由 keyId 标识的密钥的密钥状态。
映射到 API Csm_KeyGetStatus
参数 keyStatusPtr(类型) Crypto_KeyStatusType
参数 keyStatusPtr(方向) OUT
参数 keyStatusPtr(注释) 保存端口引用的密钥的状态。
变体 --
可能的错误 E_OK E_NOT_OK

操作 KeySetInvalid:

操作 KeySetInvalid
注释 将密钥状态设置为无效的操作。
映射到 API Csm_KeySetInvalid
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY

操作 KeySetValid:

操作 KeySetValid
注释 将给定的密钥元素字节设置到密钥。
映射到 API Csm_KeySetValid
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY

操作 RandomSeed:

操作 RandomSeed
注释 为密钥元素 CRYPTO_KE_RANDOM_SEED 提供随机种子。
映射到 API Csm_RandomSeed
参数 seed(类型) Csm_KeyDataType_{Crypto}
参数 seed(方向) IN
参数 seed(注释) 保存将用于随机种子初始化的数据。
参数 seedLength(类型) uint32
参数 seedLength(方向) IN
参数 seedLength(注释) 包含种子的长度(以字节为单位)。
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY
7.5.1.2. CsmHash_{PrimitiveCfg}

客户端-服务器接口 CsmHash_{PrimitiveCfg}:

名称 CsmHash_{PrimitiveCfg}
注释 用于执行哈希计算的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。

操作 Hash:

操作 Hash
注释 哈希计算的流式处理方式。
映射到 API Csm_Hash
参数 data(类型) Csm_HashDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含要哈希的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要哈希的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 result(类型) Csm_HashResultType_{Crypto}
参数 result(方向) OUT
参数 result(注释) 包含哈希的数据。
参数 result(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 resultLength(类型) uint32
参数 resultLength(方向) INOUT
参数 resultLength(注释) 包含哈希的长度(以字节为单位)。
参数 resultLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY
7.5.1.3. CsmMacGenerate_{PrimitiveCfg}

客户端-服务器接口 CsmMacGenerate_{PrimitiveCfg}:

名称 CsmMacGenerate_{PrimitiveCfg}
注释 用于执行 MAC 生成的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 MacGenerate:

操作 MacGenerate
注释 使用给定数据执行 MAC 生成,并将 MAC 存储在 MAC 指针指向的内存位置。
映射到 API Csm_MacGenerate
参数 data(类型) Csm_MacGenerateDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含要从中生成 MAC 的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要从中生成 MAC 的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 mac(类型) Csm_MacGenerateResultType_{Crypto}
参数 mac(方向) OUT
参数 mac(注释) 包含 MAC 的数据。
参数 mac(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 macLength(类型) uint32
参数 macLength(方向) INOUT
参数 macLength(注释) 包含 MAC 的长度(以字节为单位)。
参数 macLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.4. CsmMacVerify_{PrimitiveCfg}

客户端-服务器接口 CsmMacVerify_{PrimitiveCfg}:

名称 CsmMacVerify_{PrimitiveCfg}
注释 用于执行 MAC 验证的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 MacVerify:

操作 MacVerify
注释 使用给定数据执行 MAC 生成,并将 MAC 存储在 MAC 指针指向的内存位置。
映射到 API Csm_MacVerify
参数 data(类型) Csm_MacVerifyDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含要从中生成 MAC 的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要验证其 MAC 的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 mac(类型) Csm_MacVerifyCompareType_{Crypto}
参数 mac(方向) IN
参数 mac(注释) 包含要验证的 MAC。
参数 mac(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 macLength(类型) uint32
参数 macLength(方向) IN
参数 macLength(注释) 包含要验证的 MAC 的长度(以位为单位)。
参数 macLength(变体) --
参数 verify(类型) Crypto_VerifyResultType
参数 verify(方向) OUT
参数 verify(注释) 包含验证结果。
参数 verify(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.5. CsmEncrypt_{PrimitiveCfg}

客户端-服务器接口 CsmEncrypt_{PrimitiveCfg}:

名称 CsmEncrypt_{PrimitiveCfg}
注释 用于执行加密的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 Encrypt:

操作 Encrypt
注释 加密给定数据并将密文存储在结果指针指向的内存位置。
映射到 API Csm_Encrypt
参数 data(类型) Csm_EncryptDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含要加密的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要加密的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 result(类型) Csm_EncryptResultType_{Crypto}
参数 result(方向) OUT
参数 result(注释) 包含密文的数据。
参数 result(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 resultLength(类型) uint32
参数 resultLength(方向) INOUT
参数 resultLength(注释) 包含密文的长度(以字节为单位)。
参数 resultLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.6. CsmDecrypt_{PrimitiveCfg}

客户端-服务器接口 CsmDecrypt_{PrimitiveCfg}:

名称 CsmDecrypt_{PrimitiveCfg}
注释 用于执行解密的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 Decrypt:

操作 Decrypt
注释 解密的流式处理方式。
映射到 API Csm_Decrypt
参数 data(类型) Csm_DecryptDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含要解密的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要解密的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 result(类型) Csm_DecryptResultType_{Crypto}
参数 result(方向) OUT
参数 result(注释) 包含解密后的明文数据。
参数 result(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 resultLength(类型) uint32
参数 resultLength(方向) INOUT
参数 resultLength(注释) 包含解密后的明文的长度(以字节为单位)。
参数 resultLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.7. CsmAEADEncrypt_{PrimitiveCfg}

客户端-服务器接口 CsmAEADEncrypt_{PrimitiveCfg}:

名称 CsmAEADEncrypt_{PrimitiveCfg}
注释 用于执行 AEAD 加密的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 AEADEncrypt:

操作 AEADEncrypt
注释 AEAD 加密的流式处理方式。
映射到 API Csm_AEADEncrypt
参数 plaintext(类型) Csm_AEADEncryptPlaintextType_{Crypto}
参数 plaintext(方向) IN
参数 plaintext(注释) 包含要用 AEAD 加密的明文。
参数 plaintext(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 plaintextLength(类型) uint32
参数 plaintextLength(方向) IN
参数 plaintextLength(注释) 该元素包含要用 AEAD 加密的明文的长度(以字节为单位)。
参数 plaintextLength(变体) --
参数 associatedData(类型) Csm_AEADEncryptAssociatedDataType_{Crypto}
参数 associatedData(方向) IN
参数 associatedData(注释) 包含头部的数据(该数据不参与加密,但参与认证)。
参数 associatedData(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 associatedDataLength(类型) uint32
参数 associatedDataLength(方向) IN
参数 associatedDataLength(注释) 包含头部数据的长度(以字节为单位)。
参数 associatedDataLength(变体) --
参数 ciphertext(类型) Csm_AEADEncryptCiphertextType_{Crypto}
参数 ciphertext(方向) OUT
参数 ciphertext(注释) 包含 AEAD 密文的数据。
参数 ciphertext(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 ciphertextLength(类型) uint32
参数 ciphertextLength(方向) INOUT
参数 ciphertextLength(注释) 包含 AEAD 密文数据的长度(以字节为单位)。
参数 ciphertextLength(变体) --
参数 tag(类型) Csm_AEADEncryptTagType_{Crypto}
参数 tag(方向) OUT
参数 tag(注释) 包含 Tag 的数据。
参数 tag(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 tagLength(类型) uint32
参数 tagLength(方向) INOUT
参数 tagLength(注释) 包含 Tag 数据的长度(以字节为单位)。
参数 tagLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.8. CsmAEADDecrypt_{PrimitiveCfg}

客户端-服务器接口 CsmAEADDecrypt_{PrimitiveCfg}:

名称 CsmAEADDecrypt_{PrimitiveCfg}
注释 用于执行 AEAD 解密的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 AEADDecrypt:

操作 AEADDecrypt
注释 AEAD 解密的流式处理方式。
映射到 API Csm_AEADDecrypt
参数 ciphertext(类型) Csm_AEADDecryptCiphertextType_{Crypto}
参数 ciphertext(方向) IN
参数 ciphertext(注释) 包含要用 AEAD 解密的密文。
参数 ciphertext(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 ciphertextLength(类型) uint32
参数 ciphertextLength(方向) IN
参数 ciphertextLength(注释) 包含要用 AEAD 解密的密文的长度(以字节为单位)。
参数 ciphertextLength(变体) --
参数 associatedData(类型) Csm_AEADDecryptAssociatedDataType_{Crypto}
参数 associatedData(方向) IN
参数 associatedData(注释) 包含头部的数据(该数据不参与加密,但参与认证)。
参数 associatedData(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 associatedDataLength(类型) uint32
参数 associatedDataLength(方向) IN
参数 associatedDataLength(注释) 包含头部数据的长度(以字节为单位)。
参数 associatedDataLength(变体) --
参数 tag(类型) Csm_AEADDecryptTagType_{Crypto}
参数 tag(方向) IN
参数 tag(注释) 包含 Tag 的数据。
参数 tag(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 tagLength(类型) uint32
参数 tagLength(方向) IN
参数 tagLength(注释) 包含 Tag 数据的长度(以位为单位)。
参数 tagLength(变体) --
参数 plaintext(类型) Csm_AEADDecryptPlaintextType_{Crypto}
参数 plaintext(方向) OUT
参数 plaintext(注释) 包含解密后的 AEAD 明文数据。
参数 plaintext(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 plaintextLength(类型) uint32
参数 plaintextLength(方向) INOUT
参数 plaintextLength(注释) 包含解密后的 AEAD 明文数据的长度(以字节为单位)。
参数 plaintextLength(变体) --
参数 verify(类型) Crypto_VerifyResultType
参数 verify(方向) OUT
参数 verify(注释) 包含验证结果。
参数 verify(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.9. CsmSignatureGenerate_{PrimitiveCfg}

客户端-服务器接口 CsmSignatureGenerate_{PrimitiveCfg}:

名称 CsmSignatureGenerate_{PrimitiveCfg}
注释 用于生成签名的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 SignatureGenerate:

操作 SignatureGenerate
注释 签名生成的流式处理方式。
映射到 API Csm_SignatureGenerate
参数 data(类型) Csm_SignatureGenerateDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含要从中生成签名的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要从中生成签名的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 signature(类型) Csm_SignatureGenerateResultType_{Crypto}
参数 signature(方向) OUT
参数 signature(注释) 包含签名。
参数 signature(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 signatureLength(类型) uint32
参数 signatureLength(方向) INOUT
参数 signatureLength(注释) 包含签名的长度(以字节为单位)。
参数 signatureLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.10. CsmSignatureVerify_{PrimitiveCfg}

客户端-服务器接口 CsmSignatureVerify_{PrimitiveCfg}:

名称 CsmSignatureVerify_{PrimitiveCfg}
注释 用于执行签名验证的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 SignatureVerify:

操作 SignatureVerify
注释 用于验证签名的接口。
映射到 API Csm_SignatureVerify
参数 data(类型) Csm_SignatureVerifyDataType_{Crypto}
参数 data(方向) IN
参数 data(注释) 包含需验证其签名的数据。
参数 data(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含需验证其签名的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 signature(类型) Csm_SignatureVerifyCompareType_{Crypto}
参数 signature(方向) IN
参数 signature(注释) 包含要验证的签名。
参数 signature(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 signatureLength(类型) uint32
参数 signatureLength(方向) IN
参数 signatureLength(注释) 包含要验证的签名的长度(以字节为单位)。
参数 signatureLength(变体) --
参数 verify(类型) Crypto_VerifyResultType
参数 verify(方向) OUT
参数 verify(注释) 包含验证结果。
参数 verify(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.1.11. CsmRandomGenerate_{PrimitiveCfg}

客户端-服务器接口 CsmRandomGenerate_{PrimitiveCfg}:

名称 CsmRandomGenerate_{PrimitiveCfg}
注释 用于执行随机数生成的同步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)} PrimitiveCfg = {ecuc(Csm/CsmPrimitives/{Primitive}/{Primitive}Config.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 4 CRYPTO_E_ENTROPY_EXHAUSTED 请求失败,随机数生成器的熵已耗尽。

操作 RandomGenerate:

操作 RandomGenerate
注释 用于执行随机数生成的同步处理接口。
映射到 API Csm_RandomGenerate
参数 result(类型) Csm_RandomGenerateResultType_{Crypto}
参数 result(方向) OUT
参数 result(注释) 包含随机数。
参数 result(变体) Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}
参数 resultLength(类型) uint32
参数 resultLength(方向) INOUT
参数 resultLength(注释) 包含随机数数据的长度(以字节为单位)。
参数 resultLength(变体) --
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_ENTROPY_EXHAUSTED

7.5.2. 客户端-服务器接口(DATA_REFERENCES)

7.5.2.1. CsmHash

客户端-服务器接口 CsmHash:

名称 CsmHash
注释 用于执行哈希计算的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 Hash:

操作 Hash
注释 使用随机种子服务。
映射到 API Csm_Hash
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用要进行哈希计算的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要进行哈希计算的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 resultPtr(类型) VoidPtr
参数 resultPtr(方向) IN
参数 resultPtr(注释) 引用哈希的数据。
参数 resultPtr(变体) --
参数 resultLengthPtr(类型) Csm_LengthPtr
参数 resultLengthPtr(方向) IN
参数 resultLengthPtr(注释) 包含哈希的长度(以字节为单位)。
参数 resultLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY
7.5.2.2. CsmMacGenerate

客户端-服务器接口 CsmMacGenerate:

名称 CsmMacGenerate
注释 用于执行 MAC 生成的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 MacGenerate:

操作 MacGenerate
注释 使用给定的数据执行 MAC 生成,并将 MAC 存储到 MAC 指针所指向的内存位置。
映射到 API Csm_MacGenerate
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用要从中生成 MAC 的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要从中生成 MAC 的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 macPtr(类型) VoidPtr
参数 macPtr(方向) IN
参数 macPtr(注释) 引用 MAC 的数据。
参数 macPtr(变体) --
参数 macLengthPtr(类型) Csm_LengthPtr
参数 macLengthPtr(方向) IN
参数 macLengthPtr(注释) 包含 MAC 的长度(以字节为单位)。
参数 macLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.2.3. CsmMacVerify

客户端-服务器接口 CsmMacVerify:

名称 CsmMacVerify
注释 用于执行 MAC 验证的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 MacVerify:

操作 MacVerify
注释 使用给定的数据执行 MAC 生成,并将 MAC 存储到 MAC 指针所指向的内存位置。
映射到 API Csm_MacVerify
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用要从中生成 MAC 的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含需验证其 MAC 的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 macPtr(类型) ConstVoidPtr
参数 macPtr(方向) IN
参数 macPtr(注释) 引用要验证的 MAC。
参数 macPtr(变体) --
参数 macLength(类型) uint32
参数 macLength(方向) IN
参数 macLength(注释) 包含要验证的 MAC 的长度(以位为单位)。
参数 macLength(变体) --
参数 verifyPtr(类型) Csm_VerifyResultPtr
参数 verifyPtr(方向) IN
参数 verifyPtr(注释) 包含验证结果。
参数 verifyPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.2.4. CsmEncrypt

客户端-服务器接口 CsmEncrypt:

名称 CsmEncrypt
注释 用于执行加密的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 Encrypt:

操作 Encrypt
注释 加密给定的数据,并将密文存储到结果指针所指向的内存位置。
映射到 API Csm_Encrypt
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用要加密的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要加密的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 resultPtr(类型) VoidPtr
参数 resultPtr(方向) IN
参数 resultPtr(注释) 引用密文的数据。
参数 resultPtr(变体) --
参数 resultLengthPtr(类型) Csm_LengthPtr
参数 resultLengthPtr(方向) IN
参数 resultLengthPtr(注释) 包含密文的长度(以字节为单位)。
参数 resultLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.2.5. CsmDecrypt

客户端-服务器接口 CsmDecrypt:

名称 CsmDecrypt
注释 用于执行解密的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 Decrypt:

操作 Decrypt
注释 解密给定的数据,并将明文存储到 resultBuffer 指针所指向的内存位置。
映射到 API Csm_Decrypt
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用要解密的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要解密的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 resultPtr(类型) VoidPtr
参数 resultPtr(方向) IN
参数 resultPtr(注释) 引用解密后的明文的数据。
参数 resultPtr(变体) --
参数 resultLengthPtr(类型) Csm_LengthPtr
参数 resultLengthPtr(方向) IN
参数 resultLengthPtr(注释) 包含解密后的明文的长度(以字节为单位)。
参数 resultLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.2.6. CsmAEADEncrypt

客户端-服务器接口 CsmAEADEncrypt:

名称 CsmAEADEncrypt
注释 用于执行 AEAD 加密的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 AEADEncrypt:

操作 AEADEncrypt
注释 AEAD 加密的流式处理方式。
映射到 API Csm_AEADEncrypt
变体 --
参数 plaintextPtr(类型) ConstVoidPtr
参数 plaintextPtr(方向) IN
参数 plaintextPtr(注释) 引用要用 AEAD 加密的明文。
参数 plaintextPtr(变体) --
参数 plaintextLength(类型) uint32
参数 plaintextLength(方向) IN
参数 plaintextLength(注释) 此元素包含要用 AEAD 加密的明文的长度(以字节为单位)。
参数 plaintextLength(变体) --
参数 associatedDataPtr(类型) ConstVoidPtr
参数 associatedDataPtr(方向) IN
参数 associatedDataPtr(注释) 引用头部的数据(头部不参与加密,但参与身份验证)。
参数 associatedDataPtr(变体) --
参数 associatedDataLength(类型) uint32
参数 associatedDataLength(方向) IN
参数 associatedDataLength(注释) 包含头部数据的长度(以字节为单位)。
参数 associatedDataLength(变体) --
参数 ciphertextPtr(类型) VoidPtr
参数 ciphertextPtr(方向) IN
参数 ciphertextPtr(注释) 引用 AEAD 密文的数据。
参数 ciphertextPtr(变体) --
参数 ciphertextLengthPtr(类型) Csm_LengthPtr
参数 ciphertextLengthPtr(方向) IN
参数 ciphertextLengthPtr(注释) 包含 AEAD 密文数据的长度(以字节为单位)。
参数 ciphertextLengthPtr(变体) --
参数 tagPtr(类型) VoidPtr
参数 tagPtr(方向) IN
参数 tagPtr(注释) 引用 Tag 的数据。
参数 tagPtr(变体) --
参数 tagLengthPtr(类型) Csm_LengthPtr
参数 tagLengthPtr(方向) IN
参数 tagLengthPtr(注释) 包含 Tag 数据的长度(以字节为单位)。
参数 tagLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED
7.5.2.7. CsmAEADDecrypt

客户端-服务器接口 CsmAEADDecrypt:

名称 CsmAEADDecrypt
注释 用于执行 AEAD 解密的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 AEADDecrypt:

操作 AEADDecrypt
注释 AEAD 解密的流式处理方式。
映射到 API Csm_AEADDecrypt
变体 --
参数 ciphertextPtr(类型) ConstVoidPtr
参数 ciphertextPtr(方向) IN
参数 ciphertextPtr(注释) 引用要用 AEAD 解密的密文。
参数 ciphertextPtr(变体) --
参数 ciphertextLength(类型) uint32
参数 ciphertextLength(方向) IN
参数 ciphertextLength(注释) 包含要用 AEAD 解密的密文的长度(以字节为单位)。
参数 ciphertextLength(变体) --
参数 associatedDataPtr(类型) ConstVoidPtr
参数 associatedDataPtr(方向) IN
参数 associatedDataPtr(注释) 引用头部的数据(头部不参与加密,但参与身份验证)。
参数 associatedDataPtr(变体) --
参数 associatedDataLength(类型) uint32
参数 associatedDataLength(方向) IN
参数 associatedDataLength(注释) 包含头部数据的长度(以字节为单位)。
参数 associatedDataLength(变体) --
参数 tagPtr(类型) ConstVoidPtr
参数 tagPtr(方向) IN
参数 tagPtr(注释) 引用 Tag 的数据。
参数 tagPtr(变体) --
参数 tagLength(类型) uint32
参数 tagLength(方向) IN
参数 tagLength(注释) 包含 Tag 数据的长度(以位为单位)。
参数 tagLength(变体) --
参数 plaintextPtr(类型) VoidPtr
参数 plaintextPtr(方向) IN
参数 plaintextPtr(注释) 引用解密后的 AEAD 明文的数据。
参数 plaintextPtr(变体) --
参数 plaintextLengthPtr(类型) Csm_LengthPtr
参数 plaintextLengthPtr(方向) IN
参数 plaintextLengthPtr(注释) 包含解密后的 AEAD 明文数据的长度(以字节为单位)。
参数 plaintextLengthPtr(变体) --
参数 verifyPtr(类型) Csm_VerifyResultPtr
参数 verifyPtr(方向) IN
参数 verifyPtr(注释) 包含验证结果。
参数 verifyPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED
7.5.2.8. CsmSignatureGenerate

客户端-服务器接口 CsmSignatureGenerate:

名称 CsmSignatureGenerate
注释 用于生成签名的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 SignatureGenerate:

操作 SignatureGenerate
注释 用于生成签名的操作。
映射到 API Csm_SignatureGenerate
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用要从中生成签名的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含要从中生成签名的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 resultPtr(类型) VoidPtr
参数 resultPtr(方向) IN
参数 resultPtr(注释) 引用签名。
参数 resultPtr(变体) --
参数 resultLengthPtr(类型) Csm_LengthPtr
参数 resultLengthPtr(方向) IN
参数 resultLengthPtr(注释) 包含签名的长度(以字节为单位)。
参数 resultLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.2.9. CsmSignatureVerify

客户端-服务器接口 CsmSignatureVerify:

名称 CsmSignatureVerify
注释 用于执行签名验证的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 SignatureVerify:

操作 SignatureVerify
注释 用于验证签名的操作。
映射到 API Csm_SignatureVerify
变体 --
参数 dataPtr(类型) ConstVoidPtr
参数 dataPtr(方向) IN
参数 dataPtr(注释) 引用需验证其签名的数据。
参数 dataPtr(变体) --
参数 dataLength(类型) uint32
参数 dataLength(方向) IN
参数 dataLength(注释) 包含需验证其签名的数据的长度(以字节为单位)。
参数 dataLength(变体) --
参数 comparePtr(类型) ConstVoidPtr
参数 comparePtr(方向) IN
参数 comparePtr(注释) 引用要验证的签名。
参数 comparePtr(变体) --
参数 compareLength(类型) uint32
参数 compareLength(方向) IN
参数 compareLength(注释) 包含要验证的签名的长度(以字节为单位)。
参数 compareLength(变体) --
参数 verifyPtr(类型) Csm_VerifyResultPtr
参数 verifyPtr(方向) IN
参数 verifyPtr(注释) 包含验证结果。
参数 verifyPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.2.10. CsmRandomGenerate

客户端-服务器接口 CsmRandomGenerate:

名称 CsmRandomGenerate
注释 用于执行随机数生成的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 4 CRYPTO_E_ENTROPY_EXHAUSTED 请求失败,随机数生成器的熵已耗尽。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 RandomGenerate:

操作 RandomGenerate
注释 生成一个随机数,并将其存储到 resultBuffer 指针所指向的内存位置。
映射到 API Csm_RandomGenerate
变体 --
参数 resultPtr(类型) VoidPtr
参数 resultPtr(方向) IN
参数 resultPtr(注释) 引用随机数。
参数 resultPtr(变体) --
参数 resultLengthPtr(类型) Csm_LengthPtr
参数 resultLengthPtr(方向) IN
参数 resultLengthPtr(注释) 包含随机数数据的长度(以字节为单位)。
参数 resultLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_ENTROPY_EXHAUSTED
7.5.2.11. CsmCustom

客户端-服务器接口 CsmCustom:

名称 CsmCustom
注释 用于执行自定义加密操作的异步处理接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 14 CRYPTO_E_CUSTOM_ERROR --

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 CustomService:

操作 CustomService
注释 用于执行自定义加密作业的操作。
映射到 API Csm_CustomService
变体 --
参数 targetKeyId(类型) uint32
参数 targetKeyId(方向) IN
参数 targetKeyId(注释) --
参数 targetKeyId(变体) --
参数 inputPtr(类型) ConstVoidPtr
参数 inputPtr(方向) IN
参数 inputPtr(注释) --
参数 inputPtr(变体) --
参数 inputLength(类型) uint32
参数 inputLength(方向) IN
参数 inputLength(注释) --
参数 inputLength(变体) --
参数 secondaryInputPtr(类型) ConstVoidPtr
参数 secondaryInputPtr(方向) IN
参数 secondaryInputPtr(注释) --
参数 secondaryInputPtr(变体) --
参数 secondaryInputLength(类型) uint32
参数 secondaryInputLength(方向) IN
参数 secondaryInputLength(注释) --
参数 secondaryInputLength(变体) --
参数 tertiaryInputPtr(类型) ConstVoidPtr
参数 tertiaryInputPtr(方向) IN
参数 tertiaryInputPtr(注释) --
参数 tertiaryInputPtr(变体) --
参数 tertiaryInputLength(类型) uint32
参数 tertiaryInputLength(方向) IN
参数 tertiaryInputLength(注释) --
参数 tertiaryInputLength(变体) --
参数 outputPtr(类型) VoidPtr
参数 outputPtr(方向) IN
参数 outputPtr(注释) --
参数 outputPtr(变体) --
参数 outputLengthPtr(类型) uint32*
参数 outputLengthPtr(方向) IN
参数 outputLengthPtr(注释) --
参数 outputLengthPtr(变体) --
参数 secondaryOutputPtr(类型) VoidPtr
参数 secondaryOutputPtr(方向) IN
参数 secondaryOutputPtr(注释) --
参数 secondaryOutputPtr(变体) --
参数 secondaryOutputLengthPtr(类型) uint32*
参数 secondaryOutputLengthPtr(方向) IN
参数 secondaryOutputLengthPtr(注释) --
参数 secondaryOutputLengthPtr(变体) --
参数 verifyPtr(类型) Crypto_VerifyResultType*
参数 verifyPtr(方向) IN
参数 verifyPtr(注释) --
参数 verifyPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_JOB_CANCELED CRYPTO_E_CUSTOM_ERROR

7.5.3. 客户端-服务器接口(密钥管理)

7.5.3.1. CsmJobKeySetValid

客户端-服务器接口 CsmJobKeySetValid:

名称 CsmJobKeySetValid
注释 用于设置密钥有效的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 KeySetValid:

操作 KeySetValid
注释 用于设置密钥有效的操作。
映射到 API Csm_JobKeySetValid
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY
7.5.3.2. CsmJobKeySetInvalid

客户端-服务器接口 CsmJobKeySetInvalid:

名称 CsmJobKeySetInvalid
注释 用于将密钥状态设置为无效的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 KeySetInvalid:

操作 KeySetInvalid
注释 用于将密钥状态设置为无效的操作。
映射到 API Csm_JobKeySetInvalid
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY
7.5.3.3. CsmJobRandomSeed

客户端-服务器接口 CsmJobRandomSeed:

名称 CsmJobRandomSeed
注释 用于随机种子操作的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 RandomSeed:

操作 RandomSeed
注释 使用随机种子服务。
映射到 API Csm_JobRandomSeed
变体 --
参数 seedPtr(类型) Csm_DataPtr
参数 seedPtr(方向) IN
参数 seedPtr(注释) 保存将用于随机种子初始化的数据。
参数 seedPtr(变体) --
参数 seedLength(类型) uint32
参数 seedLength(方向) IN
参数 seedLength(注释) 包含种子的长度(以字节为单位)。
参数 seedLength(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID
7.5.3.4. CsmJobKeyGenerate

客户端-服务器接口 CsmJobKeyGenerate:

名称 CsmJobKeyGenerate
注释 用于执行密钥生成的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 KeyGenerate:

操作 KeyGenerate
注释 生成新的密钥材料,并将其存储到 keyId 所标识的密钥中。
映射到 API Csm_JobKeyGenerate
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY
7.5.3.5. CsmJobKeyDerive

客户端-服务器接口 CsmJobKeyDerive:

名称 CsmJobKeyDerive
注释 用于执行密钥派生的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 6 CRYPTO_E_KEY_READ_FAIL 服务请求失败,因为读访问被拒绝。
可能的错误 7 CRYPTO_E_KEY_WRITE_FAIL 服务请求失败,因为写访问被拒绝。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 10 CRYPTO_E_KEY_SIZE_MISMATCH 请求失败,因为密钥元素不可部分访问,且提供的密钥元素长度对该密钥元素而言过短或过长。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 KeyDerive:

操作 KeyDerive
注释 通过使用给定密钥中的密钥元素来派生新密钥。给定密钥包含密码和盐值的密钥元素。派生出的密钥存储在 targetCryptoKeyId 所标识密钥的 id 为 1 的密钥元素中。
映射到 API Csm_JobKeyDerive
变体 --
参数 targetKeyId(类型) uint32
参数 targetKeyId(方向) IN
参数 targetKeyId(注释) 保存用于存储派生密钥的密钥标识符。
参数 targetKeyId(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_READ_FAIL CRYPTO_E_KEY_WRITE_FAIL CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_SIZE_MISMATCH CRYPTO_E_KEY_EMPTY
7.5.3.6. CsmJobKeyExchangeCalcPubVal

客户端-服务器接口 CsmJobKeyExchangeCalcPubVal:

名称 CsmJobKeyExchangeCalcPubVal
注释 用于执行密钥交换公钥值计算的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 KeyExchangeCalcPubVal:

操作 KeyExchangeCalcPubVal
注释 为密钥交换计算当前用户的公钥值,并将公钥存储到提供的缓冲区中。
映射到 API Csm_JobKeyExchangeCalcPubVal
变体 --
参数 publicValuePtr(类型) VoidPtr
参数 publicValuePtr(方向) IN
参数 publicValuePtr(注释) 包含指向将存储公钥值的内存位置的指针。
参数 publicValuePtr(变体) --
参数 publicValueLengthPtr(类型) Csm_LengthPtr
参数 publicValueLengthPtr(方向) IN
参数 publicValueLengthPtr(注释) 保存指向存储公钥值长度(以字节为单位)的内存位置的指针。调用此函数时,该参数需包含 publicValuePtr 所提供缓冲区的大小(以字节为单位)。当请求完成后,将存储返回值的实际长度。
参数 publicValueLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY
7.5.3.7. CsmJobKeyExchangeCalcSecret

客户端-服务器接口 CsmJobKeyExchangeCalcSecret:

名称 CsmJobKeyExchangeCalcSecret
注释 用于执行密钥交换共享密钥计算的接口。
IsService true
变体 Primitive = {ecuc(Csm/CsmPrimitives.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。
可能的错误 9 CRYPTO_E_KEY_NOT_VALID 请求失败,密钥无效。
可能的错误 12 CRYPTO_E_JOB_CANCELED 请求失败,因为作业已被取消。
可能的错误 13 CRYPTO_E_KEY_EMPTY 服务请求失败,因为源密钥元素未初始化。

操作 CancelJob:

操作 CancelJob
注释 取消作业。
映射到 API Csm_CancelJob
变体 --
可能的错误 E_OK E_NOT_OK CRYPTO_E_JOB_CANCELED

操作 KeyExchangeCalcSecret:

操作 KeyExchangeCalcSecret
注释 使用 keyId 所标识密钥的密钥材料和伙伴公钥为密钥交换计算共享密钥。共享密钥作为密钥元素存储在同一密钥中。
映射到 API Csm_JobKeyExchangeCalcSecret
变体 --
参数 partnerPublicValuePtr(类型) Csm_KeyDataType_{Crypto}
参数 partnerPublicValuePtr(方向) IN
参数 partnerPublicValuePtr(注释) 保存指向包含伙伴公钥值的内存位置的指针。
参数 partnerPublicValuePtr(变体) --
参数 partnerPublicValueLength(类型) uint32
参数 partnerPublicValueLength(方向) IN
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY CRYPTO_E_KEY_NOT_VALID CRYPTO_E_KEY_EMPTY

7.5.4. 客户端-服务器接口(上下文服务)

7.5.4.1. CsmContextService_{Job}

客户端-服务器接口 CsmContextService_{Job}:

名称 CsmContextService_{Job}
注释 用于上下文数据操作的接口。
IsService true
变体 {ecuc(Csm/CsmJobs/CsmJob.CsmJobServiceInterfaceContextUsePort)} == CRYPTO_USE_PORT Job = {ecuc(Csm/CsmJobs/CsmJob.SHORT-NAME)}
可能的错误 0 E_OK 操作成功
可能的错误 1 E_NOT_OK 操作失败
可能的错误 2 CRYPTO_E_BUSY 请求失败,服务仍处于忙状态。

操作 RestoreContextJob:

操作 RestoreContextJob
注释 恢复作业上下文。
映射到 API Csm_RestoreContextJob
变体 --
参数 contextBuffer(类型) VoidPtr
参数 contextBuffer(方向) IN
参数 contextBuffer(注释) 提供作为 [DATA_REFERENCE] 的上下文缓冲区。
参数 contextBuffer(变体) --
参数 contextBufferLength(类型) uint32
参数 contextBufferLength(方向) IN
参数 contextBufferLength(注释) 包含上下文缓冲区的长度(以字节为单位)。
参数 contextBufferLength(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY

操作 SaveContextJob:

操作 SaveContextJob
注释 将作业上下文保存到提供的缓冲区。
映射到 API Csm_SaveContextJob
变体 --
参数 contextBufferPtr(类型) VoidPtr
参数 contextBufferPtr(方向) IN
参数 contextBufferPtr(注释) 提供作为 [DATA_REFERENCE] 的上下文缓冲区。
参数 contextBufferPtr(变体) --
参数 contextBufferLengthPtr(类型) uint32
参数 contextBufferLengthPtr(方向) IN
参数 contextBufferLengthPtr(注释) 包含上下文缓冲区的长度(以字节为单位),作为 [DATA_REFERENCE]。
参数 contextBufferLengthPtr(变体) --
可能的错误 E_OK E_NOT_OK CRYPTO_E_BUSY

7.5.5. 客户端-服务器接口回调

7.5.5.1. CallbackNotification

客户端-服务器接口 CallbackNotification:

名称 CallbackNotification
注释 用于回调通知的接口。
IsService true
变体 --
可能的错误 --

操作 CallbackNotification:

操作 CallbackNotification
注释 以返回值通知应用程序作业已完成。
映射到 API Csm_CallbackNotification
变体 --
参数 result(类型) Crypto_ResultType
参数 result(方向) IN
参数 result(注释) 需返回给应用程序的返回值。
参数 result(变体) --
可能的错误 --

7.5.6. 实现数据类型

7.5.6.1. Crypto_OperationModeType

枚举类型(Enumeration)。枚举应执行的操作。该枚举由位掩码构成,其中第一位表示 "Start",第二位表示 "Update",第三位表示 "Finish"。取值范围:

枚举值 值 说明
CRYPTO_OPERATIONMODE_START 0x01 操作模式为 "Start"。作业的状态应被复位,即:删除之前的输入数据和中间结果。
CRYPTO_OPERATIONMODE_UPDATE 0x02 操作模式为 "Update"。用于计算中间结果。
CRYPTO_OPERATIONMODE_STREAMSTART 0x03 操作模式为 "Stream Start"。"Start" 和 "Update" 的组合,用于流式处理。
CRYPTO_OPERATIONMODE_FINISH 0x04 操作模式为 "Finish"。应完成计算。
CRYPTO_OPERATIONMODE_SINGLECALL 0x07 操作模式为 "Single Call"。"Start"、"Update" 和 "Finish" 的组合。
CRYPTO_OPERATIONMODE_SAVE_CONTEXT 0x08 操作模式为 "Save workspace context"。上下文数据应由加密驱动程序提供给应用程序。
CRYPTO_OPERATIONMODE_RESTORE_CONTEXT 0x10 操作模式为 "Restore workspace context"。应用程序提供之前存储的上下文数据,加密驱动程序应恢复内部工作区。

变体:-。可通过 Rte_Csm_Type.h 获得。

7.5.6.2. Crypto_VerifyResultType

枚举类型(Enumeration)。验证操作结果类型的枚举。取值范围:

枚举值 值 说明
CRYPTO_E_VER_OK 0x00 验证结果为 "true",即:两个被比较的元素相同。该返回码应以值 "0" 给出。
CRYPTO_E_VER_NOT_OK 0x01 验证结果为 "false",即:两个被比较的元素不相同。该返回码应以值 "1" 给出。

变体:-。可通过 Rte_Csm_Type.h 获得。

7.5.6.3. Csm_KeyDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储所考虑密钥的任何密钥元素。大小:max({ecuc(Csm/CsmKeys/CsmKey/CsmKeyRef->CryIfKey/CryIfKeyRef->CryptoKey/CryptoKeyTypeRef->CryptoKeyType/CryptoKeyElementRef->CryptoKeyElement/CryptoKeyElementSize) Elements。变体:Crypto = {ecuc(Csm/CsmKeys/CsmKey.SHORT-NAME)}。可通过 Rte_Csm_Type.h 获得。

7.5.6.4. Crypto_ResultType

枚举类型(Enumeration)。用于 Cryptostack 的 Std_ReturnType 返回值。取值范围:

枚举值 值 说明
E_OK 0x00 服务请求成功。
E_NOT_OK 0x01 服务请求失败。
CRYPTO_E_BUSY 0x02 服务请求失败,因为服务仍处于忙状态。
CRYPTO_E_ENTROPY_EXHAUSTED 0x04 服务请求失败,因为随机数生成器的熵已耗尽。
CRYPTO_E_KEY_READ_FAIL 0x06 服务请求失败,因为读访问被拒绝。
CRYPTO_E_KEY_WRITE_FAIL 0x07 服务请求失败,因为写访问失败。
CRYPTO_E_KEY_NOT_AVAILABLE 0x08 服务请求失败,因为密钥不可用。
CRYPTO_E_KEY_NOT_VALID 0x09 服务请求失败,因为密钥无效。
CRYPTO_E_KEY_SIZE_MISMATCH 0x0A 服务请求失败,因为密钥大小不匹配。
CRYPTO_E_JOB_CANCELED 0x0C 服务请求失败,因为作业已被取消。
CRYPTO_E_KEY_EMPTY 0x0D 服务请求失败,因为源密钥元素未初始化。

变体:-。可通过 Rte_Csm_Type.h 获得。

7.5.6.5. Csm_HashDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要进行哈希计算的数据。大小:{ecuc(Csm/CsmPrimitives/CsmHash/CsmHashConfig/CsmHashDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.6. Csm_HashResultType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储哈希的数据。大小:{ecuc(Csm/CsmPrimitives/CsmHash/CsmHashConfig/CsmHashResultLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.7. Csm_MacGenerateDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要从中生成 MAC 的数据。大小:{ecuc(Csm/CsmPrimitives/CsmMacGenerate/CsmMacGenerateConfig/CsmMacGenerateDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.8. Csm_MacGenerateResultType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储 MAC 的数据。大小:{ecuc(Csm/CsmPrimitives/CsmMacGenerate/CsmMacGenerateConfig/CsmMacGenerateResultLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.9. Csm_MacVerifyDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储需验证其 MAC 的数据。大小:{ecuc(Csm/CsmPrimitives/CsmMacVerify/CsmMacVerifyConfig/CsmMacVerifyDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.10. Csm_MacVerifyCompareType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要验证的 MAC。大小:{ecuc(Csm/CsmPrimitives/CsmMacVerify/CsmMacVerifyConfig/CsmMacVerifyCompareLength}/8 Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.11. Csm_EncryptDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要加密的数据。大小:{ecuc(Csm/CsmPrimitives/CsmEncrypt/CsmEncryptConfig/CsmEncryptDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.12. Csm_EncryptResultType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储密文的数据。大小:{ecuc(Csm/CsmPrimitives/CsmEncrypt/CsmEncryptConfig/CsmEncryptResultMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.13. Csm_DecryptDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要解密的数据。大小:{ecuc(Csm/CsmPrimitives/CsmDecrypt/CsmDecryptConfig/CsmDecryptDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.14. Csm_DecryptResultType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储解密后的明文的数据。大小:{ecuc(Csm/CsmPrimitives/CsmDecrypt/CsmDecryptConfig/CsmDecryptResultMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.15. Csm_AEADEncryptPlaintextType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要用 AEAD 加密的明文。大小:{ecuc(Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig/CsmAEADEncryptPlaintextMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.16. Csm_AEADEncryptAssociatedDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储头部的数据。大小:{ecuc(Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig/CsmAEADEncryptAssociatedDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.17. Csm_AEADEncryptCiphertextType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储密文的数据。大小:{ecuc(Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig/CsmAEADEncryptCiphertextMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.18. Csm_AEADEncryptTagType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储 Tag 的数据。大小:{ecuc(Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig/CsmAEADEncryptTagLength)} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.19. Csm_AEADDecryptCiphertextType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要用 AEAD 解密的密文。大小:{ecuc(Csm/CsmAEADDecrypt/CsmAEADDecryptConfig/CsmAEADDecryptCiphertextMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.20. Csm_AEADDecryptAssociatedDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储头部的数据。大小:{ecuc(Csm/CsmAEADDecrypt/CsmAEADDecryptConfig/CsmAEADDecryptAssociatedDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.21. Csm_AEADDecryptTagType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储 Tag 的数据。大小:(({ecuc(Csm/CsmPrimitives/CsmAEADDecrypt/CsmAEADDecryptConfig/CsmAEADDecryptTagLength)}+7)/8) Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.22. Csm_AEADDecryptPlaintextType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储明文的数据。大小:{ecuc(Csm/CsmPrimitives/CsmAEADDecrypt/CsmAEADDecryptConfig/CsmAEADDecryptPlaintextMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.23. Csm_SignatureGenerateDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要从中生成签名的数据。大小:{ecuc(Csm/CsmPrimitives/CsmSignatureGenerate/CsmSignatureGenerateConfig/CsmSignatureGenerateDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.24. Csm_SignatureGenerateResultType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储签名及其长度。大小:{ecuc(Csm/CsmPrimitives/CsmSignatureGenerate/CsmSignatureGenerateConfig/CsmSignatureGenerateResultLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.25. Csm_SignatureVerifyDataType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储需验证其签名的数据。大小:{ecuc(Csm/CsmPrimitives/CsmSignatureVerify/CsmSignatureVerifyConfig/CsmSignatureVerifyDataMaxLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.26. Csm_SignatureVerifyCompareType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储要验证的签名。大小:{ecuc(Csm/CsmPrimitives/CsmSignatureVerify/CsmSignatureVerifyConfig/CsmSignatureVerifyCompareLength} Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.27. Csm_RandomGenerateResultType_{Crypto}

数组(Array),元素类型 uint8。数组长度足以存储随机数的数据。大小:{ecuc(Csm/CsmPrimitives/CsmRandomGenerate/CsmRandomGenerateConfig/CsmRandomGenerateResultLength) Elements。变体:Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME}。可通过 Rte_Csm_Type.h 获得。

7.5.6.28. Csm_LengthPtr

指针类型(Pointer),目标类型 uint32*。类别为 DATA_REFERENCE 的 ImplementationDataType,指针目标为 uint32,以便能够异步返回长度。变体:-。可通过 Rte_Csm_Type.h 获得。

7.5.6.29. Csm_VerifyResultPtr

指针类型(Pointer),目标类型 Crypto_VerifyResultType*。类别为 DATA_REFERENCE 的 ImplementationDataType,指针目标为 Crypto_VerifyResultType,以便能够异步返回验证结果。变体:-。可通过 Rte_Csm_Type.h 获得。

7.5.6.30. Crypto_KeyStatusType

枚举类型(Enumeration)。密钥状态的枚举。取值范围:

枚举值 值 说明
CRYPTO_KEYSTATUS_INVALID 0x00 密钥状态为无效(例如:在 Csm_KeyElementSet 之后未调用 Csm_KeySetValid)。
CRYPTO_KEYSTATUS_VALID 0x01 密钥状态为有效(例如:状态已由 Csm_KeySetValid 成功设置)。
CRYPTO_KEYSTATUS_UPDATE_IN_PROGRESS 0x02 表示分配给该密钥的 NV RAM Block 当前正在被更新。更新操作正在进行中,尚未由 NVM 完成。

变体:-。可通过 Rte_Csm_Type.h 获得。

7.5.7. 端口

7.5.7.1. CsmKey_{Key}

端口 CsmKey_{Key}:

名称 CsmKey_{Key}
Kind ProvidedPort
接口 CsmKeyManagement_{Key}
描述 与特定加密密钥相关的端口,用于同步执行密钥管理功能。
端口定义的参数值 类型 uint32,值 {ecuc(Csm/CsmKeys/CsmKey/CsmKeyId)}
变体 {ecuc(Csm/CsmKeys/CsmKey.CsmKeyUsePort)} == TRUE Key = {ecuc(Csm/CsmKeys/CsmKey.SHORT-NAME)}
7.5.7.2. CsmJob_{Job}(CRYPTO_USE_PORT)

端口 CsmJob_{Job}:

名称 CsmJob_{Job}
Kind ProvidedPort
接口 CsmHash_{PrimitiveCfg}, CsmMacGenerate_{PrimitiveCfg}, CsmMacVerify_{PrimitiveCfg}, CsmEncrypt_{PrimitiveCfg}, CsmDecrypt_{PrimitiveCfg}, CsmAEADEncrypt_{PrimitiveCfg}, CsmAEADDecrypt_{PrimitiveCfg}, CsmSignatureGenerate_{PrimitiveCfg}, CsmSignatureVerify_{PrimitiveCfg}, CsmRandomGenerate_{PrimitiveCfg}
描述 与特定加密作业相关的端口,用于同步执行所分配的加密计算。
端口定义的参数值 类型 uint32,值 {ecuc(Csm/CsmJobs/CsmJob.CsmJobId)}
端口定义的参数值 类型 Crypto_OperationModeType,值 CRYPTO_OPERATIONMODE_SINGLECALL
变体 ({ecuc(Csm/CsmJobs/CsmJob.CsmJobInterfaceUsePort)} == CRYPTO_USE_PORT) && ({ecuc(Csm/CsmJobs/CsmJob.CsmJobPrimitiveRef)} != NULL) Job = {ecuc(Csm/CsmJobs/CsmJob.SHORT-NAME)} Primitive = {ecuc(Csm/CsmJobs/CsmJob.CsmJobPrimitiveRef->CsmPrimitives/*.SHORT-NAME)}
7.5.7.3. CsmJob_{Job}(CRYPTO_USE_PORT_OPTIMIZED)

端口 CsmJob_{Job}:

名称 CsmJob_{Job}
Kind ProvidedPort
接口 CsmCustom, CsmJobKeySetInvalid, CsmHash, CsmMacGenerate, CsmMacVerify, CsmEncrypt, CsmDecrypt, CsmAEADEncrypt, CsmAEADDecrypt, CsmSignatureGenerate, CsmSignatureVerify, CsmRandomGenerate, CsmJobKeyDerive, CsmJobKeyExchangeCalcPubVal, CsmJobKeyExchangeCalcSecret, CsmJobKeyGenerate, CsmJobKeySetValid, CsmJobRandomSeed
描述 与特定加密作业相关的端口,用于异步执行所分配的加密计算。
端口定义的参数值 类型 uint32,值 {ecuc(Csm/CsmJobs/CsmJob.CsmJobId)}
端口定义的参数值 类型 Crypto_OperationModeType,值 CRYPTO_OPERATIONMODE_SINGLECALL
变体 ({ecuc(Csm/CsmJobs/CsmJob.CsmJobInterfaceUsePort)} == CRYPTO_USE_PORT_OPTIMIZED) && ({ecuc(Csm/CsmJobs/CsmJob.CsmJobPrimitiveRef)} != NULL) Job = {ecuc(Csm/CsmJobs/CsmJob.SHORT-NAME)} Primitive = {ecuc(Csm/CsmJobs/CsmJob.CsmJobPrimitiveRef->CsmPrimitives/*.SHORT-NAME)}
7.5.7.4. CallbackNotification_{Job}

端口 CallbackNotification_{Job}:

名称 CallbackNotification_{Job}
Kind RequiredPort
接口 CallbackNotification
描述 用于回调通知的端口。
变体 ({ecuc(Csm/CsmJobs/CsmJob.CsmProcessingMode)}==CRYPTO_PROCESSING_ASYN)&&(CsmJob/CsmJobInterfaceUsePort!=CRYPTO_USE_FNC) Job = {ecuc(Csm/CsmJobs/CsmJob.SHORT-NAME)}
7.5.7.5. CsmContext_{Job}

端口 CsmContext_{Job}:

名称 CsmContext_{Job}
Kind ProvidedPort
接口 CsmContextService_{Job}
描述 与上下文数据操作相关的端口。
端口定义的参数值 类型 uint32,值 {ecuc(Csm/CsmJobs/CsmJob.CsmJobId)}
变体 {ecuc(Csm/CsmJobs/CsmJob.CsmJobServiceInterfaceContextUsePort)} == CRYPTO_USE_PORT Job = {ecuc(Csm/CsmJobs/CsmJob.SHORT-NAME)}

8. 时序图

以下时序图重点描述 CSM 模块与软件组件之间以及与 ECU 状态管理器之间的交互。

8.1. 异步调用

下图(异步调用时序图)展示了异步执行的请求的函数调用序列示例。异步函数的结果可以在异步通知(调用已配置的回调函数)之后获取。

Figure9_1

8.2. 同步调用

下图(同步调用时序图)展示了在调度器参与下同步执行的请求的函数调用序列示例。

Figure9_2

9. 配置规范

本章总体上定义了配置参数及其到容器中的聚类。为支持该规范,第 9.1 章描述了基础知识,还规定了参数规范所应使用的模板(表)。

第 9.1 章规定了模块 CSM 的结构(容器)和参数。

第 9.2 章规定了模块 CSM 的发布信息。

9.1. 容器和配置参数

有关详细信息,请参阅 SWS_BSWGeneral 的第 10.1 章"配置规范介绍"。

以下各节汇总了所有配置参数。各参数的详细含义见第 6 章和第 7 章。

Figure10_1

9.1.1. Csm

SWS 条目 [ECUC_Csm_00818]
模块名称 Csm
描述 Csm(CryptoServiceManager,加密服务管理器)模块的配置。
Post-Build 变体支持 false
支持的配置变体 VARIANT-PRE-COMPILE
容器名称 多重性 作用域/依赖
CsmCallbacks 0..1 回调函数配置的容器。
CsmGeneral 1 通用配置选项的容器。
CsmInOutRedirections 0..1 CSM 重定向配置的配置。
CsmJobs 0..1 CSM 作业配置的容器。
CsmKeys 0..1 CSM 密钥配置的容器。
CsmMainFunction 0..* 此容器的每个元素定义一个 Csm_MainFunction 实例。对于需实例化 Csm 模块的每个分区,需至少配置一个 MainFunction 实例。
CsmPrimitives 0..* CsmPrimitives 配置的容器。
CsmQueues 0..1 CSM 队列配置的容器。

Figure10_2

9.1.2. CsmGeneral

SWS 条目 [ECUC_Csm_00002]
容器名称 CsmGeneral
父容器 Csm
描述 通用配置选项的容器。
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00001]
参数名称 CsmDevErrorDetect
父容器 CsmGeneral
描述 开启或关闭开发错误检测和通知。true:启用检测和通知。false:禁用检测和通知。
多重性 1
类型 EcucBooleanParamDef
默认值 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00003]
参数名称 CsmVersionInfoApi
父容器 CsmGeneral
描述 预处理器开关,用于启用和禁用 API Csm_GetVersionInfo() 的可用性。True:API Csm_GetVersionInfo() 可用。False:API Csm_GetVersionInfo() 不可用。
多重性 1
类型 EcucBooleanParamDef
默认值 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_3

9.1.3. CsmMainFunction

SWS 条目 [ECUC_Csm_00279]
容器名称 CsmMainFunction
父容器 Csm
描述 此容器的每个元素定义一个 Csm_MainFunction 实例。对于需实例化 Csm 模块的每个分区,需至少配置一个 MainFunction 实例。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00113]
参数名称 CsmMainFunctionPeriod
父容器 CsmMainFunction
描述 以秒为单位指定 main 函数 Csm_MainFunction 的周期。
多重性 0..1
类型 EcucFloatParamDef
范围 ]0 .. INF[
默认值 -
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00280]
参数名称 CsmMainFunctionPartitionRef
父容器 CsmMainFunction
描述 引用相应的 CsmMainFunction 实例所分配到的 EcucPartition。
多重性 1
类型 对 EcucPartition 的引用
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_4

9.1.4. CsmJobs

SWS 条目 [ECUC_Csm_00112]
容器名称 CsmJobs
父容器 Csm
描述 CSM 作业配置的容器。
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
容器名称 多重性 作用域/依赖
CsmJob 1..* CSM 作业配置的容器。容器名称用作作业配置标识符的符号名。

9.1.5. CsmJob

SWS 条目 [ECUC_Csm_00118]
容器名称 CsmJob
父容器 CsmJobs
描述 CSM 作业配置的容器。容器名称用作作业配置标识符的符号名。
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00119]
参数名称 CsmJobId
父容器 CsmJob
描述 CSM 作业的标识符。实际配置的标识符集合应是连续且无间隙的。
多重性 1
类型 EcucIntegerParamDef(为此参数生成符号名)
范围 0 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00275]
参数名称 CsmJobInterfaceUsePort
父容器 CsmJob
描述 该作业是否需要 RTE 接口?
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_USE_FNC:不使用端口;CRYPTO_USE_PORT:使用端口;CRYPTO_USE_PORT_OPTIMIZED:使用 DATA_REFERENCE
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00120]
参数名称 CsmJobPriority
父容器 CsmJob
描述 作业的优先级。值越高,作业的优先级越高。
多重性 1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00327]
参数名称 CsmJobServiceInterfaceContextUsePort
父容器 CsmJob
描述 该作业是否需要用于上下文操作的 RTE 接口。
多重性 0..1
类型 EcucEnumerationParamDef
范围 CRYPTO_USE_FUNC:不使用端口;CRYPTO_USE_PORT:此操作使用端口
默认值 CRYPTO_USE_FUNC
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00276]
参数名称 CsmProcessingMode
父容器 CsmJob
描述 决定该作业应如何使用接口。同步处理返回时带有结果,而异步处理返回时不处理作业。调用者将通过相应的回调得到通知。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_PROCESSING_ASYNC:--;CRYPTO_PROCESSING_SYNC:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00263]
参数名称 CsmInOutRedirectionRef
父容器 CsmJob
描述 此参数引用所使用的重定向。
多重性 0..1
类型 对 CsmInOutRedirection 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00126]
参数名称 CsmJobKeyRef
父容器 CsmJob
描述 此参数引用 CsmPrimitive 应使用的密钥。不同的作业可以使用同一个 CsmKey。
多重性 1
类型 对 CsmKey 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 如果 CsmPrimitive 不需要密钥(例如进行哈希计算),则应引用一个虚拟密钥。
SWS 条目 [ECUC_Csm_00123]
参数名称 CsmJobPrimitiveCallbackRef
父容器 CsmJob
描述 此参数引用所使用的 CsmCallback。当加密作业完成时,会调用所引用的 CsmCallback。
多重性 0..1
类型 对 CsmCallback 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00122]
参数名称 CsmJobPrimitiveRef
父容器 CsmJob
描述 此参数引用所使用的 CsmPrimitive。不同的作业可以引用同一个 CsmPrimitive。所引用的 CsmPrimitive 提供实际加密例程的详细信息。
多重性 1
类型 对 CsmPrimitives 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00125]
参数名称 CsmJobQueueRef
父容器 CsmJob
描述 此参数引用队列。当底层加密驱动程序对象忙时使用该队列。该队列还引用所使用的通道。
多重性 1
类型 对 CsmQueue 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_5

9.1.6. CsmKeys

SWS 条目 [ECUC_Csm_00005]
容器名称 CsmKeys
父容器 Csm
描述 CSM 密钥配置的容器。
容器名称 多重性 作用域/依赖
CsmKey 0..* CSM 密钥配置的容器。容器名称用作密钥配置标识符的符号名。

9.1.7. CsmKey

SWS 条目 [ECUC_Csm_00014]
容器名称 CsmKey
父容器 CsmKeys
描述 CSM 密钥配置的容器。容器名称用作密钥配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00015]
参数名称 CsmKeyId
父容器 CsmKey
描述 CsmKey 的标识符。实际配置的标识符集合应是连续且无间隙的。
多重性 1
类型 EcucIntegerParamDef(为此参数生成符号名)
范围 0 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00127]
参数名称 CsmKeyUsePort
父容器 CsmKey
描述 该密钥是否需要 RTE 接口?True:此密钥使用 RTE 接口。False:此密钥不使用 RTE 接口。
多重性 1
类型 EcucBooleanParamDef
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00016]
参数名称 CsmKeyRef
父容器 CsmKey
描述 此参数引用所使用的 CryIfKey。底层 CryIfKey 引用加密驱动程序中的特定 CryptoKey。
多重性 1
类型 对 CryIfKey 的符号名引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_6

9.1.8. CsmQueues

SWS 条目 [ECUC_Csm_00007]
容器名称 CsmQueues
父容器 Csm
描述 CSM 队列配置的容器。
容器名称 多重性 作用域/依赖
CsmQueue 1..* CSM 队列配置的容器。队列有两个任务:1. 将由于底层硬件忙而无法处理的作业进行排队;2. 引用应使用的通道。

9.1.9. CsmQueue

SWS 条目 [ECUC_Csm_00032]
容器名称 CsmQueue
父容器 CsmQueues
描述 CSM 队列配置的容器。队列有两个任务:1. 将由于底层硬件忙而无法处理的作业进行排队;2. 引用应使用的通道。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00034]
参数名称 CsmQueueSize
父容器 CsmQueue
描述 CsmQueue 的大小。当作业因底层硬件忙而无法被处理时,作业将停留在已排定优先级的队列中。如果队列已满,下一个作业将被拒绝。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00033]
参数名称 CsmChannelRef
父容器 CsmQueue
描述 引用底层的加密接口通道。
多重性 1
类型 对 CryIfChannel 的符号名引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00281]
参数名称 CsmQueueMainFunctionRef
父容器 CsmQueue
描述 引用相应的 CsmQueue 所分配到的 CsmMainFunction。
多重性 1
类型 对 CsmMainFunction 的引用
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_7

9.1.10. CsmInOutRedirections

SWS 条目 [ECUC_Csm_00262]
容器名称 CsmInOutRedirections
父容器 Csm
描述 CSM 重定向配置的配置。
容器名称 多重性 作用域/依赖
CsmInOutRedirection 1..* CSM 重定向配置的容器。重定向使 CSM 作业可以将特定的密钥元素用作输入和/或输出。

9.1.11. CsmInOutRedirection

SWS 条目 [ECUC_Csm_00264]
容器名称 CsmInOutRedirection
父容器 CsmInOutRedirections
描述 CSM 重定向配置的容器。重定向使 CSM 作业可以将特定的密钥元素用作输入和/或输出。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00266]
参数名称 CsmInputKeyElementId
父容器 CsmInOutRedirection
描述 用作输入的密钥元素的标识符
多重性 0..1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00272]
参数名称 CsmOutputKeyElementId
父容器 CsmInOutRedirection
描述 用作输出的密钥元素的标识符。
多重性 0..1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00269]
参数名称 CsmSecondaryInputKeyElementId
父容器 CsmInOutRedirection
描述 用作辅助输入的密钥元素的标识符。
多重性 0..1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00274]
参数名称 CsmSecondaryOutputKeyElementId
父容器 CsmInOutRedirection
描述 用作辅助输出的密钥元素的标识符。
多重性 0..1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00270]
参数名称 CsmTertiaryInputKeyElementId
父容器 CsmInOutRedirection
描述 用作第三输入的密钥元素的标识符。
多重性 0..1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00265]
参数名称 CsmInputKeyRef
父容器 CsmInOutRedirection
描述 此参数引用用作输入的密钥。
多重性 0..1
类型 对 CsmKey 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00271]
参数名称 CsmOutputKeyRef
父容器 CsmInOutRedirection
描述 此参数引用用作输出的密钥。
多重性 0..1
类型 对 CsmKey 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00267]
参数名称 CsmSecondaryInputKeyRef
父容器 CsmInOutRedirection
描述 此参数引用用作辅助输入的密钥。
多重性 0..1
类型 对 CsmKey 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00273]
参数名称 CsmSecondaryOutputKeyRef
父容器 CsmInOutRedirection
描述 此参数引用用作辅助输出的密钥。
多重性 0..1
类型 对 CsmKey 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00268]
参数名称 CsmTertiaryInputKeyRef
父容器 CsmInOutRedirection
描述 此参数引用用作第三输入的密钥。
多重性 0..1
类型 对 CsmKey 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_8

9.1.12. CsmPrimitives

SWS 条目 [ECUC_Csm_00006]
容器名称 CsmPrimitives
父容器 Csm
描述 CsmPrimitives 配置的容器。
容器名称 多重性 作用域/依赖
CsmAEADDecrypt 0..1 AEAD 解密原语的配置
CsmAEADEncrypt 0..1 AEAD 加密原语的配置
CsmCustom 0..1 CSM 自定义加密原语配置的容器。
CsmDecrypt 0..1 解密原语的配置
CsmEncrypt 0..1 加密原语的配置
CsmHash 0..1 哈希配置的容器
CsmJobKeyDerive 0..1 KeyDerive 原语的配置
CsmJobKeyExchangeCalcPubVal 0..1 KeyExchangeCalcPubVal 原语的配置
CsmJobKeyExchangeCalcSecret 0..1 KeyExchangeCalcSecret 原语的配置
CsmJobKeyGenerate 0..1 KeyGenerate 原语的配置
CsmJobKeySetInvalid 0..1 KeySetInvalid 原语的配置
CsmJobKeySetValid 0..1 KeySetValid 原语的配置
CsmJobRandomSeed 0..1 RandomSeed 原语的配置
CsmMacGenerate 0..1 MacGenerate 原语的配置
CsmMacVerify 0..1 MacVerify 原语的配置
CsmRandomGenerate 0..1 RandomGenerate 原语的配置
CsmSignatureGenerate 0..1 SignatureGenerate 原语的配置
CsmSignatureVerify 0..1 SignatureVerify 原语的配置

Figure10_9

9.1.13. CsmHash

SWS 条目 [ECUC_Csm_00021]
容器名称 CsmHash
父容器 CsmPrimitives
描述 哈希配置的容器。
容器名称 多重性 作用域/依赖
CsmHashConfig 1 CSM 哈希配置的容器。容器名称用作密钥配置标识符的符号名。

9.1.14. CsmHashConfig

SWS 条目 [ECUC_Csm_00036]
容器名称 CsmHashConfig
父容器 CsmHash
描述 CSM 哈希配置的容器。容器名称用作密钥配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00038]
参数名称 CsmHashAlgorithmFamily
父容器 CsmHashConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--;CRYPTO_ALGOFAM_SM3:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00131]
参数名称 CsmHashAlgorithmMode
父容器 CsmHashConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
默认值 CRYPTO_ALGOMODE_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00181]
参数名称 CsmHashAlgorithmSecondaryFamily
父容器 CsmHashConfig
描述 确定加密服务所使用的算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00040]
参数名称 CsmHashDataMaxLength
父容器 CsmHashConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00130]
参数名称 CsmHashResultLength
父容器 CsmHashConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00282]
参数名称 CsmHashAlgorithmFamilyCustomRef
父容器 CsmHashConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmHashAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此参数。
SWS 条目 [ECUC_Csm_00284]
参数名称 CsmHashAlgorithmModeCustomRef
父容器 CsmHashConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmHashAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00283]
参数名称 CsmHashAlgorithmSecondaryFamilyCustomRef
父容器 CsmHashConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmHashSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_10

9.1.15. CsmMacGenerate

SWS 条目 [ECUC_Csm_00022]
容器名称 CsmMacGenerate
父容器 CsmPrimitives
描述 MacGenerate 原语的配置。
容器名称 多重性 作用域/依赖
CsmMacGenerateConfig 1 CSM MAC 生成接口配置的容器。容器名称用作 MAC 生成接口标识符的符号名。

9.1.16. CsmMacGenerateConfig

SWS 条目 [ECUC_Csm_00041]
容器名称 CsmMacGenerateConfig
父容器 CsmMacGenerate
描述 CSM MAC 生成接口配置的容器。容器名称用作 MAC 生成接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00188]
参数名称 CsmMacGenerateAlgorithmFamily
父容器 CsmMacGenerateConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_EEA3:--;CRYPTO_ALGOFAM_EIA3:--;CRYPTO_ALGOFAM_POLY1305:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_RNG:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--;CRYPTO_ALGOFAM_SIPHASH:--;CRYPTO_ALGOFAM_SM3:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00044]
参数名称 CsmMacGenerateAlgorithmKeyLength
父容器 CsmMacGenerateConfig
描述 MAC 密钥的大小(单位为字节)
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00189]
参数名称 CsmMacGenerateAlgorithmMode
父容器 CsmMacGenerateConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CMAC:--;CRYPTO_ALGOMODE_CTRDRBG:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GMAC:--;CRYPTO_ALGOMODE_HMAC:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_SIPHASH_2_4:--;CRYPTO_ALGOMODE_SIPHASH_4_8:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00134]
参数名称 CsmMacGenerateAlgorithmSecondaryFamily
父容器 CsmMacGenerateConfig
描述 确定加密服务所使用的辅助算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00137]
参数名称 CsmMacGenerateDataMaxLength
父容器 CsmMacGenerateConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00138]
参数名称 CsmMacGenerateResultLength
父容器 CsmMacGenerateConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00285]
参数名称 CsmMacGenerateAlgorithmFamilyCustomRef
父容器 CsmMacGenerateConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmMacGenerateAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00286]
参数名称 CsmMacGenerateAlgorithmModeCustomRef
父容器 CsmMacGenerateConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmMacGenerateAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00287]
参数名称 CsmMacGenerateAlgorithmSecondaryFamilyCustomRef
父容器 CsmMacGenerateConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmMacGenerateSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此参数。

该容器不包含任何子容器。

Figure10_11

9.1.17. CsmMacVerify

SWS 条目 [ECUC_Csm_00023]
容器名称 CsmMacVerify
父容器 CsmPrimitives
描述 MacVerify 原语的配置。
容器名称 多重性 作用域/依赖
CsmMacVerifyConfig 1 CSM MAC 验证接口配置的容器。容器名称用作 MAC 生成接口标识符的符号名。

9.1.18. CsmMacVerifyConfig

SWS 条目 [ECUC_Csm_00049]
容器名称 CsmMacVerifyConfig
父容器 CsmMacVerify
描述 CSM MAC 验证接口配置的容器。容器名称用作 MAC 生成接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00051]
参数名称 CsmMacVerifyAlgorithmFamily
父容器 CsmMacVerifyConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_EEA3:--;CRYPTO_ALGOFAM_EIA3:--;CRYPTO_ALGOFAM_POLY1305:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_RNG:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--;CRYPTO_ALGOFAM_SIPHASH:--;CRYPTO_ALGOFAM_SM3:--;CRYPTO_ALGOMODE_CUSTOM:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00193]
参数名称 CsmMacVerifyAlgorithmKeyLength
父容器 CsmMacVerifyConfig
描述 MAC 密钥的大小(单位为字节)
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00195]
参数名称 CsmMacVerifyAlgorithmMode
父容器 CsmMacVerifyConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CMAC:--;CRYPTO_ALGOMODE_CTRDRBG:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GMAC:--;CRYPTO_ALGOMODE_HMAC:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_SIPHASH_2_4:--;CRYPTO_ALGOMODE_SIPHASH_4_8:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00140]
参数名称 CsmMacVerifyAlgorithmSecondaryFamily
父容器 CsmMacVerifyConfig
描述 确定加密服务所使用的辅助算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00142]
参数名称 CsmMacVerifyCompareLength
父容器 CsmMacVerifyConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入 MAC 缓冲区的大小(单位为位)。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00056]
参数名称 CsmMacVerifyDataMaxLength
父容器 CsmMacVerifyConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00288]
参数名称 CsmMacVerifyAlgorithmFamilyCustomRef
父容器 CsmMacVerifyConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmMacVerifyAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00289]
参数名称 CsmMacVerifyAlgorithmModeCustomRef
父容器 CsmMacVerifyConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmMacVerifyAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00290]
参数名称 CsmMacVerifyAlgorithmSecondaryFamilyCustomRef
父容器 CsmMacVerifyConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmMacVerifySecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_12

Figure10_13

9.1.19. CsmEncrypt

SWS 条目 [ECUC_Csm_00024]
容器名称 CsmEncrypt
父容器 CsmPrimitives
描述 加密原语的配置。
容器名称 多重性 作用域/依赖
CsmEncryptConfig 1 CSM 加密接口配置的容器。容器名称用作加密接口标识符的符号名。

9.1.20. CsmEncryptConfig

SWS 条目 [ECUC_Csm_00057]
容器名称 CsmEncryptConfig
父容器 CsmEncrypt
描述 CSM 加密接口配置的容器。容器名称用作加密接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00182]
参数名称 CsmEncryptAlgorithmFamily
父容器 CsmEncryptConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_EEA3:--;CRYPTO_ALGOFAM_RSA:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00191]
参数名称 CsmEncryptAlgorithmKeyLength
父容器 CsmEncryptConfig
描述 加密密钥的大小(单位为字节)
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00060]
参数名称 CsmEncryptAlgorithmMode
父容器 CsmEncryptConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_12ROUNDS:--;CRYPTO_ALGOMODE_20ROUNDS:--;CRYPTO_ALGOMODE_8ROUNDS:--;CRYPTO_ALGOMODE_CBC:--;CRYPTO_ALGOMODE_CFB:--;CRYPTO_ALGOMODE_CTR:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_ECB:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_OFB:--;CRYPTO_ALGOMODE_RSAES_OAEP:--;CRYPTO_ALGOMODE_RSAES_PKCS1_v1_5:--;CRYPTO_ALGOMODE_XTS:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00144]
参数名称 CsmEncryptAlgorithmSecondaryFamily
父容器 CsmEncryptConfig
描述 确定加密服务所使用的算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00146]
参数名称 CsmEncryptDataMaxLength
父容器 CsmEncryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入明文缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。"
SWS 条目 [ECUC_Csm_00147]
参数名称 CsmEncryptResultMaxLength
父容器 CsmEncryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00291]
参数名称 CsmEncryptAlgorithmFamilyCustomRef
父容器 CsmEncryptConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmEncryptAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此参数。
SWS 条目 [ECUC_Csm_00292]
参数名称 CsmEncryptAlgorithmModeCustomRef
父容器 CsmEncryptConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmEncryptAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00293]
参数名称 CsmEncryptAlgorithmSecondaryFamilyCustomRef
父容器 CsmEncryptConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmEncryptSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此参数。

该容器不包含任何子容器。

Figure10_14

Figure10_15

Figure10_16

9.1.21. CsmDecrypt

SWS 条目 [ECUC_Csm_00025]
容器名称 CsmDecrypt
父容器 CsmPrimitives
描述 解密原语的配置。
容器名称 多重性 作用域/依赖
CsmDecryptConfig 1 CSM 解密接口配置的容器。容器名称用作解密接口标识符的符号名。

9.1.22. CsmDecryptConfig

SWS 条目 [ECUC_Csm_00064]
容器名称 CsmDecryptConfig
父容器 CsmDecrypt
描述 CSM 解密接口配置的容器。容器名称用作解密接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00066]
参数名称 CsmDecryptAlgorithmFamily
父容器 CsmDecryptConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_EEA3:--;CRYPTO_ALGOFAM_RSA:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00067]
参数名称 CsmDecryptAlgorithmKeyLength
父容器 CsmDecryptConfig
描述 加密密钥的大小(单位为字节)
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00068]
参数名称 CsmDecryptAlgorithmMode
父容器 CsmDecryptConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_12ROUNDS:--;CRYPTO_ALGOMODE_20ROUNDS:--;CRYPTO_ALGOMODE_8ROUNDS:--;CRYPTO_ALGOMODE_AESKEYWRAP:--;CRYPTO_ALGOMODE_CBC:--;CRYPTO_ALGOMODE_CFB:--;CRYPTO_ALGOMODE_CTR:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_ECB:--;CRYPTO_ALGOMODE_OFB:--;CRYPTO_ALGOMODE_RSAES_OAEP:--;CRYPTO_ALGOMODE_RSAES_PKCS1_v1_5:--;CRYPTO_ALGOMODE_XTS:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00149]
参数名称 CsmDecryptAlgorithmSecondaryFamily
父容器 CsmDecryptConfig
描述 确定加密服务所使用的辅助算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00154]
参数名称 CsmDecryptDataMaxLength
父容器 CsmDecryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入密文缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00155]
参数名称 CsmDecryptResultMaxLength
父容器 CsmDecryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00294]
参数名称 CsmDecryptAlgorithmFamilyCustomRef
父容器 CsmDecryptConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmDecryptAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00295]
参数名称 CsmDecryptAlgorithmModeCustomRef
父容器 CsmDecryptConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmDecryptAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00296]
参数名称 CsmDecryptAlgorithmSecondaryFamilyCustomRef
父容器 CsmDecryptConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmDecryptSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_17

Figure10_18

Figure10_19

9.1.23. CsmAEADEncrypt

SWS 条目 [ECUC_Csm_00026]
容器名称 CsmAEADEncrypt
父容器 CsmPrimitives
描述 AEAD 加密原语的配置。
容器名称 多重性 作用域/依赖
CsmAEADEncryptConfig 1 CSM 加密接口配置的容器。容器名称用作加密接口标识符的符号名。

9.1.24. CsmAEADEncryptConfig

SWS 条目 [ECUC_Csm_00072]
容器名称 CsmAEADEncryptConfig
父容器 CsmAEADEncrypt
描述 CSM 加密接口配置的容器。容器名称用作加密接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00074]
参数名称 CsmAEADEncryptAlgorithmFamily
父容器 CsmAEADEncryptConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_EEA3:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00075]
参数名称 CsmAEADEncryptAlgorithmKeyLength
父容器 CsmAEADEncryptConfig
描述 AEAD 加密密钥的大小(单位为字节)
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00076]
参数名称 CsmAEADEncryptAlgorithmMode
父容器 CsmAEADEncryptConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_12ROUNDS:--;CRYPTO_ALGOMODE_20ROUNDS:--;CRYPTO_ALGOMODE_8ROUNDS:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GCM:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00278]
参数名称 CsmAEADEncryptAlgorithmSecondaryFamily
父容器 CsmAEADEncryptConfig
描述 定义加密服务所使用的辅助算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_POLY1305:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00159]
参数名称 CsmAEADEncryptAssociatedDataMaxLength
父容器 CsmAEADEncryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入关联数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00160]
参数名称 CsmAEADEncryptCiphertextMaxLength
父容器 CsmAEADEncryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输出密文缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00158]
参数名称 CsmAEADEncryptPlaintextMaxLength
父容器 CsmAEADEncryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入明文缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00161]
参数名称 CsmAEADEncryptTagLength
父容器 CsmAEADEncryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输出标签长度缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00297]
参数名称 CsmAEADEncryptAlgorithmFamilyCustomRef
父容器 CsmAEADEncryptConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmAEADEncryptAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00298]
参数名称 CsmAEADEncryptAlgorithmModeCustomRef
父容器 CsmAEADEncryptConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmAEADEncryptAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00299]
参数名称 CsmAEADEncryptAlgorithmSecondaryFamilyCustomRef
父容器 CsmAEADEncryptConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmAEADEncryptSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00157]
参数名称 CsmAEADEncryptKeyRef
父容器 CsmAEADEncryptConfig
描述 此参数引用该加密原语所使用的密钥。
多重性 1
类型 对 CsmKey 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00156]
参数名称 CsmAEADEncryptQueueRef
父容器 CsmAEADEncryptConfig
描述 此参数引用该加密原语所使用的队列。
多重性 1
类型 对 CsmQueue 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_20

Figure10_21

Figure10_22

9.1.25. CsmAEADDecrypt

SWS 条目 [ECUC_Csm_00027]
容器名称 CsmAEADDecrypt
父容器 CsmPrimitives
描述 AEAD 解密原语的配置。
容器名称 多重性 作用域/依赖
CsmAEADDecryptConfig 1 CSM 解密接口配置的容器。容器名称用作解密接口标识符的符号名。

9.1.26. CsmAEADDecryptConfig

SWS 条目 [ECUC_Csm_00080]
容器名称 CsmAEADDecryptConfig
父容器 CsmAEADDecrypt
描述 CSM 解密接口配置的容器。容器名称用作解密接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00082]
参数名称 CsmAEADDecryptAlgorithmFamily
父容器 CsmAEADDecryptConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_EEA3:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00083]
参数名称 CsmAEADDecryptAlgorithmKeyLength
父容器 CsmAEADDecryptConfig
描述 AEAD 解密密钥的大小(单位为字节)
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00084]
参数名称 CsmAEADDecryptAlgorithmMode
父容器 CsmAEADDecryptConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_12ROUNDS:--;CRYPTO_ALGOMODE_20ROUNDS:--;CRYPTO_ALGOMODE_8ROUNDS:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GCM:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00277]
参数名称 CsmAEADDecryptAlgorithmSecondaryFamily
父容器 CsmAEADDecryptConfig
描述 定义加密服务所使用的辅助算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_POLY1305:--
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00163]
参数名称 CsmAEADDecryptAssociatedDataMaxLength
父容器 CsmAEADDecryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入关联数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00162]
参数名称 CsmAEADDecryptCiphertextMaxLength
父容器 CsmAEADDecryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入密文缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关
SWS 条目 [ECUC_Csm_00165]
参数名称 CsmAEADDecryptPlaintextMaxLength
父容器 CsmAEADDecryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输出明文缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00164]
参数名称 CsmAEADDecryptTagLength
父容器 CsmAEADDecryptConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入标签缓冲区的大小(单位为 BIT)。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。"
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00300]
参数名称 CsmAEADDecryptAlgorithmFamilyCustomRef
父容器 CsmAEADDecryptConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmAEADDecryptAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00301]
参数名称 CsmAEADDecryptAlgorithmModeCustomRef
父容器 CsmAEADDecryptConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmAEADDecryptAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00302]
参数名称 CsmAEADDecryptAlgorithmSecondaryFamilyCustomRef
父容器 CsmAEADDecryptConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmAEADDecryptSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00086]
参数名称 CsmAEADDecryptKeyRef
父容器 CsmAEADDecryptConfig
描述 此参数引用该解密原语所使用的密钥。
多重性 1
类型 对 CsmKey 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00081]
参数名称 CsmAEADDecryptQueueRef
父容器 CsmAEADDecryptConfig
描述 此参数引用该解密原语所使用的队列。
多重性 1
类型 对 CsmQueue 的引用
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_23

Figure10_24

9.1.27. CsmSignatureGenerate

SWS 条目 [ECUC_Csm_00028]
容器名称 CsmSignatureGenerate
父容器 CsmPrimitives
描述 SignatureGenerate 原语的配置。
容器名称 多重性 作用域/依赖
CsmSignatureGenerateConfig 1 CSM 签名生成接口配置的容器。容器名称用作签名生成接口标识符的符号名。

9.1.28. CsmSignatureGenerateConfig

SWS 条目 [ECUC_Csm_00087]
容器名称 CsmSignatureGenerateConfig
父容器 CsmSignatureGenerate
描述 CSM 签名生成接口配置的容器。容器名称用作签名生成接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00089]
参数名称 CsmSignatureGenerateAlgorithmFamily
父容器 CsmSignatureGenerateConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BRAINPOOL:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_ECCNIST:--;CRYPTO_ALGOFAM_ECDSA:--;CRYPTO_ALGOFAM_ED25519:--;CRYPTO_ALGOFAM_RSA:--;CRYPTO_ALGOFAM_SM2:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00091]
参数名称 CsmSignatureGenerateAlgorithmMode
父容器 CsmSignatureGenerateConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_RSASSA_PKCS1_v1_5:--;CRYPTO_ALGOMODE_RSASSA_PSS:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00183]
参数名称 CsmSignatureGenerateAlgorithmSecondaryFamily
父容器 CsmSignatureGenerateConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00169]
参数名称 CsmSignatureGenerateDataMaxLength
父容器 CsmSignatureGenerateConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00090]
参数名称 CsmSignatureGenerateKeyLength
父容器 CsmSignatureGenerateConfig
描述 签名生成密钥的大小(单位为字节)。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00170]
参数名称 CsmSignatureGenerateResultLength
父容器 CsmSignatureGenerateConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00303]
参数名称 CsmSignatureGenerateAlgorithmFamilyCustomRef
父容器 CsmSignatureGenerateConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmSignatureGenerateAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00304]
参数名称 CsmSignatureGenerateAlgorithmModeCustomRef
父容器 CsmSignatureGenerateConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmSignatureGenerateAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00305]
参数名称 CsmSignatureGenerateAlgorithmSecondaryFamilyCustomRef
父容器 CsmSignatureGenerateConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmSignatureGenerateSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_25

Figure10_26

9.1.29. CsmSignatureVerify

SWS 条目 [ECUC_Csm_00029]
容器名称 CsmSignatureVerify
父容器 CsmPrimitives
描述 SignatureVerify 原语的配置。
容器名称 多重性 作用域/依赖
CsmSignatureVerifyConfig 1 CSM 签名验证接口配置的容器。容器名称用作签名验证接口标识符的符号名。

9.1.30. CsmSignatureVerifyConfig

SWS 条目 [ECUC_Csm_00094]
容器名称 CsmSignatureVerifyConfig
父容器 CsmSignatureVerify
描述 CSM 签名验证接口配置的容器。容器名称用作签名验证接口标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00096]
参数名称 CsmSignatureVerifyAlgorithmFamily
父容器 CsmSignatureVerifyConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BRAINPOOL:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_ECCNIST:--;CRYPTO_ALGOFAM_ECDSA:--;CRYPTO_ALGOFAM_ED25519:--;CRYPTO_ALGOFAM_RSA:--;CRYPTO_ALGOFAM_SM2:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00098]
参数名称 CsmSignatureVerifyAlgorithmMode
父容器 CsmSignatureVerifyConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_RSASSA_PKCS1_v1_5:--;CRYPTO_ALGOMODE_RSASSA_PSS:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00172]
参数名称 CsmSignatureVerifyAlgorithmSecondaryFamily
父容器 CsmSignatureVerifyConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00176]
参数名称 CsmSignatureVerifyCompareLength
父容器 CsmSignatureVerifyConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入签名缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00175]
参数名称 CsmSignatureVerifyDataMaxLength
父容器 CsmSignatureVerifyConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00192]
参数名称 CsmSignatureVerifyKeyLength
父容器 CsmSignatureVerifyConfig
描述 签名验证密钥的大小(单位为字节)。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00306]
参数名称 CsmSignatureVerifyAlgorithmFamilyCustomRef
父容器 CsmSignatureVerifyConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmSignatureVerifyAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00307]
参数名称 CsmSignatureVerifyAlgorithmModeCustomRef
父容器 CsmSignatureVerifyConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmSignatureVerifyAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00308]
参数名称 CsmSignatureVerifyAlgorithmSecondaryFamilyCustomRef
父容器 CsmSignatureVerifyConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmSignatureVerifySecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_27

Figure10_28

9.1.31. CsmRandomGenerate

SWS 条目 [ECUC_Csm_00031]
容器名称 CsmRandomGenerate
父容器 CsmPrimitives
描述 RandomGenerate 原语的配置。
容器名称 多重性 作用域/依赖
CsmRandomGenerateConfig 1 CSM 随机数发生器配置的容器。容器名称用作随机数发生器配置标识符的符号名。

9.1.32. CsmRandomGenerateConfig

SWS 条目 [ECUC_Csm_00103]
容器名称 CsmRandomGenerateConfig
父容器 CsmRandomGenerate
描述 CSM 随机数发生器配置的容器。容器名称用作随机数发生器配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00105]
参数名称 CsmRandomGenerateAlgorithmFamily
父容器 CsmRandomGenerateConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_EEA3:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_RNG:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--;CRYPTO_ALGOFAM_SM3:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00107]
参数名称 CsmRandomGenerateAlgorithmMode
父容器 CsmRandomGenerateConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CTRDRBG:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GMAC:--;CRYPTO_ALGOMODE_HMAC:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_SIPHASH_2_4:--;CRYPTO_ALGOMODE_SIPHASH_4_8:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00178]
参数名称 CsmRandomGenerateAlgorithmSecondaryFamily
父容器 CsmRandomGenerateConfig
描述 确定加密服务所使用的算法族
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00106]
参数名称 CsmRandomGenerateResultLength
父容器 CsmRandomGenerateConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算
多重性 0..1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobInterfaceUsePort 配置为 CRYPTO_USE_PORT 时,此参数才相关。
SWS 条目 [ECUC_Csm_00309]
参数名称 CsmRandomGenerateAlgorithmFamilyCustomRef
父容器 CsmRandomGenerateConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmRandomGenerateAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00310]
参数名称 CsmRandomGenerateAlgorithmModeCustomRef
父容器 CsmRandomGenerateConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmRandomGenerateAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00311]
参数名称 CsmRandomGenerateAlgorithmSecondaryFamilyCustomRef
父容器 CsmRandomGenerateConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmRandomGenerateSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_29

9.1.33. CsmCustom

SWS 条目 [ECUC_Csm_00342]
容器名称 CsmCustom
父容器 CsmPrimitives
描述 CSM 自定义加密原语配置的容器。
容器名称 多重性 作用域/依赖
CsmCustomConfig 1 自定义原语配置配置参数的容器。

9.1.34. CsmCustomConfig

SWS 条目 [ECUC_Csm_00343]
容器名称 CsmCustomConfig
父容器 CsmCustom
描述 自定义原语配置配置参数的容器。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00344]
参数名称 CsmCustomAlgorithmFamily
父容器 CsmCustomConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00346]
参数名称 CsmCustomAlgorithmMode
父容器 CsmCustomConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00348]
参数名称 CsmCustomAlgorithmSecondaryFamily
父容器 CsmCustomConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00350]
参数名称 CsmCustomInputMaxLength
父容器 CsmCustomConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00353]
参数名称 CsmCustomOutputMaxLength
父容器 CsmCustomConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00351]
参数名称 CsmCustomSecondaryInputMaxLength
父容器 CsmCustomConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00354]
参数名称 CsmCustomSecondaryOutputMaxLength
父容器 CsmCustomConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的结果数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00355]
参数名称 CsmCustomTargetKeyMaxLength
父容器 CsmCustomConfig
描述 密钥的大小(单位为字节)。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00352]
参数名称 CsmCustomTertiaryInputMaxLength
父容器 CsmCustomConfig
描述 若此原语被 Csm 作业引用,则为同步 RTE 服务接口的输入数据缓冲区的大小。其他 BSW 模块也可能使用该长度参数进行缓冲区大小计算。
多重性 1
类型 EcucIntegerParamDef
范围 1 .. 4294967295
默认值 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00345]
参数名称 CsmCustomAlgorithmFamilyCustomRef
父容器 CsmCustomConfig
描述 对客户特定的算法族自定义容器的引用
多重性 1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00347]
参数名称 CsmCustomAlgorithmModeCustomRef
父容器 CsmCustomConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00349]
参数名称 CsmCustomAlgorithmSecondaryFamilyCustomRef
父容器 CsmCustomConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

Figure10_30

9.1.35. CsmJobKeySetValid

SWS 条目 [ECUC_Csm_00196]
容器名称 CsmJobKeySetValid
父容器 CsmPrimitives
描述 KeySetValid 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobKeySetValidConfig 1 CSM 密钥置有效操作配置的容器。容器名称用作密钥配置标识符的符号名。

9.1.36. CsmJobKeySetValidConfig

SWS 条目 [ECUC_Csm_00204]
容器名称 CsmJobKeySetValidConfig
父容器 CsmJobKeySetValid
描述 CSM 密钥置有效操作配置的容器。容器名称用作密钥配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00328]
参数名称 CsmJobKeySetValidAlgorithmFamily
父容器 CsmJobKeySetValidConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00329]
参数名称 CsmJobKeySetValidAlgorithmMode
父容器 CsmJobKeySetValidConfig
描述 确定加密服务所使用的算法模式。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00340]
参数名称 CsmJobKeySetValidAlgorithmSecondaryFamily
父容器 CsmJobKeySetValidConfig
描述 确定加密服务所使用的次要算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00330]
参数名称 CsmJobKeySetValidAlgorithmFamilyCustomRef
父容器 CsmJobKeySetValidConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeySetValidAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00331]
参数名称 CsmJobKeySetValidAlgorithmModeCustomRef
父容器 CsmJobKeySetValidConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeySetValidAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00332]
参数名称 CsmJobKeySetValidAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobKeySetValidConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeySetValidSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_31

9.1.37. CsmJobKeySetInvalid

SWS 条目 [ECUC_Csm_00333]
容器名称 CsmJobKeySetInvalid
父容器 CsmPrimitives
描述 KeySetInvalid 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobKeySetInvalidConfig 1 CSM 密钥置无效操作配置的容器。

9.1.38. CsmJobKeySetInvalidConfig

SWS 条目 [ECUC_Csm_00334]
容器名称 CsmJobKeySetInvalidConfig
父容器 CsmJobKeySetInvalid
描述 CSM 密钥置无效操作配置的容器。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00335]
参数名称 CsmJobKeySetInvalidAlgorithmFamily
父容器 CsmJobKeySetInvalidConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00336]
参数名称 CsmJobKeySetInvalidAlgorithmMode
父容器 CsmJobKeySetInvalidConfig
描述 确定加密服务所使用的算法模式。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00341]
参数名称 CsmJobKeySetInvalidAlgorithmSecondaryFamily
父容器 CsmJobKeySetInvalidConfig
描述 确定加密服务所使用的次要算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00337]
参数名称 CsmJobKeySetInvalidAlgorithmFamilyCustomRef
父容器 CsmJobKeySetInvalidConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeySetInvalidAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00339]
参数名称 CsmJobKeySetInvalidAlgorithmModeCustomRef
父容器 CsmJobKeySetInvalidConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeySetInvalidAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00338]
参数名称 CsmJobKeySetInvalidAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobKeySetInvalidConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeySetInvalidSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_32

9.1.39. CsmJobRandomSeed

SWS 条目 [ECUC_Csm_00197]
容器名称 CsmJobRandomSeed
父容器 CsmPrimitives
描述 RandomSeed 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobRandomSeedConfig 1 CSM 随机种子操作配置的容器。容器名称用作随机种子配置标识符的符号名。

9.1.40. CsmJobRandomSeedConfig

SWS 条目 [ECUC_Csm_00261]
容器名称 CsmJobRandomSeedConfig
父容器 CsmJobRandomSeed
描述 CSM 随机种子操作配置的容器。容器名称用作随机种子配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00206]
参数名称 CsmJobRandomSeedAlgorithmFamily
父容器 CsmJobRandomSeedConfig
描述 确定加密服务所使用的算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_DRBG:--;CRYPTO_ALGOFAM_EEA3:--;CRYPTO_ALGOFAM_FIPS186:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_RNG:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--;CRYPTO_ALGOFAM_SM3:--
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00208]
参数名称 CsmJobRandomSeedAlgorithmMode
父容器 CsmJobRandomSeedConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CMAC:--;CRYPTO_ALGOMODE_CTRDRBG:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GMAC:--;CRYPTO_ALGOMODE_HMAC:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_SIPHASH_2_4:--;CRYPTO_ALGOMODE_SIPHASH_4_8:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00210]
参数名称 CsmJobRandomSeedAlgorithmSecondaryFamily
父容器 CsmJobRandomSeedConfig
描述 确定加密服务所使用的算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_3DES:--;CRYPTO_ALGOFAM_AES:--;CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CHACHA:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00312]
参数名称 CsmJobRandomSeedAlgorithmFamilyCustomRef
父容器 CsmJobRandomSeedConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobRandomSeedAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00313]
参数名称 CsmJobRandomSeedAlgorithmModeCustomRef
父容器 CsmJobRandomSeedConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobRandomSeedAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此参数。
SWS 条目 [ECUC_Csm_00314]
参数名称 CsmJobRandomSeedAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobRandomSeedConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobRandomSeedSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此参数。

该容器不包含任何子容器。

Figure10_33

Figure10_34

Figure10_35a

Figure10_35b

9.1.41. CsmJobKeyDerive

SWS 条目 [ECUC_Csm_00198]
容器名称 CsmJobKeyDerive
父容器 CsmPrimitives
描述 KeyDerive 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobKeyDeriveConfig 1 CSM 密钥派生操作配置的容器。容器名称用作密钥派生配置标识符的符号名。

9.1.42. CsmJobKeyDeriveConfig

SWS 条目 [ECUC_Csm_00213]
容器名称 CsmJobKeyDeriveConfig
父容器 CsmJobKeyDerive
描述 CSM 密钥派生操作配置的容器。容器名称用作密钥派生配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00215]
参数名称 CsmJobKeyDeriveAlgorithmFamily
父容器 CsmJobKeyDeriveConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_HKDF:--;CRYPTO_ALGOFAM_KDFX963:--;CRYPTO_ALGOFAM_PBKDF2:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00216]
参数名称 CsmJobKeyDeriveAlgorithmMode
父容器 CsmJobKeyDeriveConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CMAC:--;CRYPTO_ALGOMODE_CTRDRBG:--;CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_GMAC:--;CRYPTO_ALGOMODE_HMAC:--;CRYPTO_ALGOMODE_NOT_SET:--;CRYPTO_ALGOMODE_SIPHASH_2_4:--;CRYPTO_ALGOMODE_SIPHASH_4_8:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00218]
参数名称 CsmJobKeyDeriveAlgorithmSecondaryFamily
父容器 CsmJobKeyDeriveConfig
描述 确定加密服务所使用的算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_BLAKE_1_256:--;CRYPTO_ALGOFAM_BLAKE_1_512:--;CRYPTO_ALGOFAM_BLAKE_2s_256:--;CRYPTO_ALGOFAM_BLAKE_2s_512:--;CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_RIPEMD160:--;CRYPTO_ALGOFAM_SHA1:--;CRYPTO_ALGOFAM_SHA2_224:--;CRYPTO_ALGOFAM_SHA2_256:--;CRYPTO_ALGOFAM_SHA2_384:--;CRYPTO_ALGOFAM_SHA2_512:--;CRYPTO_ALGOFAM_SHA2_512_224:--;CRYPTO_ALGOFAM_SHA2_512_256:--;CRYPTO_ALGOFAM_SHA3_224:--;CRYPTO_ALGOFAM_SHA3_256:--;CRYPTO_ALGOFAM_SHA3_384:--;CRYPTO_ALGOFAM_SHA3_512:--;CRYPTO_ALGOFAM_SHAKE128:--;CRYPTO_ALGOFAM_SHAKE256:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00315]
参数名称 CsmJobKeyDeriveAlgorithmFamilyCustomRef
父容器 CsmJobKeyDeriveConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyDeriveAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00316]
参数名称 CsmJobKeyDeriveAlgorithmModeCustomRef
父容器 CsmJobKeyDeriveConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 dependency: 仅当 CsmJobKeyDeriveAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00317]
参数名称 CsmJobKeyDeriveAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobKeyDeriveConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyDeriveSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_36

Figure10_37

9.1.43. CsmJobKeyGenerate

SWS 条目 [ECUC_Csm_00199]
容器名称 CsmJobKeyGenerate
父容器 CsmPrimitives
描述 KeyGenerate 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobKeyGenerateConfig 1 CSM 密钥生成操作配置的容器。容器名称用作密钥生成配置标识符的符号名。

9.1.44. CsmJobKeyGenerateConfig

SWS 条目 [ECUC_Csm_00220]
容器名称 CsmJobKeyGenerateConfig
父容器 CsmJobKeyGenerate
描述 CSM 密钥生成操作配置的容器。容器名称用作密钥生成配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00222]
参数名称 CsmJobKeyGenerateAlgorithmFamily
父容器 CsmJobKeyGenerateConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_ECCANSI:--;CRYPTO_ALGOFAM_ECCNIST:--;CRYPTO_ALGOFAM_ECCSEC:--;CRYPTO_ALGOFAM_ECDH:--;CRYPTO_ALGOFAM_ED25519:--;CRYPTO_ALGOFAM_X25519:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00223]
参数名称 CsmJobKeyGenerateAlgorithmMode
父容器 CsmJobKeyGenerateConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
默认值 CRYPTO_ALGOMODE_NOT_SET
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00225]
参数名称 CsmJobKeyGenerateAlgorithmSecondaryFamily
父容器 CsmJobKeyGenerateConfig
描述 确定加密服务所使用的算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_NOT_SET:--
默认值 CRYPTO_ALGOFAM_NOT_SET
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00318]
参数名称 CsmJobKeyGenerateAlgorithmFamilyCustomRef
父容器 CsmJobKeyGenerateConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyGenerateAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00319]
参数名称 CsmJobKeyGenerateAlgorithmModeCustomRef
父容器 CsmJobKeyGenerateConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyGenerateAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00320]
参数名称 CsmJobKeyGenerateAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobKeyGenerateConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyGenerateSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_38

9.1.45. CsmJobKeyExchangeCalcPubVal

SWS 条目 [ECUC_Csm_00200]
容器名称 CsmJobKeyExchangeCalcPubVal
父容器 CsmPrimitives
描述 KeyExchangeCalcPubVal 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobKeyExchangeCalcPubValConfig 1 CSM JobKeyExchangeCalcPubVal 配置的容器。容器名称用作密钥配置标识符的符号名。

9.1.46. CsmJobKeyExchangeCalcPubValConfig

SWS 条目 [ECUC_Csm_00226]
容器名称 CsmJobKeyExchangeCalcPubValConfig
父容器 CsmJobKeyExchangeCalcPubVal
描述 CSM JobKeyExchangeCalcPubVal 配置的容器。容器名称用作密钥配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00227]
参数名称 CsmJobKeyExchangeCalcPubValAlgorithmFamily
父容器 CsmJobKeyExchangeCalcPubValConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_DH:--;CRYPTO_ALGOFAM_ECDH:--;CRYPTO_ALGOFAM_RSA:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00229]
参数名称 CsmJobKeyExchangeCalcPubValAlgorithmMode
父容器 CsmJobKeyExchangeCalcPubValConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00231]
参数名称 CsmJobKeyExchangeCalcPubValAlgorithmSecondaryFamily
父容器 CsmJobKeyExchangeCalcPubValConfig
描述 确定加密服务所使用的算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_ECCANSI:--;CRYPTO_ALGOFAM_ECCNIST:--;CRYPTO_ALGOFAM_ECCSEC:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_X25519:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00321]
参数名称 CsmJobKeyExchangeCalcPubValAlgorithmFamilyCustomRef
父容器 CsmJobKeyExchangeCalcPubValConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyExchangeCalcPubValAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00322]
参数名称 CsmJobKeyExchangeCalcPubValAlgorithmModeCustomRef
父容器 CsmJobKeyExchangeCalcPubValConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyExchangeCalcPubValAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此参数。
SWS 条目 [ECUC_Csm_00323]
参数名称 CsmJobKeyExchangeCalcPubValAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobKeyExchangeCalcPubValConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyExchangeCalcPubValSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_39

9.1.47. CsmJobKeyExchangeCalcSecret

SWS 条目 [ECUC_Csm_00201]
容器名称 CsmJobKeyExchangeCalcSecret
父容器 CsmPrimitives
描述 KeyExchangeCalcSecret 原语的配置。
容器名称 多重性 作用域/依赖
CsmJobKeyExchangeCalcSecretConfig 1 CSM JobKeyExchangeCalcSecret 配置的容器。容器名称用作 JobKeyExchangeCalcSecret 配置标识符的符号名。

9.1.48. CsmJobKeyExchangeCalcSecretConfig

SWS 条目 [ECUC_Csm_00234]
容器名称 CsmJobKeyExchangeCalcSecretConfig
父容器 CsmJobKeyExchangeCalcSecret
描述 CSM JobKeyExchangeCalcSecret 配置的容器。容器名称用作 JobKeyExchangeCalcSecret 配置标识符的符号名。
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00235]
参数名称 CsmJobKeyExchangeCalcSecretAlgorithmFamily
父容器 CsmJobKeyExchangeCalcSecretConfig
描述 确定加密服务所使用的算法族。此参数定义算法的最主要部分。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_DH:--;CRYPTO_ALGOFAM_ECDH:--;CRYPTO_ALGOFAM_RSA:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00237]
参数名称 CsmJobKeyExchangeCalcSecretAlgorithmMode
父容器 CsmJobKeyExchangeCalcSecretConfig
描述 确定加密服务所使用的算法模式
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOMODE_CUSTOM:--;CRYPTO_ALGOMODE_NOT_SET:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00239]
参数名称 CsmJobKeyExchangeCalcSecretAlgorithmSecondaryFamily
父容器 CsmJobKeyExchangeCalcSecretConfig
描述 确定加密服务所使用的算法族。
多重性 1
类型 EcucEnumerationParamDef
范围 CRYPTO_ALGOFAM_CUSTOM:--;CRYPTO_ALGOFAM_ECCANSI:--;CRYPTO_ALGOFAM_ECCNIST:--;CRYPTO_ALGOFAM_ECCSEC:--;CRYPTO_ALGOFAM_NOT_SET:--;CRYPTO_ALGOFAM_X25519:--
Post-Build 变体值 false
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目 [ECUC_Csm_00324]
参数名称 CsmJobKeyExchangeCalcSecretAlgorithmFamilyCustomRef
父容器 CsmJobKeyExchangeCalcSecretConfig
描述 对客户特定的算法族自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyExchangeCalcSecretAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00325]
参数名称 CsmJobKeyExchangeCalcSecretAlgorithmModeCustomRef
父容器 CsmJobKeyExchangeCalcSecretConfig
描述 对客户特定的算法模式自定义容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmModeCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyExchangeCalcSecretAlgorithmMode 设置为 CRYPTO_ALGOMODE_CUSTOM 时,才应存在此引用。
SWS 条目 [ECUC_Csm_00326]
参数名称 CsmJobKeyExchangeCalcSecretAlgorithmSecondaryFamilyCustomRef
父容器 CsmJobKeyExchangeCalcSecretConfig
描述 对加密驱动程序中客户特定的算法族容器的引用
多重性 0..1
类型 对 CryptoPrimitiveAlgorithmFamilyCustom 的符号名引用
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local;dependency: 仅当 CsmJobKeyExchangeCalcSecretSecondaryAlgorithmFamily 设置为 CRYPTO_ALGOFAM_CUSTOM 时,才应存在此引用。

该容器不包含任何子容器。

Figure10_40

9.1.49. CsmCallbacks

SWS 条目 [ECUC_Csm_00008]
容器名称 CsmCallbacks
父容器 Csm
描述 回调函数配置的容器。
容器名称 多重性 作用域/依赖
CsmCallback 0..* 回调函数配置的容器。

9.1.50. CsmCallback

SWS 条目 [ECUC_Csm_00109]
容器名称 CsmCallback
父容器 CsmCallbacks
描述 回调函数配置的容器。
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
配置参数 见下方参数表
SWS 条目 [ECUC_Csm_00110]
参数名称 CsmCallbackFunc
父容器 CsmCallback
描述 当异步操作完成时应调用的回调函数。相应的作业需配置为异步处理。
多重性 1
类型 EcucFunctionNameDef
默认值 -
正则表达式 -
Post-Build 变体值 false
多重性配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:X(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local

该容器不包含任何子容器。

9.2. 发布信息

详情请参阅 SWS_BSWGeneral 中的第 10.3 章「Published Information」(发布信息)。