Key Manager (KeyM)
Manages lifecycle, storage, and distribution of cryptographic keys and certificates.
Funktionen — Übersicht
void KeyM_Init (const KeyM_ConfigType* ConfigPtr);This function initializes the key management module.void KeyM_Deinit (void);This function resets the key management module to the uninitialized state.void KeyM_GetVersionInfo (Std_VersionInfoType* VersionInfo);Provides the version information of this module.Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);This function is optional and only used if the configuration item Key MCrypto Key Start Finalize Function Enabled is set to true.Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);This function is used to prepare a key update operation.Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);The function is used to finalize key update operations.Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);This function provides the certificate data to the key managem ent module to temporarily store the certificate.Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);This function provides the certificate dataStd_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);This function verifies two certificates that are stored and parsed internally against each other.Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);Service KeyM_VerifyCertificate.Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);Service KeyM_VerifyCertificateChain.Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);Service KeyM_CertElementGet.Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);Service KeyM_CertificateElementGetByIndex.Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);This function provides the total number of data elements that a re available for the specified certificate element.Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);Service KeyM_CertElementGetFirst.Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);Service KeyM_CertElementGetNext.Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);This function provides the sta tus of a certificate.void KeyM_MainFunction (void);Function is called periodically according the specified time interval.void KeyM_MainBackgroundFunction (void);Function is called from a pre - emptive operating system when no other task operation is needed.Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto KeyStd_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);If the configuration parameters Key MCrypto Key Prepare Function Enabled and Key MCrypto Key Handler Prepare Enabled are both...Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key Handler Start Finalize Enabled is set to TRUE, this...void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);Notifies the application that a crypto key update operation has been finished.void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);Service KeyM_CryptoKeyFinalizeCallbackNotification.void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);Notifies the application that a crypto key verify operation has been finished.void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);Notifies the application that the certificate service operation has been finished.Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);Notifies the application that a certificate verification has been finished.
Typen — Übersicht
struct KeyM_ConfigTypeThis structure is the base type to initialize the Key Manager module.KeyM_KH_UpdateOperationTypeSpecifies the type of key handler update operation that was performed in the callback.struct KeyM_CertElementIteratorTypeThis structure is used to iterate through a number of elements of a certificate.KeyM_CryptoKeyIdTypeCrypto key handle.KeyM_CertDataPointerTypeByte - pointer to the data of the certificateKeyM_StartTypeThis type specifies in which mode the key operation will start.KeyM_CertElementIdTypeCertificate Element handle.KeyM_CertificateIdTypeCertificate handle.KeyM_ServiceCertificateTypeThis type specifies the requested service operation and what information is provided with this function.MaxArray long enough to store the key or certificate name.enum KeyM_CertificateStatusTypeType KeyM_CertificateStatusType.KeyM_CertificateElementTypeArray long enough to store dataKeyM_CryptoKeyDataTypeByte - pointer to the input or output dataenum KeyM_ResultTypeSpecifies the result type of an asynchronous key management fu nction.struct KeyM_CertDataTypeThis structure is used to exchange certificate data through interface functions.
Funktionen & Typen — Detailansicht
函数 KeyM_Init [SWS_KeyM_00043] 📄 PDF
void KeyM_Init (const KeyM_ConfigType* ConfigPtr);
This function initializes the key management module.
函数 KeyM_Init 用于初始化密钥管理模块([SWS_KeyM_00043])。调用以同步方式进行,并定义为不可重入([SWS_KeyM_00043])。作为唯一的传入参数,期望传入 ConfigPtr,它表示指向 VARIANT-POST-BUILD 配置数据集的指针;该函数没有返回值([SWS_KeyM_00043])。
关于与其他模块函数的交互,KeyM_Init 是一项强制性的前置条件:在启用开发错误检测时,Key Manager 的所有其他函数都会检查该模块之前是否已通过 KeyM_Init 初始化且尚未通过 KeyM_Deinit 进行去初始化([SWS_KeyM_00144])。如果在未初始化状态下调用模块函数,Key Manager 将报告开发错误 KEYM_E_UNINIT([SWS_KeyM_00144])。
由于 KeyM_Init 被指定为不可重入([SWS_KeyM_00043]),因此在系统初始化阶段该函数只能执行一次,并且必须排除并发调用。成功执行后,该模块可通过头文件 KeyM.h 获取([SWS_KeyM_00043])。
本使用说明是基于 AUTOSAR 规范载荷自动创建的。
实现者指南即将推出(复杂度 I1)
函数 KeyM_Deinit [SWS_KeyM_00047] 📄 PDF
void KeyM_Deinit (void);
This function resets the key management module to the uninitialized state.
函数 KeyM_Deinit 用于将模块 Key Manager 重新复位为未初始化状态 ([SWS_KeyM_00047])。
用法与调用上下文
对 KeyM_Deinit 的调用同步进行,并被指定为不可重入 (Non Reentrant)。该函数具有服务 ID 0x02,不接受任何参数,且不返回任何返回值 ([SWS_KeyM_00047])。
并发性与交互
由于其不可重入性,不得并发调用 KeyM_Deinit 自身,也不得在与正在运行的操作冲突的情况下调用它。执行此去初始化后,该模块处于未初始化状态。如果启用了开发错误,Key Manager 将在每次后续函数调用时检查该模块先前是否已通过 KeyM_Init() 初始化且尚未通过 KeyM_Deinit() 去初始化;否则将报告开发错误 KEYM_E_UNINIT ([SWS_KeyM_00144])。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_GetVersionInfo [SWS_KeyM_00049] 📄 PDF
void KeyM_GetVersionInfo (Std_VersionInfoType* VersionInfo);
Provides the version information of this module.
函数 KeyM_Start [SWS_KeyM_00050] 📄 PDF
Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
This function is optional and only used if the configuration item Key MCrypto Key Start Finalize Function Enabled is set to true. It intents to allow key update operation.
同步函数 KeyM_Start 用于允许在 Key Manager 中执行密钥更新操作([SWS_KeyM_00050])。它是可选的,仅当配置参数 KeyMCryptoKeyStartFinalizeFunctionEnabled 配置为 true 时才可用(AUTOSAR_SWS_KeyManager 第35页)。该函数通过 KeyM.h 提供,并通过 StartType 期望接收要执行的操作模式,并通过 Request Data 和 Request Data Length 期望接收附加请求数据(例如签名)。
响应数据通过输出缓冲区 Response Data 返回。参数 Response Data Length 在此用作输入和输出参数:在调用之前,它定义缓冲区中可用的最大字节数,执行后,它包含实际写入的数据长度([SWS_KeyM_00050])。
错误处理与返回值:
E_OK:启动操作成功执行;现在允许进行密钥更新。E_NOT_OK:启动操作未被接受。KEYM_E_PARAMETER_MISMATCH:传入参数与预期值不符。KEYM_E_KEY_CERT_SIZE_MISMATCH:传入的参数大小与预期大小不符。
该函数被指定为不可重入(Non Reentrant)([SWS_KeyM_00050])。由于未描述模块内部锁,调用方可能必须确保协调、串行化的执行。 问题 Q-82276b712a8dd170 (未决)
本段文本基于 AUTOSAR R20-11 自动生成。
实现者指南即将推出(复杂度 I2)
函数 KeyM_Prepare [SWS_KeyM_00051] 📄 PDF
Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
This function is used to prepare a key update operation. The main intent is to provide information for the key operation to the key server. Other operations may start the negotiation for a common secret that is used further to derive key material. This function is only av ailable if Key MCrypto Key Prepare Function Enabled is set to TRUE.
同步函数 KeyM_Prepare 用于准备密钥更新操作(Key Update Operation),并将所需信息传输到密钥服务器,或发起用于密钥派生的共享密钥协商 [SWS_KeyM_00051]。该函数具有服务 ID 0x05,通过头文件 KeyM.h 声明,并且仅在配置参数 Key MCrypto Key Prepare Function Enabled 设置为 TRUE 时可用 [SWS_KeyM_00051]。
调用时必须传递以下缓冲区和长度规范 [SWS_KeyM_00051]:
Request Data和Request Data Length:请求的输入数据及其长度 [SWS_KeyM_00051]。Response Data:指向用于接收输出数据的缓冲区的指针 [SWS_KeyM_00051]。Response Data Length:输入/输出参数,在调用前指示最大可用缓冲区大小,在返回时包含实际写入的字节数 [SWS_KeyM_00051]。
若调用以 E_OK 确认,则该服务已被接受并将在内部进行处理;最终结果随后通过回调提供 [SWS_KeyM_00051]。如果接受失败,该函数在发生内部错误时返回 E_NOT_OK,在参数值不符时返回 KEYM_E_PARAMETER_MISMATCH,或在大小规范不匹配时返回 KEYM_E_KEY_CERT_SIZE_MISMATCH [SWS_KeyM_00051]。
由于 KeyM_Prepare 被指定为不可重入(Non Reentrant),因此不得发生同时调用或嵌套调用 [SWS_KeyM_00051]。
本段文本基于 AUTOSAR R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 KeyM_Finalize [SWS_KeyM_00053] 📄 PDF
Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);
The function is used to finalize key update operations. It is typi cally used in conjunction with the Key M_
函数 KeyM_Finalize 完成密钥更新过程并将密钥操作转换回空闲状态(Idle 模式)[SWS_KeyM_00053]。它通常与先前的 KeyM_Start 操作结合使用。调用后,该模块不再接受进一步的准备或更新操作(Prepare/Update),直到通过 KeyM_Start 启动新的流程 [SWS_KeyM_00053]。此外,更新后的密钥材料将被持久化,并通过调用 Csm_KeySetValid 转换至有效状态 [SWS_KeyM_00053]。
使用与并发性:KeyM_Finalize 是不可重入的(Non Reentrant)并且以异步方式工作 [SWS_KeyM_00053]。理解:由于缺乏重入性,该调用通常应当在任务上下文中进行。 问题 Q-895ebec2d0d2e635 (未决)该接口仅在配置参数 KeyMCryptoKeyStartFinalizeFunctionEnabled 设置为 TRUE 时可用,并通过 KeyM.h 声明 [SWS_KeyM_00053]。
参数和返回值:通过 RequestDataPtr 和 RequestDataLength 传递特定于请求的数据。响应数据通过 ResponseDataPtr 提供;ResponseMaxDataLength 在输入时用作缓冲区大小,并在同步返回时提供实际字节数 [SWS_KeyM_00053]。若操作被接受并在内部处理,该函数返回 E_OK(结果随后通过回调异步返回),且 ResponseMaxDataLength 保持不变 [SWS_KeyM_00053]。
错误处理:在发生错误时,KeyM_Finalize 通过特定返回值指示失败 [SWS_KeyM_00053]:
E_NOT_OK:由于内部错误,操作未被接受。KEYM_E_BUSY:KeyM 正在忙于其他作业;尚无法执行验证。KEYM_E_PARAMETER_MISMATCH:参数与预期值不符。KEYM_E_KEY_CERT_SIZE_MISMATCH:参数大小不符。
本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。
实现者指南即将推出(复杂度 I2)
函数 KeyM_SetCertificate [SWS_KeyM_00057] 📄 PDF
Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);
This function provides the certificate data to the key managem ent module to temporarily store the certificate.
使用
同步函数 KeyM_SetCertificate 将证书数据传递给密钥管理模块,以临时存储证书 [SWS_KeyM_00057]。它期望接收证书标识符 CertId(类型 KeyM_CertificateIdType)以及指向要提供的证书结构体的指针 CertificateDataPtr(类型 const KeyM_CertDataType*)作为输入参数 [SWS_KeyM_00057]。该接口通过头文件 KeyM.h 声明,且其服务 ID 为 0x0a [SWS_KeyM_00057]。
返回值与错误处理
类型为 Std_ReturnType 的返回值提供了有关数据接受情况的信息 [SWS_KeyM_00057]:
E_OK:证书已成功被接受[SWS_KeyM_00057]。E_NOT_OK:无法设置证书[SWS_KeyM_00057]。KEYM_E_PARAMETER_MISMATCH:传入的参数与预期值不符 [SWS_KeyM_00057]。KEYM_E_KEY_CERT_SIZE_MISMATCH:传入的证书数据大小与预期大小存在偏差 [SWS_KeyM_00057]。
并发性与限制
该函数被归类为不可重入(Non Reentrant)[SWS_KeyM_00057]。因此,并发调用必须在调用方进行同步或予以排除。由于规范明确规定了临时存储,因此传入的证书数据推测在进行持久存储或验证之前,首先保留在该模块的易失性内存中。 问题 Q-c35c4b02344d5bc9 (未决)
此使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 KeyM_GetCertificate [SWS_KeyM_00058] 📄 PDF
Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);
This function provides the certificate data
使用
同步函数 KeyM_GetCertificate 用于提供指定证书标识符的证书数据 [SWS_KeyM_00058]。调用方通过参数 CertId 传递所需证书的标识符,并通过输入输出参数 CertificateDataPtr 传递指向证书数据结构的指针。调用方负责提供该结构中指针所指向的缓冲区 [SWS_KeyM_00058]。在调用之前,必须在该结构中指定此缓冲区的最大长度;成功返回(E_OK)时,长度字段将包含所提供证书数据的实际长度 [SWS_KeyM_00058]。
错误处理
该函数通过类型为 Std_ReturnType 的返回值指示成功或特定错误 [SWS_KeyM_00058]:
E_OK:证书数据可用且已成功传递。KEYM_E_PARAMETER_MISMATCH:传递的证书ID(CertId)无效。KEYM_E_KEY_CERT_SIZE_MISMATCH:提供的缓冲区过小,无法容纳该证书。KEYM_E_KEY_CERT_EMPTY:不存在证书数据,因为证书槽位为空。KEYM_E_KEY_CERT_READ_FAIL:由于访问被拒绝,无法提供该证书。E_NOT_OK:由于内部错误,操作未被接受。
并发性与限制
该函数被指定为不可重入(Non Reentrant),并通过头文件 KeyM.h 提供 [SWS_KeyM_00058]。因此,调用方必须确保对该函数的并行调用相互同步。
此文本由 AI 生成,仅供参考。一切以 AUTOSAR 官方规范为准。
实现者指南即将推出(复杂度 I1)
函数 KeyM_VerifyCertificates [SWS_KeyM_00059] 📄 PDF
Std_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);
This function verifies two certificates that are stored and parsed internally against each other. The certificat e referenced with Cert Id was signed by the certificate referenced with cert Upper Id. Only these two certificates are validated against each other.
根据 [SWS_KeyM_00059],函数 KeyM_VerifyCertificates 用于对两个内部存储并解析的证书进行异步相互校验。在此过程中,验证通过 CertId 引用的下级证书是否由通过 CertUpperId 引用的上级证书签名。
由于该服务被定义为不可重入 (Non Reentrant),因此不得针对重叠的操作并发调用它 [SWS_KeyM_00059]。执行在后台异步进行:返回值 E_OK 仅表示验证任务已被成功接受。实际的校验结果将通过配置的回调函数 KeyMCertificateVerifyCallbackNotificationFunc 通知调用方,前提是该函数已被有效配置 [SWS_KeyM_00153]。
如果请求未被接受,该函数将提供用于错误处理的特定返回值 [SWS_KeyM_00059]:
KEYM_E_BUSY:Key Manager 正忙于其他任务;此时校验尚无法启动。KEYM_E_PARAMETER_MISMATCH:所传递的证书 ID 中至少有一个无效。KEYM_E_KEY_CERT_EMPTY:所引用的证书槽位之一为空。KEYM_E_CERT_INVALID_CHAIN_OF_TRUST:上级证书 (CertUpperId) 无效。E_NOT_OK:由于内部错误,任务已被拒绝。
本文本由 AI 生成,用于基于 AUTOSAR 规范进行技术参考。
实现者指南即将推出(复杂度 I1)
函数 KeyM_VerifyCertificate [SWS_KeyM_00060] 📄 PDF
Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);
Service KeyM_VerifyCertificate.
函数 KeyM_VerifyCertificate 用于对先前通过 KeyM_SetCertificate() 提供的证书进行异步验证 [SWS_KeyM_00060]。验证基于传入的证书标识符 CertId,针对 Key Manager 中已存储的其他证书 ID 的证书进行 [SWS_KeyM_00060]。该声明可通过头文件 KeyM.h 获取 [SWS_KeyM_00060]。
调用语义与返回值
返回值 E_OK 确认验证请求已成功被接受,且操作正在后台执行 [SWS_KeyM_00060]。若无法接受该任务,则会通过特定错误码进行同步反馈 [SWS_KeyM_00060]:
E_NOT_OK:由于内部错误,操作被拒绝 [SWS_KeyM_00060]。KEYM_E_BUSY:KeyM 模块当前正忙于其他任务,因此尚无法执行验证 [SWS_KeyM_00060]。KEYM_E_PARAMETER_MISMATCH:传入的CertId无效 [SWS_KeyM_00060]。KEYM_E_KEY_CERT_EMPTY:所需证书槽位中至少有一个为空 [SWS_KeyM_00060]。KEYM_E_CERT_INVALID_CHAIN_OF_TRUST:信任链中的某个上级证书无效 [SWS_KeyM_00060]。
并发性与异步性
由于 KeyM_VerifyCertificate 被指定为不可重入(Non Reentrant),调用方必须确保不会发生同时调用或中断性调用 [SWS_KeyM_00060]。在成功接受验证任务(返回 E_OK)后,后台操作的结果将传递给配置的回调函数 KeyMCertificateVerifyCallbackNotificationFunc,前提是该回调函数已指定有效的函数名称 [SWS_KeyM_00153]。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I2)
函数 KeyM_VerifyCertificateChain [SWS_KeyM_00061] 📄 PDF
Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);
Service KeyM_VerifyCertificateChain.
函数 KeyM_VerifyCertificateChain 用于证书针对传入证书链的异步验证 [SWS_KeyM_00061]。作为参数传递的是该链中最后一个证书的标识符 (CertId)、指向按 PKI 顺序排序的证书数组的指针 (certChainData) 以及证书数量 (NumberOfCertificates) [SWS_KeyM_00061]。在调用之前,待校验的证书必须已通过 KeyM_SetCertificate() 注册,并且根证书必须要么包含在列表中,要么已经分配给其他证书之一 [SWS_KeyM_00061]。
该函数为不可重入 (Non Reentrant),并通过头文件 KeyM.h 提供 [SWS_KeyM_00061]。以下同步返回值指示任务接受的状态 [SWS_KeyM_00061]:
E_OK:验证任务已被接受并在后台执行 [SWS_KeyM_00061]。E_NOT_OK:由于内部错误,任务已被拒绝 [SWS_KeyM_00061]。KEYM_E_BUSY:模块正忙于其他任务;校验尚无法执行 [SWS_KeyM_00061]。KEYM_E_PARAMETER_MISMATCH:所传递的证书 ID 无效 [SWS_KeyM_00061]。KEYM_E_KEY_CERT_EMPTY:所需证书槽位之一为空 [SWS_KeyM_00061]。KEYM_E_CERT_INVALID_CHAIN_OF_TRUST:信任链中的某个上级证书无效 [SWS_KeyM_00061]。
如果任务以 E_OK 被接受,则在后台进行评估。只要 KeyMCertificateVerifyCallbackNotificationFunc 配置了有效的函数,KeyM 就会通过此回调函数将验证操作的最终结果反馈给调用应用程序 [SWS_KeyM_00061] [SWS_KeyM_00153]。
此使用说明基于AUTOSAR规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CertElementGet [SWS_KeyM_00063] 📄 PDF
Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);
Service KeyM_CertElementGet.
用法与调用上下文
同步函数 KeyM_CertElementGet 用于将证书槽位中特定证书元素的数据读取到调用方提供的缓冲区中 [SWS_KeyM_00063]。当证书配置中存储的对象标识符(OID)恰好对应单个元素时,将使用此函数 [SWS_KeyM_00063]。
调用方传递证书标识符 CertId、元素标识符 CertElementId 以及指向目标缓冲区的指针 CertElementData [SWS_KeyM_00063]。参数 CertElementDataLength 用作组合输入输出值:在调用前,它必须包含最大缓冲区大小。在成功的情况下(E_OK),它将被覆写为所写入数据的实际长度;在出错的情况下,该函数将引用的值重置为零 [SWS_KeyM_00063]。
错误处理与返回值
该函数通过以下返回值报告执行状态 [SWS_KeyM_00063]:
E_OK:已找到该元素并成功复制到缓冲区中 [SWS_KeyM_00063]。E_NOT_OK:未找到元素数据 [SWS_KeyM_00063]。KEYM_E_PARAMETER_MISMATCH:无效的CertId或CertElementId[SWS_KeyM_00063]。KEYM_E_KEY_CERT_SIZE_MISMATCH:提供的缓冲区过小,无法容纳该元素的数据 [SWS_KeyM_00063]。KEYM_E_KEY_CERT_EMPTY:指定的槽位不存在数据,槽位为空 [SWS_KeyM_00063]。KEYM_E_KEY_CERT_INVALID:证书无效或尚未验证 [SWS_KeyM_00063]。
并发性
该函数被指定为不可重入(Non Reentrant)[SWS_KeyM_00063]。因此,来自不同任务或上下文的并发调用可能需要在调用方进行同步。 问题 Q-238a3e53ce0e3a45 (未决)
本文由 AI 生成。所有信息均仅基于 AUTOSAR 标准 Release R20-11。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CertificateElementGetByIndex [SWS_KeyM_91014] 📄 PDF
Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);
Service KeyM_CertificateElementGetByIndex.
当某元素类型存在多个条目时,同步函数 KeyM_CertificateElementGetByIndex 用于基于从零开始的索引(0..N)针对性地读取证书元素的数据 [SWS_KeyM_91014]。因此,它构成了顺序迭代的直接访问替代方案。
用法与参数
调用方传递证书标识符 CertId、元素标识符 CertElementId 以及所需的 Index [SWS_KeyM_91014]。此外,调用方必须为 CertElementDataPtr 分配内存,并通过 CertElementDataLengthPtr 传递最大可用缓冲区大小。成功返回时,CertElementDataLengthPtr 将被覆写为复制数据的实际长度 [SWS_KeyM_91014]。
返回值与错误处理
该函数通过特定的 Std_ReturnType 返回值指示结果 [SWS_KeyM_91014]:
E_OK:已找到该元素并成功复制到目标缓冲区中。KEYM_E_PARAMETER_MISMATCH:无效的CertId、无效的CertElementId或传入的Index超出有效范围。KEYM_E_KEY_CERT_SIZE_MISMATCH:提供的缓冲区过小,无法容纳该证书元素。KEYM_E_KEY_CERT_EMPTY:指定的证书不包含数据或为空。KEYM_E_CERT_INVALID:证书无效或验证未成功。E_NOT_OK:读取元素数据失败。
并发性
根据规范,该服务被归类为不可重入(Non Reentrant)[SWS_KeyM_91014]。因此,不得在无保护的情况下并发执行调用。
本使用说明由 AI 助手基于 AUTOSAR R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CertificateElementGetCount [SWS_KeyM_91015] 📄 PDF
Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);
This function provides the total number of data elements that a re available for the specified certificate element. Typically, only one data element is available. But in some cases, several data elements can be assigned to one certificate element in a row. This function retrieves the total number of elements. The indiv idual data elements can then accessed with Key M_ Certificate Element Get By Index(). It is similar to the functions Key M_ Cert Element Get First/ Key M_ Cert Element Get Next to retrieve a group of data elements of one certificate element. AUTOSAR CP R20 - of
同步接口 KeyM_CertificateElementGetCount 确定为特定证书元素存储的数据元素总数,并将结果写入缓冲区 CountPtr [SWS_KeyM_91015]。
用法与参数
该函数通过头文件 KeyM.h 声明,并具有服务 ID 0x1c [SWS_KeyM_91015]。它处理以下参数:
CertId(IN):要查询的证书的唯一标识符([SWS_KeyM_91015])。CertElementId(IN):指定证书内的具体元素([SWS_KeyM_91015])。CountPtr(OUT):指向类型为uint16的缓冲区的指针,可用的数据元素数量将被复制到该缓冲区中([SWS_KeyM_91015])。
错误处理与返回值
类型为 Std_ReturnType 的返回值提供有关执行结果的信息 [SWS_KeyM_91015]:
E_OK:计数值已成功写入缓冲区([SWS_KeyM_91015])。E_NOT_OK:无法提供计数值([SWS_KeyM_91015])。KEYM_E_PARAMETER_MISMATCH:证书 ID(CertId)或元素 ID(CertElementId)无效或超出允许范围([SWS_KeyM_91015])。
并发性与交互
执行为同步进行,但被归类为不可重入(Non Reentrant),因此必须协调同时进行的调用 [SWS_KeyM_91015]。尽管证书元素通常仅分配有单个数据元素,但在某些情况下可能连续存在多个数据元素 [SWS_KeyM_91015]。确定的总数用作随后通过 KeyM_CertificateElementGetByIndex() 针对性读取各个元素的基础,这在功能上类似于使用 KeyM_CertElementGetFirst 和 KeyM_CertElementGetNext 的迭代方法 [SWS_KeyM_91015]。
本使用说明基于 AUTOSAR 规范 SWS_KeyM_91015。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CertElementGetFirst [SWS_KeyM_00064] 📄 PDF
Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);
Service KeyM_CertElementGetFirst.
根据 [SWS_KeyM_00064],同步函数 KeyM_CertElementGetFirst 用于启动证书数据的迭代提取。它从证书 CertId 中读取通过 CertElementId 寻址的证书元素的最顶层元素,并为后续调用 KeyM_CertElementGetNext() 初始化迭代器结构 CertElementIterator。
调用时须遵守 [SWS_KeyM_00064] 规定的以下参数和内存要求:
CertElementIterator:指向调用方分配并管理的结构的指针;在通过KeyM_CertElementGetNext()获取所有数据之前,应用程序既不能销毁也不能修改该结构。CertElementData:指向调用方提供的输出缓冲区的指针,成功找到(E_OK)时,有效负载数据将被复制到其中。CertElementDataLength:作为输入传递数据缓冲区的最大长度,并在返回E_OK时被覆写为实际写入的数据长度。
关于并发性,根据 [SWS_KeyM_00064],该服务是重入的,但仅针对单个迭代器(“Reentrant for one iterator”)。
在出错的情况下,该函数根据 [SWS_KeyM_00064] 通过特定返回值进行区分:E_NOT_OK 表示未找到元素数据(此后迭代器不得用于进一步调用)。KEYM_E_PARAMETER_MISMATCH 指示无效的证书 ID 或元素 ID,KEYM_E_KEY_CERT_SIZE_MISMATCH 指示数据缓冲区过小,KEYM_E_KEY_CERT_EMPTY 指示无可用数据的空证书,KEYM_E_CERT_INVALID 指示无效或未成功验证的证书。
本使用说明基于 AUTOSAR R20-11 规范数据自动创建。
实现者指南即将推出(复杂度 I2)
函数 KeyM_CertElementGetNext [SWS_KeyM_00065] 📄 PDF
Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);
Service KeyM_CertElementGetNext.
若证书元素中按顺序存储了多个数据记录,同步函数 KeyM_CertElementGetNext(服务 ID 0x11,通过 KeyM.h 提供)用于持续读取该证书元素的更多数据 [SWS_KeyM_00065]。作为强制性调用条件,规范要求此前必须至少调用过一次函数 KeyM_CertElementGetFirst() [SWS_KeyM_00065]。
所有参数的内存区域都必须由调用应用程序提供 [SWS_KeyM_00065]:
CertElementIterator:指向已分配迭代器结构的指针,在遍历过程中,直到所有元素被完全读取之前,应用程序既不能修改也不能销毁该结构 [SWS_KeyM_00065]。CertElementData:指向输出缓冲区的指针,函数在成功执行时将有效负载数据复制到其中 [SWS_KeyM_00065]。CertElementDataLength:在调用时传递数据缓冲区的最大容量,并在成功返回时被覆写为复制数据的实际长度 [SWS_KeyM_00065]。
若调用返回 E_OK,则表示已找到下一个元素并写入缓冲区,且迭代器已相应前进 [SWS_KeyM_00065]。若返回 E_NOT_OK,则未能找到更多元素数据;在这种情况下,迭代器不得再用于任何进一步的调用 [SWS_KeyM_00065]。错误情况通过特定返回值报告:KEYM_E_KEY_CERT_SIZE_MISMATCH 表示数据缓冲区尺寸过小,KEYM_E_PARAMETER_MISMATCH 表示无效的证书 ID 或元素 ID,KEYM_E_KEY_CERT_EMPTY 表示空证书,KEYM_E_CERT_INVALID 表示无效或未成功验证的证书 [SWS_KeyM_00065]。
关于并发性,该同步函数被指定为分别针对单个迭代器可重入 [SWS_KeyM_00065]。
本使用说明基于 AUTOSAR 规范自动创建。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CertGetStatus [SWS_KeyM_00066] 📄 PDF
Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);
This function provides the sta tus of a certificate.
同步函数 KeyM_CertGetStatus 用于查询证书的状态并通过输出参数提供 [SWS_KeyM_00066]。该函数的声明可通过头文件 KeyM.h 访问,且该服务被分配了十六进制服务 ID 0x12 [SWS_KeyM_00066]。
调用时使用以下参数 [SWS_KeyM_00066]:
CertId(IN):包含要查询的证书的标识符,以数据类型KeyM_CertificateIdType传递 [SWS_KeyM_00066]。Status(OUT):指向类型为KeyM_CertificateStatusType的内存区域的指针,函数将确定的证书状态写入其中 [SWS_KeyM_00066]。
类型为 Std_ReturnType 的返回值通报状态查询的结果 [SWS_KeyM_00066]:
E_OK:证书状态已成功确定并提供 [SWS_KeyM_00066]。E_NOT_OK:当前无法提供状态 [SWS_KeyM_00066]。例如,当传递了无效的证书 ID 时会发生此情况,记录有错误码KEYM_E_PARAMETER_MISMATCH[SWS_KeyM_00066]。
在执行和并发性方面,该接口表现为完全同步,并被指定为不可重入(Non Reentrant)[SWS_KeyM_00066]。因此,不允许跨多个执行上下文进行同时调用。该接口未规定额外的输入和输出参数 [SWS_KeyM_00066]。
本使用说明由 AI 基于规范生成。
实现者指南即将推出(复杂度 I2)
函数 KeyM_MainFunction [SWS_KeyM_00074] 📄 PDF
void KeyM_MainFunction (void);
Function is called periodically according the specified time interval.
函数 KeyM_MainFunction 用作 Classic AUTOSAR 模块 KeyM 的周期性主函数 [SWS_KeyM_00074]。根据规范,该函数具有十六进制表示的服务 ID 0x19 以及签名 void KeyM_MainFunction (void) [SWS_KeyM_00074]。因此,调用实例不传递任何输入参数,也不接收返回值 [SWS_KeyM_00074]。
对于时间控制规定,该函数须根据定义的时间间隔周期性调用 [SWS_KeyM_00074]。头文件 SchM_KeyM.h 被声明为接口文件 [SWS_KeyM_00074]。由此得出 Interpretation:通过经由 SchM_KeyM.h 提供,该函数的规律调用预计在基础软件调度器 (SchM) 的上下文中进行 [SWS_KeyM_00074]。 问题 Q-761ff71812bda3c2 (未决)此外,周期性触发可能用于模块内时间依赖型流程的内部处理 KeyM。
在错误处理和错误行为方面,规范元素中未针对该服务记录返回值代码、错误常量或向 DET 或 DEM 的报告 [SWS_KeyM_00074]。由于不存在输入参数,因此在调用时也无需对传入值进行检查 [SWS_KeyM_00074]。
本使用说明由 AI 系统基于 AUTOSAR Release R20-11 规范自动生成。
函数 KeyM_MainBackgroundFunction [SWS_KeyM_00075] 📄 PDF
void KeyM_MainBackgroundFunction (void);
Function is called from a pre - emptive operating system when no other task operation is needed. Can be used for calling time consuming synchronous functions such as Key M_ KH_ Update().
用法与调用上下文
函数 KeyM_MainBackgroundFunction 具有签名 void KeyM_MainBackgroundFunction(void),并在服务 ID 0x1a 下指定 [SWS_KeyM_00075]。它不接收传入参数,也不向调用者返回返回值 [SWS_KeyM_00075]。为了集成,该接口通过头文件 SchM_KeyM.h 进行声明和提供 [SWS_KeyM_00075]。
一旦没有其他任务操作等待处理,抢占式操作系统就会在后台执行该调用 [SWS_KeyM_00075]。此函数的主要目的是为 KeyM 模块耗时的同步操作提供非关键的后台上下文,例如针对执行 KeyM_KH_Update() 所描述的情况 [SWS_KeyM_00075]。
并发与错误处理
由于该函数在抢占式操作系统的后台上下文中执行,因此它应当可在任何时候被任意常规的更高优先级任务打断。 问题 Q-a2394a51ba63467f (未决)对于该后台服务,标准既未指定特定的错误代码,也未指定向 DET 或 DEM 发送的通知 [SWS_KeyM_00075]。此外,在给定的数据状态下,未规定相对于其他模块函数的特殊重入属性或固定顺序条件 [SWS_KeyM_00075]。
此文本由 AI 创建,仅基于有效负载中的规范数据。
函数 KeyM_KH_Start [SWS_KeyM_00067] 📄 PDF
Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key
同步且不可重入的函数 KeyM_KH_Start 通过头文件 KeyM_Externals.h 声明 [SWS_KeyM_00067]。当配置参数 KeyMCryptoKeyStartFinalizeFunctionEnabled 和 KeyMCryptoKeyHandlerStartFinalizeEnabled 设置为 TRUE 时,它会在调用 KeyM_Start 时直接执行 [SWS_KeyM_00067]。
通过参数 StartType 指定密钥操作的执行模式。函数通过 RequestData 和 RequestDataLength 接收请求特定的伴随数据(例如签名)。调用方通过输入/输出参数 ResponseDataLength 传递缓冲区 ResponseData 中可用的最大字节数;在成功的情况下,函数通过该参数返回实际写入的响应字节数 [SWS_KeyM_00067]。
作为返回值,该函数提供类型为 Std_ReturnType 的状态[SWS_KeyM_00067]:
E_OK:启动操作成功。仅凭此返回值,Key Manager 才会转换到激活状态,从而允许后续的密钥更新(Key Update)。E_NOT_OK:启动操作未被接受。KEYM_E_PARAMETER_MISMATCH:传递的参数与预期值不匹配。KEYM_E_KEY_CERT_SIZE_MISMATCH:指定的参数大小与预期大小不符。
由于 KeyM_KH_Start 被定义为不可重入,因此针对并行密钥操作的调用不得并发进行 [SWS_KeyM_00067]。
本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_KH_Prepare [SWS_KeyM_00068] 📄 PDF
Std_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);
If the configuration parameters Key MCrypto Key Prepare Function Enabled and Key MCrypto Key Handler Prepare Enabled are both set to TRUE, then this function w ill be called immediately when Key M_ Prepare gets called. The function takes over the task to prepare a key management operation. The response data will be passed on as is to the caller of Key_ Prepare.
用法与调用上下文
函数 KeyM_KH_Prepare 通过头文件 KeyM_Externals.h 声明,用于准备密钥管理操作 [SWS_KeyM_00068]。当配置参数 KeyMCryptoKeyPrepareFunctionEnabled 和 KeyMCryptoKeyHandlerPrepareEnabled 均设置为 TRUE 时,它会在调用 KeyM_Prepare 时直接触发 [SWS_KeyM_00068]。其执行为同步进行,并被指定为不可重入 [SWS_KeyM_00068]。
数据传递通过四个参数进行 [SWS_KeyM_00068]:
RequestData:随请求一起传递的输入数据 [SWS_KeyM_00068]。RequestDataLength:数组中数据的长度RequestData[SWS_KeyM_00068]。ResponseDataPtr:指向用于存放函数返回的响应数据的缓冲区的指针,该响应数据将原封不动地转发给Key_Prepare的调用方 [SWS_KeyM_00068]。ResponseDataLength:输入和输出参数;在调用时传递缓冲区中可用的最大字节数,并在返回后提供实际写入的字节量 [SWS_KeyM_00068]。
返回值与错误行为
该函数返回状态值 Std_ReturnType 作为结果 [SWS_KeyM_00068]:
E_OK:服务已被接受并将在内部继续处理;结果将通过回调传递 [SWS_KeyM_00068]。E_NOT_OK:由于内部错误,服务未被接受 [SWS_KeyM_00068]。KEYM_E_PARAMETER_MISMATCH:某个参数与期望值不一致 [SWS_KeyM_00068]。KEYM_E_KEY_CERT_SIZE_MISMATCH:参数的大小不匹配 [SWS_KeyM_00068]。
本文由 AI 生成。所有信息均仅基于 AUTOSAR 标准 Release R20-11。
实现者指南即将推出(复杂度 I1)
函数 KeyM_KH_Finalize [SWS_KeyM_00070] 📄 PDF
Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key Handler Start Finalize Enabled is set to TRUE, this function will be called immediately when Key M_
使用与委托
函数 KeyM_KH_Finalize 通过头文件 KeyM_Externals.h 声明,并用作用户特定的密钥处理程序 [SWS_KeyM_00070]。如果在配置中 KeyMCryptoKeyStartFinalizeFunctionEnabled 和 KeyMCryptoKeyHandlerStartFinalizeEnabled 均设置为 TRUE,则 KeyM_Finalize() 不执行独立操作,而是直接将处理委托给该处理程序函数 [SWS_KeyM_00070]。
调用上下文与参数
对 KeyM_KH_Finalize 的调用是同步进行的,但被归类为不可重入(Non Reentrant),并需要受保护的调用上下文 [SWS_KeyM_00070]。数据传递通过以下参数进行:
RequestData和RequestDataLength:指向随请求传递的输入数据以及数据数组长度的指针 [SWS_KeyM_00070]。ResponseData:用于存放函数提供的输出数据的缓冲区 [SWS_KeyM_00070]。ResponseDataLength:输入/输出参数,调用时指定响应缓冲区中可用的最大字节数,返回时包含实际写入的字节数 [SWS_KeyM_00070]。
返回值与错误处理
操作结果通过 Std_ReturnType 返回 [SWS_KeyM_00070]:
E_OK:操作已被接受并在内部继续处理;结果将通过回调提供 [SWS_KeyM_00070]。解释:尽管函数接口被定义为同步,但实际处理可能会在后台继续进行。 问题 Q-02c4aac040570c03 (未决)E_NOT_OK:由于内部错误,操作未被接受 [SWS_KeyM_00070]。KEYM_E_BUSY:Key Manager 正忙于其他任务,因此当前无法执行验证 [SWS_KeyM_00070]。KEYM_E_PARAMETER_MISMATCH:某个参数与期望值不一致 [SWS_KeyM_00070]。KEYM_E_KEY_CERT_SIZE_MISMATCH:传入的参数大小不符合要求 [SWS_KeyM_00070]。
本文本由 AI 生成,仅供参考。一切以 AUTOSAR 规范为准。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CryptoKeyUpdateCallbackNotification [SWS_KeyM_00077] 📄 PDF
void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);
Notifies the application that a crypto key update operation has been finished. This function is used by the key manager.
回调函数 KeyM_CryptoKeyUpdateCallbackNotification() 通知应用程序加密密钥的更新已完成([SWS_KeyM_00077])。该函数通过 KeyM_Externals.h 提供,是同步且可重入的,并且没有返回值([SWS_KeyM_00077])。
范围
Result:通过类型KeyM_ResultType传输有关更新操作结果的信息([SWS_KeyM_00077],[SWS_KeyM_00156])。ResultDataLength:指定此操作的结果数据长度([SWS_KeyM_00077],[SWS_KeyM_00156])。ResultDataPtr:指向结果数据的指针([SWS_KeyM_00077])。
交互与缓冲区管理
一旦密钥处理程序返回并提供操作类型 KEYM_KH_UPDATE_FINISH,KeyM_Update() 就会调用 KeyM_CryptoKeyUpdateCallbackNotification()([SWS_KeyM_00093])。在此过程中,来自 KeyM_KH_Update::ResultDataPtr 的结果数据将被复制到调用 KeyM_Update() 时传递的缓冲区中,并采用密钥处理程序的返回值([SWS_KeyM_00093])。
若 KeyM_Update() 已通过 E_OK 接受该过程,则在回调通知 KeyM_CryptoKeyUpdateCallbackNotification() 发生之前,调用函数绝不能修改缓冲区 ResultDataPtr([SWS_KeyM_00156])。相同的缓冲区指针将在回调中作为 ResultDataPtr 连同复制到其中的操作结果一起传递([SWS_KeyM_00156])。
本使用说明基于 AUTOSAR Classic R20-11 规范。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CryptoKeyFinalizeCallbackNotification [SWS_KeyM_00079] 📄 PDF
void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);
Service KeyM_CryptoKeyFinalizeCallbackNotification.
回调函数 KeyM_CryptoKeyFinalizeCallbackNotification 通知应用程序密钥完成操作已结束 [SWS_KeyM_00079]。它被指定为同步且可重入,没有返回值,并通过头文件 KeyM_Externals.h 声明 [SWS_KeyM_00079]。
该接口在调用时向应用程序传递以下参数 [SWS_KeyM_00079]:
Result(类型KeyM_ResultType):传递已完成操作的结果和状态信息 [SWS_KeyM_00079]。Result Data Length(类型uint16):指定此操作的结果数据长度 [SWS_KeyM_00079]。Result Data Ptr(类型const uint8*):指向包含结果数据的缓冲区的指针,该缓冲区此前已提供给服务函数 [SWS_KeyM_00079]。
在配置方面,仅当配置参数 KeyMCryptoKeyStartFinalizeFunctionEnabled 设置为 TRUE 时,才调用并需要该回调函数 [SWS_KeyM_00079]。未为此回调函数定义特定的 DET 或 DEM 错误消息。推测应用程序实现此回调以接收先前启动的密钥完成操作的异步结果。 问题 Q-6d9e4e062b008832 (未决)
本使用说明根据 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CryptoKeyVerifyCallbackNotification [SWS_KeyM_00081] 📄 PDF
void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);
Notifies the application that a crypto key verify operation has been finished. This function is used by the key manager.
用法与参数
回调函数 KeyM_CryptoKeyVerifyCallbackNotification 通知应用程序 KeyM 模块针对加密密钥的验证操作已完成 [SWS_KeyM_00081]。解释:根据规范,由于该元素通过头文件 KeyM_Externals.h 提供并用于通知应用程序,因此实现可能由应用软件组件完成,而调用则由 Key Manager 执行 [SWS_KeyM_00081]。 问题 Q-e88e332a7d2cac40 (未决)
为调用定义了四个纯输入参数 [SWS_KeyM_00081]:
Result(KeyM_ResultType):传递已完成验证的结果 [SWS_KeyM_00081]。KeyId(uint32):标识为其启动验证的密钥标识符 [SWS_KeyM_00081]。ResultDataLength(uint16):包含所得结果数据的长度(若存在)[SWS_KeyM_00081]。ResultDataPtr(const uint8*):指向验证结果的数据 [SWS_KeyM_00081]。
并发性与限制
该函数没有返回值(void),也没有输出参数或输入/输出参数 [SWS_KeyM_00081]。调用执行为同步且可重入 [SWS_KeyM_00081]。未针对此回调指定特定错误码或 DET/DEM 消息;状态和错误信息仅通过参数 Result 传递给应用程序 [SWS_KeyM_00081]。
该文本由人工智能基于规范生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_ServiceCertificateCallbackNotification [SWS_KeyM_00147] 📄 PDF
void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);
Notifies the application that the certificate service operation has been finished. This function is used by the certificate submodule. Thi s callback is only provided if Key MService Certificate Function Enabled is set to TRUE. The function name is configurable by Key MService Certificate Callback Notification Func.
用法与语义
回调函数 KeyM_ServiceCertificateCallbackNotification 由 KeyM 的证书子模块调用,以通知应用程序证书服务操作已完成 [SWS_KeyM_00147]。先前的证书操作异步运行,并在其结束时执行此回调,以便将结果传递给应用程序 [SWS_KeyM_00149]。
通过函数参数传递所有相关的结果数据 [SWS_KeyM_00147]:
CertId:为其发起操作的证书的标识符。Result:包含操作状态或结果的类型KeyM_ResultType。ResultDataLength:结果数据的长度(如果存在)。ResultDataPtr:指向结果数据的指针。
函数本身没有返回值(void),并具有同步执行语义 [SWS_KeyM_00147]。
配置与限制
该回调通过头文件 KeyM_Externals.h 提供,但仅在配置参数 KeyMServiceCertificateFunctionEnabled 设置为 TRUE 时可用 [SWS_KeyM_00147]。通知函数的实际名称可通过配置参数 KeyMServiceCertificateCallbackNotificationFunc 进行自定义 [SWS_KeyM_00147]。
并发与错误处理
根据规范,该函数被归类为可重入 [SWS_KeyM_00147]。先前异步操作的错误或成功状态通过传入参数 Result 指示;在有效负载中未为此回调接口定义特定的 DET 或 DEM 消息 [SWS_KeyM_00147]。
本使用说明由 AI 基于 AUTOSAR 规范 R20-11 生成。
实现者指南即将推出(复杂度 I1)
函数 KeyM_CertificateVerifyCallbackNotification [SWS_KeyM_00073] 📄 PDF
Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);
Notifies the application that a certificate verification has been finished. The function name is configurable by Key MCertificate Verify Callback Notification Func. Availabl e via Key M_ Externals.h
使用
回调函数 KeyM_CertificateVerifyCallbackNotification 用于在证书验证完成时通知应用程序 [SWS_KeyM_00073]。声明可通过头文件 KeyM_Externals.h 获取,其中函数名称可以通过配置参数 KeyMCertificateVerifyCallbackNotificationFunc 进行配置 [SWS_KeyM_00073]。
调用时会传递两个输入参数 [SWS_KeyM_00073]:
CertId(类型KeyM_CertificateIdType):已验证证书的标识符 [SWS_KeyM_00073]。Result(类型KeyM_CertificateStatusType):包含有关验证操作结果的信息 [SWS_KeyM_00073]。
该函数返回 E_OK 作为类型为 Std_ReturnType 的状态值 [SWS_KeyM_00073]。
执行与错误处理
通知的执行被定义为同步且可重入 [SWS_KeyM_00073]。未为该回调定义特定错误码、不同的返回值或向 DET 或 DEM 发送的消息 [SWS_KeyM_00073]。解释:应用程序侧的实现可能需要设计为线程安全,以便在无副作用的情况下处理针对不同证书的同时调用。 问题 Q-6bf5313c425fe1a8 (未决)
该文本由 AI 基于 AUTOSAR R20-11 规范生成。
实现者指南即将推出(复杂度 I2)
类型 KeyM_ConfigType [SWS_KeyM_00157] 📄 PDF
This structure is the base type to initialize the Key Manager module. A pointer to an instance of this structure will be used in the initialization of the Key Manager module.
类型 KeyM_KH_UpdateOperationType [SWS_KeyM_00055] 📄 PDF
Specifies the type of key handler update operation that was performed in the callback.
类型 KeyM_CertElementIteratorType [SWS_KeyM_00042] 📄 PDF
This structure is used to iterate through a number of elements of a certificate.
使用
根据 [SWS_KeyM_00042],数据类型 KeyM_CertElementIteratorType 定义为结构体(Structure),并通过头文件 KeyM.h 提供。根据规范,该类型用于遍历证书的一系列元素([SWS_KeyM_00042])。由于数据结构的具体内容被明确指定为与实现相关([SWS_KeyM_00042]),用户应将该类型视为不透明的迭代状态,而不直接访问内部结构体字段。 问题 Q-81b5deb7dcdf2812 (未决)
处理与限制
规范为使用提出了以下实际框架条件:
- 特定于实现的结构:由于
KeyM_CertElementIteratorType的字段是由特定供应商实现的([SWS_KeyM_00042]),因此内部内存布局取决于相应的 BSW 实现。 - 状态管理:理解:调用方应当将该结构体的一个实例分配为迭代器上下文,并传递给相应的证书元素遍历函数,以跟踪检查或提取证书字段时的进度。 问题 Q-5ddb438001abe656 (未决)
- 并发性:当对同一证书进行并行访问时,如果没有跨多个任务的外部同步,迭代器实例推测无法并发使用。 问题 Q-6b4b8b1cdc35f021 (未决)
本段文本由人工智能生成。它完全基于 AUTOSAR Classic R20-11 的规范数据。
类型 KeyM_CryptoKeyIdType [SWS_KeyM_00302] 📄 PDF
Crypto key handle.
类型 KeyM_CertDataPointerType [SWS_KeyM_91011] 📄 PDF
Byte - pointer to the data of the certificate
类型 KeyM_StartType [SWS_KeyM_00038] 📄 PDF
This type specifies in which mode the key operation will start. The OEM production mode provides higher privileges compared to workshop mode.
类型 KeyM_CertElementIdType [SWS_KeyM_00300] 📄 PDF
Certificate Element handle.
类型 KeyM_CertificateIdType [SWS_KeyM_00301] 📄 PDF
Certificate handle.
类型 KeyM_ServiceCertificateType [SWS_KeyM_00039] 📄 PDF
This type specifies the requested service operation and what information is provided with this function.
枚举类型 KeyM_ServiceCertificateType 通过头文件 Rte_KeyM_Type.h 提供,并指定密钥服务器请求的证书服务操作以及随该函数传递的信息类型 [SWS_KeyM_00039]。RTE 头文件中的声明可能表明该类型主要用于软件组件与 Key Manager 模块之间的数据交换。 问题 Q-37ed693ea3eda646 (未决)
为证书管理定义了以下标准化操作码 [SWS_KeyM_00039]:
KEYM_SERVICE_CERT_REQUEST_CSR(0x01):密钥服务器请求密钥客户端生成证书或证书签名请求(CSR)[SWS_KeyM_00039]。KEYM_SERVICE_CERT_UPDATE_SIGNED_CSR(0x02):服务器返回先前接收的、现已由证书颁发机构(CA)签名的证书 [SWS_KeyM_00039]。KEYM_SERVICE_CERT_SET_ROOT(0x03)和KEYM_SERVICE_CERT_UPDATE_ROOT(0x04):创建新的或更新现有的根证书 [SWS_KeyM_00039]。KEYM_SERVICE_CERT_SET_INTERMEDIATE(0x05)和KEYM_SERVICE_CERT_UPDATE_INTERMEDIATE(0x06):添加或更新中间证书(CA 证书)[SWS_KeyM_00039]。KEYM_SERVICE_CERT_UPDATE_CRL(0x07):提供或更新证书吊销列表(CRL)[SWS_KeyM_00039]。
作为重要的前置条件,KEYM_SERVICE_CERT_SET_INTERMEDIATE 要求在设置中间证书之前必须已存有对应的根证书,以确保成功进行验证 [SWS_KeyM_00039]。对于特定于项目的扩展,该规范预留了从 0x80 到 0x9F 的取值范围 [SWS_KeyM_00039]。
此文本由 AI 创建,并基于 AUTOSAR R20-11 规范。
实现者指南即将推出(复杂度 I2)
类型 Max [SWS_KeyM_91000] 📄 PDF
Array long enough to store the key or certificate name. base Type Encoding = UTF -
类型 KeyM_CertificateStatusType [SWS_KeyM_91003] 📄 PDF
Type KeyM_CertificateStatusType.
枚举类型 KeyM_CertificateStatusType 表示证书检查的结果,并映射 Key Manager 中证书的当前验证和处理状态 [SWS_KeyM_91003]。该类型通过头文件 Rte_KeyM_Type.h 提供,用于供调用者差异化评估证书验证的状态或具体错误原因 [SWS_KeyM_91003]。
枚举值既涵盖常规的中间状态和成功状态,也涵盖明确的错误情况 [SWS_KeyM_91003]:
KEYM_CERTIFICATE_VALID(0x00):证书已成功解析并验证 [SWS_KeyM_91003]。KEYM_CERTIFICATE_INVALID(0x01):由于未详细说明的错误,证书无效 [SWS_KeyM_91003]。KEYM_CERTIFICATE_NOT_PARSED(0x02):证书目前尚未解析 [SWS_KeyM_91003]。KEYM_CERTIFICATE_PARSED_NOT_VALIDATED(0x03):证书已解析,但尚未校验 [SWS_KeyM_91003]。KEYM_CERTIFICATE_NOT_AVAILABLE(0x04):未设置证书 [SWS_KeyM_91003]。- 特定错误检查结果:有效期检查失败 (
KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, 0x05)、签名错误 (KEYM_E_CERTIFICATE_SIGNATURE_FAIL, 0x06)、信任链无效 (KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, 0x07)、类型无效 (KEYM_E_CERTIFICATE_INVALID_TYPE, 0x08)、格式错误 (KEYM_E_CERTIFICATE_INVALID_FORMAT, 0x09)、内容无效 (KEYM_E_CERTIFICATE_INVALID_CONTENT, 0x0A) 以及吊销或有效范围无效 (KEYM_E_CERTIFICATE_REVOKED, 0x0B) [SWS_KeyM_91003]。
调用者应在使用加密密钥之前检查该状态;通常只有当状态明确指示为 KEYM_CERTIFICATE_VALID 时,操作才可在证书上执行。由于该类型通过 Rte_KeyM_Type.h 声明,因此它应当主要用于 KeyM 与应用程序 SWC 之间交互的标准服务接口和端口中。 问题 Q-f3ca10ee673798df (未决)
此文本由 AI 创建。它不能替代对官方 AUTOSAR 规范的研究。
实现者指南即将推出(复杂度 I2)
类型 KeyM_CertificateElementType [SWS_KeyM_91004] 📄 PDF
Array long enough to store data
使用与结构
数据类型 KeyM_CertificateElementType 被指定为元素类型为 uint8 的字节数组,根据规范用作足够大的存储区域以存放证书元素的数据 [SWS_KeyM_91004]。对于 KeyM 模块,该数据类型的提供和声明通过头文件 Rte_KeyM_Type.h 进行 [SWS_KeyM_91004]。
配置与变体构建
该数据类型的形态受制于依赖于配置的名称和大小变体,这些变体派生自模块的已配置参数 [SWS_KeyM_91004]:
- 名称模式:具体的类型名称根据模式
KeyM_CertificateElementType_{KeyMCertificate}_{KeyMCertificateElement}按元素特定生成,其中占位符对应于证书和证书元素相应实例的已配置短名称SHORT-NAME[SWS_KeyM_91004]。 - 数组大小:
uint8元素的数量由配置参数KeyMCertificateElementMaxLength确定,以使该数组为相应元素的原始数据提供足够的存储空间 [SWS_KeyM_91004]。
限制与假定
由于该定义在 Rte_KeyM_Type.h 中提供,因此该类型大概主要用作与软件组件接口处的标准化缓冲区,用于交换证书内容 [SWS_KeyM_91004]。 问题 Q-994f8ac6772de3c1 (未决)此时,可处理的最大数据长度静态绑定到配置时定义的最大长度 [SWS_KeyM_91004]。
本使用说明由 AI 基于 AUTOSAR 规范生成。
实现者指南即将推出(复杂度 I1)
类型 KeyM_CryptoKeyDataType [SWS_KeyM_91012] 📄 PDF
Byte - pointer to the input or output data
使用与类型定义
数据类型 KeyM_CryptoKeyDataType 被定义为指向 uint8* 的指针类型,并在 KeyM 模块内用作输入或输出数据的字节指针 [SWS_KeyM_91012]。类型定义通过头文件 Rte_KeyM_Type.h 提供 [SWS_KeyM_91012]。
限制和内存管理
将 KeyM_CryptoKeyDataType 用作指向字节缓冲区的指针时,必须注意特定的边界条件:
- 解释:由于该类型被指定为简单的字节指针(
uint8*)[SWS_KeyM_91012],所引用内存的分配、大小确定以及有效性大概由各调用方负责。 问题 Q-07c167f400cbfb9c (未决) - 解释:当作为输出缓冲区传递时,应该确保所引用的存储区域足够大以容纳要接收的密钥或加密数据,从而防止缓冲区溢出。 问题 (未决)
- 解释:对于对所引用缓冲区的并发访问,调用软件可能需要采取额外的同步措施,因为该类型本身不提供同步机制。 问题 (未决)
集成
向 KeyM 接口传递加密密钥或证书数据或从其中接收这些数据的调用方,应包含 Rte_KeyM_Type.h 以获得对 KeyM_CryptoKeyDataType 的类型化指针定义的访问 [SWS_KeyM_91012]。
本使用说明为自动生成,完全基于 KeyM 模块的 AUTOSAR 规范。
实现者指南即将推出(复杂度 I1)
类型 KeyM_ResultType [SWS_KeyM_91008] 📄 PDF
Specifies the result type of an asynchronous key management fu nction.
枚举类型 KeyM_ResultType 指定用于密钥和证书管理的模块 KeyM 的异步函数的结果 [SWS_KeyM_91008]。该类型通过头文件 Rte_KeyM_Type.h 提供,用于反馈请求的异步工作任务的结果 [SWS_KeyM_91008]。
取值范围包括标准化的状态和错误代码,以供调用方进行区分评估 [SWS_KeyM_91008]:
KEYM_RT_OK(0x00):密钥管理操作已成功完成 [SWS_KeyM_91008]。KEYM_RT_NOT_OK(0x01):在密钥管理操作期间发生了通用错误 [SWS_KeyM_91008]。KEYM_RT_KEY_CERT_INVALID(0x02):引用的密钥或证书无效,无法用于该操作 [SWS_KeyM_91008]。KEYM_RT_KEY_CERT_WRITE_FAIL(0x03):将密钥或证书写入预期目标存储失败 [SWS_KeyM_91008]。KEYM_RT_KEY_CERT_UPDATE_FAIL(0x04):更新密钥或证书时发生通用错误,无法通过更具体的代码予以明确 [SWS_KeyM_91008]。KEYM_RT_CERT_INVALID_CHAIN_OF_TRUST(0x05):由于信任链无效,证书验证失败 [SWS_KeyM_91008]。
异步 KeyM 函数的调用方必须对该返回类型进行评估,以便在出错时能够针对无效信任链、存储访问错误或不正确的密钥材料做出针对性响应 [SWS_KeyM_91008]。
本文本由 AI 基于规范生成。
实现者指南即将推出(复杂度 I2)
类型 KeyM_CertDataType [SWS_KeyM_00041] 📄 PDF
This structure is used to exchange certificate data through interface functions.
结构体 KeyM_CertDataType 在模块 KeyM 中用于通过接口函数传递和交换证书数据 [SWS_KeyM_00041]。类型定义可通过头文件 KeyM.h 获取 [SWS_KeyM_00041]。
该结构体捆绑了两个核心元素 [SWS_KeyM_00041]:
certDataLength:类型为uint32的元素,指示证书数据的长度 [SWS_KeyM_00041]。certData:类型为VoidPtr的元素,作为指针直接引用调用方本地数据区中的证书数据 [SWS_KeyM_00041]。
由于 certData 引用调用方本地上下文中的内存区域 [SWS_KeyM_00041],因此缓冲区管理由调用实例负责。理解:调用方可能必须确保引用的内存在相应接口函数的整个执行持续时间内保持有效,并且至少包含 certDataLength 中指定的字节数。 问题 Q-7da9d5ed0975ddbd (未决)此外可以推测,当长度大于零时,必须传递非 NULL 的有效指针,以避免接口函数内部出现错误的内存访问。
本使用说明基于 AUTOSAR R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_KeyM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_KeyM@rel:R20-11#02c1b7b3- Content hash
02c1b7b3- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_KeyManager.pdf#nameddest=SWS_KeyM_00043
gemini-3.8-flash-low· 2026-10-13 · 德文原文