Crypto Service Manager (CSM)
Provides standardized cryptographic services (encryption, hashing, digital signatures, key management) to applications and BSW.
Funktionen — Übersicht
void Csm_Init (const Csm_ConfigType* configPtr);Initializes the CSM module.void Csm_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType Csm_Hash (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* resultPtr, uint32* resultLengthPtr);Uses the given data to perform the hash calculation and stores the hash.Std_ReturnType Csm_MacGenerate (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* macPtr, uint32* macLengthPtr);Service Csm_MacGenerate.Std_ReturnType Csm_MacVerify (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, const uint8* macPtr, const uint32 macLength, Crypto_VerifyResultType* verifyPtr);Service Csm_MacVerify.Std_ReturnType Csm_Encrypt (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* resultPtr, uint32* resultLengthPtr);Service Csm_Encrypt.Std_ReturnType Csm_Decrypt (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* resultPtr, uint32* resultLengthPtr);Service Csm_Decrypt.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);Service Csm_AEADEncrypt.Std_ReturnType Csm_AEADDecryptManager (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);Service Csm_AEADDecryptManager.Std_ReturnType Csm_SignatureGenerate (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* signaturePtr, uint32* signatureLengthPtr);Service Csm_SignatureGenerate.Std_ReturnType Csm_SignatureVerify (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, const uint8* signaturePtr, uint32 signatureLength, Crypto_VerifyResultType* verifyPtr);Service Csm_SignatureVerify.Std_ReturnType Csm_RandomGenerate (uint32 jobId, uint8* resultPtr, uint32* resultLengthPtr);Generate a random number and stores it in the memory location pointed by th e result pointer.Std_ReturnType Csm_KeyElementSet (uint32 keyId, uint32 keyElementId, const uint8* keyElementPtr, uint32 keyElementLength);Sets the given key element bytes to the key identified by key Id.Std_ReturnType Csm_KeySetValid (uint32 keyId);Sets the key state of the key identified by key Id to valid.Std_ReturnType Csm_KeySetInvalid (uint32 keyId);Sets the key status to invalid.Std_ReturnType Csm_KeyGetStatus (uint32 keyId, Crypto_KeyStatusType* keyStatusPtr);Returns the key state of the key identified by key Id.Std_ReturnType Csm_KeyElementGet (uint32 keyId, uint32 keyElementId, uint8* keyElementPtr, Manager uint32* keyElementLengthPtr);Service Csm_KeyElementGet.Std_ReturnType Csm_KeyElement Csm_KeyElementCopyManager (const uint32 keyId, const uint32 keyElementId, const uint32 targetKeyId, const uint32 targetKeyElementId); ⚠️Service Csm_KeyElementCopyManager.Std_ReturnType Csm_KeyCopy (const uint32 keyId, const uint32 targetKeyId);This function shall copy all key elements from the source key to a target key.Std_ReturnType Csm_KeyElementCopyPartial (uint32 keyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetKeyId, uint32 targetKeyElementId);Service Csm_KeyElementCopyPartial.Std_ReturnType Csm_RandomSeed (uint32 keyId, const uint8* seedPtr, uint32 seedLength);Feeds the key element CRYPTO_ KE_ RANDOM_ SEED with a random seed.Std_ReturnType Csm_KeyGenerate (uint32 keyId);Generates new key material and store it in the key identified by key Id.Std_ReturnType Csm_KeyDerive (uint32 keyId, uint32 targetKeyId);Derives a new key by using the key elements in the given key identified by the key Id.Std_ReturnType Csm_KeyExchangeCalcPubVal (uint32 keyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);Calculates the public value of the current user for the key exchange and stores the pub lic key in the memory location pointed...Std_ReturnType Csm_KeyExchangeCalcSecret (uint32 keyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);Calculates the shared secret key for the key exchange with the key material of the key identified by the key Id and the...Std_ReturnType Csm_JobKeySetValid (uint32 jobId, uint32 keyId);Stores the key if necessary and sets the key state of the key identified by key Id to valid.Std_ReturnType Csm_JobKeySetInvalid (uint32 jobId, uint32 keyId);Sets the key status to invalid.Std_ReturnType Csm_JobRandomSeed (uint32 jobId, uint32 keyId, const uint8* seedPtr, Manager uint32 seedLength);Provides a new seed for the specified key that is used for an associated random number generator.Std_ReturnType Csm_JobKeyGenerate (uint32 jobId, uint32 keyId);Generates new key material and stores it in the key identified by key Id.Std_ReturnType Csm_JobKeyDerive (uint32 jobId, uint32 keyId, uint32 targetKeyId);Derives a new key by using the key elements in the given key identified by the key Id.Std_ReturnType Csm_JobKeyExchangeCalcPubVal (uint32 jobId, uint32 keyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);Calculates the public value of the current user for the key exchange and stores theStd_ReturnType Csm_JobKeyExchangeCalcSecret (uint32 jobId, uint32 keyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);Calculates the shared secret key for the key exchange with the key material of the key identified by the key Id and the...Std_ReturnType Csm_SaveContextJob (uint32 jobId, uint8* contextBufferPtr, uint32* contextBufferLengthPtr);The Crypto Driver stores the internal context of the respective crypto operation to the context Buffer.Std_ReturnType Csm_RestoreContextJob (uint32 jobId, uint8* contextBufferPtr, uint32 contextBufferLength);The Crypto Driver extracts the context data from the context Buffer and restores the internal state so that further crypto...Std_ReturnType Csm_CancelJob (uint32 job, Crypto_OperationModeType mode);Cancels the job processing from asynchronous or streaming jobs.void Csm_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);Notifies the CSM that a job has finished.void Csm_MainFunction (void);API to be called cyclically to process the requested jobs.void <Csm_ApplicationCallbackNotification> (uint32 jobId, Crypto_ResultType result);CSM notifies the application that a job has finished.
Typen — Übersicht
struct Csm_ConfigTypeConfiguration data structure of Csm moduleCrypto_AlgorithmFamilyTypeType Crypto_AlgorithmFamilyType.enum Crypto_AlgorithmModeTypeType Crypto_AlgorithmModeType.struct Crypto_InputOutputRedirectionConfigTypeDefines which of the input/ output parameters are re - directed to a key element.struct Crypto_JobTypeStructure which contains further information, which depends on the job and the crypto primitive.enum Crypto_JobStateTypeEnumeration of the current job state.Crypto_JobPrimitiveInputOutputTypeType Crypto_JobPrimitiveInputOutputType.struct Crypto_JobPrimitiveInfoTypeStructure which contains further information, which depends on the job and the crypto primitive.enum Crypto_ServiceInfoTypeEnumeration of the kind of the service.Crypto_JobRedirectionInfoTypeType Crypto_JobRedirectionInfoType.struct Crypto_AlgorithmInfoTypeStructure which determines the exact algorithm.enum Crypto_ProcessingTypeEnumeration of the processing type.struct Crypto_PrimitiveInfoTypeStructure which contains basic information about the crypto primitive.Csm_ConfigIdTypeIdentification of a CSM service configuration via a numeric identifier, that is unique within a service.enum Crypto_OperationModeTypeEnume ration which operation shall be performed.enum Crypto_VerifyResultTypeEnumeration of the result type of verification operations.Csm_KeyDataTypeArray long enough to store any key element of the considered keyenum Crypto_ResultTypeReturn for Std_ Return Type for Cryptostack.Csm_HashDataTypeArray long enough to store the data which shall be hashed.enum Csm_HashResultTypeArray long enough to store the data of the hash.Csm_MacGenerateDataTypeArray long enough to store the data from which a MAC shall be generated.enum Csm_MacGenerateResultTypeArray long enough to store the data of the MAC.Csm_MacVerifyDataTypeArray long enough to store the data for whichs MAC shall be verified.Csm_MacVerifyCompareTypeArray long enough to store a MAC to be verified.Csm_EncryptDataTypeArray long enough to store the data to be encrypted.enum Csm_EncryptResultTypeArray long enough to store the data of the cipher.Csm_DecryptDataTypeArray long enough to store the data to be decrypted.enum Csm_DecryptResultTypeArray long enough to store the data of the decrypted plaintext.Csm_AEADEncryptPlaintextTypeArray long enough to store the plaintext to be encrypted with AEAD.Csm_AEADEncryptAssociatedDataTypeArray long enough to store the data of the header.Csm_AEADEncryptCiphertextTypeArray long enough to store the data of the cipher.Csm_AEADEncryptTagTypeArray long enough to store the data of the Tag.Csm_AEADDecryptCiphertextTypeArray long enough to store the ciphertext to be decrypted with AEAD.Csm_AEADDecryptAssociatedDataTypeArray long enough to store the data of the header.Csm_AEADDecryptTagTypeArray long enough to store the data of the Tag.Csm_AEADDecryptPlaintextTypeArray long enough to store the data of the plaintext.Csm_SignatureGenerateDataTypeArray long enough to store the data from which the signature shall be generated.enum Csm_SignatureGenerateResultTypeArray long enough to store the signature and its length.Csm_SignatureVerifyDataTypeArray long enough to store the data for whichs signature shall be verified.Csm_SignatureVerifyCompareTypeArray long enough to store a signature to be verified.enum Csm_RandomGenerateResultTypeArray long enough to store the data of the random number.Csm_LengthPtrImplementation Data Type of category DATA_ REFERENCE with the pointer target uint32 to be able to return asynchronously the...Csm_VerifyResultPtrImplementation Data Type of category DATA_ REFERENCE with the pointer target Csm_ Verify Result Type to be able to return...enum Crypto_KeyStatusTypeEnumeration for key status.
Funktionen & Typen — Detailansicht
函数 Csm_Init [SWS_Csm_00646] 📄 PDF
void Csm_Init (const Csm_ConfigType* configPtr);
Initializes the CSM module. In configurations, in which Csm is assigned to more than one partition (i.e. Csm_ Main Functions are mapped to partitions), Csm may provide one init function per partition.
根据 [SWS_Csm_00646],同步函数 Csm_Init 用于初始化 Crypto Service Manager (CSM) 模块。该接口通过头文件 Csm.h 进行声明 [SWS_Csm_00646]。
关于参数和调用行为,[SWS_Csm_00646] 规定了以下特性:
- 参数:作为输入参数传递
configPtr。它是一个指向选定的const Csm_ConfigType*类型配置结构体的指针 [SWS_Csm_00646]。不存在输入/输出参数或输出参数 [SWS_Csm_00646]。 - 返回值:该函数没有返回值(
void)[SWS_Csm_00646]。 - 同步性与标识:该执行以同步方式进行;服务 ID 为
0x00[SWS_Csm_00646]。
对于并发性和多分区运行,根据 [SWS_Csm_00646] 适用特定规定:
- 重入性:该函数是不可重入的(
Non Reentrant),因此不得并发调用 [SWS_Csm_00646]。 - 分区:如果 CSM 模块分配给多个分区(即如果诸如
Csm_MainFunction的主要功能分布在各分区上),则 CSM 可以为每个分区提供单独的初始化函数 [SWS_Csm_00646]。
Interpretation:由于规范将 Csm_Init 定义为初始化函数,因此该调用通常应在系统启动阶段、执行常规加密作业之前进行。 问题 Q-f462c3f9f4ed24fc (未决)
此使用说明由 AI 生成,基于 AUTOSAR R20-11 的规范数据。
实现者指南即将推出(复杂度 I1)
函数 Csm_GetVersionInfo [SWS_Csm_00705] 📄 PDF
void Csm_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
函数 Csm_Hash [SWS_Csm_00980] 📄 PDF
Std_ReturnType Csm_Hash (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* resultPtr, uint32* resultLengthPtr);
Uses the given data to perform the hash calculation and stores the hash.
使用
函数 Csm_Hash 对传递的输入数据计算加密哈希值,并将结果保存在目标内存中 [SWS_Csm_00980]。该接口通过头文件 Csm.h 声明,服务 ID 为 0x5d [SWS_Csm_00980]。执行行为是同步还是异步,取决于通过 jobId 指定的作业的各自配置 [SWS_Csm_00980]。
参数结构如下 [SWS_Csm_00980]:
jobId:使用加密服务的 CSM 作业的唯一标识。mode:指示应执行哪个操作模式或哪些操作模式。dataPtr和dataLength:指向待哈希处理的输入数据以及待处理字节数的指针。resultPtr:指向存储计算所得哈希值的缓冲区的指针。resultLengthPtr:在调用之前,此指针必须包含缓冲区resultPtr提供的以字节为单位的容量。处理完成后,该值将被生成的哈希值的实际字节长度覆盖。如果提供的缓冲区小于结果的总长度,则截断存储哈希值。
错误处理与并发
类型为 Std_ReturnType 的返回值通过 E_OK 指示请求成功,通过 E_NOT_OK 指示作业处理中出现错误 [SWS_Csm_00980]。关于并发性,Csm_Hash 被指定为可重入 [SWS_Csm_00980]。
此文本根据 AUTOSAR R20-11 的规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 Csm_MacGenerate [SWS_Csm_00982] 📄 PDF
Std_ReturnType Csm_MacGenerate (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* macPtr, uint32* macLengthPtr);
Service Csm_MacGenerate.
可重入函数 Csm_MacGenerate(服务 ID 0x60,头文件 Csm.h)对传递的输入数据计算消息认证码(MAC),并将结果存储在指定的目标地址中 [SWS_Csm_00982]。处理是同步还是异步进行,取决于通过 jobId 引用的作业的配置 [SWS_Csm_00982]。
参数 mode 指定要执行的操作模式。输入数据通过 dataPtr 传递,其字节数通过 dataLength 传递 [SWS_Csm_00982]。缓冲区 macPtr 接收结果。调用时必须通过输入和输出参数 macLengthPtr 传递所提供缓冲区的大小;请求完成后,其中将存放所计算 MAC 的实际长度。如果缓冲区小于总结果,则截断保存 MAC [SWS_Csm_00982]。
类型为 Std_ReturnType 的可能返回值包括 [SWS_Csm_00982]:
E_OK:请求已成功执行。E_NOT_OK:请求失败。CRYPTO_E_BUSY:服务仍在忙。CRYPTO_E_KEY_NOT_VALID:密钥状态无效。CRYPTO_E_KEY_SIZE_MISMATCH:某个密钥元素的大小有误。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化。
本文根据规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 Csm_MacVerify [SWS_Csm_01050] 📄 PDF
Std_ReturnType Csm_MacVerify (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, const uint8* macPtr, const uint32 macLength, Crypto_VerifyResultType* verifyPtr);
Service Csm_MacVerify.
根据 [SWS_Csm_01050],函数 Csm_MacVerify 用于通过检查传入的 MAC 是否与提供的数据匹配来验证消息认证码(MAC)。验证结果存储在 verifyPtr 指向的存储位置中。该服务可通过头文件 Csm.h 获取,并被指定为可重入。
调用时须注意以下参数和语义 [SWS_Csm_01050]:
- 同步或异步行为:执行根据通过
jobId引用的作业配置同步或异步进行。 - 操作模式:通过
mode(Crypto_OperationModeType)确定要执行的操作模式。 - 长度规范:
dataLength指定dataPtr的数据字节数,而macLength必须指定待验证 MAC 的长度(以比特为单位)。
作为返回值,该函数将请求的状态作为 Std_ReturnType 返回 [SWS_Csm_01050]:
E_OK:请求成功。E_NOT_OK:请求失败。CRYPTO_E_BUSY:服务仍处于忙碌状态。CRYPTO_E_KEY_NOT_VALID:密钥状态无效。CRYPTO_E_KEY_SIZE_MISMATCH:某个密钥元素的大小有误。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化。
本文由 AI 生成。其完全基于 AUTOSAR 规范版本 R20-11。
实现者指南即将推出(复杂度 I2)
函数 Csm_Encrypt [SWS_Csm_00984] 📄 PDF
Std_ReturnType Csm_Encrypt (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* resultPtr, uint32* resultLengthPtr);
Service Csm_Encrypt.
函数 Csm_Encrypt(服务 ID 0x5e,通过 Csm.h 提供)加密传递的输入数据,并将密文存入指定的结果缓冲区 [SWS_Csm_00984]。
用法与语义
执行该操作需要传递以下参数 [SWS_Csm_00984]:
jobId:使用该服务的 CSM 作业的标识符。mode:标识要执行的一个或多个操作模式(类型为Crypto_OperationModeType)。dataPtr和dataLength:指向待加密原始数据以及待处理字节数的指针。resultPtr:指向存放加密数据的内存区域的指针。resultLengthPtr:指向以字节为单位的长度信息的指针。在调用之前,此参数必须包含resultPtr提供的缓冲区容量;请求完成后,该处将存储实际输出长度 [SWS_Csm_00984]。
执行语义并非静态固定:根据关联作业的配置,其同步或异步执行 [SWS_Csm_00984]。
并发性与限制
该函数被指定为可重入 [SWS_Csm_00984]。调用方必须确保缓冲区 resultPtr 在整个处理过程中直到操作完成前保持有效,且至少具有初始通过 resultLengthPtr 指定的大小。
错误处理与返回值
类型为 Std_ReturnType 的返回值提供有关请求状态的信息 [SWS_Csm_00984]:
E_OK:请求成功。E_NOT_OK:请求失败。CRYPTO_E_BUSY:请求被拒绝,因为该服务当前仍处于忙碌状态。CRYPTO_E_KEY_NOT_VALID:指定的密钥处于“invalid”状态。CRYPTO_E_KEY_SIZE_MISMATCH:某个密钥元素的大小无效。CRYPTO_E_KEY_EMPTY:传递了未初始化的源密钥元素。
本文本由 AI 系统基于规范 AUTOSAR CP R20-11 生成。
实现者指南即将推出(复杂度 I2)
函数 Csm_Decrypt [SWS_Csm_00989] 📄 PDF
Std_ReturnType Csm_Decrypt (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* resultPtr, uint32* resultLengthPtr);
Service Csm_Decrypt.
函数 Csm_Decrypt([SWS_Csm_00989])解密传入的密文数据,并将生成的明文保存在目标存储区中。它通过头文件 Csm.h 提供,并基于传入作业的配置执行密码学操作。
用法与参数
通过参数 jobId 寻址要使用的 CSM 作业,而 mode(类型 Crypto_OperationModeType)指定要执行的操作阶段([SWS_Csm_00989])。待解密的数据作为指针 dataPtr 传递,带有字节数 dataLength。明文被写入由 resultPtr 引用的缓冲区中。
输入输出参数 resultLengthPtr 控制缓冲区管理:调用时,它必须包含以字节为单位的 resultPtr 提供的缓冲区大小;操作完成后,实际写入的输出长度将存储在其中([SWS_Csm_00989])。
执行与返回值
执行行为(同步或异步)直接取决于底层的作业配置([SWS_Csm_00989])。该函数设计为可重入的,并返回类型为 Std_ReturnType 的特定返回值:
E_OK:请求成功([SWS_Csm_00989])。E_NOT_OK:请求失败([SWS_Csm_00989])。CRYPTO_E_BUSY:所请求的服务当前仍处于忙碌状态([SWS_Csm_00989])。CRYPTO_E_KEY_NOT_VALID:所用密钥的状态无效([SWS_Csm_00989])。CRYPTO_E_KEY_SIZE_MISMATCH:某个密钥元素的大小不匹配([SWS_Csm_00989])。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化([SWS_Csm_00989])。
该文本由 AI 基于 AUTOSAR R20-11 规范数据生成。
实现者指南即将推出(复杂度 I2)
函数 Csm_AEADEncrypt [SWS_Csm_01023] 📄 PDF
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);
Service Csm_AEADEncrypt.
使用
函数Csm_AEADEncrypt执行带关联数据的认证加密(AEAD),并可通过头文件Csm.h获取[SWS_Csm_01023]。它通过plaintextPtr和plaintextLength处理待加密的明文,并通过associatedDataPtr和associatedDataLength处理附加关联数据[SWS_Csm_01023]。输出数据被写入缓冲区ciphertextPtr(密文)和tagPtr(认证标签或 MAC)[SWS_Csm_01023]。在调用时,ciphertextLengthPtr和tagLengthPtr必须包含以字节为单位提供的缓冲区容量;完成后,它们包含输出值的实际长度[SWS_Csm_01023](解释:规范中提到的参数resultPtr由于编辑原因大概是指ciphertextPtr或tagPtr)。 问题 Q-ea7e69875375c501 (未决)通过mode选择要执行的操作模式[SWS_Csm_01023]。执行方式为同步或异步,具体取决于传入的jobId的作业配置[SWS_Csm_01023]。
错误处理与返回值
该服务通过返回类型Std_ReturnType提供以下状态值[SWS_Csm_01023]:
E_OK:请求成功 [SWS_Csm_01023]。E_NOT_OK:请求失败 [SWS_Csm_01023]。CRYPTO_E_BUSY:请求失败,因为服务正忙[SWS_Csm_01023]。CRYPTO_E_KEY_NOT_VALID:请求失败,因为密钥状态无效[SWS_Csm_01023]。CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,因为某个密钥元素的大小不正确[SWS_Csm_01023]。CRYPTO_E_KEY_EMPTY:由于源密钥元素未初始化,请求失败[SWS_Csm_01023]。
并发性
该接口被指定为可重入的[SWS_Csm_01023]。
本使用说明基于 AUTOSAR Classic R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 Csm_AEADDecryptManager [SWS_Csm_01026] 📄 PDF
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);
Service Csm_AEADDecryptManager.
根据 [SWS_Csm_01026],服务 Csm_AEADDecrypt(服务 ID 0x63,通过 Csm.h 提供)执行 AEAD 解密(带有关联数据的认证加密)。解释:尽管规范文本中的描述提及加密,但根据所定义的输入和输出参数,该函数用于密文的解密以及所传入认证标签的验证。 问题 Q-00e8fca03eb3b44d (未决)
根据通过 jobId 标识的作业配置,执行以同步或异步方式进行([SWS_Csm_01026])。在并发性方面,该函数是可重入的([SWS_Csm_01026])。通过参数 mode 指定要处理的操作模式。
以下参数关系适用于该调用([SWS_Csm_01026]):
- 输入数据:密文(
ciphertextPtr、ciphertextLength)、关联数据(associatedDataPtr、associatedDataLength)以及待验证标签(tagPtr、tagLength)的指针和长度规范。 - 输出数据:缓冲区
plaintextPtr接收解密后的明文。指针plaintextLengthPtr在调用时必须包含缓冲区容量;完成后,实际的输出长度将存储在其中。 - 验证结果:标签验证的结果通过
verifyPtr返回。
根据 [SWS_Csm_01026],指定了以下类型为 Std_ReturnType 的返回值:
E_OK:请求成功。E_NOT_OK:请求失败。CRYPTO_E_BUSY:服务正忙。CRYPTO_E_KEY_NOT_VALID:密钥状态无效。CRYPTO_E_KEY_SIZE_MISMATCH:密钥元素大小错误。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化。
本使用说明基于 AUTOSAR CP R20-11 规范。
实现者指南即将推出(复杂度 I2)
函数 Csm_SignatureGenerate [SWS_Csm_00992] 📄 PDF
Std_ReturnType Csm_SignatureGenerate (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, uint8* signaturePtr, uint32* signatureLengthPtr);
Service Csm_SignatureGenerate.
函数 Csm_SignatureGenerate 用于根据 [SWS_Csm_00992] 对所传递的有效负载数据进行加密签名计算。该调用是同步处理还是异步处理,取决于所传递作业(jobId)的各自配置 [SWS_Csm_00992]。该函数被指定为可重入 [SWS_Csm_00992]。
调用时,类型为 Crypto_OperationModeType 的参数 mode 控制要执行的操作模式 [SWS_Csm_00992]。要签名的数据通过 dataPtr 连同其字节长度 dataLength 一起传递 [SWS_Csm_00992]。计算出的签名被写入由 signaturePtr 引用的内存区域 [SWS_Csm_00992]。输入/输出参数 signatureLengthPtr 在调用前必须包含所提供的缓冲区大小(以字节为单位);在请求完成后,它包含所生成签名的实际字节长度 [SWS_Csm_00992]。
返回值指示函数请求的状态 [SWS_Csm_00992]:
E_OK:请求已成功执行或启动 [SWS_Csm_00992]。E_NOT_OK:请求发生一般错误 [SWS_Csm_00992]。CRYPTO_E_BUSY:所请求的服务当前正忙 [SWS_Csm_00992]。CRYPTO_E_KEY_NOT_VALID:所用密钥的状态无效 [SWS_Csm_00992]。CRYPTO_E_KEY_SIZE_MISMATCH:密钥元素的大小不合适 [SWS_Csm_00992]。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化 [SWS_Csm_00992]。
本文由 AI 生成,且仅基于 AUTOSAR Release R20-11 的规范数据。
实现者指南即将推出(复杂度 I2)
函数 Csm_SignatureVerify [SWS_Csm_00996] 📄 PDF
Std_ReturnType Csm_SignatureVerify (uint32 jobId, Crypto_OperationModeType mode, const uint8* dataPtr, uint32 DataLength, const uint8* signaturePtr, uint32 signatureLength, Crypto_VerifyResultType* verifyPtr);
Service Csm_SignatureVerify.
服务 Csm_SignatureVerify(服务 ID 0x64,声明于 Csm.h 中)用于根据传入的数据验证加密签名 [SWS_Csm_00996]。该规范将该功能比较性地描述为检查签名(在描述中亦称为 MAC)是否使用传入的数据生成 [SWS_Csm_00996]。
使用与参数:调用时,jobId 标识配置的 CSM 作业,而 mode(类型 Crypto_OperationModeType)指定要执行的操作模式 [SWS_Csm_00996]。待校验的有效数据通过指针 dataPtr 连同字节数 dataLength 一起传递 [SWS_Csm_00996]。待验证的签名通过 signaturePtr 连同其字节长度 signatureLength 一起提供 [SWS_Csm_00996]。该函数将验证结果保存在由输出参数 verifyPtr(类型 Crypto_VerifyResultType*)引用的存储位置 [SWS_Csm_00996]。执行行为是同步还是异步取决于具体的作业配置 [SWS_Csm_00996]。
错误处理与返回值:该函数返回类型为 Std_ReturnType 的状态,指示请求的成功或特定错误状态 [SWS_Csm_00996]:
E_OK:服务请求成功 [SWS_Csm_00996]。E_NOT_OK:服务请求失败 [SWS_Csm_00996]。CRYPTO_E_BUSY:请求失败,因为底层服务仍处于被占用状态 [SWS_Csm_00996]。CRYPTO_E_KEY_NOT_VALID:请求失败,因为密钥的状态无效 [SWS_Csm_00996]。CRYPTO_E_KEY_SIZE_MISMATCH:请求失败,因为某个密钥元素的大小不正确 [SWS_Csm_00996]。CRYPTO_E_KEY_EMPTY:由于源密钥元素未初始化,请求失败[SWS_Csm_00996]。
并发性:根据规范,该函数为可重入实现 [SWS_Csm_00996]。
本使用说明由 AI 基于规范生成。
实现者指南即将推出(复杂度 I2)
函数 Csm_RandomGenerate [SWS_Csm_01543] 📄 PDF
Std_ReturnType Csm_RandomGenerate (uint32 jobId, uint8* resultPtr, uint32* resultLengthPtr);
Generate a random number and stores it in the memory location pointed by th e result pointer.
函数 Csm_RandomGenerate 用于生成随机数,并将结果存储在 resultPtr 指向的存储区中 [SWS_Csm_01543]。
用法与参数
通过参数 jobId 传递使用该服务的已配置 CSM 作业的标识符 [SWS_Csm_01543]。调用者通过输入/输出参数 resultLengthPtr 控制所需的数据量:调用时,该指针必须指向要生成的随机字节数(需存放于缓冲区 resultPtr 中)[SWS_Csm_01543]。请求完成后,resultLengthPtr 包含所生成值的实际字节长度 [SWS_Csm_01543]。处理以同步或异步方式执行,具体取决于相应作业的配置 [SWS_Csm_01543]。
返回值与错误处理
该函数返回类型为 Std_ReturnType 的状态 [SWS_Csm_01543]:
E_OK:请求成功 [SWS_Csm_01543]。E_NOT_OK:请求失败 [SWS_Csm_01543]。CRYPTO_E_BUSY:请求失败,因为该服务仍处于占用状态 [SWS_Csm_01543]。CRYPTO_E_ENTROPY_EXHAUSTED:请求失败,因为随机数生成器的熵已耗尽 [SWS_Csm_01543]。
并发性
该函数采用可重入设计,可通过头文件 Csm.h 使用,其服务 ID 为 0x72 [SWS_Csm_01543]。
本使用说明由系统自动生成。仅 AUTOSAR 标准规范具有约束力。
函数 Csm_KeyElementSet [SWS_Csm_00957] 📄 PDF
Std_ReturnType Csm_KeyElementSet (uint32 keyId, uint32 keyElementId, const uint8* keyElementPtr, uint32 keyElementLength);
Sets the given key element bytes to the key identified by key Id.
用法与语义
同步函数 Csm_KeyElementSet 为通过 keyId 标识的密钥设置指定密钥元素的字节 [SWS_Csm_00957]。该函数的服务 ID 为 0x78,可通过头文件 Csm.h 使用 [SWS_Csm_00957]。调用时会传递以下输入参数 [SWS_Csm_00957]:
keyId:要为其设置新密钥材料的密钥标识 [SWS_Csm_00957]。keyElementId:要写入的密钥元素的标识 [SWS_Csm_00957]。keyElementPtr:指向待处理的密钥元素字节的指针 [SWS_Csm_00957]。keyElementLength:要设置的密钥元素字节数 [SWS_Csm_00957]。
返回值与错误处理
执行返回类型为 Std_ReturnType 的状态,指示成功或特定的错误原因 [SWS_Csm_00957]:
E_OK:请求成功 [SWS_Csm_00957]。E_NOT_OK:请求失败 [SWS_Csm_00957]。CRYPTO_E_BUSY:负责的 Crypto Driver Object 正忙 [SWS_Csm_00957]。CRYPTO_E_KEY_WRITE_FAIL:对密钥元素的写访问被拒绝 [SWS_Csm_00957]。CRYPTO_E_KEY_NOT_AVAILABLE:寻址的密钥不可用 [SWS_Csm_00957]。CRYPTO_E_KEY_SIZE_MISMATCH:密钥元素的大小与提供的数据大小不匹配 [SWS_Csm_00957]。
并发性与限制
函数 Csm_KeyElementSet 被指定为同步且不可重入(Non Reentrant)[SWS_Csm_00957]。它没有输入/输出(inout)或输出参数(out)[SWS_Csm_00957]。
此文本由 AI 编写;专业正确性基于规范文档。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeySetValid [SWS_Csm_00958] 📄 PDF
Std_ReturnType Csm_KeySetValid (uint32 keyId);
Sets the key state of the key identified by key Id to valid.
同步函数 Csm_KeySetValid 用于在提供新密钥材料后,将通过标识符 keyId 寻址的密钥的密钥状态设置为有效(“valid”)[SWS_Csm_00958]。该服务通过头文件 Csm.h 提供,并具有服务 ID 0x67 [SWS_Csm_00958]。
根据 [SWS_Csm_00958],以下规定适用于用法和返回值:
- 输入参数:通过
keyId传递要为其验证新材料的密钥标识符。 - 返回值
E_OK:验证密钥状态的请求成功。 - 返回值
E_NOT_OK:请求失败。 - 返回值
CRYPTO_E_BUSY:请求失败,因为底层的 Crypto Driver Object 正忙。
关于并发性,Csm_KeySetValid 被指定为不可重入(“Non Reentrant”)[SWS_Csm_00958]。因此,如果调用可能来自并发上下文,调用方可能必须确保适当的同步。 问题 Q-1762a3bca77ab74e (未决)
此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeySetInvalid [SWS_Csm_91075] 📄 PDF
Std_ReturnType Csm_KeySetInvalid (uint32 keyId);
Sets the key status to invalid. The key cannot be used any longer for cryptographic operations until it has been set to valid state again.
同步函数 Csm_KeySetInvalid 将密钥的状态置为无效 [SWS_Csm_91075]。被置为无效的密钥在重新转换为有效状态之前,无法再用于加密操作 [SWS_Csm_91075]。
用法与参数
该调用通过头文件 Csm.h 提供,并同步执行 [SWS_Csm_91075]。要使其失效的密钥标识符通过输入参数 keyId(类型 uint32)传递 [SWS_Csm_91075]。
返回值与错误处理
该函数返回类型为 Std_ReturnType 的状态值 [SWS_Csm_91075]:
E_OK:失效请求成功 [SWS_Csm_91075]。E_NOT_OK:请求失败 [SWS_Csm_91075]。CRYPTO_E_BUSY:请求失败,因为加密驱动程序对象正忙 [SWS_Csm_91075]。
并发性与限制
该函数被指定为不可重入(Non Reentrant)[SWS_Csm_91075]。因此,调用方必须确保调用不会发生中断或未经协调的并发进行。如果负责的加密驱动程序对象在调用时正忙,则该操作将以 CRYPTO_E_BUSY 被拒绝 [SWS_Csm_91075]。
本文本由 AI 基于规范生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeyGetStatus [SWS_Csm_91047] 📄 PDF
Std_ReturnType Csm_KeyGetStatus (uint32 keyId, Crypto_KeyStatusType* keyStatusPtr);
Returns the key state of the key identified by key Id.
使用
同步函数Csm_KeyGetStatus用于查询通过其标识符指定的密钥的当前状态[SWS_Csm_91047]。其声明可通过头文件Csm.h获取[SWS_Csm_91047]。
调用时会传递以下参数[SWS_Csm_91047]:
keyId(输入):要确定其状态的密钥的标识符。keyStatusPtr(输出):指向类型为Crypto_KeyStatusType的存储位置的指针,CSM 将确定的密钥状态存放在该位置。
该函数提供以下返回值Std_ReturnType [SWS_Csm_91047]:
E_OK:状态查询成功,且结果可通过输出指针获取。E_NOT_OK:请求失败。
并发性与行为
该服务函数具有服务 ID 0x83,并被指定为可重入的[SWS_Csm_91047]。由于执行过程是同步进行的,因此该调用会阻塞调用方,直至状态确定完成[SWS_Csm_91047]。调用方必须为keyStatusPtr提供有效的内存区域,因为无效指针推测会导致返回值E_NOT_OK。 问题 Q-a920a9a12b1374aa (未决)
本使用说明基于 AUTOSAR R20-11 规范数据自动创建。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeyElementGet [SWS_Csm_00959] 📄 PDF
Std_ReturnType Csm_KeyElementGet (uint32 keyId, uint32 keyElementId, uint8* keyElementPtr, Manager uint32* keyElementLengthPtr);
Service Csm_KeyElementGet.
同步且可重入的函数 Csm_KeyElementGet 从由 keyId 标识的密钥中读取特定密钥元素的数据,并将其复制到传递的存储区域中 [SWS_Csm_00959]。该服务通过头文件 Csm.h 声明,并具有服务 ID 0x68 [SWS_Csm_00959]。
参数和缓冲区处理
为了标识该元素,传递参数 keyId(密钥标识符)和 keyElementId(所需密钥元素的标识符)[SWS_Csm_00959]。读取操作需要提供输出缓冲区及其长度管理:
keyElementPtr:指向存储位置的指针,提取的密钥元素字节将复制到该位置 [SWS_Csm_00959]。keyElementLengthPtr:一个输入/输出参数(inout),在函数调用时必须包含keyElementPtr以字节为单位的最大可用缓冲区大小。处理完成后,函数在此保存实际写入的字节长度 [SWS_Csm_00959]。
返回值和错误分析
该函数作为 Std_ReturnType 返回特定的状态代码,以指示操作的结果 [SWS_Csm_00959]:
E_OK:密钥元素的复制过程成功 [SWS_Csm_00959]。E_NOT_OK:请求发生一般性失败 [SWS_Csm_00959]。CRYPTO_E_BUSY:请求失败,因为相关的 Crypto Driver Object 当前正忙 [SWS_Csm_00959]。CRYPTO_E_KEY_NOT_AVAILABLE:通过keyElementId请求的密钥元素不可用 [SWS_Csm_00959]。CRYPTO_E_KEY_READ_FAIL:对密钥元素的读取访问被拒绝 [SWS_Csm_00959]。CRYPTO_E_KEY_EMPTY:请求的源密钥元素未初始化 [SWS_Csm_00959]。
本使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeyElementCopyManager [SWS_Csm_00969] 📄 PDF
Std_ReturnType Csm_KeyElementCopy (const uint32 keyId, const uint32 keyElementId, const uint32 targetKeyId, const uint32 targetKeyElementId);
Service Csm_KeyElementCopyManager.
同步函数 Csm_KeyElementCopyManager 用于将单个密钥元素从源密钥复制到目标密钥的目标元素中 [SWS_Csm_00969]。该调用通过头文件 Csm.h 以服务 ID 0x71 提供,并需要四个输入参数:用于标识源密钥元素的 keyId 与 keyElementId,以及用于目标的 targetKeyId 与 targetKeyElementId [SWS_Csm_00969]。
在并发性方面,该服务设计为可重入,但明确不针对同一 keyId [SWS_Csm_00969]。因此,对同一源密钥的并行访问必须由调用方避免或进行同步。
该函数返回类型为 Std_ReturnType 的状态。在成功执行时,它返回 E_OK [SWS_Csm_00969]。在出错的情况下,提供特定的返回值用于根本原因分析 [SWS_Csm_00969]:
CRYPTO_E_BUSY:底层 Crypto-Treiber-Objekt 被占用 [SWS_Csm_00969]。CRYPTO_E_KEY_NOT_AVAILABLE:请求的密钥元素不可用 [SWS_Csm_00969]。CRYPTO_E_KEY_READ_FAIL:不允许读取源元素 [SWS_Csm_00969]。CRYPTO_E_KEY_WRITE_FAIL:不允许写入目标元素 [SWS_Csm_00969]。CRYPTO_E_KEY_SIZE_MISMATCH:两个密钥元素的大小彼此不兼容 [SWS_Csm_00969]。CRYPTO_E_KEY_EMPTY:源密钥元素仍未初始化 [SWS_Csm_00969]。E_NOT_OK:请求执行时发生一般错误 [SWS_Csm_00969]。
本文由 AI 生成,仅供参考。唯一具有约束力的是官方 AUTOSAR 规范。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeyCopy [SWS_Csm_01034] 📄 PDF
Std_ReturnType Csm_KeyCopy (const uint32 keyId, const uint32 targetKeyId);
This function shall copy all key elements from the source key to a target key. Ava ilable via Csm.h
使用
具有服务 ID 0x73 的同步服务函数 Csm_KeyCopy 用于将所有密钥元素从源密钥完整复制到目的密钥 [SWS_Csm_01034]。其声明通过头文件 Csm.h 提供 [SWS_Csm_01034]。作为不可变输入参数,传递用于源密钥标识符的 keyId 以及用于目的密钥标识符的 targetKeyId [SWS_Csm_01034]。签名中未定义其他输入/输出或输出参数 [SWS_Csm_01034]。
错误处理与返回值
类型为 Std_ReturnType 的返回值向调用者通知执行结果 [SWS_Csm_01034]。E_OK 表示执行成功,而 E_NOT_OK 则表示请求的一般性失败 [SWS_Csm_01034]。特定错误原因通过专门的加密返回值指示 [SWS_Csm_01034]:
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:源密钥的密钥元素未初始化。
并发性与限制
关于调用行为,Csm_KeyCopy 设计为可重入的,但具有一项约束性限制:这不适用于相同的 keyId [SWS_Csm_01034]。
本使用说明由 AI 基于规范生成。
函数 Csm_KeyElementCopyPartial [SWS_Csm_91025] 📄 PDF
Std_ReturnType Csm_KeyElementCopyPartial (uint32 keyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetKeyId, uint32 targetKeyElementId);
Service Csm_KeyElementCopyPartial.
同步函数 Csm_KeyElementCopyPartial 将密钥元素的定义部分复制到同一加密驱动程序内的另一个密钥元素中 [SWS_Csm_91025]。通过参数 keyElementSourceOffset 和 keyElementCopyLength 确定从哪个字节开始以及以何种长度复制源元素(由 keyId 和 keyElementId 标识)。目的元素 (targetKeyId, targetKeyElementId) 中的起始位置通过 keyElementTargetOffset 指定 [SWS_Csm_91025]。
返回值提供执行状态以及特定错误原因 [SWS_Csm_91025]:
E_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:源密钥元素未初始化。E_NOT_OK:请求因一般原因失败。
该函数为可重入实现,但不允许同时针对相同的 keyId 调用 [SWS_Csm_91025]。此外,该接口要求源和目的在同一个加密驱动程序中管理 [SWS_Csm_91025]。声明可通过头文件 Csm.h 获取 [SWS_Csm_91025]。
本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_RandomSeed [SWS_Csm_01051] 📄 PDF
Std_ReturnType Csm_RandomSeed (uint32 keyId, const uint8* seedPtr, uint32 seedLength);
Feeds the key element CRYPTO_ KE_ RANDOM_ SEED with a random seed. Manager AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoServiceManager
用法与调用上下文
同步函数 Csm_RandomSeed 用于使用传入的随机值(种子)填充密钥的密钥元素 CRYPTO_KE_RANDOM_SEED [SWS_Csm_01051]。调用时,通过 keyId 传递目标密钥的标识符,通过 seedPtr 传递指向存放种子数据内存位置的指针,并通过 seedLength 传递种子的字节长度 [SWS_Csm_01051]。
相互作用
如果 CSM 在执行期间未检测到错误,则函数 Csm_RandomSeed 将服务调用直接转发给 Crypto Interface 的 CryIf_RandomSeed [SWS_Csm_01052]。
错误处理与返回值
该函数返回类型为 Std_ReturnType 的状态值 [SWS_Csm_01051]:
E_OK:请求成功 [SWS_Csm_01051]。E_NOT_OK:请求失败 [SWS_Csm_01051]。CRYPTO_E_BUSY:执行失败,因为相应的 Crypto Driver Object 当前处于占用状态 [SWS_Csm_01051]。CRYPTO_E_KEY_NOT_VALID:请求被拒绝,因为密钥状态无效 [SWS_Csm_01051]。
并发性与限制
关于并发行为,Csm_RandomSeed 采用可重入实现,但不允许针对相同的 keyId 同时调用 [SWS_Csm_01051]。
此使用说明基于 AUTOSAR 规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeyGenerate [SWS_Csm_00955] 📄 PDF
Std_ReturnType Csm_KeyGenerate (uint32 keyId);
Generates new key material and store it in the key identified by key Id.
同步函数 Csm_KeyGenerate 用于生成新的加密密钥材料,并将其直接存储在通过参数 keyId 指定的密钥中 [SWS_Csm_00955]。该接口通过头文件 Csm.h 提供,并具有服务 ID 0x6a [SWS_Csm_00955]。
调用时,应用程序传递要为其生成材料的密钥的标识符 keyId(类型 uint32);不存在输入/输出或纯输出参数 [SWS_Csm_00955]。操作的状态通过类型为 Std_ReturnType 的返回值同步报告 [SWS_Csm_00955]:
E_OK:密钥材料的生成和存储成功 [SWS_Csm_00955]。E_NOT_OK:请求失败 [SWS_Csm_00955]。CRYPTO_E_BUSY:执行失败,因为负责的 Crypto 驱动程序对象当前正忙 [SWS_Csm_00955]。CRYPTO_E_KEY_NOT_VALID:请求被拒绝,因为目标密钥处于“invalid”状态 [SWS_Csm_00955]。CRYPTO_E_KEY_EMPTY:生成失败,原因是源密钥元素未初始化 [SWS_Csm_00955]。
在并发性方面,Csm_KeyGenerate 被设计为可重入,但不得针对相同的 keyId 并发调用 [SWS_Csm_00955]。
该文本由人工智能基于规范生成。
函数 Csm_KeyDerive [SWS_Csm_00956] 📄 PDF
Std_ReturnType Csm_KeyDerive (uint32 keyId, uint32 targetKeyId);
Derives a new key by using the key elements in the given key identified by the key Id. The given key contains the key elements for the password and salt. The derived key is stored in the k ey element with the id 1 of the key identified by target Crypto Key Id.
同步函数 Csm_KeyDerive 用于从给定的源密钥派生新的加密密钥 [SWS_Csm_00956]。该函数在头文件 Csm.h 中声明,并具有服务 ID 0x6b [SWS_Csm_00956]。
用法与参数
该同步调用处理两个输入参数 [SWS_Csm_00956]:
keyId:源密钥的标识符,该密钥包含密码和盐的密钥元素 [SWS_Csm_00956]。targetKeyId:目标密钥的标识符;派生的密钥材料存放在 ID 为 1 的密钥元素中 [SWS_Csm_00956]。
返回值与错误处理
作为返回值,该函数提供状态 Std_ReturnType [SWS_Csm_00956]。除了成功执行时的 E_OK 和常规错误时的 E_NOT_OK 之外,还定义了特定的加密错误 [SWS_Csm_00956]:
CRYPTO_E_BUSY:Crypto 驱动程序对象正忙 [SWS_Csm_00956]。CRYPTO_E_KEY_READ_FAIL:不允许读取密钥元素 [SWS_Csm_00956]。CRYPTO_E_KEY_WRITE_FAIL:不允许写入目标密钥元素 [SWS_Csm_00956]。CRYPTO_E_KEY_NOT_VALID:密钥状态无效 [SWS_Csm_00956]。CRYPTO_E_KEY_SIZE_MISMATCH:密钥元素的大小不兼容 [SWS_Csm_00956]。CRYPTO_E_KEY_EMPTY:源的密钥元素未初始化 [SWS_Csm_00956]。
并发性与交互
该函数是可重入的,但明确指出对于相同的 keyId 不可重入 [SWS_Csm_00956]。如果 CSM 中未检测到错误,则该服务直接将执行转发给 CryIf_KeyDerive [SWS_Csm_01018]。
此文本由 AI 基于 AUTOSAR 规范生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_KeyExchangeCalcPubVal [SWS_Csm_00966] 📄 PDF
Std_ReturnType Csm_KeyExchangeCalcPubVal (uint32 keyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);
Calculates the public value of the current user for the key exchange and stores the pub lic key in the memory location pointed by the public value pointer.
同步接口 Csm_KeyExchangeCalcPubVal(服务 ID 0x6c,可通过 Csm.h 获取)计算当前用户用于密钥交换协议的公共值,并将公钥存储在由指针 publicValuePtr 引用的存储地址处 [SWS_Csm_00966]。
参数和缓冲区管理
该函数处理三个传递参数 [SWS_Csm_00966]:
keyId(输入):包含要用于密钥交换协议的密钥标识符 [SWS_Csm_00966]。publicValuePtr(输出):指向存储结果公钥值的存储区域的指针 [SWS_Csm_00966]。publicValueLengthPtr(输入/输出):指向长度信息的指针。调用时,该参数必须包含缓冲区publicValuePtr所提供的大小;执行完成后,将在其中存储计算值的实际长度 [SWS_Csm_00966]。
错误处理与返回值
执行状态通过 Std_ReturnType 返回报告 [SWS_Csm_00966]:
E_OK:请求成功 [SWS_Csm_00966]。E_NOT_OK:请求失败 [SWS_Csm_00966]。CRYPTO_E_BUSY:请求失败,因为 Crypto 驱动程序对象正忙 [SWS_Csm_00966]。CRYPTO_E_KEY_NOT_VALID:请求失败,因为密钥的状态无效 [SWS_Csm_00966]。CRYPTO_E_KEY_EMPTY:由于源密钥元素未初始化,请求失败 [SWS_Csm_00966]。
并发性
该函数被设计为可重入,但不得同时针对相同的 keyId 调用 [SWS_Csm_00966]。
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
函数 Csm_KeyExchangeCalcSecret [SWS_Csm_00967] 📄 PDF
Std_ReturnType Csm_KeyExchangeCalcSecret (uint32 keyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
Calculates the shared secret key for the key exchange with the key material of the key identified by the key Id and the partner public key. The shared secret key is stored as a key element in the same key.
在 Crypto Service Manager 中,同步函数 Csm_KeyExchangeCalcSecret 用于在密钥交换协议框架内计算共享秘密(Shared Secret Key)[SWS_Csm_00967]。在此,通过 keyId 引用的密钥之密钥材料与通信伙伴的公共值相结合。随后,计算出的秘密密钥直接作为密钥元素存放在同一密钥内 [SWS_Csm_00967]。
该接口通过头文件 Csm.h 提供,并需要三个输入参数 [SWS_Csm_00967]:
keyId:密钥的标识符,其密钥材料用于该协议。partnerPublicValuePtr:指向包含伙伴公钥值的内存区域的指针。partnerPublicValueLength:传入的伙伴值的字节长度。
该调用提供类型为 Std_ReturnType 的返回值,成功执行时为 E_OK,常规错误时为 E_NOT_OK [SWS_Csm_00967]。特定错误情况会发出详细的状态代码:CRYPTO_E_BUSY 表示底层的 Crypto-Driver-Objekt 正忙。如果密钥状态无效,则返回 CRYPTO_E_KEY_NOT_VALID,而 CRYPTO_E_KEY_EMPTY 则指示未初始化的源密钥元素 [SWS_Csm_00967]。
在并发性方面,该函数被设计为可重入,但不得同时针对相同的 keyId 调用 [SWS_Csm_00967]。
基于 AUTOSAR CP R20-11 规范自动生成的使用说明。
函数 Csm_JobKeySetValid [SWS_Csm_91027] 📄 PDF
Std_ReturnType Csm_JobKeySetValid (uint32 jobId, uint32 keyId);
Stores the key if necessary and sets the key state of the key identified by key Id to valid.
使用
函数Csm_JobKeySetValid根据需要存储密钥,并将通过keyId标识的密钥的密钥状态设置为有效[SWS_Csm_91027]。该接口通过头文件Csm.h声明,具有服务 ID 0x7a以及签名Std_ReturnType Csm_JobKeySetValid (uint32 jobId, uint32 keyId) [SWS_Csm_91027]。
调用时会传递两个类型为uint32的输入参数[SWS_Csm_91027]:
jobId:保存使用 CSM 服务的作业的标识符[SWS_Csm_91027]。keyId:保存需要为其验证新密钥材料的密钥的标识符[SWS_Csm_91027]。
未为此函数定义额外的输入/输出参数或纯输出参数[SWS_Csm_91027]。
同步与异步行为以及并发性
执行语义取决于相应的作业配置:调用既可以是同步的,也可以是异步的[SWS_Csm_91027]。该函数被指定为可重入的[SWS_Csm_91027]。
返回值与错误处理
类型为Std_ReturnType的返回值反映了函数请求的结果[SWS_Csm_91027]:
E_OK:请求成功 [SWS_Csm_91027]。E_NOT_OK:请求失败 [SWS_Csm_91027]。CRYPTO_E_BUSY:请求失败,因为负责的 Crypto Driver Object 正忙[SWS_Csm_91027]。
本使用说明是基于 SWS_Csm_91027 规范自动生成的。
实现者指南即将推出(复杂度 I1)
函数 Csm_JobKeySetInvalid [SWS_Csm_91002] 📄 PDF
Std_ReturnType Csm_JobKeySetInvalid (uint32 jobId, uint32 keyId);
Sets the key status to invalid. The key cannot be used any longer for cryptographic operations until it has been set to valid state again.
使用
函数 Csm_JobKeySetInvalid 将加密密钥的状态设置为无效 [SWS_Csm_91002]。调用此接口后,相关的密钥将无法再用于加密操作,直到其再次被置为有效状态 [SWS_Csm_91002]。该服务具有服务 ID 0x84,可通过头文件 Csm.h 获取,并根据作业配置同步或异步工作 [SWS_Csm_91002]。
调用时传递以下参数 [SWS_Csm_91002]:
jobId:使用此服务的 CSM 作业标识 [SWS_Csm_91002]。keyId:要使其无效的密钥标识 [SWS_Csm_91002]。
错误处理与返回值
类型为 Std_ReturnType 的返回值报告请求的结果 [SWS_Csm_91002]:
E_OK:请求成功 [SWS_Csm_91002]。E_NOT_OK:请求失败 [SWS_Csm_91002]。CRYPTO_E_BUSY:请求失败,因为负责的加密驱动程序对象被占用 [SWS_Csm_91002]。
并发性
该接口被指定为可重入的 [SWS_Csm_91002]。不存在额外的输入或输出参数 [SWS_Csm_91002]。
该文本由人工智能基于规范生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_JobRandomSeed [SWS_Csm_91028] 📄 PDF
Std_ReturnType Csm_JobRandomSeed (uint32 jobId, uint32 keyId, const uint8* seedPtr, Manager uint32 seedLength);
Provides a new seed for the specified key that is used for an associated random number generator.
用法与调用上下文
函数Csm_JobRandomSeed用于为指定的密钥提供新的种子,该密钥用于关联的随机数生成器[SWS_Csm_91028]。声明可在头文件Csm.h中获取[SWS_Csm_91028]。该函数具有服务 ID 0x7b并处理四个输入参数:通过jobId标识使用该服务的 CSM 作业,而keyId确定要为其生成种子的目标密钥[SWS_Csm_91028]。通过指针seedPtr传递初始化数据,并通过seedLength指定其以字节为单位的长度[SWS_Csm_91028]。执行行为取决于相应作业的配置,可以同步或异步执行[SWS_Csm_91028]。
错误处理与返回值
该函数返回类型为Std_ReturnType的状态,用于指示请求的结果[SWS_Csm_91028]:
E_OK:请求成功 [SWS_Csm_91028]。E_NOT_OK:请求通常失败[SWS_Csm_91028]。CRYPTO_E_BUSY:请求失败,因为该服务当前仍处于繁忙状态[SWS_Csm_91028]。CRYPTO_E_KEY_NOT_VALID:请求被拒绝,因为指定的密钥处于 invalid 状态[SWS_Csm_91028]。
并发性与限制
该接口被指定为可重入的[SWS_Csm_91028]。如果应用程序在另一个操作仍处于活动状态时调用该服务,返回值CRYPTO_E_BUSY会指示该状态[SWS_Csm_91028]。此外,在执行前必须确保通过keyId寻址的密钥有效,以避免出现错误CRYPTO_E_KEY_NOT_VALID[SWS_Csm_91028]。
此使用说明基于 AUTOSAR CP R20-11 规范自动生成。
函数 Csm_JobKeyGenerate [SWS_Csm_91029] 📄 PDF
Std_ReturnType Csm_JobKeyGenerate (uint32 jobId, uint32 keyId);
Generates new key material and stores it in the key identified by key Id.
使用
函数 Csm_JobKeyGenerate 生成新的密钥材料并将其保存在通过 keyId 标识的密钥中 [SWS_Csm_91029]。通过参数 jobId 传递使用 CSM 服务的作业标识 [SWS_Csm_91029]。根据相应作业的配置,执行方式为同步或异步 [SWS_Csm_91029]。该服务通过头文件 Csm.h 声明,服务 ID 为 0x7c [SWS_Csm_91029]。
返回值与错误处理
类型为 Std_ReturnType 的返回值提供有关请求结果的信息 [SWS_Csm_91029]:
E_OK:请求成功 [SWS_Csm_91029]。E_NOT_OK:请求失败 [SWS_Csm_91029]。CRYPTO_E_BUSY:该服务当前仍处于被占用状态 [SWS_Csm_91029]。CRYPTO_E_KEY_NOT_VALID:密钥的状态无效 (invalid) [SWS_Csm_91029]。CRYPTO_E_KEY_EMPTY:由于源密钥元素未初始化,请求失败 [SWS_Csm_91029]。
并发性与限制
该函数被指定为可重入的 [SWS_Csm_91029]。解释:由于规范未指定具体的执行上下文,调用通常可能在任务上下文中进行。 问题 Q-236d699ed655e285 (未决)
本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。
函数 Csm_JobKeyDerive [SWS_Csm_91030] 📄 PDF
Std_ReturnType Csm_JobKeyDerive (uint32 jobId, uint32 keyId, uint32 targetKeyId);
Derives a new key by using the key elements in the given key identified by the key Id. The given key contains the key elements for the password and salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto
用法与语义
函数 Csm_JobKeyDerive 通过使用来自 keyId 标识的密钥的密码和盐密钥元素来派生新的加密密钥 [SWS_Csm_91030]。结果存放在由 targetKeyId 指定的目的密钥中 ID 为 1 的密钥元素内 [SWS_Csm_91030]。调用通过头文件 Csm.h 进行,服务 ID 为 0x7d,并通过 jobId 传递相应作业 [SWS_Csm_91030]。
根据传入作业的配置,处理方式为同步或异步 [SWS_Csm_91030]。该函数被指定为可重入的 [SWS_Csm_91030]。
错误处理与返回值
该函数提供类型为 Std_ReturnType 的返回值。请求的成功执行由 E_OK 确认 [SWS_Csm_91030]。在发生错误或前提条件不匹配时,将报告特定的返回值 [SWS_Csm_91030]:
E_NOT_OK:请求失败 [SWS_Csm_91030]。CRYPTO_E_BUSY:请求失败,因为该服务当前仍处于繁忙状态 [SWS_Csm_91030]。CRYPTO_E_KEY_READ_FAIL:不允许读取密钥元素 [SWS_Csm_91030]。CRYPTO_E_KEY_WRITE_FAIL:不允许写入目的密钥元素 [SWS_Csm_91030]。CRYPTO_E_KEY_NOT_VALID:密钥状态无效 [SWS_Csm_91030]。CRYPTO_E_KEY_SIZE_MISMATCH:所涉及的密钥元素大小互不兼容 [SWS_Csm_91030]。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化 [SWS_Csm_91030]。
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
函数 Csm_JobKeyExchangeCalcPubVal [SWS_Csm_91031] 📄 PDF
Std_ReturnType Csm_JobKeyExchangeCalcPubVal (uint32 jobId, uint32 keyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);
Calculates the public value of the current user for the key exchange and stores the
使用
函数Csm_JobKeyExchangeCalcPubVal计算当前通信方用于密钥交换协议的公开值,并将其存储在指定的目标内存中[SWS_Csm_91031]。根据关联作业的配置,处理方式可以是同步的或异步的[SWS_Csm_91031]。
参数通过以下接口数据传递[SWS_Csm_91031]:
jobId:使用加密服务的 CSM 作业的标识符。keyId:用于密钥交换协议的密钥标识符。publicValuePtr:指向用于存放所计算公钥的缓冲区区域的指针。publicValueLengthPtr:指向长度信息的指针。调用函数时,该参数必须包含缓冲区publicValuePtr的容量;执行完成后,将写入所计算值的实际长度。
错误处理
类型为Std_ReturnType的返回值提供有关请求执行状态的信息[SWS_Csm_91031]:
E_OK:请求已成功执行。E_NOT_OK:请求失败。CRYPTO_E_BUSY:所请求的服务当前仍被占用。CRYPTO_E_KEY_NOT_VALID:密钥状态无效。CRYPTO_E_KEY_EMPTY:源密钥元素未初始化。
并发与集成
该接口被声明为可重入的,具有服务 ID 0x7e,并通过头文件Csm.h提供[SWS_Csm_91031]。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
函数 Csm_JobKeyExchangeCalcSecret [SWS_Csm_91032] 📄 PDF
Std_ReturnType Csm_JobKeyExchangeCalcSecret (uint32 jobId, uint32 keyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
Calculates the shared secret key for the key exchange with the key material of the key identified by the key Id and the partner public key. The shared secret key is stored as a key element in the same key.
用法与语义
函数Csm_JobKeyExchangeCalcSecret使用通过keyId标识的密钥中的密钥材料以及通信伙伴的公钥来计算用于密钥交换的共享秘密密钥(Shared Secret Key)[SWS_Csm_91032]。伙伴密钥的内存地址通过partnerPublicValuePtr传递,其字节长度通过partnerPublicValueLength定义[SWS_Csm_91032]。计算出的共享秘密直接作为密钥元素存储在同一密钥内[SWS_Csm_91032]。
通过输入参数jobId标识使用该服务的 CSM 作业。执行行为取决于相应的作业配置,分为同步或异步[SWS_Csm_91032]。
错误处理与返回值
类型为Std_ReturnType的返回值报告服务请求的状态[SWS_Csm_91032]:
E_OK:服务请求成功 [SWS_Csm_91032]。E_NOT_OK:服务请求失败 [SWS_Csm_91032]。CRYPTO_E_BUSY:请求失败,因为底层服务仍被占用[SWS_Csm_91032]。CRYPTO_E_KEY_NOT_VALID:请求失败,因为所引用的密钥处于“invalid”状态[SWS_Csm_91032]。CRYPTO_E_KEY_EMPTY:计算失败,因为所需的源密钥元素未初始化[SWS_Csm_91032]。
并发与集成
该函数设计为可重入的,具有服务 ID 0x7f,并通过头文件Csm.h声明[SWS_Csm_91032]。
本文由人工智能生成。唯有官方规范具有权威性。
函数 Csm_SaveContextJob [SWS_Csm_91063] 📄 PDF
Std_ReturnType Csm_SaveContextJob (uint32 jobId, uint8* contextBufferPtr, uint32* contextBufferLengthPtr);
The Crypto Driver stores the internal context of the respective crypto operation to the context Buffer.
函数 Csm_SaveContextJob 促使 Crypto Driver 将相应加密操作的内部上下文保存到应用程序端缓冲区中 [SWS_Csm_91063]。该服务在头文件 Csm.h 中声明,服务 ID 为 0x86 [SWS_Csm_91063]。
该接口需要以下参数 [SWS_Csm_91063]:
jobId(输入):表示使用 CSM 服务的作业的唯一标识符。contextBufferLengthPtr(输入/输出):指向长度值的指针。调用时,它指定目标缓冲区中可用的最大容量;执行后,它包含实际写入的数据长度,或者在出错时包含值0。contextBufferPtr(输出):指向应用程序存储区的指针,上下文数据将写入该区域。
执行根据作业配置以同步或异步方式进行 [SWS_Csm_91063]。此外,该函数被指定为可重入 [SWS_Csm_91063]。
定义了以下返回值用于反馈操作状态 [SWS_Csm_91063]:
E_OK:上下文数据已成功存入缓冲区,且长度值已更新。E_NOT_OK:由于值无效而未能提供上下文数据;返回的长度被设置为0。CRYPTO_E_BUSY:请求失败,因为底层加密服务仍处于忙碌状态。
本使用说明是基于规范数据自动生成的。
函数 Csm_RestoreContextJob [SWS_Csm_91064] 📄 PDF
Std_ReturnType Csm_RestoreContextJob (uint32 jobId, uint8* contextBufferPtr, uint32 contextBufferLength);
The Crypto Driver extracts the context data from the context Buffer and restores the internal state so that further crypto operation of this crypto service will continue at the exact point when the context was taken.
用法与语义
函数 Csm_RestoreContextJob 用于从外部缓冲区恢复加密作业的内部状态,以便后续操作能够在先前备份的确切位置继续进行 [SWS_Csm_91064]。通过参数 jobId 定址目标作业,而 contextBufferPtr 指向有效负载数据,contextBufferLength 指向其字节大小 [SWS_Csm_91064]。根据相应作业的配置,执行方式为同步或异步 [SWS_Csm_91064]。
返回值与错误处理
该函数通过类型为 Std_ReturnType 的返回值返回操作结果 [SWS_Csm_91064]:
E_OK:上下文数据读取成功,且内部驱动程序状态已恢复 [SWS_Csm_91064]。E_NOT_OK:上下文恢复失败 [SWS_Csm_91064]。CRYPTO_E_BUSY:底层加密服务当前正忙,因此请求被拒绝 [SWS_Csm_91064]。
并发性与限制
该接口被指定为可重入,并通过 Csm.h 提供(服务 ID 0x87)[SWS_Csm_91064]。解读:在作业采用异步配置的情况下,调用方可能必须确保 contextBufferPtr 处的缓冲区在恢复实际完成之前保持不变且有效。 问题 Q-8ab0cb179f807bd4 (未决)
此文本由 AI 创建。它不能替代对 AUTOSAR 规范的查阅。
实现者指南即将推出(复杂度 I1)
函数 Csm_CancelJob [SWS_Csm_00968] 📄 PDF
Std_ReturnType Csm_CancelJob (uint32 job, Crypto_OperationModeType mode);
Cancels the job processing from asynchronous or streaming jobs .
用法与调用上下文
函数 Csm_CancelJob(服务 ID 0x6f)用于在模块 Csm 内部同步中止异步作业或流式作业的处理 [SWS_Csm_00968]。该接口通过头文件 Csm.h 提供 [SWS_Csm_00968]。作为参数,该函数通过 job(类型为 uint32)接收待中止作业的标识符,并通过 mode(类型为 Crypto_OperationModeType)接收未被使用且仅用于接口兼容性的参数 [SWS_Csm_00968]。
返回值与取消行为
中止调用的结果通过类型为 Std_ReturnType 的返回值同步指示 [SWS_Csm_00968]:
E_OK:中止立即成功;作业已从所有队列中移除,并可能直接从加密驱动程序的硬件中移除 [SWS_Csm_00968]。E_NOT_OK:中止请求失败 [SWS_Csm_00968]。CRYPTO_E_JOB_CANCELED:无法立即取消;中止将在下一个合适的处理步骤中执行,随后通过该作业的负面完成回调进行通知 [SWS_Csm_00968]。
并发性与限制
规范将 Csm_CancelJob 定义为同步且不可重入(Non Reentrant)[SWS_Csm_00968]。因此,调用组件必须确保不发生对该函数的并发调用。
此使用说明自动生成,仅基于 AUTOSAR Classic Release R20-11 的规范数据。
实现者指南即将推出(复杂度 I1)
函数 Csm_CallbackNotification [SWS_Csm_00970] 📄 PDF
void Csm_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);
Notifies the CSM that a job has finished. This function is used by the underlying layer (CRYIF).
同步接口 Csm_CallbackNotification 通过头文件 Csm.h 声明,并作为底层(CRYIF)的反馈函数,用于通知 Crypto Service Manager(CSM)加密作业已完成 [SWS_Csm_00970]。该函数没有返回值,并接收两个输入参数:指向类型为 Crypto_JobType* 的已完成作业的指针 job,以及类型为 Crypto_ResultType 的 result(用于传递底层加密操作的执行结果)[SWS_Csm_00970]。
在并发性方面,Csm_CallbackNotification 的执行被指定为可重入 [SWS_Csm_00970]。该元素中未定义特定的返回码或单独的 DET 或 DEM 错误消息;加密处理的错误状态和执行结果改为直接通过传递的实参 result 提供 [SWS_Csm_00970]。
作为协同作用的一部分,该函数会检查作业的处理模式:若字段 job->jobPrimitiveInputOutput.mode 中的位 CRYPTO_OPERATIONMODE_FINISH 已置位,规范要求 Csm_CallbackNotification 调用配置的回调函数 [SWS_Csm_01044]。Interpretation:该调用可能涉及通知上层应用层,因为 FINISH 标志表示加密操作序列的最终完成。 问题 Q-32da2433b15ba3a9 (未决)
本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
函数 Csm_MainFunction [SWS_Csm_00479] 📄 PDF
void Csm_MainFunction (void);
API to be called cyclically to process the requested jobs. The Csm_ Main Function shall check the queues for jobs to pass to the underlying CRYIF. Per configured Csm Main Function ins tance one Csm_ Main Function_
使用
函数 Csm_MainFunction 被周期性调用,以处理所请求的加密作业 [SWS_Csm_00479]。它没有传递参数(void),且不返回任何返回值 [SWS_Csm_00479]。其声明可通过头文件 SchM_Csm.h 获取 [SWS_Csm_00479]。
任务与协同作用
作为其周期性执行的一部分,该函数会检查内部队列中是否有待决作业,并将其传递给底层 CRYIF [SWS_Csm_00479]。
实例化与调用上下文
每个配置的实例都会实现一个形式为 Csm_MainFunction_<shortName> 的专用函数,其中 <shortName> 对应于 ECU 配置中配置容器的短名称 [SWS_Csm_00479]。由于该接口通过 SchM_Csm.h 提供,周期性调用按计划应由 BSW 调度器(SchM)在周期性任务中完成。 问题 Q-ffb62942b1f517b3 (未决)
错误处理与边界条件
在当前的规范摘录中未描述特定的错误代码、DET 或 DEM 消息以及显式的可重入性要求 [SWS_Csm_00479]。
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
函数 <Csm_ApplicationCallbackNotification> [SWS_Csm_00971] 📄 PDF
void <Csm_ApplicationCallbackNotification> (uint32 jobId, Crypto_ResultType result);
CSM notifies the application that a job has finished. The function name is configurable. The function name itself is derived from "{Csm Job/ Csm Job Primitive Callback Ref}/Csm Callback Func".
可配置的回调函数 <Csm_ Application Callback Notification> 用于通过 Crypto Service Manager (CSM) 同步通知应用程序处理作业的结束 [SWS_Csm_00971]。该函数的标识符并非固定预设,而是通过配置参数 {Csm Job/ Csm Job Primitive Callback Ref}/Csm Callback Func 进行项目特定定义 [SWS_Csm_00971]。该接口具有服务 ID 0x82,并通过头文件 Csm.h 提供 [SWS_Csm_00971]。
该签名没有返回值(void),并向应用程序传递两个输入参数以供评估 [SWS_Csm_00971]:
jobId(uint32):表示其完成触发了该回调的加密作业的唯一 ID [SWS_Csm_00971]。result(Crypto_ResultType):传输已执行加密操作的结果或状态 [SWS_Csm_00971]。
在并发性方面,该通知函数被指定为可重入的 [SWS_Csm_00971]。未为回调本身定义特定的 DET 或 DEM 错误代码;先前操作发生的错误必须直接通过 result 进行评估 [SWS_Csm_00971]。由于该接口被声明为可重入,应用程序端的实现可能必须设计为能够线程安全地处理针对不同作业的同时通知。 问题 Q-79504ea3461f8d61 (未决)
本文本根据 AUTOSAR 规范自动生成。
类型 Csm_ConfigType [SWS_Csm_01085] 📄 PDF
Configuration data structure of Csm module
类型 Crypto_AlgorithmFamilyType [SWS_Csm_01047] 📄 PDF
Type Crypto_AlgorithmFamilyType.
类型 Crypto_AlgorithmModeType [SWS_Csm_01048] 📄 PDF
Type Crypto_AlgorithmModeType.
根据 [SWS_Csm_01048],枚举类型 Crypto_AlgorithmModeType 指定密码学算法的操作模式。它可通过头文件 Crypto_GeneralTypes.h 获取,用于 Crypto Service Manager 中密码学机制的标准化配置以及运行时选择。
使用与取值范围:
- 经典分组密码模式:支持包括
CRYPTO_ALGOMODE_ECB、CRYPTO_ALGOMODE_CBC、CRYPTO_ALGOMODE_CFB、CRYPTO_ALGOMODE_OFB、CRYPTO_ALGOMODE_CTR、CRYPTO_ALGOMODE_GCM以及CRYPTO_ALGOMODE_XTS[SWS_Csm_01048]。 - 非对称机制与填充:包含用于加密和签名的模式,如
CRYPTO_ALGOMODE_RSAES_OAEP、CRYPTO_ALGOMODE_RSAES_PKCS1_v1_5、CRYPTO_ALGOMODE_RSASSA_PSS和CRYPTO_ALGOMODE_RSASSA_PKCS1_v1_5[SWS_Csm_01048]。 - 其他操作模式:取值范围包括轮数(
CRYPTO_ALGOMODE_8ROUNDS、CRYPTO_ALGOMODE_12ROUNDS、CRYPTO_ALGOMODE_20ROUNDS)、MAC 机制(CRYPTO_ALGOMODE_HMAC、CRYPTO_ALGOMODE_CMAC、CRYPTO_ALGOMODE_GMAC)、随机比特发生器(CRYPTO_ALGOMODE_CTRDRBG)、SipHash 变体以及曲线定义(如CRYPTO_ALGOMODE_PXXXR1)[SWS_Csm_01048]。 - 特殊状态:
CRYPTO_ALGOMODE_NOT_SET(0x00)表示未设置算法密钥,而CRYPTO_ALGOMODE_CUSTOM(0xff)允许厂商特定的操作模式 [SWS_Csm_01048]。
解释:由于 Crypto_AlgorithmModeType 是纯枚举,该类型本身没有通过 DET 或 DEM 的错误处理,并且不受重入规则的约束。 问题 Q-3d2e905dda6531ac (未决)错误检查和调用上下文相关的限制仅来自于将该类型的值作为参数传入的 CSM 函数。
此使用说明基于规范 SWS_Csm_01048 自动生成。
实现者指南即将推出(复杂度 I1)
类型 Crypto_InputOutputRedirectionConfigType [SWS_Csm_91024] 📄 PDF
Defines which of the input/ output parameters are re - directed to a key element. The values can be combined to define a bit field.
类型 Crypto_JobType [SWS_Csm_01013] 📄 PDF
Structure which contains further information, which depends on the job and the crypto primitive.
Crypto_JobType 的使用与结构
结构体 Crypto_JobType 汇集了在 Crypto Service Manager 中执行加密作业所需的所有相关控制、状态和缓冲区数据,并通过 Crypto_GeneralTypes.h 提供 [SWS_Csm_01013]。
该结构的核心元素包括[SWS_Csm_01013]:
jobId:作业的唯一标识符。jobState:表示作业的当前执行状态。jobPrimitiveInputOutput:指向原语的具体输入和输出数据。jobPrimitiveInfo:指向所选加密原语常量附加信息的指针。jobPriority:确定执行优先级,数值越大表示紧急程度越高。jobRedirectionInfoRef:指向将密钥重定向为输入和输出值的可选规范的指针。
交互与接口关系
结构字段cryptoKeyId和targetCryptoKeyId引用加密驱动程序中要使用的密钥;根据规范,这些标识符由 Crypto Interface 描述[SWS_Csm_01013]。解释:队列中并发作业的调度和处理顺序大概通过jobPriority进行控制。 问题 Q-439432c5631948fb (未决)
本文档由 AI 生成。所有信息均完全基于 AUTOSAR R20-11 规范。
类型 Crypto_JobStateType [SWS_Csm_01028] 📄 PDF
Enumeration of the current job state.
枚举类型 Crypto_JobStateType 定义 CSM 中加密作业的当前处理状态 [SWS_Csm_01028]。它通过头文件 Crypto_GeneralTypes.h 提供,并区分作业生命周期的两个主要状态 [SWS_Csm_01028]:
CRYPTO_JOBSTATE_IDLE(0x00):标识作业的空闲状态。该状态在调用Csm_Init()之后最初进入,或者在完成 Finish 操作(状态“Finish”)后立即进入 [SWS_Csm_01028]。CRYPTO_JOBSTATE_ACTIVE(0x01):指示作业正在被活动处理,且输入数据已被处理或存在中间结果。一旦成功完成 Start 或 Update 操作,即达到此状态 [SWS_Csm_01028]。
关于使用和相互协作,该类型反映了流式或多阶段加密操作的进度 [SWS_Csm_01028]。转换到 CRYPTO_JOBSTATE_ACTIVE 表明加密上下文已初始化或持续保留中间结果,而转换到 CRYPTO_JOBSTATE_IDLE 则标志着终止,并指示作业已准备好进行新的流程 [SWS_Csm_01028]。
此文本由 AI 创建。它完全基于 CSM 模块 (R20-11) 的规范数据。
实现者指南即将推出(复杂度 I1)
类型 Crypto_JobPrimitiveInputOutputType [SWS_Csm_01009] 📄 PDF
Type Crypto_JobPrimitiveInputOutputType.
类型 Crypto_JobPrimitiveInfoType [SWS_Csm_01012] 📄 PDF
Structure which contains further information, which depends on the job and the crypto primitive.
数据结构 Crypto_JobPrimitiveInfoType 捆绑了有关加密作业及其底层原语的附加信息 [SWS_Csm_01012]。它在 Classic AUTOSAR 堆栈中通过头文件 Crypto_GeneralTypes.h 获取 [SWS_Csm_01012]。
组成部分与使用
根据规范 [SWS_Csm_01012],该结构由以下字段组成:
callbackId(uint32):一旦配置服务的执行结束,由 CSM 模块调用的回调函数的内部标识符 [SWS_Csm_01012]。primitiveInfo(const Crypto_PrimitiveInfoType*):指向包含加密原语进一步配置的数据结构的指针 [SWS_Csm_01012]。cryIfKeyId(uint32):加密接口(CryIf)的密钥标识符 [SWS_Csm_01012]。processingType(Crypto_ProcessingType):定义执行行为,并确定作业是同步还是异步处理 [SWS_Csm_01012]。
执行上下文与语义
字段 processingType 控制作业处理的同步或异步语义 [SWS_Csm_01012]。其中,通过 callbackId 存储的回调函数可能主要在异步模式下发挥作用,用于通知调用者服务已结束,而指针 primitiveInfo 必须指向有效的原语配置 [SWS_Csm_01012]。 问题 Q-791dae4fb6a83f99 (未决)
本使用说明由 AI 基于 AUTOSAR 规范 R20-11 生成。
类型 Crypto_ServiceInfoType [SWS_Csm_01031] 📄 PDF
Enumeration of the kind of the service.
类型 Crypto_JobRedirectionInfoType [SWS_Csm_91026] 📄 PDF
Type Crypto_JobRedirectionInfoType.
类型 Crypto_AlgorithmInfoType [SWS_Csm_01008] 📄 PDF
Structure which determines the exact algorithm. Note, not every algorithm needs to specify all fields. AUTOSAR shall only allow valid combinations.
使用
数据结构 Crypto_AlgorithmInfoType 确定加密算法的精确配置,并通过头文件 Crypto_GeneralTypes.h 提供 [SWS_Csm_01008]。它由以下元素组成:
family(Crypto_AlgorithmFamilyType):算法的主族。secondaryFamily(Crypto_AlgorithmFamilyType):算法的次族。keyLength(uint32):要使用的密钥长度(单位:位)。mode(Crypto_AlgorithmModeType):算法的预定工作模式。
并非每种算法都需要完整占用所有结构元素 [SWS_Csm_01008]。根据加密操作的类型,诸如工作模式或次族等单个字段可能保持未使用状态。
限制与错误处理
根据 [SWS_Csm_01008],AUTOSAR 中只允许出现结构元素的有效组合。不允许无效组合——例如针对特定算法族的不匹配工作模式或无效密钥长度。对参数组合有效性的检查推测可能由配置工具完成,或在服务调用时由 CSM 完成。 问题 Q-da4984170bba173c (未决)
本文本由人工智能创建并管理。
类型 Crypto_ProcessingType [SWS_Csm_01049] 📄 PDF
Enumeration of the processing type.
类型 Crypto_PrimitiveInfoType [SWS_Csm_01011] 📄 PDF
Structure which contains basic information about the crypto primitive. Manager AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoServiceManager
结构 Crypto_PrimitiveInfoType 在 Crypto Service Manager (CSM) 中用于提供加密原语 ([SWS_Csm_01011]) 的基本元数据。它通过头文件 Crypto_GeneralTypes.h 声明,并汇总相应操作的静态特性 ([SWS_Csm_01011])。
该结构由两个元素组成 ([SWS_Csm_01011]):
service(类型:const Crypto_ServiceInfoType):通过枚举确定所使用的加密服务,例如加密 (Encrypt) ([SWS_Csm_01011])。algorithm(类型:const Crypto_AlgorithmInfoType):包含所用算法的详细信息 ([SWS_Csm_01011])。
由于这两个元素均被定型为 const,因此它们很可能是只读的配置或元数据,在配置时确定并在运行时由驱动程序或 CSM 仅以只读方式评估 ([SWS_Csm_01011])。 问题 Q-6d53291f7fb8cfe6 (未决)未为此数据结构类型定义特定的错误代码、错误处理例程或并发限制。
此文本由 AI 创建。请根据规范检查安全关键细节。
类型 Csm_ConfigIdType [SWS_Csm_00691] 📄 PDF
Identification of a CSM service configuration via a numeric identifier, that is unique within a service. The name of a CSM service configuration, i.e. the name of the container Csm_
类型 Crypto_OperationModeType [SWS_Csm_01029] 📄 PDF
Enume ration which operation shall be performed. This enumeration is constructed from a bit mask, where the first bit indicates "Start", the second "Update" and the third "Finish".
枚举类型 Crypto_OperationModeType 根据 [SWS_Csm_01029] 定义加密操作中要执行的处理阶段。该类型采用位掩码结构,其前三位分别对应核心步骤 Start(第 1 位 / 0x01)、Update(第 2 位 / 0x02)和 Finish(第 3 位 / 0x04)。
通过枚举值控制加密作业的不同执行与生命周期阶段 [SWS_Csm_01029]:
CRYPTO_OPERATIONMODE_START(0x01):初始化作业;重置状态,从而清除先前的输入数据与中间结果。CRYPTO_OPERATIONMODE_UPDATE(0x02):处理输入数据以计算中间结果。CRYPTO_OPERATIONMODE_FINISH(0x04):最终完成加密操作的计算。CRYPTO_OPERATIONMODE_STREAMSTART(0x03):为流式处理场景组合 Start 与 Update。CRYPTO_OPERATIONMODE_SINGLECALL(0x07):整合 Start、Update 与 Finish,以便在单次调用中完成全部处理。
此外,该类型还支持可中断流程中的工作区管理:借助 CRYPTO_OPERATIONMODE_SAVE_CONTEXT(0x08),加密驱动程序向应用程序提供当前的工作区上下文,而 CRYPTO_OPERATIONMODE_RESTORE_CONTEXT(0x10)则在驱动程序内部工作区中恢复先前保存的状态 [SWS_Csm_01029]。该类型通过头文件 Rte_Csm_Type.h 提供。
本使用说明由系统自动生成,完全基于 [SWS_Csm_01029] 中的说明。
实现者指南即将推出(复杂度 I1)
类型 Crypto_VerifyResultType [SWS_Csm_01024] 📄 PDF
Enumeration of the result type of verification operations.
枚举类型 Crypto_VerifyResultType 定义 CSM 模块中验证操作的功能结果 [SWS_Csm_01024]。它通过头文件 Rte_Csm_Type.h 提供,用于确定加密比较是否成功完成 [SWS_Csm_01024]。
值范围与语义
根据 [SWS_Csm_01024],该枚举包含两个离散值以映射比较状态:
CRYPTO_E_VER_OK(值0x00或0):验证结果为“true”,因此所比较的两个元素相同 [SWS_Csm_01024]。CRYPTO_E_VER_NOT_OK(值0x01或1):验证结果为“false”,所比较的元素不相同 [SWS_Csm_01024]。
该类型将关于数据匹配性的功能判定与操作的一般执行状态分离开来。解释:这意味着如果数据互不相同,即使无误执行的校验例程也可能返回返回值 CRYPTO_E_VER_NOT_OK [SWS_Csm_01024]。
使用与限制
由于该数据类型通过 Rte_Csm_Type.h 声明,它很可能主要用作 CSM 验证服务的输出参数 [SWS_Csm_01024]。 问题 Q-067a1d2b36ffe56b (未决)类型本身未指定诸如 DET 或 DEM 消息之类的特定错误处理以及关于可重入性或并发性的规定 [SWS_Csm_01024]。
此文本由 AI 生成,仅供参考。一切以 AUTOSAR 官方规范为准。
类型 Csm_KeyDataType [SWS_Csm_00828] 📄 PDF
Array long enough to store any key element of the considered key
类型 Crypto_ResultType [SWS_Csm_91044] 📄 PDF
Return for Std_ Return Type for Cryptostack.
枚举类型 Crypto_ResultType 用作 AUTOSAR 加密栈函数的特定返回类型,并可通过头文件 Rte_Csm_Type.h 获取 [SWS_Csm_91044]。它扩展了经典返回方案,为加密操作提供了差异化的错误与状态消息 [SWS_Csm_91044]。
除常规成功状态 E_OK (0x00) 和一般错误 E_NOT_OK (0x01) 之外,该类型还定义了以下特定错误状态 [SWS_Csm_91044]:
- 流程和资源状态:
CRYPTO_E_BUSY(0x02) 标识服务仍被占用,CRYPTO_E_JOB_CANCELED(0x0C) 标识作业中止,CRYPTO_E_ENTROPY_EXHAUSTED(0x04) 标识随机数生成器的熵源耗尽 [SWS_Csm_91044]。 - 密钥和访问问题:指定了读取时的访问拒绝 (
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_KEY_EMPTY, 0x0D) [SWS_Csm_91044]。
解释:调用组件可能会评估这些返回码,以便视情况在临时等待状态与永久配置错误之间进行区分。 问题 Q-68cfedad7880908c (未决)
此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。
类型 Csm_HashDataType [SWS_Csm_01920] 📄 PDF
Array long enough to store the data which shall be hashed.
Csm_HashDataType 的使用和结构
根据 [SWS_Csm_01920],数据类型 Csm_HashDataType 定义为具有基本类型为 uint8 的元素的数组。其用作数据缓冲区,用于存储要在 Crypto Service Manager 中进行哈希值计算的输入数据。字段长度设计为足以完整接收待哈希的数据 [SWS_Csm_01920]。
配置与变体构建
数组的实际大小确定通过配置参数 CsmHashDataMaxLength 控制,该参数在路径 Csm/CsmPrimitives/CsmHash/CsmHashConfig 下定义 [SWS_Csm_01920]。由此确保内存区域针对各哈希配置的最大预期数据量进行了匹配设计。
此外,还存在根据模式 Csm_HashDataType_{Crypto} 的加密变体形式,其中占位符 {Crypto} 通过 Csm/CsmPrimitives 下各原语配置的 SHORT-NAME 进行解析 [SWS_Csm_01920]。这使得系统中能够存在特定于原语的缓冲区结构。
集成与边界条件
该类型通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_01920]。这可能意味着该类型用于软件组件与 CSM 之间通过 RTE 接口进行标准化数据传递。 问题 Q-4240a8394cdd746d (未决)用户在填充缓冲区时必须注意,数据不得超过配置的上限 CsmHashDataMaxLength,以避免哈希计算时发生溢出。
该文本由 AI 创建,基于规范版本 R20-11。
实现者指南即将推出(复杂度 I1)
类型 Csm_HashResultType [SWS_Csm_00912] 📄 PDF
Array long enough to store the data of the hash.
Csm_HashResultType 的使用与结构
数据类型 Csm_HashResultType 表示 uint8 元素的数组,并用作具有足够维度的存储区域,以存放哈希结果的数据 [SWS_Csm_00912]。
数组的具体缓冲区长度是可配置的,并通过 Csm/CsmPrimitives/CsmHash/CsmHashConfig/CsmHashResultLength 下的配置参数 CsmHashResultLength 确定 [SWS_Csm_00912]。因此,数据类型的大小直接取决于相应加密哈希算法的输出长度。
类型定义遵循符合模式 Csm_HashResultType_{Crypto} 的名称变体,其中标识符 {Crypto} 被替换为所配置原语的短名称(ecuc/Csm/CsmPrimitives.SHORT-NAME)[SWS_Csm_00912]。
该数据类型通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_00912]。解释:由于通过 Rte_Csm_Type.h 提供,该类型可能主要设计用于在软件组件中或 RTE 接口处用作哈希返回值的具类型结果缓冲区。 问题 Q-4ff10e08b6a5c8c0 (未决)
本文本由 AI 基于规范数据生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_MacGenerateDataType [SWS_Csm_00935] 📄 PDF
Array long enough to store the data from which a MAC shall be generated.
数据类型 Csm_MacGenerateDataType 用作字节数组,用于存储据以计算消息认证码(MAC)的输入数据 [SWS_Csm_00935]。
使用与类型结构
根据 [SWS_Csm_00935],该元素被指定为具有基本类型 uint8 元素的数组。类型名称遵循模式 Csm_MacGenerateDataType_{Crypto} 的密码学命名变体,其中后缀对应于相应原语的配置短名称 [SWS_Csm_00935]。该数组的尺寸由配置参数 CsmMacGenerateDataMaxLength 静态确定,从而确保数组为要处理的数据提供足够的存储空间 [SWS_Csm_00935]。
集成与接口
该类型通过头文件 Rte_Csm_Type.h 提供,并将数据结构绑定到 AUTOSAR RTE [SWS_Csm_00935]。调用方软件组件(SWC)或基础软件模块可以使用该类型为 CSM 的 MAC 生成服务声明类型化数据缓冲区。
限制
由于数组大小通过最大长度进行了固定配置,因此在用户层面推测必须确保有效负载数据不超过此限制,因为静态类型不提供动态长度调整 [SWS_Csm_00935]。 问题 Q-2010ffc7191f874a (未决)
此使用说明为自动创建,仅基于 AUTOSAR 版本 R20-11 的规范数据。
实现者指南即将推出(复杂度 I1)
类型 Csm_MacGenerateResultType [SWS_Csm_00927] 📄 PDF
Array long enough to store the data of the MAC.
根据 [SWS_Csm_00927],数据类型 Csm_MacGenerateResultType 表示一个字节数组(元素类型 uint8),用于接收生成的消息认证码(MAC)的结果数据。
使用与尺寸定义
规范将该数组定义为具有足够的长度以存储 MAC 的数据([SWS_Csm_00927])。实际的缓冲区大小通过配置参数 CsmMacGenerateResultLength 确定,该参数在路径 Csm/CsmPrimitives/CsmMacGenerate/CsmMacGenerateConfig 下进行配置([SWS_Csm_00927])。此外,根据 [SWS_Csm_00927],该类型通过原语的短名称({Crypto} 或 ecuc/Csm/CsmPrimitives.SHORT-NAME)遵循密码学变体规则。
可用性与接口
该类型通过头文件 Rte_Csm_Type.h 提供([SWS_Csm_00927])。这表明它主要设计用于通过 RTE 接口进行类型化数据传递,以提供计算出的 MAC 值。
限制
由于它是静态类型定义,具体的实例化取决于 MAC 长度的预配置;该数据类型本身未指定其他参数、错误代码或并发要求([SWS_Csm_00927])。
本文本由 AI 生成,作为基于 AUTOSAR 规范的参考指南。
实现者指南即将推出(复杂度 I1)
类型 Csm_MacVerifyDataType [SWS_Csm_00802] 📄 PDF
Array long enough to store the data for whichs MAC shall be verified.
数据类型 Csm_MacVerifyDataType 被指定为 uint8 元素的数组,并用作存储待验证消息认证码(MAC)的数据的缓冲区 [SWS_Csm_00802]。
对于此类型的用法和配置,适用以下规定:
- 缓冲区大小:数组大小取决于容器
Csm/CsmPrimitives/CsmMacVerify/CsmMacVerifyConfig中的配置参数CsmMacVerifyDataMaxLength。这确保了数组具有足够的维度来完全容纳待验证的输入数据 [SWS_Csm_00802]。 - 可变性与命名:该定义包含可变性标准
Crypto={ecuc/Csm/CsmPrimitives.SHORT-NAME},由此以Csm_MacVerifyDataType_{Crypto}的形式生成模块特定的具体 C 类型标识符 [SWS_Csm_00802]。 - 接口集成:该类型通过头文件
Rte_Csm_Type.h导出 [SWS_Csm_00802]。解释:在此头文件中的提供表明,该类型可能主要用于软件组件与 CSM 之间基于 RTE 的接口通信。 问题 Q-c49670b3de0ba19c (未决)
应用程序开发人员必须注意,可验证有效负载的最大长度受原语静态配置的限制,输入数据不得超过此缓冲区容量 [SWS_Csm_00802]。
本文由 AI 基于 AUTOSAR R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_MacVerifyCompareType [SWS_Csm_00803] 📄 PDF
Array long enough to store a MAC to be verified.
使用与结构
根据 [SWS_Csm_00803],类型 Csm_MacVerifyCompareType 被定义为由 uint8 元素组成的数组。它用于容纳待验证的消息认证码(MAC),该 MAC 将与在加密操作框架内计算出的 MAC 进行比对。
该类型通过用于 RTE 接口 [SWS_Csm_00803] 的头文件 Rte_Csm_Type.h 提供。具体类型名称根据模式 Csm_MacVerifyCompareType_{Crypto} 遵循基于原语名称的名称变体,其中 {Crypto} 被替换为原语的短名称(ecuc/Csm/CsmPrimitives.SHORT-NAME)。
配置与尺寸确定
根据 [SWS_Csm_00803],数组的大小根据配置(ecuc(Csm/CsmPrimitives/CsmMacVerify/CsmMacVerifyConfig/CsmMacVerifyCompareLength))中的表达式 CsmMacVerifyCompareLength/8 确定。这反映了 MAC 比对值的字节长度。
错误处理与边界条件
作为数据数组的纯类型定义,Csm_MacVerifyCompareType 没有自己的返回值,也不直接生成错误代码或 DET/DEM 事件。但是,适用以下与应用相关的约束条件:
- 缓冲区提供:调用方可能负责在传递给验证函数之前,使用接收到的参考 MAC 对数组进行完全初始化。 问题 Q-94b98958fd778057 (未决)
- 并发性:由于这是一种数据结构,类型本身是可重入的。然而,在没有同步的情况下,多个任务对同一数组实例的并发读写访问可能会导致数据损坏。 问题 Q-148c0a523da7b402 (未决)
本使用说明基于 AUTOSAR CP R20-11 规范并自动生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_EncryptDataType [SWS_Csm_01921] 📄 PDF
Array long enough to store the data to be encrypted.
类型 Csm_EncryptDataType 定义了一个由 uint8 元素构成的字节数组,用于接收待加密的数据 [SWS_Csm_01921]。它通过头文件 Rte_Csm_Type.h 提供,并使软件组件能够向模块的加密服务进行类型化数据传递 [SWS_Csm_01921]。
结构与配置
- 数组元素:元素属于基本类型
uint8[SWS_Csm_01921]。 - 大小:数组长度根据各原语配置下方的配置参数
CsmEncryptDataMaxLength确定CsmEncryptConfig[SWS_Csm_01921]。 - 名称变化:类型名称根据各原语按照模式
Csm_EncryptDataType_{Crypto}变化,其中{Crypto}对应于已配置 CSM 原语的短名称(SHORT-NAME)[SWS_Csm_01921]。
使用与限制
作为纯类型定义,该元素不具有自己的可重入性或错误处理。由于数组大小与配置的最大缓冲区大小紧密挂钩,因此作为解释,调用者在填充时可能必须确保所提供的数据不超过缓冲区边界 CsmEncryptDataMaxLength [SWS_Csm_01921]。 问题 Q-4bf70d603b5679d3 (未决)
本文由 AI 基于 AUTOSAR R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_EncryptResultType [SWS_Csm_01922] 📄 PDF
Array long enough to store the data of the cipher.
使用与目的
数据类型 Csm_EncryptResultType 指定为元素类型为 uint8 的字节数组,用于接收加密过程的密文数据(密文结果)([SWS_Csm_01922])。根据规范,数组的设计应足够长,以接收密文的所有数据([SWS_Csm_01922])。
配置与变体
数据类型的定义根据已配置的加密原语进行变体形式构建。针对每个原语,按照模式 Csm_EncryptResultType_{Crypto} 形成特定于类型的标识符,其中 {Crypto} 对应于各原语的短名称([SWS_Csm_01922])。数组的静态字段大小通过 Csm/CsmPrimitives/CsmEncrypt/CsmEncryptConfig/ 下的配置参数 CsmEncryptResultMaxLength 确定([SWS_Csm_01922])。
集成与边界条件
该数据类型通过头文件 Rte_Csm_Type.h 导出([SWS_Csm_01922])。解释:基于通过 Rte_Csm_Type.h 提供,该类型可能被设计用于通过 RTE 端口在应用软件组件与 Crypto Service Manager 之间进行标准化数据传递。 问题 Q-6dc06520e3fd9dc6 (未决)用户在准备缓冲区时必须确保密文结果不超过配置的最大长度 CsmEncryptResultMaxLength([SWS_Csm_01922])。
本使用说明基于 AUTOSAR R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_DecryptDataType [SWS_Csm_01923] 📄 PDF
Array long enough to store the data to be decrypted.
使用与数据结构
类型 Csm_DecryptDataType 在 Crypto Service Manager 规范中定义为具有基本类型为 uint8 的元素的数组 [SWS_Csm_01923]。它用作待解密输入数据的专用存储缓冲区 [SWS_Csm_01923]。规范强制规定数组的设计必须保证其容量始终足够长,以完整接收相应的数据 [SWS_Csm_01923]。
配置与变体构建
数组的大小确定通过配置参数 ecuc(Csm/CsmPrimitives/CsmDecrypt/CsmDecryptConfig/CsmDecryptDataMaxLength) 静态进行 [SWS_Csm_01923]。此外,该数据类型遵循符合 Crypto={ecuc/Csm/CsmPrimitives.SHORT-NAME} 的加密变体 [SWS_Csm_01923]。由此,针对具体原语配置的类型标识符使用相应的短名称实例化为 Csm_DecryptDataType_{Crypto} [SWS_Csm_01923]。
集成与边界条件
该定义通过头文件 Rte_Csm_Type.h 提供给整个系统 [SWS_Csm_01923]。解释:包含在 Rte_Csm_Type.h 中表明,该类型主要用于类型化端口以及软件组件与 CSM 模块之间通过 RTE 的数据交换。 问题 Q-6dcc31d5d7258088 (未决)由于它是数据结构而非函数,因此规范范围内既未定义同步或异步调用语义,也未定义可重入性规定或特定的 DET 错误消息 [SWS_Csm_01923]。
本文由 AI 生成。其不能替代对官方 AUTOSAR 规范的学习。
实现者指南即将推出(复杂度 I1)
类型 Csm_DecryptResultType [SWS_Csm_01924] 📄 PDF
Array long enough to store the data of the decrypted plaintext.
根据 [SWS_Csm_01924],数据类型 Csm_DecryptResultType 在模块 Csm 中定义为具有类型为 uint8 的元素的数组。其用作数据缓冲区,用于存储解密明文的结果数据,并且大小必须足够以接收完整的明文。
根据 [SWS_Csm_01924],该类型的配置、提供和结构适用以下规定:
- 头文件可用性:数据类型的定义通过头文件
Rte_Csm_Type.h提供。 - 缓冲区大小确定:数组的大小通过配置参数
CsmDecryptResultMaxLength(路径Csm/CsmPrimitives/CsmDecrypt/CsmDecryptConfig/CsmDecryptResultMaxLength)指定,由此静态确定解密结果的最大存储空间。 - 加密变体形式:类型名称遵循符合模式
Csm_DecryptResultType_{Crypto}的原语变体形式,其中具体形式通过配置元素Crypto={ecuc/Csm/CsmPrimitives.SHORT-NAME}控制。
关于调用上下文、并发和错误处理,[SWS_Csm_01924] 仅包含类型定义,没有自己的函数逻辑。解释:该类型在应用软件组件中可能主要用作存储结构,以接收来自 CSM 加密解密操作的输出数据。 问题 Q-54c836ed946ee1f2 (未决)未为此数据类型定义特定的 DET 或 DEM 错误代码;然而,配置负责人必须确保配置的最大长度足以满足所有待处理的明文。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADEncryptPlaintextType [SWS_Csm_01925] 📄 PDF
Array long enough to store the plaintext to be encrypted with AEAD.
使用与类型定义
根据 [SWS_Csm_01925],数据类型 Csm_AEADEncryptPlaintextType 用作明文的数据缓冲区,该明文将在 AEAD 加密操作(Authenticated Encryption with Associated Data)的上下文中进行处理。该类型定义为元素类型为 uint8 的字节数组,并提供足够的存储空间以完整接收待加密的明文。
大小确定与变体形式
具体的缓冲区大小并非刚性指定,而是根据各原语配置中的配置参数 CsmAEADEncryptPlaintextMaxLength 确定([SWS_Csm_01925])。此外,该类型遵循名称和结构变化:根据配置的加密原语,标识符会扩展原语的短名称(Csm_AEADEncryptPlaintextType_{Crypto})。
集成与接口
根据 [SWS_Csm_01925],该类型通过头文件 Rte_Csm_Type.h 提供。这支持了这样一种解释:该类型主要在 AUTOSAR RTE 上下文中提供给应用软件组件,以便将类型化的明文数据传递给 CSM 的加密服务。由于它是纯类型声明,因此规范在数据类型级别未定义自己的错误代码或可重入性规定。
本使用说明由自动生成,并基于 AUTOSAR 规范 R20-11 的规定。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADEncryptAssociatedDataType [SWS_Csm_01928] 📄 PDF
Array long enough to store the data of the header.
数据类型Csm_AEADEncryptAssociatedDataType定义了一个由基本类型uint8的元素组成的字节数组,用作在 AEAD 加密操作中容纳头部数据或关联附加数据的缓冲区[SWS_Csm_01928]。该类型通过头文件Rte_Csm_Type.h提供,并通过 Crypto Service Manager 的 AUTOSAR RTE 接口实现类型化数据交换[SWS_Csm_01928]。
该类型的维度和具体形式取决于加密原语的配置[SWS_Csm_01928]:
- 数组大小:缓冲区大小根据配置
Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig内的配置参数CsmAEADEncryptAssociatedDataMaxLength确定,从而确保数组足够长以容纳头部数据[SWS_Csm_01928]。 - 名称变体:该元素受特定于加密的名称变体约束
Csm_AEADEncryptAssociatedDataType_{Crypto},其中占位符{Crypto}对应于来自CsmPrimitives.SHORT-NAME的相应原语的短名称[SWS_Csm_01928]。
调用方在填充数组时必须确保要传输的头部数据的实际长度不超过配置的最大大小[SWS_Csm_01928]。Interpretation:由于关联数据在 AEAD 方法中保持未加密但经过身份验证,因此该数据类型的主要目的可能是为了在应用程序和 CSM 之间一致地传递特定于协议的元数据。 问题 Q-26b724044c51253f (未决)
本文由人工智能生成;不可替代对官方规范的学习。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADEncryptCiphertextType [SWS_Csm_01927] 📄 PDF
Array long enough to store the data of the cipher.
根据[SWS_Csm_01927],数据类型Csm_AEADEncryptCiphertextType用作字节数组,用于在 Classic AUTOSAR 模块Csm中执行加密 AEAD 加密操作时存储密文数据。
规范将该数据元素定义为由基本类型uint8的元素组成的数组[SWS_Csm_01927]。固定缓冲区大小由配置路径Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig内的配置参数CsmAEADEncryptCiphertextMaxLength确定[SWS_Csm_01927]。根据要求,数组的大小必须足够容纳密文的完整数据[SWS_Csm_01927]。
该类型标识符具有依赖于原语的名称变体:通过配置属性Crypto={ecuc/Csm/CsmPrimitives.SHORT-NAME},具体的类型名称将展开为Csm_AEADEncryptCiphertextType_{Crypto}[SWS_Csm_01927]。该定义通过头文件Rte_Csm_Type.h提供给应用程序软件组件以及 CSM[SWS_Csm_01927]。
在实际使用中,调用组件可能会声明相应的缓冲区以接收 AEAD 操作的加密结果。 问题 Q-af095525ea319451 (未决)来源中未针对该数据结构定义特定的调用上下文、错误处理(如 DET 或 DEM)、返回值或重入性规范。
本文由人工智能生成,完全基于 AUTOSAR 规范版本 R20-11 的数据。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADEncryptTagType [SWS_Csm_01926] 📄 PDF
Array long enough to store the data of the Tag.
根据 [SWS_Csm_01926],数据类型 Csm_AEADEncryptTagType 定义了一个字节数组(元素类型 uint8),用作 AEAD 加密操作中身份验证标签数据的缓冲区。根据规范,该数组的大小设计得足够长,以完整接收标签的数据 [SWS_Csm_01926]。
关于结构和配置,适用 [SWS_Csm_01926] 中的以下规定:
- 缓冲区大小:数组的维度通过
Csm/CsmPrimitives/CsmAEADEncrypt/CsmAEADEncryptConfig下的配置参数CsmAEADEncryptTagLength确定[SWS_Csm_01926]。 - 名称变体:该类型名称具有加密变异性,并根据模式
Csm_AEADEncryptTagType_{Crypto}生成,其中{Crypto}对应于相应原语(SHORT-NAME)的短名称[SWS_Csm_01926]。 - 头文件包含:该类型通过头文件
Rte_Csm_Type.h提供[SWS_Csm_01926]。
由于在Rte_Csm_Type.h中可用,该数据类型可能是用于标准化软件接口的(Interpretation:用于软件组件端口中的缓冲区传递)[SWS_Csm_01926]。 问题 Q-3cd2f6ae1229483e (未决)
本使用说明基于 R20-11 版本自动生成。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADDecryptCiphertextType [SWS_Csm_00922] 📄 PDF
Array long enough to store the ciphertext to be decrypted with AEAD.
使用与结构
根据 [SWS_Csm_00922],数据类型 Csm_AEADDecryptCiphertextType 定义了基于元素类型 uint8 的字节数组。它用作尺寸充足的缓冲区,以容纳在 AEAD 操作(带有关联数据的认证加密)框架下待解密的密文 [SWS_Csm_00922]。该类型定义通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_00922]。
尺寸确定与变体
该数组的尺寸确定是根据配置分支 Csm/CsmAEADDecrypt/CsmAEADDecryptConfig 内的配置参数 CsmAEADDecryptCiphertextMaxLength 静态进行的 [SWS_Csm_00922]。该数组设计为能够容纳要处理的完整密文。此外,类型名称遵循模式 Csm_AEADDecryptCiphertextType_{Crypto} 的密码学变体,其中标识符部分 {Crypto} 由相应原语的短名称(CsmPrimitives.SHORT-NAME)构成 [SWS_Csm_00922]。
交互与约束条件
根据 Rte_Csm_Type.h 中的定义,该类型推测主要用于软件组件(SW-C)通过 RTE 端口与 Crypto Service Gateway 或 CSM 进行类型化连接 [SWS_Csm_00922]。 问题 Q-35738ff5fc96c699 (未决)由于数组大小在配置时是固定的,调用方必须确保密文数据不超过最大长度,以排除运行时的缓冲区溢出。
此文本由 AI 创建,基于 AUTOSAR R20-11。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADDecryptAssociatedDataType [SWS_Csm_00923] 📄 PDF
Array long enough to store the data of the header.
数据类型 Csm_AEADDecryptAssociatedDataType 定义为由类型为 uint8 的元素构成的数组,并带有依赖于结构的命名模式 Csm_AEADDecryptAssociatedDataType_{Crypto} [SWS_Csm_00923]。该数据类型的目的是提供一个尺寸充足的存储区,以容纳认证解密(AEAD Decrypt)的标头数据或附加关联数据(Associated Data)[SWS_Csm_00923]。
数组的大小取决于配置路径 Csm/CsmAEADDecrypt/CsmAEADDecryptConfig 中的配置参数 CsmAEADDecryptAssociatedDataMaxLength [SWS_Csm_00923]。通过变体 Crypto={ecuc/Csm/CsmPrimitives.SHORT-NAME},针对在 Crypto Service Manager 中配置的相应原语,使用其短名称对类型标识符进行特化 [SWS_Csm_00923]。由此可以为每个密码学原语声明一个具有合适最大长度的特定缓冲区。
该数据类型通过头文件 Rte_Csm_Type.h 导出 [SWS_Csm_00923]。由于它是纯类型定义,该条目未指定错误代码、DET 消息或重入条件。作为解释,该数组可能用作类型化数据缓冲区,用于软件组件与 CSM 之间通过 RTE 传递未加密但需经过密码学验证的伴随数据。 问题 Q-2f32bbe9a4489b27 (未决)
本文本由人工智能基于 AUTOSAR R20-11 生成,仅供参考。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADDecryptTagType [SWS_Csm_01074] 📄 PDF
Array long enough to store the data of the Tag.
使用与目的
数据类型 Csm_AEADDecryptTagType 定义为元素类型为 uint8 的字节数组,用作在 AEAD 解密操作中接收标签数据的专用内存区域 [SWS_Csm_01074]。其通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_01074]。
大小确定与配置依赖性
该数组的大小是可配置的,并根据配置的标签长度 CsmAEADDecryptTagLength 确定 [SWS_Csm_01074]。元素数量通过表达式 (({ecuc(Csm/CsmPrimitives/CsmAEADDecrypt/CsmAEADDecryptConfig/CsmAEADDecryptTagLength)}+7)/8) 计算 [SWS_Csm_01074]。通过此计算,将以位为单位指定的标签长度转换为完整的字节,其中不能被 8 整除的位长度将向上舍入到下一个字节边界。
该类型遵循模式 Csm_AEADDecryptTagType_{Crypto} 的名称变化,其中 {Crypto} 被替换为各原语配置的短名称(SHORT-NAME)[SWS_Csm_01074]。因此,对于每个配置的 AEAD 解密原语实例,都存在一个具有合适类型的结构。
集成与边界条件
通过 Rte_Csm_Type.h 提供可能意味着该类型主要供 AUTOSAR RTE 端口处的软件组件使用,以便将身份验证标签传递给 Crypto Service Manager [SWS_Csm_01074]。 问题 Q-2a0bebbb8e1d6b76 (未决)由于该类型本身不带控制流或同步机制,因此解密周期内缓冲区中数据的一致性推测完全由调用上下文保证。
本段文本由 AI 生成,并完全基于 AUTOSAR R20-11 的规范数据。
实现者指南即将推出(复杂度 I1)
类型 Csm_AEADDecryptPlaintextType [SWS_Csm_01075] 📄 PDF
Array long enough to store the data of the plaintext.
使用与结构
数据类型 Csm_AEADDecryptPlaintextType 或其原语特定变体 Csm_AEADDecryptPlaintextType_{Crypto} 定义为具有 uint8 类型元素的字节数组 [SWS_Csm_01075]。其用于提供足够大小的缓冲区,以在 AEAD 解密(Authenticated Encryption with Associated Data)中存储明文数据 [SWS_Csm_01075]。固定字段大小通过各 AEAD 解密原语配置内的配置参数 CsmAEADDecryptPlaintextMaxLength 确定 [SWS_Csm_01075]。该数据类型通过头文件 Rte_Csm_Type.h 提供给软件组件,其中类型名称通过变化形式 Crypto 链接到已配置 CSM 原语的短名称 [SWS_Csm_01075]。
错误处理与并发
由于它是纯类型定义,因此该元素未定义自己的返回值、错误代码或 DET 消息 [SWS_Csm_01075]。主要的功能边界条件在于静态确定的最大长度:超出配置限制的明文数据无法映射到此缓冲区中 [SWS_Csm_01075]。解释:当 SWC 异步或同步接收来自解密服务的结果时,该类型可能主要用于通过 RTE 端口进行类型化数据传递。 问题 Q-2de04243d7f996c8 (未决)调用者推测必须自行确保遵守缓冲区边界,并在多个任务之间对并发读写访问进行线程安全同步。
本使用说明由 AI 生成,并基于 AUTOSAR 规范的规定。
实现者指南即将推出(复杂度 I1)
类型 Csm_SignatureGenerateDataType [SWS_Csm_01083] 📄 PDF
Array long enough to store the data from which the signature shall be generated.
根据 [SWS_Csm_01083],类型 Csm_SignatureGenerateDataType 定义了由 uint8 元素构成的数组,用作接收用于生成加密签名的数据的缓冲区。源代码中的具体命名特定于原语并遵循模式 Csm_SignatureGenerateDataType_{Crypto},其中标识符通过已配置加密原语的短名称进行变化 [SWS_Csm_01083]。
数据字段的静态大小确定通过配置参数 CsmSignatureGenerateDataMaxLength 确定 [SWS_Csm_01083]。该数据类型通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_01083]。解释:由于通过 Rte_Csm_Type.h 提供,该数组类型可能主要用于软件组件与 CSM 模块之间 RTE 端口处的类型化数据传递。 问题 Q-dcc731a5b8961aef (未决)
在配置和使用时需要注意,CsmSignatureGenerateDataMaxLength 规定了数组的固定上限 [SWS_Csm_01083]。用户必须在配置上确保缓冲区大小足以满足运行期间出现的所有签名生成输入数据,因为数组是静态分配的。
本文由 AI 生成。所有技术信息均完全基于规范来源。
实现者指南即将推出(复杂度 I1)
类型 Csm_SignatureGenerateResultType [SWS_Csm_01077] 📄 PDF
Array long enough to store the signature and its length.
根据 [SWS_Csm_01077],数据类型 Csm_SignatureGenerateResultType 定义了基于 uint8 的字节数组,用于接收生成的加密签名及其长度规格。该类型通过头文件 Rte_Csm_Type.h 声明,并为 Crypto Service Manager 中的签名操作提供标准化的输出缓冲区。
该类型的结构和大小是可配置的:
- 缓冲区大小:
uint8元素的数量通过各签名生成配置的配置参数CsmSignatureGenerateResultLength指定([SWS_Csm_01077])。 - 名称变体:标识符包含后缀
_{Crypto},该后缀对应于已配置原语的短名称([SWS_Csm_01077])。
由于它是纯类型定义,因此 [SWS_Csm_01077] 不包含错误代码、DET 消息或可重入特性的规范。运行时语义和缓冲区传递可能遵循 CSM 服务接口的同步或异步调用约定。 问题 Q-3304c06a29f069a2 (未决)调用者必须确保配置的数组大小始终足以容纳要接收的签名及长度值。
本文由 AI 生成,并基于 AUTOSAR 规范摘录。
实现者指南即将推出(复杂度 I1)
类型 Csm_SignatureVerifyDataType [SWS_Csm_01078] 📄 PDF
Array long enough to store the data for whichs signature shall be verified.
根据 [SWS_Csm_01078],数据类型 Csm_SignatureVerifyDataType 定义为元素类型为 uint8 的字节数组,用于缓冲待验证签名的数据。
根据 [SWS_Csm_01078],该类型的配置和使用适用以下规定:
- 数组大小确定:字段的大小对应于来自配置路径
Csm/CsmPrimitives/CsmSignatureVerify/CsmSignatureVerifyConfig的配置值CsmSignatureVerifyDataMaxLength,因此数组的大小足以接收全部待检查数据。 - 名称变化:类型名称根据各加密原语按照模式
Csm_SignatureVerifyDataType_{Crypto}变化,其中{Crypto}对应于短名称CsmPrimitives.SHORT-NAME。 - 头文件提供:类型定义可通过头文件
Rte_Csm_Type.h获取。
解释:通过在 Rte_Csm_Type.h 中提供,该类型可能主要用于 RTE 接口处的软件组件,以便将达到配置最大长度的有效负载数据传递给 Crypto Service Manager 进行签名验证 [SWS_Csm_01078]。 问题 Q-c1541703c2bcd199 (未决)
本文本由 AI 生成,仅供参考。一切以 AUTOSAR 规范为准。
实现者指南即将推出(复杂度 I1)
类型 Csm_SignatureVerifyCompareType [SWS_Csm_01079] 📄 PDF
Array long enough to store a signature to be verified.
类型 Csm_SignatureVerifyCompareType 定义了基于 uint8 的字节数组,该数组为待验证的加密签名提供足够的存储空间([SWS_Csm_01079])。它通过头文件 Rte_Csm_Type.h 提供,并使软件组件能够对签名比对数据进行类型化访问([SWS_Csm_01079])。
配置与变体
数组的具体大小并非固定指定,而是取决于各原语签名验证配置中的配置值 CsmSignatureVerifyCompareLength([SWS_Csm_01079])。此外,该类型通过加密原语的短名称(Crypto = {ecuc/Csm/CsmPrimitives.SHORT-NAME})遵循名称变化,因此类型化标识符形成为 Csm_SignatureVerifyCompareType_{Crypto}([SWS_Csm_01079])。
使用方面与边界条件
- 调用上下文与语义:作为纯数据结构,该元素不具有独立的同步或异步语义。实例化通常由模块验证服务的调用者完成([SWS_Csm_01079])。
- 错误处理:该类型定义未定义自己的错误代码或 DET/DEM 消息([SWS_Csm_01079])。解释:缓冲区长度或指针完整性的校验可能在使用它的 CSM 函数中进行。 问题 Q-60454c8a7d8035cf (未决)
- 并发:对于纯类型定义,对可重入性没有限制;对缓冲区实例的并发访问应由使用模块进行协调([SWS_Csm_01079])。
本文由 AI 生成。其完全基于 AUTOSAR Release R20-11 规范。
实现者指南即将推出(复杂度 I1)
类型 Csm_RandomGenerateResultType [SWS_Csm_00930] 📄 PDF
Array long enough to store the data of the random number.
使用与目的
数据类型 Csm_RandomGenerateResultType 被定义为数组,并用作结构化存储区以存放生成的随机数的结果数据 [SWS_Csm_00930]。数组的各个元素具有基本类型 uint8,从而将生成的随机数映射为连续的字节序列 [SWS_Csm_00930]。
配置与变体构建
缓冲区大小不是动态传递的,而是通过模块配置静态确定的:数组元素的数量取决于路径 Csm/CsmPrimitives/CsmRandomGenerate/CsmRandomGenerateConfig 下的配置参数 CsmRandomGenerateResultLength [SWS_Csm_00930]。此外,标识符遵循模式 Csm_RandomGenerateResultType_{Crypto} 的密码学特定命名变体,其中后缀对应于相应原语的短名称 [SWS_Csm_00930]。通过这种方式,随机数生成的每个配置实例都会获得一个具有合适长度且符合类型的缓冲区。
集成与边界条件
该类型的声明通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_00930]。解释:由于它是通过 RTE 头文件提供的,因此该数据类型推测主要用于 Application Software Component,以便通过端口类型安全地接收随机值。 问题 Q-ea993612037bec12 (未决)具体的 API 调用上下文、错误代码或并发性方面并未锚定在该类型本身,而是锚定在关联的 CSM 服务中,而该类型则确保了静态存储需求 [SWS_Csm_00930]。
此使用说明由 AI 创建,基于 AUTOSAR CP R20-11 规范。
类型 Csm_LengthPtr [SWS_Csm_91045] 📄 PDF
Implementation Data Type of category DATA_ REFERENCE with the pointer target uint32 to be able to return asynchronously the length.
类型 Csm_VerifyResultPtr [SWS_Csm_91046] 📄 PDF
Implementation Data Type of category DATA_ REFERENCE with the pointer target Csm_ Verify Result Type to be able to return asynchronously the verify result.
用法与语义
类型 Csm_VerifyResultPtr 是类别为 DATA_REFERENCE 的 AUTOSAR 实现数据类型,其指针目标为 Csm_VerifyResultType(形式上为 Csm_VerifyResultType*)[SWS_Csm_91046]。该类型定义通过头文件 Rte_Csm_Type.h 提供,从而可供应用组件通过 RTE 使用以及供基础软件模块使用 [SWS_Csm_91046]。
Csm_VerifyResultPtr 的功能任务在于在异步加密操作中返回验证结果 [SWS_Csm_91046]。在异步执行时,该指针指向由调用者预留的缓冲区,模块 Csm 在校验完成后将结果写入该缓冲区 [SWS_Csm_91046]。
并发性与限制
由于 Csm_VerifyResultPtr 显式用于异步反馈 [SWS_Csm_91046],用户必须确保所引用的目标对象在整个操作持续期间内保持有效。在此需要考虑以下方面:
此使用说明为自动生成,且完全基于 CSM 模块的规范数据。
类型 Crypto_KeyStatusType [SWS_Csm_91102] 📄 PDF
Enumeration for key status.
枚举类型 Crypto_KeyStatusType 定义了加密密钥的有效性状态,并通过头文件 Rte_Csm_Type.h 提供 [SWS_Csm_91102]。
值范围与语义
该类型包含两种取值 [SWS_Csm_91102]:
CRYPTO_KEYSTATUS_INVALID(0x00):密钥的状态为无效。例如,在使用Csm_KeyElementSet设置密钥元素后尚未执行函数Csm_KeySetValid时,就会出现这种情况。CRYPTO_KEYSTATUS_VALID(0x01):密钥有效,例如通过成功调用Csm_KeySetValid设置了该状态。
顺序条件与交互
该状态逻辑将有效性与密钥管理的更新流程直接耦合:对密钥元素的任何修改都会使密钥进入无效的中间状态,该状态仅在通过 Csm_KeySetValid 进行显式验证后才会结束 [SWS_Csm_91102]。解读:因此,调用方和加密服务在执行加密操作之前可能需要以状态 CRYPTO_KEYSTATUS_VALID 为前提条件,以排除由于密钥数据不完整而导致的功能故障。 问题 Q-7ad50e0568814efa (未决)
此文本由 AI 创建;它完全基于规范的有效负载,不能替代对 AUTOSAR 文档的查阅。
实现者指南即将推出(复杂度 I1)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Csm- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Csm@rel:R20-11#005f39d1- Content hash
005f39d1- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoServiceManager.pdf#nameddest=SWS_Csm_00646
gemini-3.8-flash-low· 2026-10-13 · 德文原文