DEENESPTFRRUARHIKOZHNL

Key Manager (KeyM)

ModulKeyM (Key Manager)
BSW-Modul-ID109
Standard-Header#include "KeyM.h"
SWS-SpezifikationAUTOSAR_SWS_KeyManager.pdf
ClusterSecurity & Intrusion Detection

Guía del móduloGENERADO POR IA

Gestiona claves y certificados de una unidad de control: actualización, análisis sintáctico y verificación de cadenas de certificados.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: a0c67f50ff24 Procedencia Preguntas abiertas (2)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Gestiona claves y certificados de una unidad de control: actualización, análisis sintáctico y verificación de cadenas de certificados.

En la pila criptográfica de AUTOSAR, el Key Manager gestiona el material de claves y los certificados de una unidad de control y, para ello, se basa en el CSM. El submódulo de claves criptográficas recibe claves en una sesión opcional compuesta por KeyM_Start, KeyM_Prepare, KeyM_Update y KeyM_Finalize; permite integrar Key Handlers específicos del fabricante. El submódulo de certificados almacena certificados, los analiza sintácticamente y los verifica de forma asíncrona frente a una cadena configurada; una devolución de llamada [SWS_KeyM_00153] notifica el resultado. Un certificado solo pasa a ser válido tras una verificación sin errores, y solo entonces se habilita su clave pública en el CSM [SWS_KeyM_00170].

El Key Manager gestiona en la pila criptográfica el material de claves y los certificados de una unidad de control. Para ello dispone de dos submódulos: el submódulo de claves criptográficas recibe claves de un Key Master en el vehículo o en el backend, por lo general mediante comandos de diagnóstico. El submódulo de certificados almacena certificados, los analiza sintácticamente y los verifica frente a su cadena (SWS KeyM p. 24). Hacia abajo, KeyM utiliza el CSM; son obligatorios Csm_KeyElementGet, Csm_KeyElementSet y Csm_KeySetValid [SWS_KeyM_00076].

Las operaciones de clave pueden ejecutarse en forma de sesión (SWS KeyM p. 25). KeyM_Start() abre la sesión, KeyM_Prepare() proporciona de forma síncrona datos para el Key Server y KeyM_Finalize() cierra la sesión. KeyM_Update() se ejecuta de forma asíncrona y responde a través de KeyM_CryptoKeyUpdateCallbackNotification() ([SWS_KeyM_00052], [SWS_KeyM_00077]). De manera opcional, un Key Handler asume pasos específicos del fabricante. En este proceso, KeyM_KH_Update() se invoca sucesivamente hasta que notifica KEYM_KH_UPDATE_FINISH ([SWS_KeyM_00092], [SWS_KeyM_00096]).

sesión de clave con Key Handler opcionalApplikation / Key MasterKeyMKeyHandlerCsmUse Case: abrir sesiónKeyM_Start(StartType, RequestData, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Start(gleiche Parameter)Valor de retornoStd_ReturnTypeUse Case: Vorbereiten (synchron)KeyM_Prepare(RequestData, …)optKeyMCryptoKeyPrepareFunctionEnabled y KeyMCryptoKeyHandlerPrepareEnabled = TRUEKeyM_KH_Prepare(…)ResponseDataResponseData, Std_ReturnTypeUse Case: Aktualisieren (asynchron)KeyM_Update(KeyNamePtr, RequestDataPtr,ResultDataPtr, …)E_OK (angenommen)procesamiento posterior en segundo plano,p. ej., desde KeyM_MainBackgroundFunction()optKeyMCryptoKeyHandlerUpdateEnabled = TRUEKeyM_KH_Update(…) (ggf. wiederholt)UpdateOperation, KeymId, ResultDataCsm_KeyElementSet() o Csm_KeyDerive()Csm_KeySetValid()KeyM_CryptoKeyUpdateCallbackNotification(Result, …)Use Case: cerrar sesión (asíncrono)KeyM_Finalize(RequestDataPtr, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Finalize(…)Valor de retornoE_OK (angenommen)optKeyMCryptoKeyStartFinalizeFunctionEnabled = TRUEKeyM_CryptoKeyFinalizeCallbackNotification(Result, …)

Diagrama de secuencia: la sesión se ejecuta desde Start a través de Prepare y la actualización asíncrona hasta Finalize, con Key Handlers opcionales y devoluciones de llamada de resultado. Fuentes: SWS KeyM p. 25, [SWS_KeyM_00052], [SWS_KeyM_00079]

Los certificados se introducen por dos vías. De forma permanente, esto se realiza mediante KeyM_ServiceCertificate(), que es iniciado por el Key Master [SWS_KeyM_00021]. De forma temporal, un llamante transfiere un certificado para su verificación con KeyM_SetCertificate() [SWS_KeyM_00057]. Cada certificado mantiene un estado según KeyM_CertificateStatusType [SWS_KeyM_91003]. Solo tras una verificación sin errores pasa a ser KEYM_CERTIFICATE_VALID, y solo entonces se habilita su clave pública en el CSM [SWS_KeyM_00170].

zertstatus start comenzar na KEYM_CERTIFICATE_NOT_AVAILABLE start->na KeyM_Init() np KEYM_CERTIFICATE_NOT_PARSED (transient) na->np KeyM_SetCertificate(longitud ≠ 0), KeyM_ServiceCertificate(), carga durante el arranque pnv KEYM_CERTIFICATE_PARSED_NOT_VALIDATED np->pnv Parsing erfolgreich ep Parsing-Fehler: KEYM_E_CERTIFICATE_INVALID_FORMAT, KEYM_E_CERTIFICATE_INVALID_TYPE, KEYM_E_CERTIFICATE_INVALID_CONTENT (Zuordnung angenommen) np->ep Parsing fehlgeschlagen pnv->na KeyM_SetCertificate(longitud = 0) valid KEYM_CERTIFICATE_VALID pnv->valid verificación correcta, Csm_KeySetValid() ev error de verificación: KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, KEYM_E_CERTIFICATE_SIGNATURE_FAIL, KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, KEYM_E_CERTIFICATE_REVOKED (asignación asumida) pnv->ev Verificación fallida valid->na KeyM_SetCertificate(longitud = 0) ep->na KeyM_SetCertificate(longitud = 0) ev->na KeyM_SetCertificate(longitud = 0)

Diagrama de estados: un certificado pasa de NOT_AVAILABLE a través del análisis sintáctico a PARSED_NOT_VALIDATED y, tras la verificación, a VALID o a un estado de error; un restablecimiento con longitud 0 devuelve al estado inicial. La asignación de INVALID_CONTENT y REVOKED es una interpretación. Fuentes: SWS KeyM p. 24, [SWS_KeyM_91003]

La verificación se ejecuta de forma asíncrona a través de KeyM_VerifyCertificate(), KeyM_VerifyCertificates() o KeyM_VerifyCertificateChain(). El resultado lo notifica una devolución de llamada configurable [SWS_KeyM_00153]. Los contenidos individuales se leen con KeyM_CertElementGet(); un iterador [SWS_KeyM_00064] recorre los elementos con múltiples valores. KeyM notifica los errores por tres vías: como errores de desarrollo tales como KEYM_E_UNINIT [SWS_KeyM_00036], como KeyM_ResultType en devoluciones de llamada [SWS_KeyM_91008] y, en caso de fallar la verificación de la cadena, adicionalmente como evento de seguridad [SWS_KeyM_00172].

Rol en la pila criptográfica: gestión de claves y certificados por encima del CSM

El Key Manager (KeyM) es un módulo de servicio en la pila criptográfica de AUTOSAR y consta de dos submódulos. El submódulo de claves criptográficas inicializa, actualiza y mantiene el material de claves de una unidad de control. El submódulo de certificados almacena certificados, los analiza sintácticamente y los verifica frente a su cadena (SWS KeyM p. 23, SWS KeyM p. 28). Un caso de uso típico del submódulo de claves criptográficas es la distribución de claves para la comunicación segura a bordo a claves del CSM. Los datos los suministra un Key Master ubicado en el vehículo o en un backend; la comunicación se realiza principalmente mediante comandos de diagnóstico (SWS KeyM p. 24).

Hacia abajo, KeyM se apoya en el CSM. Como interfaces obligatorias, [SWS_KeyM_00076] cita Csm_KeyElementGet, Csm_KeyElementSet y Csm_KeySetValid. Además, [SWS_KeyM_00078] enumera Csm_KeyDerive, Csm_SignatureVerify, Det_ReportError e IdsM_SetSecurityEvent. Para la comprobación de validez temporal, KeyM importa tipos del StbM [SWS_KeyM_00037]. Hacia arriba, KeyM ofrece API en C e interfaces de servicio RTE para certificados, elementos de certificado y claves criptográficas ([SWS_KeyM_00082], [SWS_KeyM_00083], [SWS_KeyM_00084]). La lógica específica del fabricante se integra mediante funciones de Key Handler configurables, por ejemplo a través de KeyM_KH_Start() [SWS_KeyM_00067].

kontext cluster_keym KeyM master Key Master / Key Server (p. ej., a través de diagnóstico) ck Crypto-Key-Submodul master->ck KeyM_Start / KeyM_Prepare / KeyM_Update / KeyM_Finalize cert Zertifikats-Submodul master->cert KeyM_ServiceCertificate() nutzer SW-C / BSW-Nutzer (z. B. Dcm, TcpIp) nutzer->cert KeyM_SetCertificate(), KeyM_Verify*(), KeyM_CertElementGet*(), KeyM_GetCertificate() ck->master KeyM_CryptoKey*CallbackNotification() kh Key Handler (KeyM_KH_*) ck->kh optionale Key-Handler-Aufrufe csm Csm ck->csm Csm_KeyElementSet(), Csm_KeyDerive(), Csm_KeySetValid() det Det ck->det Det_ReportError() cert->master KeyM_ServiceCertificateCallbackNotification() cert->nutzer KeyM_CertificateVerifyCallbackNotification() cert->kh KeyM_KH_ServiceCertificate() (optional) cert->csm Csm_SignatureVerify(), Csm_KeySetValid() stbm StbM cert->stbm hora actual para verificación de validez nvm NvM cert->nvm persistente Zertifikate (optional) idsm IdsM cert->idsm IdsM_SetSecurityEvent()

Diagrama de contexto: KeyM actúa de intermediario entre el Key Master o los usuarios, los Key Handlers opcionales y los servicios CSM, StbM, NvM, IdsM y DET. Fuentes: SWS KeyM p. 23, [SWS_KeyM_00076], [SWS_KeyM_00078], [SWS_KeyM_00037], SWS KeyM p. 119

Inicialización, temporización y desmantelamiento seguro

KeyM_Init() inicializa el módulo [SWS_KeyM_00043]. El contenido de KeyM_ConfigType es específico de la implementación [SWS_KeyM_00157], y el puntero de configuración siempre debe ser NULL_PTR [SWS_KeyM_00158]. Tras la inicialización, todos los certificados tienen el estado KEYM_CERTIFICATE_NOT_AVAILABLE (SWS KeyM p. 34). KeyM_Deinit() restablece el módulo al estado no inicializado [SWS_KeyM_00047]. El pasaje documental correspondiente exige adicionalmente que el submódulo de claves criptográficas sobrescriba de forma activa en RAM el material de claves y los resultados intermedios (SWS KeyM p. 49).

Durante el funcionamiento, KeyM_MainFunction() se invoca periódicamente en el intervalo configurado [SWS_KeyM_00074]. KeyM_MainBackgroundFunction() se ejecuta cuando el sistema operativo apropiativo no tiene ninguna otra tarea pendiente. Puede llamar a funciones síncronas que consumen tiempo, como KeyM_KH_Update() [SWS_KeyM_00075]. El período es un parámetro del contenedor KeyMGeneral (SWS KeyM p. 131). KeyM_GetVersionInfo() proporciona la información de versión [SWS_KeyM_00049].

Sesión de claves: desde KeyM_Start hasta KeyM_Finalize

Las operaciones de clave se pueden configurar a modo de sesión. KeyM_Start() abre la sesión. A continuación, KeyM acepta KeyM_Prepare() y KeyM_Update() hasta que KeyM_Finalize() cierra la sesión (SWS KeyM p. 25). KeyM_StartType distingue entre el modo de producción OEM y el modo de taller; el modo de producción posee mayores privilegios [SWS_KeyM_00038]. Por defecto, KeyM_Start() no evalúa datos de entrada. Si KeyMCryptoKeyHandlerStartFinalizeEnabled está activado, invoca KeyM_KH_Start() con los mismos parámetros y adopta su valor de retorno, por ejemplo para verificaciones de firma específicas del OEM ([SWS_KeyM_00050], [SWS_KeyM_00067]).

Los pasos individuales de la sesión:

  • KeyM_Prepare() opera de forma síncrona y proporciona principalmente información para el Key Server [SWS_KeyM_00051]. Si KeyMCryptoKeyPrepareFunctionEnabled y KeyMCryptoKeyHandlerPrepareEnabled están activados, KeyM invoca inmediatamente KeyM_KH_Prepare() ([SWS_KeyM_00068], SWS KeyM p. 82).
  • KeyM_Update() es asíncrono. KeyM_CryptoKeyUpdateCallbackNotification() notifica la finalización ([SWS_KeyM_00052], [SWS_KeyM_00077], [SWS_KeyM_00150]). El llamante no debe modificar el búfer de resultados transferido hasta recibir esta devolución de llamada; la devolución de llamada devuelve el mismo puntero [SWS_KeyM_00156].
  • KeyM_Finalize() es igualmente asíncrono y pasa la operación de clave al estado de reposo (SWS KeyM p. 56). Con el Key Handler activado, delega en KeyM_KH_Finalize() ([SWS_KeyM_00053], [SWS_KeyM_00070]). KeyM_CryptoKeyFinalizeCallbackNotification() notifica si todas las claves se han validado correctamente ([SWS_KeyM_00079], [SWS_KeyM_00080]).

Fuera de la sesión, KeyM_Verify() verifica claves de forma síncrona o asíncrona [SWS_KeyM_00054]. Si KeyMCryptoKeyVerifyAsyncMode = TRUE, el resultado llega a través de KeyM_CryptoKeyVerifyCallbackNotification() ([SWS_KeyM_00081], [SWS_KeyM_00151]). Se puede integrar un Key Handler mediante KeyM_KH_Verify() [SWS_KeyM_00071].

sesión de clave con Key Handler opcionalApplikation / Key MasterKeyMKeyHandlerCsmUse Case: abrir sesiónKeyM_Start(StartType, RequestData, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Start(gleiche Parameter)Valor de retornoStd_ReturnTypeUse Case: Vorbereiten (synchron)KeyM_Prepare(RequestData, …)optKeyMCryptoKeyPrepareFunctionEnabled y KeyMCryptoKeyHandlerPrepareEnabled = TRUEKeyM_KH_Prepare(…)ResponseDataResponseData, Std_ReturnTypeUse Case: Aktualisieren (asynchron)KeyM_Update(KeyNamePtr, RequestDataPtr,ResultDataPtr, …)E_OK (angenommen)procesamiento posterior en segundo plano,p. ej., desde KeyM_MainBackgroundFunction()optKeyMCryptoKeyHandlerUpdateEnabled = TRUEKeyM_KH_Update(…) (ggf. wiederholt)UpdateOperation, KeymId, ResultDataCsm_KeyElementSet() o Csm_KeyDerive()Csm_KeySetValid()KeyM_CryptoKeyUpdateCallbackNotification(Result, …)Use Case: cerrar sesión (asíncrono)KeyM_Finalize(RequestDataPtr, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Finalize(…)Valor de retornoE_OK (angenommen)optKeyMCryptoKeyStartFinalizeFunctionEnabled = TRUEKeyM_CryptoKeyFinalizeCallbackNotification(Result, …)

Diagrama de secuencia: la sesión se ejecuta desde Start a través de Prepare y la actualización asíncrona hasta Finalize; los Key Handlers son opcionales y los resultados llegan mediante devolución de llamada. Fuentes: SWS KeyM p. 25, SWS KeyM p. 116, [SWS_KeyM_00052], [SWS_KeyM_00075], [SWS_KeyM_00079]

KeyM_Update en detalle: selección de clave y bucle de Key Handler

En primer lugar, KeyM determina la clave de destino:

  • Con el nombre de la clave, KeyM busca el contenedor KeyMCryptoKey con el KeyMCryptoKeyName coincidente [SWS_KeyM_00091].
  • Sin un nombre válido y con KeyMCryptoKeyCryptoProps definidos, KeyM interpreta los RequestData como valores SHE M1M2M3 y coteja los bits 121..124 [SWS_KeyM_00154].
  • Si no se puede determinar ningún KeyID y no hay ningún Key Handler de actualización activo, la llamada finaliza con KEYM_E_PARAMETER_MISMATCH [SWS_KeyM_00155].

Con KeyMCryptoKeyHandlerUpdateEnabled, KeyM_Update() llama a la función KeyM_KH_Update(). Pasa los datos de solicitud, el nombre y el KeymId encontrado, o de lo contrario 0xFFFFFFFFul [SWS_KeyM_00092]. Para ello, KeyM pone a disposición un búfer interno que no modifica hasta el retorno del handler [SWS_KeyM_00097]. La respuesta del handler controla el flujo posterior [SWS_KeyM_00055]:

  • KEYM_KH_UPDATE_KEY_UPDATE_REPEAT con datos: KeyM almacena la clave en el CSM o la deriva allí e invoca el handler de nuevo [SWS_KeyM_00096].
  • KEYM_KH_UPDATE_FINISH: KeyM copia los datos de resultado y desencadena la devolución de llamada de actualización [SWS_KeyM_00093].

El parámetro KeyMCryptoKeyGenerationType determina si KeyM almacena o deriva, con los valores KEYM_STORED_KEY o KEYM_DERIVED_KEY (SWS KeyM p. 164). Al derivar, Csm_KeyDerive sustituye la llamada a Csm_KeyElementSet (SWS KeyM p. 118). En ambos casos, Csm_KeySetValid habilita a continuación la clave (SWS KeyM p. 116).

update start KeyM_Update() aufgerufen qname ¿nombre de clave especificado (KeyNameLength > 0)? start->qname suche buscar KeyMCryptoKey con KeyMCryptoKeyName coincidente qname->suche Sí qprops KeyMCryptoKeyCryptoProps definiert? qname->qprops No qkh KeyMCryptoKeyHandlerUpdateEnabled? suche->qkh she interpretar RequestData como SHE M1M2M3, comprobar los bits 121..124 frente a CryptoProps qprops->she Sí qprops->qkh No she->qkh qid KeyID ermittelt? qkh->qid FALSE kh KeyM_KH_Update() con KeymId (de lo contrario, 0xFFFFFFFFul) qkh->kh TRUE fehler devolución de KEYM_E_PARAMETER_MISMATCH qid->fehler No direkt almacenar o derivar la clave en Csm según KeyMCryptoKey qid->direkt Sí ende Ergebnisdaten kopieren, KeyM_CryptoKeyUpdateCallbackNotification() direkt->ende qop UpdateOperation? kh->qop csm almacenar o derivar la clave en Csm (configuración) qop->csm KEYM_KH_UPDATE_KEY_UPDATE_REPEAT, longitud del resultado > 0 qop->ende KEYM_KH_UPDATE_FINISH csm->kh llamar de nuevo en caso de éxito

Diagrama de actividades: KeyM_Update selecciona la clave mediante el nombre o el identificador SHE, se interrumpe sin KeyID y sin Key Handler y repite las llamadas al Key Handler hasta KEYM_KH_UPDATE_FINISH. Fuentes: [SWS_KeyM_00091], [SWS_KeyM_00154], [SWS_KeyM_00155], [SWS_KeyM_00092], [SWS_KeyM_00096], [SWS_KeyM_00093]

Certificados: almacenamiento permanente y temporal, jerarquía y estado

Para certificados almacenados de forma permanente existe KeyM_ServiceCertificate(). El submódulo de certificados proporciona la función si KeyMServiceCertificateFunctionEnabled y KeyMCertificateManagerEnabled están activados; el Key Master la invoca [SWS_KeyM_00021]. KeyM_ServiceCertificateType distingue los siguientes servicios [SWS_KeyM_00039]:

  • solicitar CSR y devolver CSR firmado,
  • establecer o actualizar certificados raíz e intermedios,
  • proporcionar o actualizar CRL.

El servicio se ejecuta de forma asíncrona y responde a través de KeyM_ServiceCertificateCallbackNotification() ([SWS_KeyM_00056], [SWS_KeyM_00149], [SWS_KeyM_00152]). Los intentos de instalar o actualizar certificados raíz o intermedios están definidos como eventos de seguridad ([SWS_KeyM_00172], SWS KeyM p. 38).

introducir certificado raíz o intermedio a través de KeyM_ServiceCertificateKey Master / ApplikationKeyMStbMCsmNvMIdsMKeyM_ServiceCertificate(KEYM_SERVICE_CERT_SET_ROOTo KEYM_SERVICE_CERT_SET_INTERMEDIATE, …)E_OK (angenommen, asynchron)el intento de instalación es un evento de seguridad:KEYM_SEV_INST_ROOT_CERT_OP o KEYM_SEV_INST_INTERMEDIATE_CERT_OPParsingbúsqueda de KeyMCertificateStbM_GetCurrentTime(…)aktuelle Zeitverificación de marca de tiempo, verificación de subjectVerifyingoptVerifikation erfolgreichaltNvM configurado para el almacenamientoZertifikat dauerhaft ablegenCsm configurado para el almacenamientoCsm_KeyElementSet(…)Csm_KeySetValid(…)KeyM_ServiceCertificateCallbackNotification(CertId, Result, …)

Diagrama de secuencia: al introducir un certificado raíz o intermedio, primero se analiza sintácticamente y se verifica; el almacenamiento en NvM o CSM solo tiene lugar tras una verificación correcta, seguido de la devolución de llamada de servicio. Fuentes: SWS KeyM p. 120, [SWS_KeyM_00039], [SWS_KeyM_00056], [SWS_KeyM_00149], [SWS_KeyM_00172]

Por el contrario, el llamante transfiere temporalmente un certificado presentado mediante KeyM_SetCertificate() [SWS_KeyM_00057]. Este termina en el KeyMCertificateStorage configurado, típicamente en RAM, y no está concebido para su conservación permanente (SWS KeyM p. 31). Los datos se transfieren en KeyM_CertDataType con longitud y puntero [SWS_KeyM_00041]. La propia cadena está configurada estáticamente. Cada KeyMCertificate apunta a su certificado superior, y el certificado raíz a sí mismo. Adicionalmente, cada certificado hace referencia a un trabajo de CSM y a una clave de CSM para la verificación de firma (SWS KeyM p. 22).

pki cluster_keym KeyM (KeyMCertificate) cluster_csm CSM root Root-Zertifikat root->root UpperHierarchicalCertRef (selbstsigniert) job1 CsmJob1 root->job1 SignatureVerifyJobRef key1 CsmKey1 root->key1 SignatureVerifyKeyRef inter Zwischenzertifikat inter->root UpperHierarchicalCertRef job2 CsmJob2 inter->job2 SignatureVerifyJobRef key2 CsmKey2 inter->key2 SignatureVerifyKeyRef work Arbeitszertifikat work->inter UpperHierarchicalCertRef job3 CsmJob3 work->job3 SignatureVerifyJobRef key3 CsmKey3 work->key3 SignatureVerifyKeyRef

Diagrama de estructura: en una cadena de tres niveles, cada KeyMCertificate hace referencia a su certificado superior (el raíz a sí mismo), así como al trabajo de CSM y a la clave de CSM para la verificación de firma. Fuentes: SWS KeyM p. 22, SWS KeyM p. 31, [SWS_KeyM_00170]

Cada certificado tiene un estado del tipo KeyM_CertificateStatusType [SWS_KeyM_91003], consultado por KeyM_CertGetStatus() [SWS_KeyM_00066]. El ciclo de vida:

  • Tras KeyM_Init() se aplica KEYM_CERTIFICATE_NOT_AVAILABLE.
  • KeyM_SetCertificate() con certDataLength = 0 restablece el certificado y el estado (SWS KeyM p. 34).
  • Los datos establecidos pasan por el análisis sintáctico (NOT_PARSED → PARSED_NOT_VALIDATED) y a continuación por la verificación (SWS KeyM p. 24).
  • Solo tras una verificación sin errores, KeyM habilita la clave pública mediante Csm_KeySetValid() y establece KEYM_CERTIFICATE_VALID [SWS_KeyM_00170].

Interpretación: KEYM_E_CERTIFICATE_INVALID_CONTENT debería contarse entre los errores de análisis sintáctico y KEYM_E_CERTIFICATE_REVOKED entre los errores de verificación. Pregunta Q-5d110deddf2d912e (abierta) Esto solo está documentado de manera explícita para INVALID_FORMAT e INVALID_TYPE (SWS KeyM p. 33).

zertstatus start comenzar na KEYM_CERTIFICATE_NOT_AVAILABLE start->na KeyM_Init() np KEYM_CERTIFICATE_NOT_PARSED (transient) na->np KeyM_SetCertificate(longitud ≠ 0), KeyM_ServiceCertificate(), carga durante el arranque pnv KEYM_CERTIFICATE_PARSED_NOT_VALIDATED np->pnv Parsing erfolgreich ep Parsing-Fehler: KEYM_E_CERTIFICATE_INVALID_FORMAT, KEYM_E_CERTIFICATE_INVALID_TYPE, KEYM_E_CERTIFICATE_INVALID_CONTENT (Zuordnung angenommen) np->ep Parsing fehlgeschlagen pnv->na KeyM_SetCertificate(longitud = 0) valid KEYM_CERTIFICATE_VALID pnv->valid verificación correcta, Csm_KeySetValid() ev error de verificación: KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, KEYM_E_CERTIFICATE_SIGNATURE_FAIL, KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, KEYM_E_CERTIFICATE_REVOKED (asignación asumida) pnv->ev Verificación fallida valid->na KeyM_SetCertificate(longitud = 0) ep->na KeyM_SetCertificate(longitud = 0) ev->na KeyM_SetCertificate(longitud = 0)

Diagrama de estados: un certificado pasa de NOT_AVAILABLE a través del análisis sintáctico a PARSED_NOT_VALIDATED y, tras una verificación correcta, a VALID; los errores conducen a estados de error, y un restablecimiento con longitud 0 devuelve al estado inicial. La asignación de INVALID_CONTENT y REVOKED es una interpretación. Fuentes: SWS KeyM p. 24, [SWS_KeyM_91003], [SWS_KeyM_00170], SWS KeyM p. 34

Verificación de certificados y acceso al contenido de los certificados

Para la verificación existen tres tareas asíncronas y no reentrantes:

  • KeyM_VerifyCertificate() determina por sí mismo la cadena correspondiente ([SWS_KeyM_00060], SWS KeyM p. 68).
  • KeyM_VerifyCertificates() verifica un certificado inferior frente a uno superior [SWS_KeyM_00059].
  • KeyM_VerifyCertificateChain() recibe una lista de certificados ordenada según el orden de PKI [SWS_KeyM_00061].

Si KeyM ha aceptado la orden con E_OK y KeyMCertificateVerifyCallbackNotificationFunc está configurada, la callback notifica el resultado como KeyM_CertificateStatusType ([SWS_KeyM_00153], [SWS_KeyM_00073]). Si esta función es NULL, existe en su lugar el Required Port KeyMCertificateNotification [SWS_KeyM_00161]. Según los pasajes de documentos de DCM disponibles de releases posteriores, el DCM utiliza esta vía para la autenticación (SWS DCM p. 147, SWS DCM p. 245).

establecer y verificar certificado de trabajoApplikationKeyMNvMStbMCsmUse Case: transferir certificadoKeyM_SetCertificate(CertId, CertificateDataPtr)E_OKParsing:NOT_PARSED → PARSED_NOT_VALIDATEDKeyM_CertGetStatus(CertId)StatusUse Case: verificación (asíncrona)KeyM_VerifyCertificate(CertId)E_OK (Auftrag angenommen)optZertifikat in NvM abgelegtNvM_ReadBlock(…)ZertifikatsdatenStbM_GetCurrentTime(…)aktuelle Zeitverificación de marca de tiempoverificación de subjectCsm_SignatureVerify(…)resultado de la verificaciónCsm_KeyElementSet(…) (clave pública)Csm_KeySetValid(…)Status: KEYM_CERTIFICATE_VALIDKeyM_CertificateVerifyCallbackNotification(CertId, Result)KeyM_CertGetStatus(CertId)KEYM_CERTIFICATE_VALID

Diagrama de secuencia: se establece y analiza sintácticamente un certificado de trabajo; la verificación posterior utiliza la hora de StbM, la verificación de Subject y la verificación de firma de CSM, y finaliza con la liberación de la clave y una callback. Fuentes: SWS KeyM p. 119, [SWS_KeyM_00057], [SWS_KeyM_00060], [SWS_KeyM_00170], [SWS_KeyM_00153]

Para acceder al contenido del certificado se dispone de varias funciones:

  • KeyM_GetCertificate() proporciona los datos del certificado en un búfer del llamador [SWS_KeyM_00058]. El flujo de TLS de TcpIp utiliza esto (SWS TcpIp p. 134).
  • KeyM_CertElementGet() lee elementos configurados mediante el ID de objeto a partir del certificado analizado sintácticamente y verificado ([SWS_KeyM_00063], [SWS_KeyM_00127]).
  • El llamador recorre los elementos de asignación múltiple mediante KeyM_CertElementGetFirst() y KeyM_CertElementGetNext() y un iterador mantenido por él mismo ([SWS_KeyM_00064], [SWS_KeyM_00065], [SWS_KeyM_00042]). Esto solo es posible para elementos con KeyMCertificateElementHasIteration [SWS_KeyM_00148].
  • Alternativamente, KeyM_CertificateElementGetCount() y KeyM_CertificateElementGetByIndex() proporcionan la cantidad y de forma selectiva entradas individuales ([SWS_KeyM_91015], [SWS_KeyM_91014]).

Con la iteración, el DCM lee listas blancas a partir de certificados (SWS DCM p. 155).

Comportamiento en caso de error

Con la detección de errores de desarrollo activada, KeyM comprueba en cada llamada:

Otros errores de desarrollo son KEYM_E_INIT_FAILED y KEYM_E_CONFIG_FAILURE [SWS_KeyM_00036]. Si la clase de almacenamiento de un certificado es KEYM_STORAGE_IN_CSM o KEYM_STORAGE_IN_NVM, KeyM notifica KEYM_E_CONFIG_FAILURE; sin modo de desarrollo devuelve E_NOT_OK [SWS_KeyM_00166]. Interpretación: esto afecta probablemente a la vía de almacenamiento temporal a través de KeyM_SetCertificate(), que según el pasaje del documento está pensada para la RAM (SWS KeyM p. 31). Pregunta Q-4308e537bf1d9e0b (abierta)

Los errores de tiempo de ejecución ocurren en tres niveles:

  • Los retornos síncronos utilizan códigos de KeyM como KEYM_E_BUSY, KEYM_E_PENDING, KEYM_E_KEY_CERT_SIZE_MISMATCH o KEYM_E_PARAMETER_MISMATCH [SWS_KeyM_00040]. Las órdenes de verificación rechazan ya en la aceptación las posiciones de certificado vacías (KEYM_E_KEY_CERT_EMPTY) y los certificados superiores no válidos (KEYM_E_CERT_INVALID_CHAIN_OF_TRUST) ([SWS_KeyM_00060], SWS KeyM p. 68).
  • Los servicios asíncronos de claves y certificados notifican su resultado como KeyM_ResultType, como por ejemplo KEYM_RT_KEY_CERT_WRITE_FAIL o KEYM_RT_CERT_INVALID_CHAIN_OF_TRUST [SWS_KeyM_91008].
  • Los resultados de verificación contienen estados de error como errores de período de validez, de firma o de cadena de confianza [SWS_KeyM_91003]. Una verificación de cadena fallida se notifica adicionalmente como evento de seguridad KEYM_SEV_CERT_VERIF_FAILED [SWS_KeyM_00172].

Más evidencia detallada

Guía de módulo generada por IA sobre la base de los extractos de especificación incluidos en el payload relativos a KeyM (Classic Platform, R20-11). Tienen carácter normativo los requirements citados; los pasajes de documentos de otros releases sirven para fines explicativos y se identifican como tales. Las interpretaciones están marcadas en el texto.

Key Manager (KeyM)

Manages lifecycle, storage, and distribution of cryptographic keys and certificates.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función KeyM_Init [SWS_KeyM_00043] 📄 PDF

void KeyM_Init (const KeyM_ConfigType* ConfigPtr);

This function initializes the key management module.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 78b24878ea4f Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_Init sirve para inicializar el módulo de gestión de claves ([SWS_KeyM_00043]). La llamada se realiza de forma síncrona y está definida como no reentrante ([SWS_KeyM_00043]). Como único parámetro de entrada se espera ConfigPtr, que representa un puntero al conjunto de datos de configuración para VARIANT-POST-BUILD; la función no posee valor de retorno ([SWS_KeyM_00043]).

En lo que respecta a la interacción con otras funciones del módulo, KeyM_Init constituye una precondición obligatoria: si la detección de desarrollo está activada, todas las demás funciones del Key Manager comprueban si el módulo se ha inicializado previamente mediante KeyM_Init y aún no se ha desinicializado mediante KeyM_Deinit ([SWS_KeyM_00144]). Si se llama a una función del módulo en estado no inicializado, el Key Manager notifica el error de desarrollo KEYM_E_UNINIT ([SWS_KeyM_00144]).

Dado que KeyM_Init está especificada como no reentrante ([SWS_KeyM_00043]), la función solo debe ejecutarse una vez en la fase de inicialización del sistema y excluyendo llamadas concurrentes. Tras una ejecución correcta, el módulo está disponible a través del archivo de cabecera KeyM.h ([SWS_KeyM_00043]).

Esta nota de uso se generó de forma automatizada sobre la base del contenido de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función KeyM_Deinit [SWS_KeyM_00047] 📄 PDF

void KeyM_Deinit (void);

This function resets the key management module to the uninitialized state.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 89101654eb5c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_Deinit sirve para restablecer el módulo Key Manager al estado no inicializado ([SWS_KeyM_00047]).

Uso y contexto de llamada

La llamada a KeyM_Deinit se realiza de forma síncrona y está especificada como no reentrante (Non Reentrant). La función posee el Service-ID 0x02, no acepta parámetros y no devuelve ningún valor ([SWS_KeyM_00047]).

Concurrencia e interacción

Debido a la no reentrancia, KeyM_Deinit no debe llamarse de forma concurrente consigo misma ni en conflicto con operaciones en curso. Tras la ejecución de esta desinicialización, el módulo se encuentra en estado no inicializado. Si los errores de desarrollo están habilitados, el Key Manager comprueba en cada llamada de función posterior si el módulo fue inicializado previamente mediante KeyM_Init() y aún no ha sido desinicializado mediante KeyM_Deinit(); de lo contrario, se notifica el error de desarrollo KEYM_E_UNINIT ([SWS_KeyM_00144]).

Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d4c5fbe95642 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona KeyM_Start sirve para habilitar operaciones para la actualización de claves en el Key Manager ([SWS_KeyM_00050]). Es opcional y solo está disponible si el parámetro de configuración KeyMCryptoKeyStartFinalizeFunctionEnabled está configurado en true (AUTOSAR_SWS_KeyManager p. 35). La función se proporciona a través de KeyM.h y espera a través de StartType el modo de funcionamiento a ejecutar, así como a través de Request Data y Request Data Length datos de solicitud adicionales, tales como una firma.

Los datos de respuesta se devuelven a través del búfer de salida Response Data. El parámetro Response Data Length actúa en este caso como parámetro de entrada y salida: antes de la llamada define el número máximo de bytes disponibles en el búfer, tras la ejecución contiene la longitud de datos realmente escrita ([SWS_KeyM_00050]).

Tratamiento de errores y valores de retorno:

  • E_OK: operación de inicio ejecutada correctamente; ahora se permiten actualizaciones de clave.
  • E_NOT_OK: operación de inicio no aceptada.
  • KEYM_E_PARAMETER_MISMATCH: los parámetros transferidos no coinciden con los valores esperados.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: un tamaño de parámetro transferido no coincide con el tamaño esperado.

La función está especificada como no reentrante (Non Reentrant) ([SWS_KeyM_00050]). Dado que no se describen bloqueos internos del módulo, el llamador presumiblemente deba garantizar una ejecución coordinada y serializada. Pregunta Q-82276b712a8dd170 (abierta)

Este texto se generó automáticamente basándose en AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c5d2cf507992 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona KeyM_Prepare sirve para preparar una actualización de clave (Key Update Operation) y transmite la información necesaria al servidor de claves o inicia la negociación de un secreto compartido para la derivación de claves [SWS_KeyM_00051]. La función posee el ID de servicio 0x05, está declarada a través de la cabecera KeyM.h y se encuentra disponible exclusivamente si el parámetro de configuración Key MCrypto Key Prepare Function Enabled está establecido en TRUE [SWS_KeyM_00051].

En la llamada se deben transferir los siguientes búferes e indicaciones de longitud [SWS_KeyM_00051]:

  • Request Data y Request Data Length: datos de entrada y su longitud para la solicitud [SWS_KeyM_00051].
  • Response Data: puntero al búfer para recibir los datos de salida [SWS_KeyM_00051].
  • Response Data Length: parámetro de entrada/salida que antes de la llamada indica el tamaño máximo de búfer disponible y al retornar contiene el número de bytes realmente escrito [SWS_KeyM_00051].

Si la llamada se confirma con E_OK, el servicio ha sido aceptado y se procesa internamente; los resultados finales se proporcionan a continuación a través de una retrollamada [SWS_KeyM_00051]. Si la aceptación falla, la función devuelve E_NOT_OK en caso de errores internos, KEYM_E_PARAMETER_MISMATCH en caso de valores de parámetro discrepantes o KEYM_E_KEY_CERT_SIZE_MISMATCH en caso de especificaciones de tamaño inadecuadas [SWS_KeyM_00051].

Dado que KeyM_Prepare está especificada como no reentrante (Non Reentrant), no deben producirse llamadas simultáneas o anidadas [SWS_KeyM_00051].

Este texto se generó automáticamente a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función 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_

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 649979499281 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_Finalize finaliza procesos de actualización de claves y devuelve la operación de clave al estado de reposo (modo inactivo) [SWS_KeyM_00053]. Se utiliza típicamente junto con una operación KeyM_Start previa. Tras la llamada, el módulo no acepta más operaciones de preparación o actualización (Prepare/Update) hasta que se inicie una nueva secuencia mediante KeyM_Start [SWS_KeyM_00053]. Además, el material de clave actualizado se persiste y se pasa al estado válido mediante la llamada de Csm_KeySetValid [SWS_KeyM_00053].

Uso y concurrencia: KeyM_Finalize es no reentrante (Non Reentrant) y opera de forma asíncrona [SWS_KeyM_00053]. Interpretación: ante la falta de reentrancia, la llamada debería realizarse típicamente en contexto de tarea. Pregunta Q-895ebec2d0d2e635 (abierta) La interfaz solo está disponible si el parámetro de configuración KeyMCryptoKeyStartFinalizeFunctionEnabled está establecido en TRUE, y está declarada a través de KeyM.h [SWS_KeyM_00053].

Parámetros y valores de retorno: mediante RequestDataPtr y RequestDataLength se transmiten datos específicos de la solicitud. Los datos de respuesta se proporcionan a través de ResponseDataPtr; ResponseMaxDataLength sirve como tamaño de búfer a la entrada y, en caso de retorno síncrono, proporciona el número real de bytes [SWS_KeyM_00053]. Si la operación se acepta y se procesa internamente, la función devuelve E_OK (los resultados siguen de forma asíncrona mediante retrollamada) y ResponseMaxDataLength permanece inalterado [SWS_KeyM_00053].

Tratamiento de errores: en caso de error, KeyM_Finalize señala el fallo a través de valores de retorno específicos [SWS_KeyM_00053]:

  • E_NOT_OK: operación no aceptada debido a un error interno.
  • KEYM_E_BUSY: KeyM está ocupado con otros trabajos; la validación aún no se puede realizar.
  • KEYM_E_PARAMETER_MISMATCH: los parámetros no coinciden con el valor esperado.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: el tamaño del parámetro no coincide.

Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I2)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8ea4bc8334de Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona KeyM_SetCertificate transfiere datos de certificado al módulo de gestión de claves para almacenar temporalmente un certificado [SWS_KeyM_00057]. Espera como parámetros de entrada el identificador del certificado CertId (tipo KeyM_CertificateIdType), así como el puntero CertificateDataPtr (tipo const KeyM_CertDataType*) que apunta a la estructura de certificado que se debe proporcionar [SWS_KeyM_00057]. La interfaz se declara a través de la cabecera KeyM.h y posee el ID de servicio 0x0a [SWS_KeyM_00057].

Valores de retorno y tratamiento de errores

El valor de retorno de tipo Std_ReturnType proporciona información sobre la aceptación de los datos [SWS_KeyM_00057]:

  • E_OK: El certificado se aceptó con éxito [SWS_KeyM_00057].
  • E_NOT_OK: No se pudo establecer el certificado [SWS_KeyM_00057].
  • KEYM_E_PARAMETER_MISMATCH: los parámetros transferidos no coinciden con los valores esperados [SWS_KeyM_00057].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: el tamaño de los datos de certificado transferidos difiere del tamaño esperado [SWS_KeyM_00057].

Concurrencia y restricciones

La función está clasificada como no reentrante (Non Reentrant) [SWS_KeyM_00057]. Por lo tanto, las llamadas concurrentes deben sincronizarse o excluirse por parte del llamador. Dado que la especificación prevé explícitamente un almacenamiento temporal, los datos de certificado transferidos probablemente permanezcan al principio en la memoria volátil del módulo antes de que se produzca un almacenamiento permanente o una verificación. Pregunta Q-c35c4b02344d5bc9 (abierta)

Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I2)

función KeyM_GetCertificate [SWS_KeyM_00058] 📄 PDF

Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);

This function provides the certificate data

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 003468512a7b Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función síncrona KeyM_GetCertificate sirve para proporcionar los datos de certificado para un identificador de certificado especificado [SWS_KeyM_00058]. El llamador pasa mediante el parámetro CertId el identificador del certificado deseado, así como mediante el parámetro inout CertificateDataPtr un puntero a la estructura de datos de certificado. El llamador es responsable de proporcionar el búfer al que apunta el puntero en la estructura [SWS_KeyM_00058]. Antes de la llamada, debe especificarse en la estructura la longitud máxima de este búfer; en caso de retorno correcto (E_OK), el campo de longitud contiene la longitud real de los datos de certificado proporcionados [SWS_KeyM_00058].

Manejo de errores

La función señala el éxito o errores específicos mediante el valor de retorno de tipo Std_ReturnType [SWS_KeyM_00058]:

  • E_OK: Los datos de certificado están disponibles y se transfirieron correctamente.
  • KEYM_E_PARAMETER_MISMATCH: El ID de certificado pasado (CertId) no es válido.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: El búfer proporcionado es demasiado pequeño para el certificado.
  • KEYM_E_KEY_CERT_EMPTY: No hay datos de certificado disponibles porque la ranura de certificado está vacía.
  • KEYM_E_KEY_CERT_READ_FAIL: El certificado no se puede proporcionar porque se denegó el acceso.
  • E_NOT_OK: La operación no se aceptó debido a un error interno.

Concurrencia y restricciones

La función está especificada como no reentrante (Non Reentrant) y está disponible a través del archivo de cabecera KeyM.h [SWS_KeyM_00058]. Por lo tanto, los llamadores deben asegurarse de sincronizar entre sí las llamadas paralelas a la función.

Este texto ha sido generado por una IA y sirve como guía orientativa. El documento vinculante es la especificación oficial de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4588a9e6ec06 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_VerifyCertificates sirve para la comprobación asíncrona mutua de dos certificados almacenados y analizados sintácticamente de forma interna conforme a [SWS_KeyM_00059]. En este proceso se valida si el certificado subordinado referenciado mediante CertId ha sido firmado por el certificado superior referenciado con CertUpperId.

Dado que el servicio está definido como no reentrante (Non Reentrant), no debe llamarse de forma concurrente para operaciones solapadas [SWS_KeyM_00059]. La ejecución se realiza de forma asíncrona en segundo plano: un valor de retorno de E_OK solo señala la aceptación correcta de la solicitud de verificación. El resultado real de la verificación se comunica al llamante a través de la función de callback configurada KeyMCertificateVerifyCallbackNotificationFunc, siempre que esta esté válidamente configurada [SWS_KeyM_00153].

Si la solicitud no es aceptada, la función proporciona valores de retorno específicos para el tratamiento de errores [SWS_KeyM_00059]:

  • KEYM_E_BUSY: El Key Manager está ocupado con otras tareas; la validación aún no puede iniciarse en este momento.
  • KEYM_E_PARAMETER_MISMATCH: Al menos un ID de certificado transferido no es válido.
  • KEYM_E_KEY_CERT_EMPTY: Una de las ranuras de certificado referenciadas está vacía.
  • KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: El certificado superior (CertUpperId) no es válido.
  • E_NOT_OK: La solicitud fue rechazada debido a un error interno.

Este texto ha sido generado por una IA y sirve para la orientación técnica basándose en la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función KeyM_VerifyCertificate [SWS_KeyM_00060] 📄 PDF

Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);

Service KeyM_VerifyCertificate.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9583f968fa04 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_VerifyCertificate sirve para la verificación asíncrona de un certificado que se proporcionó previamente mediante KeyM_SetCertificate() [SWS_KeyM_00060]. La comprobación se realiza mediante el identificador de certificado transferido CertId frente a certificados de otros ID de certificado ya depositados en el Key Manager [SWS_KeyM_00060]. La declaración está disponible a través del archivo de cabecera KeyM.h [SWS_KeyM_00060].

Semántica de llamada y valores de retorno

Un valor de retorno de E_OK confirma que la solicitud de verificación se aceptó correctamente y que la operación se ejecuta en segundo plano [SWS_KeyM_00060]. Si la solicitud no se puede aceptar, la notificación se realiza de forma síncrona mediante códigos de error específicos [SWS_KeyM_00060]:

  • E_NOT_OK: La operación se rechazó debido a un error interno [SWS_KeyM_00060].
  • KEYM_E_BUSY: El módulo KeyM está ocupado actualmente con otras tareas, de modo que la validación aún no se puede ejecutar [SWS_KeyM_00060].
  • KEYM_E_PARAMETER_MISMATCH: El CertId transferido no es válido [SWS_KeyM_00060].
  • KEYM_E_KEY_CERT_EMPTY: Al menos una de las ranuras de certificado requeridas está vacía [SWS_KeyM_00060].
  • KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: Un certificado superior en la cadena de confianza no es válido [SWS_KeyM_00060].

Concurrencia y asincronía

Dado que KeyM_VerifyCertificate está especificada como no reentrante (Non Reentrant), el llamador debe asegurarse de que no se produzcan llamadas simultáneas ni que causen interrupciones [SWS_KeyM_00060]. Tras la aceptación correcta de la solicitud de comprobación (retorno E_OK), el resultado de la operación en segundo plano se transmite a la función de callback configurada KeyMCertificateVerifyCallbackNotificationFunc, siempre que esta cuente con un nombre de función válido [SWS_KeyM_00153].

Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función KeyM_VerifyCertificateChain [SWS_KeyM_00061] 📄 PDF

Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);

Service KeyM_VerifyCertificateChain.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 054cb2b2b599 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_VerifyCertificateChain sirve para la verificación asíncrona de un certificado frente a una cadena de certificados transferidos [SWS_KeyM_00061]. Como parámetros se transfieren el identificador del último certificado de la cadena (CertId), un puntero a la matriz de certificados ordenada según el orden de la PKI (certChainData) y la cantidad de certificados (NumberOfCertificates) [SWS_KeyM_00061]. Antes de la llamada, el certificado que se va a comprobar debe haberse registrado a través de KeyM_SetCertificate(), y el certificado raíz debe estar incluido en la lista o ya asignado a uno de los otros certificados [SWS_KeyM_00061].

La función no es reentrante (Non Reentrant) y se pone a disposición a través del archivo de cabecera KeyM.h [SWS_KeyM_00061]. Los siguientes valores de retorno síncronos indican el estado de aceptación de la solicitud [SWS_KeyM_00061]:

  • E_OK: La solicitud de verificación ha sido aceptada y se ejecutará en segundo plano [SWS_KeyM_00061].
  • E_NOT_OK: La solicitud fue rechazada debido a un error interno [SWS_KeyM_00061].
  • KEYM_E_BUSY: El módulo está ocupado con otras solicitudes; la validación aún no puede ejecutarse [SWS_KeyM_00061].
  • KEYM_E_PARAMETER_MISMATCH: El ID de certificado transferido no es válido [SWS_KeyM_00061].
  • KEYM_E_KEY_CERT_EMPTY: Una de las ranuras de certificado requeridas está vacía [SWS_KeyM_00061].
  • KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: Un certificado superior en la cadena de confianza no es válido [SWS_KeyM_00061].

Si la solicitud se aceptó con E_OK, la evaluación tiene lugar en segundo plano. Siempre que KeyMCertificateVerifyCallbackNotificationFunc esté configurada con una función válida, KeyM devuelve el resultado final de la operación de verificación a la aplicación llamante a través de esta función de callback [SWS_KeyM_00061] [SWS_KeyM_00153].

Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función KeyM_CertElementGet [SWS_KeyM_00063] 📄 PDF

Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGet.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 3439aa33f4f2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función síncrona KeyM_CertElementGet sirve para leer los datos de un elemento de certificado específico desde una ranura de certificado en un búfer proporcionado por el llamador [SWS_KeyM_00063]. Se utiliza cuando al identificador de objeto (OID) depositado en la configuración del certificado le corresponde exactamente un único elemento [SWS_KeyM_00063].

El llamador transfiere el identificador de certificado CertId, el identificador de elemento CertElementId, así como un puntero al búfer de destino CertElementData [SWS_KeyM_00063]. El parámetro CertElementDataLength sirve como valor combinado de entrada y salida: antes de la llamada, debe contener el tamaño máximo del búfer. En caso de éxito (E_OK), se sobrescribe con la longitud real de los datos escritos; en caso de error, la función restablece a cero el valor referenciado [SWS_KeyM_00063].

Tratamiento de errores y valores de retorno

La función notifica el estado de ejecución mediante los siguientes valores de retorno [SWS_KeyM_00063]:

  • E_OK: El elemento se encontró y se copió correctamente en el búfer [SWS_KeyM_00063].
  • E_NOT_OK: No se encontraron los datos del elemento [SWS_KeyM_00063].
  • KEYM_E_PARAMETER_MISMATCH: CertId o CertElementId no válidos [SWS_KeyM_00063].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: El búfer proporcionado es demasiado pequeño para los datos del elemento [SWS_KeyM_00063].
  • KEYM_E_KEY_CERT_EMPTY: No existen datos para la ranura especificada; la ranura está vacía [SWS_KeyM_00063].
  • KEYM_E_KEY_CERT_INVALID: El certificado no es válido o aún no se ha verificado [SWS_KeyM_00063].

concurrencia

La función está especificada como no reentrante (Non Reentrant) [SWS_KeyM_00063]. Por tanto, en caso de llamadas concurrentes desde diferentes tareas o contextos, es probable que se requiera una sincronización por parte del llamador. Pregunta Q-238a3e53ce0e3a45 (abierta)

Este texto fue generado por una IA. Todas las indicaciones se basan exclusivamente en el estándar AUTOSAR Release R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0bd2bb3fcbc8 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona KeyM_CertificateElementGetByIndex sirve para la lectura selectiva de datos de un elemento de certificado mediante un índice basado en cero (0..N), cuando existen varias entradas para un tipo de elemento [SWS_KeyM_91014]. Representa, por tanto, una alternativa de acceso directo a la iteración secuencial.

Uso y parámetros

El llamador transfiere el identificador de certificado CertId, el identificador de elemento CertElementId así como el Index deseado [SWS_KeyM_91014]. Además, el llamador debe asignar la memoria para CertElementDataPtr y transferir a través de CertElementDataLengthPtr el tamaño máximo de búfer disponible. En caso de retorno correcto, CertElementDataLengthPtr se sobrescribe con la longitud real de los datos copiados [SWS_KeyM_91014].

Valores de retorno y tratamiento de errores

La función señala el resultado mediante valores de retorno Std_ReturnType específicos [SWS_KeyM_91014]:

  • E_OK: el elemento se encontró y se copió correctamente en el búfer de destino.
  • KEYM_E_PARAMETER_MISMATCH: CertId no válido, CertElementId no válido o el Index pasado está fuera del rango válido.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: el búfer provisto es demasiado pequeño para el elemento de certificado.
  • KEYM_E_KEY_CERT_EMPTY: el certificado indicado no contiene datos o está vacío.
  • KEYM_E_CERT_INVALID: el certificado no es válido o la verificación no fue correcta.
  • E_NOT_OK: la lectura de los datos del elemento ha fallado.

concurrencia

Según la especificación, el servicio está clasificado como no reentrante (Non Reentrant) [SWS_KeyM_91014]. Por lo tanto, las llamadas no deben ejecutarse de forma concurrente sin protección.

Esta nota de uso fue generada automáticamente por un asistente de IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5fb0d0d4736f Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La interfaz síncrona KeyM_CertificateElementGetCount determina la cantidad total de elementos de datos almacenados para un elemento de certificado específico y escribe el resultado en el búfer CountPtr [SWS_KeyM_91015].

Uso y parámetros

La función se declara a través de la cabecera KeyM.h y posee el Service-ID 0x1c [SWS_KeyM_91015]. Procesa los siguientes parámetros:

  • CertId (IN): identificador unívoco del certificado a consultar ([SWS_KeyM_91015]).
  • CertElementId (IN): determina el elemento concreto dentro del certificado ([SWS_KeyM_91015]).
  • CountPtr (OUT): puntero al búfer de tipo uint16, en el cual se copia la cantidad de elementos de datos disponibles ([SWS_KeyM_91015]).

Tratamiento de errores y valores de retorno

El valor de retorno de tipo Std_ReturnType informa sobre el resultado de la ejecución [SWS_KeyM_91015]:

  • E_OK: el valor de recuento se escribió correctamente en el búfer ([SWS_KeyM_91015]).
  • E_NOT_OK: no se pudo proporcionar el valor de recuento ([SWS_KeyM_91015]).
  • KEYM_E_PARAMETER_MISMATCH: el ID de certificado (CertId) o el ID de elemento (CertElementId) no es válido o está fuera del rango permitido ([SWS_KeyM_91015]).

Concurrencia e interacción

La ejecución es síncrona, pero está clasificada como no reentrante (Non Reentrant), por lo que las llamadas simultáneas deben coordinarse [SWS_KeyM_91015]. Mientras que a los elementos de certificado se les asigna típicamente solo un único elemento de datos, en determinados casos pueden existir varios elementos de datos consecutivos [SWS_KeyM_91015]. El total determinado sirve de base para leer a continuación los elementos individuales de manera selectiva a través de KeyM_CertificateElementGetByIndex(), lo que se asemeja funcionalmente al enfoque iterativo con KeyM_CertElementGetFirst y KeyM_CertElementGetNext [SWS_KeyM_91015].

Esta nota de uso se basa en la especificación AUTOSAR SWS_KeyM_91015.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ed15c818bd7a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona KeyM_CertElementGetFirst sirve, según [SWS_KeyM_00064], para iniciar la extracción iterativa de datos de certificado. Lee el elemento superior del elemento de certificado direccionado mediante CertElementId a partir del certificado CertId e inicializa la estructura de iterador CertElementIterator para llamadas posteriores de KeyM_CertElementGetNext().

Al realizar la llamada, deben tenerse en cuenta los siguientes requisitos de parámetros y memoria según [SWS_KeyM_00064]:

  • CertElementIterator: Puntero a una estructura asignada y gestionada por el llamador; la aplicación no debe destruirla ni modificarla mientras no se hayan recuperado todos los datos mediante KeyM_CertElementGetNext().
  • CertElementData: Puntero a un búfer de salida proporcionado por el llamador en el que se copian los datos útiles si se localizan con éxito (E_OK).
  • CertElementDataLength: Transfiere como entrada la longitud máxima del búfer de datos y se sobrescribe con la longitud de datos realmente escrita al retornar E_OK.

En lo relativo a la concurrencia, según [SWS_KeyM_00064] el servicio es reentrante, pero referido exactamente a un iterador («Reentrant for one iterator»).

En caso de error, la función diferencia mediante valores de retorno específicos según [SWS_KeyM_00064]: E_NOT_OK indica que no se encontraron datos del elemento (tras lo cual el iterador no debe utilizarse para más llamadas). KEYM_E_PARAMETER_MISMATCH señala un ID de certificado o de elemento no válido, KEYM_E_KEY_CERT_SIZE_MISMATCH un búfer de datos demasiado pequeño, KEYM_E_KEY_CERT_EMPTY un certificado vacío sin datos disponibles y KEYM_E_CERT_INVALID un certificado no válido o no verificado con éxito.

Esta nota de uso se generó automáticamente a partir de datos de especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

función KeyM_CertElementGetNext [SWS_KeyM_00065] 📄 PDF

Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetNext.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d7d77461fd1d Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona KeyM_CertElementGetNext (Service-ID 0x11, proporcionada a través de KeyM.h) sirve para la lectura continua de datos adicionales de un elemento de certificado si en él se han almacenado varios registros de forma secuencial [SWS_KeyM_00065]. Como condición obligatoria de llamada, la especificación exige que previamente se haya llamado al menos una vez a la función KeyM_CertElementGetFirst() [SWS_KeyM_00065].

Las áreas de memoria para todos los parámetros deben ser proporcionadas por la aplicación llamadora [SWS_KeyM_00065]:

  • CertElementIterator: Puntero a una estructura de iterador asignada que la aplicación no debe modificar ni destruir durante el recorrido hasta que todos los elementos se hayan leído por completo [SWS_KeyM_00065].
  • CertElementData: Puntero al búfer de salida en el que la función copia los datos útiles en caso de ejecución correcta [SWS_KeyM_00065].
  • CertElementDataLength: Transfiere al llamar la capacidad máxima del búfer de datos y se sobrescribe con la longitud real de los datos copiados en caso de retorno correcto [SWS_KeyM_00065].

Si la llamada devuelve E_OK, se encontró el siguiente elemento, se escribió en el búfer y el iterador avanzó en consecuencia [SWS_KeyM_00065]. Con E_NOT_OK no se pudieron encontrar más datos del elemento; en este caso, el iterador ya no debe utilizarse para ninguna llamada posterior [SWS_KeyM_00065]. Las situaciones de error se notifican mediante valores de retorno específicos: KEYM_E_KEY_CERT_SIZE_MISMATCH indica un búfer de datos dimensionado demasiado pequeño, KEYM_E_PARAMETER_MISMATCH un ID de certificado o de elemento no válido, KEYM_E_KEY_CERT_EMPTY un certificado vacío y KEYM_E_CERT_INVALID un certificado no válido o no verificado con éxito [SWS_KeyM_00065].

En cuanto a la concurrencia, la función síncrona está especificada como reentrante para un iterador en cada caso [SWS_KeyM_00065].

Esta nota de uso se ha creado de forma automatizada sobre la base de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7bee69d9d0c9 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona KeyM_CertGetStatus sirve para consultar el estado de un certificado y proporcionarlo a través de un parámetro de salida [SWS_KeyM_00066]. La declaración de la función es accesible a través del archivo de cabecera KeyM.h, y al servicio se le asigna el Service-ID hexadecimal 0x12 [SWS_KeyM_00066].

Para la llamada se utilizan los siguientes parámetros [SWS_KeyM_00066]:

  • CertId (IN): Contiene el identificador del certificado que se va a consultar y se transfiere con el tipo de datos KeyM_CertificateIdType [SWS_KeyM_00066].
  • Status (OUT): Puntero al área de memoria de tipo KeyM_CertificateStatusType en la que la función escribe el estado determinado del certificado [SWS_KeyM_00066].

El valor de retorno de tipo Std_ReturnType informa sobre el resultado de la consulta de estado [SWS_KeyM_00066]:

  • E_OK: El estado del certificado se determinó y proporcionó correctamente [SWS_KeyM_00066].
  • E_NOT_OK: Actualmente no es posible proporcionar el estado [SWS_KeyM_00066]. Esto ocurre, por ejemplo, si se transfiere un ID de certificado no válido, documentado con el código de error KEYM_E_PARAMETER_MISMATCH [SWS_KeyM_00066].

En lo que respecta a la ejecución y la concurrencia, la interfaz se comporta de forma puramente síncrona y está especificada como no reentrante (Non Reentrant) [SWS_KeyM_00066]. Por tanto, no se permiten llamadas simultáneas a través de múltiples contextos de ejecución. No se prevén parámetros de entrada y salida adicionales para esta interfaz [SWS_KeyM_00066].

Esta nota de uso ha sido generada por una IA sobre la base de la especificación.

Guía del implementador pendiente (complejidad I2)

función KeyM_MainFunction [SWS_KeyM_00074] 📄 PDF

void KeyM_MainFunction (void);

Function is called periodically according the specified time interval.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8bdc3a04c6a9 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función KeyM_MainFunction sirve como función principal periódica para el módulo AUTOSAR Classic KeyM [SWS_KeyM_00074]. Según la especificación, la función dispone del Service-ID 0x19 en representación hexadecimal, así como de la signatura void KeyM_MainFunction (void) [SWS_KeyM_00074]. De este modo, las entidades llamantes no transfieren parámetros de entrada ni reciben ningún valor de retorno [SWS_KeyM_00074].

Para el control temporal, se establece que la función debe llamarse periódicamente según un intervalo de tiempo definido [SWS_KeyM_00074]. Como archivo de interfaz está declarado el archivo de cabecera SchM_KeyM.h [SWS_KeyM_00074]. De ello se deriva la interpretación: al proporcionarse a través de SchM_KeyM.h, es probable que la llamada regular a la función tenga lugar en el contexto del planificador de Basic Software (SchM) [SWS_KeyM_00074]. Pregunta Q-761ff71812bda3c2 (abierta) Además, la activación cíclica sirve presumiblemente para el procesamiento interno de secuencias dependientes del tiempo en el módulo KeyM.

En cuanto al tratamiento y comportamiento ante errores, en el elemento de especificación no se documentan códigos de retorno, constantes de error ni notificaciones a DET o DEM para este servicio [SWS_KeyM_00074]. Como no existen parámetros de entrada, tampoco se requiere una verificación de los valores de transferencia en el momento de la llamada [SWS_KeyM_00074].

Esta nota de uso fue generada automáticamente por un sistema de IA sobre la base de la especificación para AUTOSAR Release R20-11.

función 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().

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bb4be10aec7d Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función KeyM_MainBackgroundFunction posee la signatura void KeyM_MainBackgroundFunction(void) y está especificada bajo el Service-ID 0x1a [SWS_KeyM_00075]. No acepta parámetros de transferencia y no devuelve ningún valor de retorno al llamante [SWS_KeyM_00075]. Para su integración, la interfaz se declara y se proporciona a través del archivo de cabecera SchM_KeyM.h [SWS_KeyM_00075].

La llamada la realiza un sistema operativo apropiativo en segundo plano en cuanto no haya pendiente ninguna otra operación de tarea para su procesamiento [SWS_KeyM_00075]. El propósito principal de esta función es la provisión de un contexto de fondo no crítico para operaciones síncronas de larga duración del módulo KeyM, tal como se describe a modo de ejemplo para la ejecución de KeyM_KH_Update() [SWS_KeyM_00075].

Concurrencia y tratamiento de errores

Dado que la función se ejecuta en el contexto de fondo de un sistema operativo apropiativo, debería poder ser interrumpida en cualquier momento por cualquier tarea regular de mayor prioridad. Pregunta Q-a2394a51ba63467f (abierta) Para este servicio de segundo plano, el estándar no especifica códigos de error específicos ni notificaciones al DET o DEM [SWS_KeyM_00075]. Además, en el estado de datos dado no se prescriben propiedades de reentrancia particulares ni condiciones fijas de orden respecto a otras funciones del módulo [SWS_KeyM_00075].

Este texto fue elaborado por una IA y se basa exclusivamente en los datos de especificación procedentes del payload.

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5b545d09911d Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función síncrona y no reentrante KeyM_KH_Start se declara a través de la cabecera KeyM_Externals.h [SWS_KeyM_00067]. Si los parámetros de configuración KeyMCryptoKeyStartFinalizeFunctionEnabled y KeyMCryptoKeyHandlerStartFinalizeEnabled están establecidos en TRUE, se ejecuta inmediatamente ante una llamada de KeyM_Start [SWS_KeyM_00067].

Mediante el parámetro StartType se define el modo de ejecución de la operación de clave. Mediante RequestData y RequestDataLength, la función recibe datos adjuntos específicos de la solicitud, como por ejemplo firmas. El llamador transfiere mediante el parámetro de entrada/salida ResponseDataLength la cantidad máxima de bytes disponible en el búfer ResponseData; en caso de éxito, la función notifica a través de él el número real de bytes de respuesta escritos [SWS_KeyM_00067].

Como valor de retorno, la función proporciona un estado de tipo Std_ReturnType [SWS_KeyM_00067]:

  • E_OK: La operación de inicio fue correcta. Solo a través de este valor de retorno el Key Manager cambia al estado activo, de modo que las actualizaciones de clave (Key Updates) posteriores quedan permitidas.
  • E_NOT_OK: La operación de inicio no fue aceptada.
  • KEYM_E_PARAMETER_MISMATCH: Un parámetro pasado no coincide con el valor esperado.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Un tamaño de parámetro especificado no se ajusta al tamaño esperado.

Dado que KeyM_KH_Start se define como no reentrante, las llamadas para operaciones de clave paralelas no deben tener lugar de forma concurrente [SWS_KeyM_00067].

Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c5b0c15ad64e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

La función KeyM_KH_Prepare se declara a través del archivo de cabecera KeyM_Externals.h y sirve para preparar una operación de gestión de claves [SWS_KeyM_00068]. Se inicia inmediatamente al llamar a KeyM_Prepare si los dos parámetros de configuración KeyMCryptoKeyPrepareFunctionEnabled y KeyMCryptoKeyHandlerPrepareEnabled están establecidos respectivamente en TRUE [SWS_KeyM_00068]. La ejecución es síncrona y está especificada como no reentrante [SWS_KeyM_00068].

La transferencia de datos se realiza a través de cuatro parámetros [SWS_KeyM_00068]:

  • RequestData: Datos de entrada transferidos junto con la solicitud [SWS_KeyM_00068].
  • RequestDataLength: Longitud de los datos en el array RequestData [SWS_KeyM_00068].
  • ResponseDataPtr: Puntero al búfer para los datos de respuesta devueltos por la función, los cuales se transmiten sin cambios al llamador de Key_Prepare [SWS_KeyM_00068].
  • ResponseDataLength: Parámetro de entrada y salida; al llamar transfiere el número máximo de bytes disponible en el búfer y, tras el retorno, devuelve la cantidad de bytes realmente escrita [SWS_KeyM_00068].

Valores de retorno y comportamiento ante errores

La función devuelve como resultado el valor de estado Std_ReturnType [SWS_KeyM_00068]:

  • E_OK: El servicio se aceptó y se sigue procesando internamente; los resultados se transmiten a través de un callback [SWS_KeyM_00068].
  • E_NOT_OK: El servicio no se aceptó debido a un error interno [SWS_KeyM_00068].
  • KEYM_E_PARAMETER_MISMATCH: un parámetro no coincide con el valor esperado [SWS_KeyM_00068].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: El tamaño de un parámetro no es adecuado [SWS_KeyM_00068].

Este texto fue generado por una IA. Todas las indicaciones se basan exclusivamente en el estándar AUTOSAR Release R20-11.

Guía del implementador pendiente (complejidad I1)

función 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_

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ce5fb9dc711f Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y delegación

La función KeyM_KH_Finalize se declara a través del archivo de cabecera KeyM_Externals.h y actúa como key handler específico de la aplicación [SWS_KeyM_00070]. Si en la configuración tanto KeyMCryptoKeyStartFinalizeFunctionEnabled como KeyMCryptoKeyHandlerStartFinalizeEnabled están establecidos en TRUE, KeyM_Finalize() no ejecuta ninguna operación por sí misma, sino que delega el procesamiento inmediatamente a esta función handler [SWS_KeyM_00070].

Contexto de llamada y parámetros

La llamada a KeyM_KH_Finalize se produce de forma síncrona, pero está clasificada como no reentrante (Non Reentrant) y requiere un contexto de llamada protegido [SWS_KeyM_00070]. La transferencia de datos se efectúa a través de los siguientes parámetros:

  • RequestData y RequestDataLength: Puntero a los datos de entrada transferidos con la solicitud, así como la longitud del array de datos [SWS_KeyM_00070].
  • ResponseData: Búfer para los datos de salida proporcionados por la función [SWS_KeyM_00070].
  • ResponseDataLength: Parámetro in/out que en la llamada especifica la cantidad máxima de bytes disponible en el búfer de respuesta y, al retornar, contiene el número de bytes realmente escrito [SWS_KeyM_00070].

Valores de retorno y tratamiento de errores

El resultado de la operación se devuelve mediante Std_ReturnType [SWS_KeyM_00070]:

  • E_OK: La operación fue aceptada y se sigue procesando internamente; los resultados se proporcionan a través de un callback [SWS_KeyM_00070]. Interpretación: Aunque la interfaz de la función está definida como síncrona, es probable que la ejecución real continúe en segundo plano. Pregunta Q-02c4aac040570c03 (abierta)
  • E_NOT_OK: La operación no se aceptó debido a un error interno [SWS_KeyM_00070].
  • KEYM_E_BUSY: El Key Manager está ocupado con otras tareas, motivo por el cual actualmente no se puede llevar a cabo la validación [SWS_KeyM_00070].
  • KEYM_E_PARAMETER_MISMATCH: un parámetro no coincide con el valor esperado [SWS_KeyM_00070].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: El tamaño de parámetro transferido no se corresponde con las especificaciones [SWS_KeyM_00070].

Este texto fue generado por una IA y sirve como guía orientativa. El texto vinculante es la especificación AUTOSAR.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 44ee5bfb41de Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de callback KeyM_CryptoKeyUpdateCallbackNotification() notifica a la aplicación que se ha completado una actualización de una clave criptográfica ([SWS_KeyM_00077]). La función se proporciona a través de KeyM_Externals.h, es síncrona y reentrante, y no posee ningún valor de retorno ([SWS_KeyM_00077]).

parámetro

Interacción y gestión de búferes

La llamada a KeyM_CryptoKeyUpdateCallbackNotification() se realiza mediante KeyM_Update() en cuanto el key handler retorna y entrega el tipo de operación KEYM_KH_UPDATE_FINISH ([SWS_KeyM_00093]). En este proceso, los datos de resultado de KeyM_KH_Update::ResultDataPtr se copian en el búfer transferido al llamar a KeyM_Update(), y se asume el valor de retorno del key handler ([SWS_KeyM_00093]).

Siempre que KeyM_Update() haya aceptado el proceso con E_OK, la función llamadora no debe modificar en ningún caso el búfer ResultDataPtr hasta que se haya producido la notificación de callback KeyM_CryptoKeyUpdateCallbackNotification() ([SWS_KeyM_00156]). El mismo puntero de búfer se transfiere en el callback como ResultDataPtr con los resultados de la operación copiados en él ([SWS_KeyM_00156]).

Esta nota de uso se basa en la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función KeyM_CryptoKeyFinalizeCallbackNotification [SWS_KeyM_00079] 📄 PDF

void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

Service KeyM_CryptoKeyFinalizeCallbackNotification.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: abee51010fe8 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función de callback KeyM_CryptoKeyFinalizeCallbackNotification notifica a la aplicación sobre la finalización de una operación de finalización de clave [SWS_KeyM_00079]. Está especificada como síncrona y reentrante, no tiene valor de retorno y se declara a través del archivo de cabecera KeyM_Externals.h [SWS_KeyM_00079].

Al realizar la llamada, la interfaz transfiere los siguientes parámetros a la aplicación [SWS_KeyM_00079]:

  • Result (tipo KeyM_ResultType): Transmite el resultado e información de estado de la operación completada [SWS_KeyM_00079].
  • Result Data Length (tipo uint16): Indica la longitud de los datos resultantes de esta operación [SWS_KeyM_00079].
  • Result Data Ptr (tipo const uint8*): Puntero al búfer con los datos de resultado proporcionado previamente a la función de servicio [SWS_KeyM_00079].

En cuanto a la configuración, la función de callback solo se llama y se requiere si el parámetro de configuración KeyMCryptoKeyStartFinalizeFunctionEnabled está establecido en TRUE [SWS_KeyM_00079]. No hay definidos mensajes de error específicos de DET o DEM para esta función de callback. Presumiblemente, la aplicación implementa este callback para recibir los resultados asíncronos de una finalización de clave iniciada previamente. Pregunta Q-6d9e4e062b008832 (abierta)

Esta nota de uso se generó automáticamente a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 82f7eddfd9b7 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y parámetros

La función de callback KeyM_CryptoKeyVerifyCallbackNotification informa a la aplicación sobre la finalización de una operación de verificación para una clave criptográfica por parte del módulo KeyM [SWS_KeyM_00081]. Interpretación: dado que, según la especificación, el elemento está disponible a través de la cabecera KeyM_Externals.h y sirve para la notificación a la aplicación, es probable que la implementación la realice el componente de software usuario, mientras que la invocación la efectúa el administrador de claves [SWS_KeyM_00081]. Pregunta Q-e88e332a7d2cac40 (abierta)

Para la invocación se definen cuatro parámetros exclusivamente de entrada [SWS_KeyM_00081]:

  • Result (KeyM_ResultType): transfiere el resultado de la verificación finalizada [SWS_KeyM_00081].
  • KeyId (uint32): identifica el identificador de clave para el cual se inició la verificación [SWS_KeyM_00081].
  • ResultDataLength (uint16): contiene la longitud de los datos de resultado resultantes, si existen [SWS_KeyM_00081].
  • ResultDataPtr (const uint8*): apunta a los datos del resultado de verificación [SWS_KeyM_00081].

Concurrencia y restricciones

La función no posee valor de retorno (void) ni parámetros de salida o de entrada/salida [SWS_KeyM_00081]. La invocación se ejecuta de forma síncrona y reentrante [SWS_KeyM_00081]. Para este callback no se especifican códigos de error específicos ni mensajes DET o DEM; la información de estado y de error se transmite exclusivamente a la aplicación a través del parámetro Result [SWS_KeyM_00081].

Este texto ha sido generado por una IA a partir de la especificación.

Guía del implementador pendiente (complejidad I1)

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 936715001565 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función de callback KeyM_ServiceCertificateCallbackNotification es llamada por el submódulo de certificados de KeyM para notificar a la aplicación la finalización de una operación de servicio de certificados [SWS_KeyM_00147]. La operación de certificados previa se ejecuta de forma asíncrona y, al finalizar, ejecuta este callback para transmitir los resultados a la aplicación [SWS_KeyM_00149].

A través de los parámetros de la función se transmiten todos los datos de resultado relevantes [SWS_KeyM_00147]:

  • CertId: Identificador del certificado para el que se inició la operación.
  • Result: Tipo KeyM_ResultType con el estado o resultado de la operación.
  • ResultDataLength: Longitud de los datos de resultado, si existen.
  • ResultDataPtr: Puntero a los datos de resultado.

La función en sí no posee valor de retorno (void) y presenta una semántica de ejecución síncrona [SWS_KeyM_00147].

Configuración y restricciones

El callback se proporciona a través de la cabecera KeyM_Externals.h, pero solo está disponible si el parámetro de configuración KeyMServiceCertificateFunctionEnabled está ajustado a TRUE [SWS_KeyM_00147]. El nombre real de la función de notificación se puede adaptar mediante el parámetro de configuración KeyMServiceCertificateCallbackNotificationFunc [SWS_KeyM_00147].

Concurrencia y tratamiento de errores

Según la especificación, la función está clasificada como reentrante [SWS_KeyM_00147]. Los estados de error o de éxito de la operación asíncrona previa se señalan mediante el parámetro de transferencia Result; en el payload no se definen mensajes de DET o DEM específicos para esta interfaz de callback [SWS_KeyM_00147].

Esta nota de uso fue generada por una IA basándose en la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5eeae15ba9d3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

La función de callback KeyM_CertificateVerifyCallbackNotification sirve para notificar a la aplicación la finalización de una verificación de certificado [SWS_KeyM_00073]. La declaración está disponible a través de la cabecera KeyM_Externals.h, pudiéndose configurar el nombre de la función mediante el parámetro de configuración KeyMCertificateVerifyCallbackNotificationFunc [SWS_KeyM_00073].

En la llamada se transfieren dos parámetros de entrada [SWS_KeyM_00073]:

  • CertId (tipo KeyM_CertificateIdType): Identificador del certificado verificado [SWS_KeyM_00073].
  • Result (tipo KeyM_CertificateStatusType): Contiene información sobre el resultado de la operación de verificación [SWS_KeyM_00073].

La función devuelve como valor de estado de tipo Std_ReturnType el valor E_OK [SWS_KeyM_00073].

Ejecución y tratamiento de errores

La ejecución de la notificación está definida como síncrona y reentrante [SWS_KeyM_00073]. Para este callback no se prevén códigos de error específicos, valores de retorno divergentes ni notificaciones a DET o DEM [SWS_KeyM_00073]. Interpretación: Es probable que la implementación por parte de la aplicación deba diseñarse de forma segura para hilos para procesar llamadas simultáneas para diferentes certificados sin efectos secundarios. Pregunta Q-6bf5313c425fe1a8 (abierta)

Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

tipo 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.

tipo KeyM_KH_UpdateOperationType [SWS_KeyM_00055] 📄 PDF

Specifies the type of key handler update operation that was performed in the callback.

tipo KeyM_CertElementIteratorType [SWS_KeyM_00042] 📄 PDF

This structure is used to iterate through a number of elements of a certificate.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a433f4946dd5 Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

El tipo de datos KeyM_CertElementIteratorType está definido conforme a [SWS_KeyM_00042] como una estructura (Structure) y se pone a disposición a través del archivo de cabecera KeyM.h. Conforme a la especificación, este tipo sirve para iterar sobre una serie de elementos de un certificado ([SWS_KeyM_00042]). Dado que el contenido concreto de la estructura de datos se ha establecido expresamente como específico de la implementación ([SWS_KeyM_00042]), es de suponer que los usuarios consideren el tipo como un estado de iteración opaco y no accedan directamente a campos internos de la estructura. Pregunta Q-81b5deb7dcdf2812 (abierta)

Manejo y restricciones

De la especificación se derivan las siguientes condiciones marco prácticas para el uso:

  • Estructura específica de la implementación: dado que los campos de KeyM_CertElementIteratorType se implementan de forma específica del fabricante ([SWS_KeyM_00042]), la disposición interna de la memoria depende de la respectiva realización del BSW.
  • Gestión del estado: Interpretación: el llamador probablemente deba asignar una instancia de la estructura como contexto de iterador y pasarla a las funciones correspondientes para el recorrido de elementos de certificado, con el fin de realizar el seguimiento del progreso en la verificación o extracción de campos de certificado. Pregunta Q-5ddb438001abe656 (abierta)
  • Concurrencia: presumiblemente, una instancia de iterador no se puede utilizar de forma concurrente sin sincronización externa a través de múltiples tareas si se producen accesos paralelos al mismo certificado. Pregunta Q-6b4b8b1cdc35f021 (abierta)

Este texto ha sido generado por una IA. Se basa exclusivamente en los datos de especificación de AUTOSAR Classic R20-11.

tipo 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.

tipo KeyM_ServiceCertificateType [SWS_KeyM_00039] 📄 PDF

This type specifies the requested service operation and what information is provided with this function.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0eab9427a5bc Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración KeyM_ServiceCertificateType se proporciona a través de la cabecera Rte_KeyM_Type.h y especifica la operación de servicio de certificado solicitada por el Key-Server, así como el tipo de información pasada con la función [SWS_KeyM_00039]. La declaración en el archivo de cabecera RTE debería indicar que el tipo se aplica ante todo en el intercambio de datos entre componentes de software y el módulo Key-Manager. Pregunta Q-37ed693ea3eda646 (abierta)

Para la gestión de certificados se han definido los siguientes códigos de operación estandarizados [SWS_KeyM_00039]:

  • KEYM_SERVICE_CERT_REQUEST_CSR (0x01): El Key-Server solicita al Key-Client que genere un certificado o una solicitud de certificado (CSR) [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_UPDATE_SIGNED_CSR (0x02): El servidor devuelve un certificado recibido previamente y firmado entretanto por la autoridad de certificación (CA) [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_SET_ROOT (0x03) y KEYM_SERVICE_CERT_UPDATE_ROOT (0x04): Creación de un certificado raíz nuevo o actualización de uno existente [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_SET_INTERMEDIATE (0x05) y KEYM_SERVICE_CERT_UPDATE_INTERMEDIATE (0x06): Adición o actualización de un certificado intermedio (certificado CA) [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_UPDATE_CRL (0x07): Suministro o actualización de una lista de revocación de certificados (CRL) [SWS_KeyM_00039].

Como condición previa esencial, KEYM_SERVICE_CERT_SET_INTERMEDIATE exige que antes de establecer un certificado intermedio ya deba estar depositado el certificado raíz correspondiente para garantizar una verificación correcta [SWS_KeyM_00039]. Para extensiones específicas de proyecto, la especificación contempla el rango de valores reservado de 0x80 a 0x9F [SWS_KeyM_00039].

Este texto fue generado por una IA y se basa en la especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I2)

tipo KeyM_CertificateStatusType [SWS_KeyM_91003] 📄 PDF

Type KeyM_CertificateStatusType.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5b48c6da481b Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración KeyM_CertificateStatusType representa el resultado de las comprobaciones de certificados y refleja el estado actual de verificación y procesamiento de un certificado en el Key Manager [SWS_KeyM_91003]. El tipo se proporciona a través del encabezado Rte_KeyM_Type.h y sirve a los llamantes para evaluar de forma diferenciada el estado o causas de error específicas de una verificación de certificados [SWS_KeyM_91003].

Los valores de enumeración cubren tanto estados intermedios y de éxito regulares como patrones de error precisos [SWS_KeyM_91003]:

  • KEYM_CERTIFICATE_VALID (0x00): El certificado se analizó sintácticamente y se verificó con éxito [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_INVALID (0x01): El certificado no es válido debido a un error no especificado [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_NOT_PARSED (0x02): El certificado todavía no se ha analizado sintácticamente [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_PARSED_NOT_VALIDATED (0x03): El certificado se ha analizado sintácticamente, pero todavía no se ha validado [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_NOT_AVAILABLE (0x04): No hay ningún certificado establecido [SWS_KeyM_91003].
  • Resultados de comprobación específicos de error: periodo de validez fallido (KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, 0x05), firma errónea (KEYM_E_CERTIFICATE_SIGNATURE_FAIL, 0x06), cadena de confianza no válida (KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, 0x07), tipo no válido (KEYM_E_CERTIFICATE_INVALID_TYPE, 0x08), formato erróneo (KEYM_E_CERTIFICATE_INVALID_FORMAT, 0x09), contenido no válido (KEYM_E_CERTIFICATE_INVALID_CONTENT, 0x0A), así como revocación o ámbito de validez no válido (KEYM_E_CERTIFICATE_REVOKED, 0x0B) [SWS_KeyM_91003].

Los llamadores deberían comprobar el estado antes de utilizar claves criptográficas; las operaciones normalmente solo deben basarse en un certificado si el estado señala explícitamente KEYM_CERTIFICATE_VALID. Dado que el tipo se declara mediante Rte_KeyM_Type.h, es probable que se utilice principalmente en interfaces de servicio y puertos estandarizados para la interacción entre KeyM y SWC de aplicación. Pregunta Q-f3ca10ee673798df (abierta)

Este texto ha sido generado por una IA. No sustituye el estudio de las especificaciones oficiales de AUTOSAR.

Guía del implementador pendiente (complejidad I2)

tipo KeyM_CertificateElementType [SWS_KeyM_91004] 📄 PDF

Array long enough to store data

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 87fe5a20e3b8 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y estructura

El tipo de datos KeyM_CertificateElementType está especificado como array de bytes con el tipo de elemento uint8 y, según la especificación, sirve como área de memoria suficientemente grande para almacenar datos de un elemento de certificado [SWS_KeyM_91004]. La provisión y declaración del tipo de datos se realiza para el módulo KeyM a través del archivo de cabecera Rte_KeyM_Type.h [SWS_KeyM_91004].

Configuración y formación de variantes

La variante del tipo de datos está sujeta a una variación de nombre y tamaño dependiente de la configuración, que se deriva de los parámetros configurados del módulo [SWS_KeyM_91004]:

  • Patrón de nombres: El nombre de tipo concreto se genera de forma específica para cada elemento según el esquema KeyM_CertificateElementType_{KeyMCertificate}_{KeyMCertificateElement}, donde los marcadores de posición corresponden a los nombres cortos configurados SHORT-NAME de las respectivas instancias de certificado y elemento de certificado [SWS_KeyM_91004].
  • Tamaño del array: La cantidad de elementos uint8 se determina mediante el parámetro de configuración KeyMCertificateElementMaxLength, para que el array ofrezca suficiente espacio de almacenamiento para los datos brutos del elemento respectivo [SWS_KeyM_91004].

Restricciones y suposiciones

Dado que la definición se proporciona en Rte_KeyM_Type.h, es de suponer que el tipo se utilice principalmente como búfer estandarizado en las interfaces hacia componentes de software para el intercambio de contenidos de certificados [SWS_KeyM_91004]. Pregunta Q-994f8ac6772de3c1 (abierta) La longitud máxima de datos procesable permanece fijada estáticamente a la longitud máxima definida en el momento de la configuración [SWS_KeyM_91004].

Esta nota de uso ha sido elaborada por una IA sobre la base de la especificación de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

tipo KeyM_CryptoKeyDataType [SWS_KeyM_91012] 📄 PDF

Byte - pointer to the input or output data

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 72639cfd726c Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y definición de tipo

El tipo de datos KeyM_CryptoKeyDataType está definido como tipo puntero a uint8* y sirve como puntero a bytes para datos de entrada o salida dentro del módulo KeyM [SWS_KeyM_91012]. La definición del tipo se proporciona a través del archivo de cabecera Rte_KeyM_Type.h [SWS_KeyM_91012].

Restricciones y gestión de memoria

Al utilizar KeyM_CryptoKeyDataType como puntero a búferes de bytes deben tenerse en cuenta condiciones de contorno específicas:

  • Interpretación: Dado que el tipo está especificado como un puntero a bytes simple (uint8*) [SWS_KeyM_91012], la asignación, el dimensionamiento y la validez de la memoria referenciada corresponden presumiblemente al invocador respectivo. Pregunta Q-07c167f400cbfb9c (abierta)
  • Interpretación: Al transferirse como búfer de salida, es probable que deba garantizarse que el área de memoria referenciada sea lo suficientemente grande para los datos de clave o criptográficos que se van a recibir, con el fin de evitar desbordamientos de búfer. Pregunta (abierta)
  • Interpretación: Para el acceso concurrente al búfer referenciado, es de prever que el software invocador requiera medidas de sincronización adicionales, ya que el tipo en sí no ofrece ningún mecanismo de sincronización. Pregunta (abierta)

Integración

Los invocadores que transfieren datos de claves criptográficas o certificados a interfaces de KeyM o los reciben de estas incluyen Rte_KeyM_Type.h para obtener acceso a la definición de puntero tipificada de KeyM_CryptoKeyDataType [SWS_KeyM_91012].

Esta nota de uso se ha generado automáticamente y se basa exclusivamente en la especificación de AUTOSAR para el módulo KeyM.

Guía del implementador pendiente (complejidad I1)

tipo KeyM_ResultType [SWS_KeyM_91008] 📄 PDF

Specifies the result type of an asynchronous key management fu nction.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d66fd62bacf9 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

El tipo de enumeración KeyM_ResultType especifica el resultado de funciones asíncronas del módulo KeyM para la gestión de claves y certificados [SWS_KeyM_91008]. El tipo se proporciona a través del archivo de cabecera Rte_KeyM_Type.h y sirve para notificar el desenlace de una orden de trabajo asíncrona solicitada [SWS_KeyM_91008].

El rango de valores comprende códigos de estado y de error estandarizados para una evaluación diferenciada por parte de los llamadores [SWS_KeyM_91008]:

  • KEYM_RT_OK (0x00): la operación de gestión de claves finalizó correctamente [SWS_KeyM_91008].
  • KEYM_RT_NOT_OK (0x01): se produjo un error general durante la operación de gestión de claves [SWS_KeyM_91008].
  • KEYM_RT_KEY_CERT_INVALID (0x02): la clave referenciada o el certificado no es válido y no se puede utilizar para la operación [SWS_KeyM_91008].
  • KEYM_RT_KEY_CERT_WRITE_FAIL (0x03): falló la escritura de la clave o del certificado en la memoria de destino prevista [SWS_KeyM_91008].
  • KEYM_RT_KEY_CERT_UPDATE_FAIL (0x04): error general durante la actualización de una clave o un certificado que no pudo precisarse mediante un código más específico [SWS_KeyM_91008].
  • KEYM_RT_CERT_INVALID_CHAIN_OF_TRUST (0x05): la verificación del certificado falló debido a una cadena de confianza no válida [SWS_KeyM_91008].

Los llamadores de funciones asíncronas de KeyM deben evaluar este tipo de retorno para poder reaccionar de manera específica en caso de error ante cadenas de confianza no válidas, errores de acceso a memoria o material de clave incorrecto [SWS_KeyM_91008].

Este texto fue generado por una IA a partir de la especificación.

Guía del implementador pendiente (complejidad I2)

tipo KeyM_CertDataType [SWS_KeyM_00041] 📄 PDF

This structure is used to exchange certificate data through interface functions.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 87fc94a82c3d Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La estructura KeyM_CertDataType se utiliza en el módulo KeyM para el paso y el intercambio de datos de certificado a través de funciones de interfaz [SWS_KeyM_00041]. La definición del tipo está disponible a través del archivo de cabecera KeyM.h [SWS_KeyM_00041].

La estructura agrupa dos elementos esenciales [SWS_KeyM_00041]:

  • certDataLength: Elemento de tipo uint32 que indica la longitud de los datos de certificado [SWS_KeyM_00041].
  • certData: Elemento de tipo VoidPtr que referencia como puntero directamente a los datos de certificado en un área de datos local de la entidad que realiza la llamada [SWS_KeyM_00041].

Dado que certData apunta a áreas de memoria en el contexto local de la entidad que realiza la llamada [SWS_KeyM_00041], la gestión del búfer incumbe a dicha instancia que realiza la llamada. Interpretación: es de suponer que la entidad que realiza la llamada deba garantizar que la memoria referenciada permanezca válida durante todo el tiempo de ejecución de la función de interfaz respectiva y abarque al menos el número de bytes indicado en certDataLength. Pregunta Q-7da9d5ed0975ddbd (abierta) Además, es de suponer que con una longitud superior a cero deba pasarse un puntero válido distinto de NULL para evitar accesos erróneos a memoria dentro de la función de interfaz.

Esta nota de uso fue creada de forma automatizada sobre la base de la especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad 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#f357bdd2
Content hash
f357bdd2
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_KeyManager.pdf#nameddest=SWS_KeyM_00043

Inicialización y estado

KeyM_Deinit función

This function resets the key management module to the uninitialized state.

void KeyM_Deinit (void);

Provides the version information of this module.

void KeyM_GetVersionInfo (Std_VersionInfoType* VersionInfo);
KeyM_Init función

This function initializes the key management module.

void KeyM_Init (const KeyM_ConfigType* ConfigPtr);

Servicios · Cert…

Service KeyM_CertElementGet.

Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetFirst.

Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetNext.

Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

This function provides the sta tus of a certificate.

Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);

Servicios · Certificate…

Service KeyM_CertificateElementGetByIndex.

Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);

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

Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);

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

Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);

Servicios · Crypto…

Service KeyM_CryptoKeyFinalizeCallbackNotification.

void KeyM_CryptoKeyFinalizeCallbackNotification (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.

void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, 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.

void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);

Servicios · K…

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_

Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, 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.

Std_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);
KeyM_KH_Start función

If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key

Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

Servicios · Verify…

Service KeyM_VerifyCertificate.

Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);

Service KeyM_VerifyCertificateChain.

Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);

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.

Std_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);

Servicios · Otros

KeyM_Finalize función

The function is used to finalize key update operations. It is typi cally used in conjunction with the Key M_

Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);

This function provides the certificate data

Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);

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().

void KeyM_MainBackgroundFunction (void);
KeyM_Prepare función

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.

Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

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.

void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

This function provides the certificate data to the key managem ent module to temporarily store the certificate.

Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);
KeyM_Start función

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.

Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

Cíclico

Function is called periodically according the specified time interval.

void KeyM_MainFunction (void);

Tipos

Byte - pointer to the data of the certificate

This structure is used to exchange certificate data through interface functions.

Certificate Element handle.

This structure is used to iterate through a number of elements of a certificate.

Array long enough to store data

Certificate handle.

Type KeyM_CertificateStatusType.

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.

Byte - pointer to the input or output data

Crypto key handle.

Specifies the type of key handler update operation that was performed in the callback.

Specifies the result type of an asynchronous key management fu nction.

This type specifies the requested service operation and what information is provided with this function.

This type specifies in which mode the key operation will start. The OEM production mode provides higher privileges compared to workshop mode.

Max tipo

Array long enough to store the key or certificate name. base Type Encoding = UTF -