DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

ModulCrypto (Crypto Driver)
BSW-Modul-ID114
Standard-Header#include "Crypto.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoDriver.pdf
ClusterCrypto Services

Guía del móduloGENERADO POR IA

Ofrece primitivas criptográficas y gestión de claves para la pila criptográfica de AUTOSAR Classic cercana al hardware.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 79b1b64c6bf7 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

Ofrece primitivas criptográficas y gestión de claves para la pila criptográfica de AUTOSAR Classic cercana al hardware.

Como módulo MCAL, el Crypto Driver proporciona cálculos criptográficos cercanos al hardware, así como la gestión de claves para la pila criptográfica de AUTOSAR Classic (EXP_UtilizationOfCryptoServices p. 8). Encapsula módulos de seguridad de hardware (HSM) o bibliotecas de software en Driver Objects y procesa trabajos tanto síncronos como asíncronos a través de la interfaz central Crypto_ProcessJob ([SWS_Crypto_91003]). Los accesos a claves están sujetos a derechos configurables, y el almacenamiento permanente en NVM solo se desencadena tras una validación correcta de la clave (SWS_CryptoDriver p. 37).

El Crypto Driver (módulo Crypto) constituye, como controlador MCAL, el fundamento inferior de la pila criptográfica de AUTOSAR Classic y conecta módulos de seguridad de hardware (HSM), aceleradores criptográficos y rutinas de software directamente a la interfaz de criptografía (CryIf) (EXP_UtilizationOfCryptoServices p. 8, SWS_CryptoDriver p. 15). En implementaciones múltiples, las instancias se denominan de manera específica del fabricante siguiendo el esquema Crypto_<vi>_<ai> ([SWS_Crypto_00012]). La inicialización se realiza de forma síncrona mediante [SWS_Crypto_91000] con un puntero nulo obligatorio para [SWS_Crypto_91016] ([SWS_Crypto_00215]). Internamente, el módulo encapsula unidades de cálculo independientes en Crypto Driver Objects, de los cuales cada uno puede ejecutar exactamente un trabajo al mismo tiempo ([SWS_Crypto_00014]), mientras que n objetos permiten cálculos paralelos ([SWS_Crypto_00117]). En este marco, el Driver Object 0 actúa como generador aleatorio central para necesidades internas de todos los demás objetos de controlador de la misma instancia ([SWS_Crypto_00224], [SWS_Crypto_00225]).

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

Diagrama de contexto: integración del Crypto Driver en la pila criptográfica de AUTOSAR con Driver Objects e interfaces hacia NvM y DET. Fuentes: SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Los trabajos criptográficos se procesan mediante [SWS_Crypto_91003] (Crypto_ProcessJob), unificando el streaming y las llamadas globales a través de un campo de bits de modo (START, UPDATE, FINISH) (SWS_CryptoDriver p. 25, [SWS_Crypto_00017]). Los trabajos asíncronos se calculan a través de la función periódica [SWS_Crypto_91012] (Crypto_MainFunction) y, tras su finalización, se notifican a CryIf mediante CRYIF_CallbackNotification ([SWS_Crypto_00027], [SWS_Crypto_00028]). Los trabajos en ejecución se pueden cancelar de forma síncrona mediante [SWS_Crypto_00122] ([SWS_Crypto_00183], [SWS_Crypto_00214]), mientras que las redirecciones directas de búfer hacia elementos de clave reducen las operaciones de copia ([SWS_Crypto_00203], [SWS_Crypto_00221]).

Procesamiento asíncrono de solicitudes a través del Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Comprobar parámetros y handles de claveE_OK (Auftrag angenommen)Crypto_MainFunction()Iniciar el cálculo (START/UPDATE/FINISH)Ejecutar el cálculo criptográficoErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Retorno

Diagrama de secuencia: flujo de procesamiento asíncrono a través de Crypto_ProcessJob, ciclo en Crypto_MainFunction y notificación mediante CRYIF_CallbackNotification. Fuentes: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

La gestión de claves comprende el establecimiento ([SWS_Crypto_91004]), la lectura ([SWS_Crypto_91006]), el copiado ([SWS_Crypto_00155], [SWS_Crypto_91015]), la generación ([SWS_Crypto_91007]) y la derivación ([SWS_Crypto_91008]) de elementos de clave bajo un estricto control de derechos de acceso ([SWS_Crypto_00219], [SWS_Crypto_00220]). Por razones de coherencia, la persistencia en el Non-Volatile RAM Manager (NvM) nunca se desencadena con escrituras individuales, sino exclusivamente durante la validación de claves mediante [SWS_Crypto_91014] (Crypto_KeySetValid) (SWS_CryptoDriver p. 37, [SWS_Crypto_91025]). En entornos multinúcleo, el módulo actúa de forma aislada en cada partición ([SWS_Crypto_CONSTR_00001]), no pudiendo asignarse los objetos HSM a más de una partición ([SWS_Crypto_CONSTR_00003]).

Rol y límites del sistema del Crypto Driver en la pila criptográfica Classic

El Crypto Driver (abreviatura de módulo Crypto) se sitúa en la capa inferior del software básico de AUTOSAR Classic, dentro de la Microcontroller Abstraction Layer (MCAL) (EXP_UtilizationOfCryptoServices p. 8). Se ubica directamente por debajo de la interfaz criptográfica (Crypto Interface, CryIf) y, a través de esta, da servicio al Crypto Service Manager (CSM) (SWS_CryptoDriver p. 15). Su tarea principal consiste en encapsular las unidades de cálculo criptográfico concretas —ya sean módulos de seguridad basados en hardware (Hardware Security Modules, HSM), aceleradores criptográficos dedicados como motores AES o bibliotecas puramente de software (SWS_CryptoDriver p. 15). Además del cálculo propiamente dicho de primitivas criptográficas, su alcance funcional abarca el almacenamiento, la configuración y la gestión de claves criptográficas (SWS_CryptoDriver p. 24).

En una unidad de control pueden coexistir en paralelo varias instancias de controladores de diferentes fabricantes; en este caso, los identificadores de archivo, API y configuración se diferencian de manera inequívoca mediante un infijo específico del fabricante según el esquema Crypto_<vi>_<ai> ([SWS_Crypto_00012]). La inicialización del módulo se efectúa mediante la función [SWS_Crypto_91000] (Crypto_Init). Como particularidad, para el puntero de configuración del tipo [SWS_Crypto_91016] (Crypto_ConfigType) se aplica que este debe pasarse siempre como un puntero nulo ([SWS_Crypto_00215]). La información de versión puede consultarse de forma síncrona mediante [SWS_Crypto_91001] (Crypto_GetVersionInfo), notificándose al DET el paso de un puntero nulo con el error CRYPTO_E_PARAM_POINTER si la detección de desarrollo está activa (SWS_CryptoDriver p. 56).

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

Diagrama de contexto: integración del Crypto Driver en la pila criptográfica de AUTOSAR con Driver Objects e interfaces hacia NvM y DET. Fuentes: SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Gestión de Crypto Driver Objects y abstracción de hardware

Cada instancia del Crypto Driver se subdivide internamente en uno o varios objetos de controlador lógicos (Crypto Driver Objects) (SWS_CryptoDriver p. 15). Un Crypto Driver Object constituye el extremo funcional de un canal criptográfico y representa una unidad de cómputo de hardware independiente o una implementación de software (SWS_CryptoDriver p. 15). Por principio, un Driver Object individual solo puede ejecutar activamente exactamente un trabajo (job) en un momento dado ([SWS_Crypto_00014]). Por consiguiente, un Crypto Driver con n Driver Objects posee la capacidad de calcular en paralelo n trabajos criptográficos ([SWS_Crypto_00117]). Las primitivas matemáticas y de seguridad compatibles quedan determinadas por la capacidad del objeto asignado ([SWS_Crypto_00013]).

Si un objeto de controlador requiere números aleatorios internos (por ejemplo, para el cálculo de valores públicos en el marco del intercambio de claves mediante [SWS_Crypto_91009]) y no dispone de un generador aleatorio propio, recurre obligatoriamente al Crypto Driver Object 0 del mismo controlador ([SWS_Crypto_00224], [SWS_Crypto_00225]). En ningún caso se permite que los objetos de controlador direccionen generadores aleatorios de instancias de controladores criptográficos externas ([SWS_Crypto_00226]). Interpretación: el Driver Object 0 actúa, por tanto, como generador aleatorio de referencia interno central para todos los demás objetos de controlador de la misma partición. Pregunta Q-4e8e30714cbc9c80 (abierta)

Procesamiento de trabajos entre llamada directa síncrona y streaming asíncrono

Los procesamientos criptográficos se transfieren al módulo como estructuras de trabajo del tipo Crypto_JobType a través de la interfaz central [SWS_Crypto_91003] (Crypto_ProcessJob) ([SWS_Crypto_00042], AUTOSAR_CP_SWS_CryptoServiceManager p. 21). La interfaz unifica las llamadas globales basadas en bloques y el streaming continuo de datos a través de un campo de bits específico del modo: las operaciones START, UPDATE y FINISH se pueden transferir individualmente o de forma combinada (SWS_CryptoDriver p. 25). El establecimiento del indicador START marca un nuevo trabajo y cancela todas las instancias previas del mismo trabajo ([SWS_Crypto_00017]). En transferencias combinadas, los pasos se ejecutan siempre en el orden fijo START, UPDATE y, por último, FINISH (SWS_CryptoDriver p. 25).

El hecho de que un trabajo se procese de manera síncrona o asíncrona forma parte de la configuración de metadatos en Crypto_JobType (SWS_CryptoDriver p. 26). En modo asíncrono, [SWS_Crypto_91003] se limita a recibir los datos del trabajo; la ejecución real se inicia o procesa mediante la función principal periódica [SWS_Crypto_91012] (Crypto_MainFunction) ([SWS_Crypto_00027], [SWS_Crypto_91012]). Tras completarse el cálculo asíncrono, el Crypto Driver notifica de forma vinculante a la capa superior CryIf mediante la llamada a la función de retrollamada CRYIF_CallbackNotification, devolviendo el estado y los punteros de resultado ([SWS_Crypto_00028]). Interpretación: las llamadas síncronas, por el contrario, ejecutan la operación criptográfica de forma bloqueante en el contexto del llamador, sin desacoplarse a través de la función principal. Pregunta Q-0447ed9db11aa30b (abierta)

Procesamiento asíncrono de solicitudes a través del Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Comprobar parámetros y handles de claveE_OK (Auftrag angenommen)Crypto_MainFunction()Iniciar el cálculo (START/UPDATE/FINISH)Ejecutar el cálculo criptográficoErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Retorno

Diagrama de secuencia: flujo de procesamiento asíncrono a través de Crypto_ProcessJob, ciclo en Crypto_MainFunction y notificación mediante CRYIF_CallbackNotification. Fuentes: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Los trabajos criptográficos en curso o pendientes pueden cancelarse mediante la función [SWS_Crypto_00122] (Crypto_CancelJob). Si el trabajo solicitado no se encuentra en procesamiento activo por parte del objeto de controlador, se elimina de inmediato y la invocación devuelve E_OK ([SWS_Crypto_00214]). No obstante, si el hardware no puede interrumpir inmediatamente el proceso de cálculo activo, la API responde al intento con CRYPTO_E_JOB_CANCELED y la cancelación se completará en el siguiente paso alcanzable ([SWS_Crypto_00183]).

Cancelación del job mediante Crypto_CancelJobCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altEl job no está en procesamiento activoEliminar el job de la cola del controladorE_OK (Job sofort entfernt)Job activo y el hardware no puede cancelar inmediatamenteHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

Diagrama de secuencia: cancelación síncrona de trabajos criptográficos a través de Crypto_CancelJob con distinción de casos durante la ejecución activa en hardware. Fuentes: SWS_Crypto_00122, SWS_Crypto_00183, SWS_Crypto_00214

Para evitar operaciones de copia innecesarias entre las memorias de aplicación y de hardware, el Crypto Driver admite la redirección directa de búferes (Job Redirection): los datos de entrada y salida pueden referenciarse directamente a elementos de clave internos mediante jobRedirectionInfoRef ([SWS_Crypto_00203], [SWS_Crypto_00204]). Para evitar fugas de datos, se aplican aquí estrictas comprobaciones de derechos: en las redirecciones de entrada para servicios de cifrado y descifrado, el elemento de clave debe presentar al menos el derecho CRYPTO_RA_ENCRYPTED; para redirecciones de solo lectura, se requiere al menos CRYPTO_RA_INTERNAL_COPY ([SWS_Crypto_00221]).

Gestión de claves, derechos de acceso y operaciones criptográficas con claves

En el Crypto Driver, una clave lógica (Key) consta de uno o varios elementos de clave (Key Elements) que alojan el material de clave propiamente dicho, vectores de inicialización (IV), semillas aleatorias o pruebas SHE (Proof) (SWS_CryptoDriver p. 28). El acceso a cada elemento individual está estrictamente reglamentado: los accesos de lectura y escritura se supervisan mediante jerarquías de derechos configuradas (p. ej., CRYPTO_RA_ALLOWED, CRYPTO_RA_ENCRYPTED, CRYPTO_RA_INTERNAL_COPY), donde un valor de enumeración menor representa un derecho de acceso superior (SWS_CryptoDriver p. 28, [SWS_Crypto_00219]). Las operaciones de lectura directa solo están permitidas con CRYPTO_RA_ALLOWED o CRYPTO_RA_ENCRYPTED ([SWS_Crypto_00222]); los accesos de escritura requieren al menos CRYPTO_WA_ALLOWED o CRYPTO_WA_ENCRYPTED ([SWS_Crypto_00223]). Al copiar, el elemento de origen debe poseer al menos CRYPTO_RA_INTERNAL_COPY y no debe presentar derechos inferiores a los del elemento de destino ([SWS_Crypto_00220]).

Para la manipulación directa de claves y sus elementos, el Crypto Driver proporciona una serie de API síncronas: el establecimiento y la lectura de datos se realizan a través de [SWS_Crypto_91004] (Crypto_KeyElementSet) o [SWS_Crypto_91006] (Crypto_KeyElementGet). Los identificadores de elementos existentes de una clave pueden determinarse a través de [SWS_Crypto_00160] (Crypto_KeyElementIdsGet). Las claves completas o los elementos individuales se duplican mediante [SWS_Crypto_00155] (Crypto_KeyCopy) o [SWS_Crypto_00148] (Crypto_KeyElementCopy). Para copias parciales existe [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial), que impone comprobaciones precisas de longitud y desplazamiento en los búferes de origen y destino ([SWS_Crypto_00207], [SWS_Crypto_00208], [SWS_Crypto_00209]) y ajusta dinámicamente la longitud de destino ([SWS_Crypto_00210], [SWS_Crypto_00211]).

Además, el módulo admite operaciones de clave complejas: la generación de claves se realiza mediante [SWS_Crypto_91007] (Crypto_KeyGenerate) sobre la base de datos de entropía previamente inicializados mediante [SWS_Crypto_91013] (Crypto_RandomSeed). De la derivación de nuevo material de claves se encarga [SWS_Crypto_91008] (Crypto_KeyDerive). Para protocolos de intercambio de claves Diffie-Hellman están disponibles las funciones [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) para generar el valor público, así como [SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) para determinar el secreto compartido (SWS_CryptoServiceManager p. 70).

Cada clave lógica mantiene un estado que puede consultarse mediante [SWS_Crypto_91019] (Crypto_KeyGetStatus). Las claves recién escritas se encuentran inicialmente en el estado invalid y solo se liberan como valid tras una validación exitosa mediante [SWS_Crypto_91014] (Crypto_KeySetValid), mientras que [SWS_Crypto_91020] (Crypto_KeySetInvalid) bloquea la clave explícitamente. En cuanto a los formatos de datos, el controlador procesa claves asimétricas según RFC 5958 en codificación ASN.1-PKCS#8 ([SWS_Crypto_00184]), estructuras de clave RSA según RFC 8017 con OID de algoritmo fijo 1.2.840.113549.1.1.1 ([SWS_Crypto_00185], [SWS_Crypto_00186], [SWS_Crypto_00187], [SWS_Crypto_00188]), así como datos de curvas ECC (NIST, Brainpool, ED25519) en coordenadas de punto little-endian ([SWS_Crypto_00189], [SWS_Crypto_00190], [SWS_Crypto_00191], [SWS_Crypto_00192], [SWS_Crypto_00193]). Las claves SHE cercanas al hardware se transfieren en formato M1M2M3; su comprobante de verificación M4M5 puede leerse temporalmente en el elemento de clave 2 inmediatamente después de la validación ([SWS_Crypto_00255]).

diag_schluessel_lebenszyklus UNINITIALIZED UNINITIALIZED INVALID INVALID UNINITIALIZED->INVALID Crypto_Init / NVM-Ladefehler INVALID->INVALID Crypto_KeyElementSet / Crypto_KeyGenerate VALID VALID INVALID->VALID Crypto_KeySetValid (comprobación OK) VALID->INVALID Crypto_KeySetInvalid VALID->VALID Crypto_KeyElementSet (Re-Validierung ausstehend) NVM_SYNC NVM_SYNC VALID->NVM_SYNC NVM-Schreibanforderung NVM_SYNC->VALID Persistierung erfolgreich

Diagrama de estados: transiciones de estado de una clave desde el llenado y la validación hasta la persistencia y el tratamiento de errores. Fuentes: SWS_Crypto_00198, SWS_Crypto_00242, SWS_Crypto_91014, SWS_Crypto_91019, SWS_Crypto_91020

Persistencia de elementos de clave mediante el Non-Volatile RAM Manager

Si las claves deben conservarse de forma no volátil a lo largo de ciclos de alimentación, el Crypto Driver se conecta al Non-Volatile RAM Manager (NvM) (SWS_CryptoDriver p. 35, AUTOSAR_CP_SWS_CryptoDriver p. 37). Un principio arquitectónico central establece que las operaciones de escritura en el NvM nunca se desencadenan directamente al llenar un elemento individual mediante Crypto_KeyElementSet (SWS_CryptoDriver p. 37). En su lugar, la persistencia se inicia exclusivamente mediante la validación de estado KEYSETVALID a través de [SWS_Crypto_91014] (Crypto_KeySetValid) o un trabajo criptográfico equivalente (SWS_CryptoDriver p. 37). Esto garantiza que los elementos de clave interdependientes se comprueben de forma coherente y se almacenen en un único acceso de escritura al NvM, lo que preserva los ciclos de flash (SWS_CryptoDriver p. 37).

La interacción con el NvM se realiza a través de interfaces de retrollamada dedicadas: durante el arranque de la ECU, el NvM proporciona el bloque de inicialización a través de [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>). La carga de datos persistidos desde el espejo de RAM del NvM se efectúa mediante [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>). Antes de escribir, el NvM invoca [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>) para que el controlador criptográfico copie sus datos de clave internos en el búfer de NvM; la finalización de la transferencia asíncrona de bloques se notifica mediante [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>). Para el control, el controlador utiliza los servicios de NvM NvM_SetRamBlockStatus y NvM_WriteBlock ([SWS_Crypto_91017]). Si la carga de una clave persistente falla durante el arranque, el controlador marca esta clave de forma vinculante como invalid ([SWS_Crypto_00198]).

Persistencia de claves en NVM durante la validaciónCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)Comprobar consistencia y dependencias de los elementosNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)Transferir los datos de clave al espejo de RAM de NvME_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)Establecer el estado de la clave en VALIDE_OKE_OK

Diagrama de secuencia: persistencia de elementos de clave en la NVM durante la validación mediante NvM_WriteBlock y retrollamadas específicas del controlador. Fuentes: SWS_Crypto_00242, SWS_Crypto_91017, SWS_Crypto_91025, SWS_Crypto_91026

Particionamiento y reglas operativas multinúcleo

Para distribuir de forma eficiente las operaciones criptográficas en sistemas multinúcleo, la pila criptográfica puede dividirse en varias particiones de software (BSWDistributionGuide p. 59). El módulo Crypto opera en cada partición como una instancia completamente independiente: cada llamada a la API procesa datos exclusivamente dentro de la partición en la que se emitió ([SWS_Crypto_CONSTR_00001]). El particionamiento de los objetos de controlador está sujeto a reglas fijas de configuración: las particiones referenciadas por CryptoDriverObjectEcucPartitionRef deben formar obligatoriamente un subconjunto propio de las particiones asignadas al módulo (CryptoEcucPartitionRef) ([SWS_Crypto_CONSTR_00002]). Si un Crypto Driver Object está acoplado a un módulo de seguridad de hardware (HSM), por motivos de aislamiento de hardware solo puede asignarse exactamente a 0 o 1 partición ([SWS_Crypto_CONSTR_00003]).

Comportamiento en caso de error

El Crypto Driver implementa una supervisión de errores de dos niveles compuesta por detección durante el desarrollo (Development Errors) y errores de tiempo de ejecución (Runtime Errors). Con el modo de seguridad de desarrollo (DET) activado, las violaciones formales de interfaz se transmiten a Det_ReportError ([SWS_Crypto_91017]). Entre estas se incluyen llamadas antes de la inicialización del controlador (CRYPTO_E_UNINIT, 0x00) ([SWS_Crypto_00040], [SWS_Crypto_00196], [SWS_Crypto_00205]), datos de inicialización no válidos (CRYPTO_E_INIT_FAILED, 0x01), así como punteros nulos no permitidos (CRYPTO_E_PARAM_POINTER, 0x02) ([SWS_Crypto_00040]). Si los identificadores de clave o los identificadores de clave de destino se encuentran fuera del rango de valores permitido, el controlador cancela la llamada con E_NOT_OK y notifica CRYPTO_E_PARAM_HANDLE (0x04) ([SWS_Crypto_00040], [SWS_Crypto_00180], [SWS_Crypto_00197], [SWS_Crypto_00202], [SWS_Crypto_00217]).

Si los búferes de entrada o salida proporcionados para una operación no son suficientes, se rechaza la ejecución y, con el DET activo, se notifica el error CRYPTO_E_SMALL_BUFFER ([SWS_Crypto_00195], SWS_CryptoDriver p. 49). Se aplica una excepción normativa para los servicios CRYPTO_HASH y CRYPTO_MACGENERATE: si el búfer de salida es menor que la longitud nativa de hash o MAC, el resultado no se descarta, sino que se escribe en el búfer truncado en forma de los bits más significativos (MSB) ([SWS_Crypto_00065]). En el funcionamiento operativo, el controlador notifica errores de tiempo de ejecución específicos a través del valor de retorno: [SWS_Crypto_91003] responde al agotamiento de la entropía aleatoria con el código de retorno CRYPTO_E_ENTROPY_EXHAUSTED y notifica el error de tiempo de ejecución CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) ([SWS_Crypto_00141], [SWS_Crypto_00194], [SWS_Crypto_91018]). Si fallan los accesos de lectura o escritura a la NVM, se señaliza CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) ([SWS_Crypto_00194]). Otros valores de retorno de API estandarizados son CRYPTO_E_BUSY, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH y CRYPTO_E_KEY_EMPTY ([SWS_Crypto_00155], [SWS_Crypto_00207], [SWS_Crypto_91018]).

Más evidencia detallada

Las características esenciales del Crypto Driver se basan en las siguientes especificaciones funcionales y puntos de la arquitectura:

Área temáticaElementos esenciales de especificaciónReferencia documental
Marco de módulo e instanciación[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
Procesamiento de órdenes y cancelación[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
Gestión de claves y derechos[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
Operaciones criptográficas e intercambio[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
Persistencia de NvM y retrollamadas[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
Multinúcleo y particionamiento[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

Esta guía se basa exclusivamente en las disposiciones normativas de la especificación AUTOSAR Classic R20-11.

Crypto Driver (Crypto)

Low-level driver executing cryptographic primitives on hardware security modules (HSM) or software libraries.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

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

La función Crypto_Init sirve para inicializar el Crypto Driver de acuerdo con [SWS_Crypto_91000]. La interfaz está declarada en la cabecera Crypto.h y posee el Service-ID 0x00 [SWS_Crypto_91000].

Para la llamada y los parámetros de la interfaz se especifican las siguientes propiedades:

  • Puntero de configuración: a través del parámetro de entrada configPtr de tipo const Crypto_ConfigType* se pasa un puntero a la estructura de configuración seleccionada [SWS_Crypto_91000].
  • Valor de retorno: la función no posee ningún valor de retorno (void); no existen parámetros de entrada/salida ni parámetros de salida independientes [SWS_Crypto_91000].
  • Comportamiento de ejecución: la rutina de inicialización se ejecuta de forma síncrona (Synchronous) [SWS_Crypto_91000].
  • Reentrancia: la función está definida como no reentrante (Non Reentrant) [SWS_Crypto_91000]. Las llamadas paralelas o solapadas no están permitidas.

Debido a su clasificación como no reentrante y dado que la especificación no devuelve códigos de error específicos, es probable que la llamada se realice típicamente de forma centralizada durante la fase de arranque de la unidad de control antes de cualquier otro acceso al controlador (interpretación). Pregunta Q-008bb5a45b823891 (abierta) Asimismo, es probable que la entidad que realiza la llamada sea responsable de que la estructura de configuración referenciada permanezca válida de forma permanente en la memoria (interpretación). Pregunta Q-6271a86fad440121 (abierta)

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 Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

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

La función Crypto_ProcessJob ejecuta la primitiva criptográfica configurada en el parámetro job sobre el Crypto Driver Object referenciado por objectId [SWS_Crypto_91003]. La llamada es reentrante y opera de forma síncrona o asíncrona en función de la configuración del trabajo [SWS_Crypto_91003]. A través del puntero a Crypto_JobType se transfieren tanto datos de configuración para la primitiva como búferes para los datos de resultado [SWS_Crypto_91003].

Antes de la ejecución propiamente dicha de un trabajo, el controlador comprueba la validez de los identificadores de clave: si job->cryptoKeyId o, en su caso, job->targetCryptoKeyId se encuentran fuera del rango permitido, la función notifica el error CRYPTO_E_PARAM_HANDLE al DET y devuelve E_NOT_OK [SWS_Crypto_00217]. Esto también se aplica al servicio CRYPTO_KEYDERIVE (job->jobPrimitiveInfo->primitiveInfo->service) siempre que job->targetCryptoKeyId sea inválido [SWS_Crypto_00202].

Además de E_OK y E_NOT_OK, códigos de error específicos señalan el fallo de la solicitud [SWS_Crypto_91003]:

  • CRYPTO_E_BUSY, si el objeto del controlador está ocupado o su cola está llena [SWS_Crypto_91003],
  • errores relacionados con las claves como CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE o CRYPTO_E_KEY_EMPTY [SWS_Crypto_91003],
  • CRYPTO_E_JOB_CANCELED en caso de cancelación de un trabajo síncrono [SWS_Crypto_91003], así como
  • CRYPTO_E_ENTROPY_EXHAUSTED en caso de entropía insuficiente de un generador de números aleatorios; en este caso, la función notifica adicionalmente el error de tiempo de ejecución CRYPTO_E_RE_ENTROPY_EXHAUSTED [SWS_Crypto_00141], [SWS_Crypto_91003].

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

Guía del implementador pendiente (complejidad I1)

función Crypto_CancelJob [SWS_Crypto_00122] 📄 PDF

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

This interface removes the provided job from the queue and cancels the processing of the job if possible.

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

usar

La función síncrona Crypto_CancelJob elimina un trabajo transferido de la cola y cancela su procesamiento en la medida de lo posible [SWS_Crypto_00122]. Durante la llamada se transfieren el identificador del Crypto Driver Object (objectId), así como un puntero a la configuración del trabajo (job) [SWS_Crypto_00122].

Los valores de retorno señalan el resultado del intento de cancelación:

  • E_OK: La solicitud se realizó con éxito y el trabajo se eliminó [SWS_Crypto_00122]. Si no existe ningún error en el controlador y el trabajo no se está procesando actualmente, el servicio devuelve asimismo E_OK sin realizar más acciones [SWS_Crypto_00214].
  • E_NOT_OK: la solicitud ha fallado, ya que el trabajo no se pudo eliminar [SWS_Crypto_00122].
  • CRYPTO_E_JOB_CANCELED: El trabajo se canceló, pero continúa ejecutándose; no se devuelve ningún resultado a la aplicación [SWS_Crypto_00122]. Esto se aplica cuando el controlador funciona correctamente, pero no puede cancelar el trabajo (por ejemplo, debido a limitaciones de hardware) [SWS_Crypto_00183].

Concurrencia y restricciones

La interfaz es reentrante para instancias diferentes, pero no debe llamarse simultáneamente para el mismo Crypto Driver Object [SWS_Crypto_00122].

Esta nota de uso se generó automáticamente y se basa exclusivamente en los datos de especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyElementSet [SWS_Crypto_91004] 📄 PDF

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Sets the given key element bytes to the key identified by crypto Key Id.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c644721999af 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 Crypto_KeyElementSet sirve para establecer en el controlador criptográfico los datos sin procesar de un determinado elemento de clave para una clave identificada a través de cryptoKeyId [SWS_Crypto_91004].

Parámetros y valores de retorno

A través de keyElementId se direcciona el elemento de clave de destino, mientras que keyPtr apunta al búfer de datos y keyLength a su tamaño en bytes [SWS_Crypto_91004]. Si la asignación tiene éxito, la interfaz devuelve E_OK [SWS_Crypto_91004].

Manejo de errores

Si se produce un error durante el procesamiento, la función proporciona valores de retorno específicos [SWS_Crypto_91004]:

  • CRYPTO_E_BUSY: El Crypto Driver Object correspondiente está ocupado.
  • CRYPTO_E_KEY_WRITE_FAIL: Se denegó el acceso de escritura al elemento de clave.
  • CRYPTO_E_KEY_NOT_AVAILABLE: El elemento de clave solicitado o la clave no están disponibles.
  • CRYPTO_E_KEY_SIZE_MISMATCH: La longitud de datos transferida no coincide con el tamaño del elemento de clave.
  • E_NOT_OK: La solicitud ha fallado por otros motivos.

concurrencia

La función está especificada como no reentrante (Non Reentrant) [SWS_Crypto_91004]. Interpretación: es probable que las entidades que realizan la llamada sean responsables de sincronizar las llamadas paralelas entre sí para evitar incoherencias de datos en el controlador. Pregunta Q-d7ef7a774052a212 (abierta)

Esta nota de uso se ha generado automáticamente sobre la base de la especificación SWS_Crypto_91004 (R20-11).

Guía del implementador pendiente (complejidad I1)

función Crypto_KeySetValid [SWS_Crypto_91014] 📄 PDF

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Sets the key state of the key identified by crypto Key Id to valid.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 234814436706 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 Crypto_KeySetValid sirve para establecer en válido ([SWS_Crypto_91014]) el estado de una clave especificada a través del identificador cryptoKeyId. La interfaz está disponible mediante el archivo de cabecera Crypto.h y posee el Service ID 0x05 ([SWS_Crypto_91014]).

Al utilizarla, se definen los siguientes parámetros y valores de retorno ([SWS_Crypto_91014]):

  • Parámetro de entrada: Mediante cryptoKeyId (tipo uint32) se pasa el identificador de la clave cuyo estado debe establecerse en válido ([SWS_Crypto_91014]). No existen parámetros de entrada o de salida adicionales ([SWS_Crypto_91014]).
  • Valor de retorno: Un código de estado de tipo Std_ReturnType informa sobre el resultado de la solicitud ([SWS_Crypto_91014]):

En cuanto a la concurrencia, la función está especificada como no reentrante («Non Reentrant») ([SWS_Crypto_91014]). Interpretación: Es de suponer que las entidades llamantes deban coordinar externamente las llamadas paralelas entre diferentes tareas para evitar conflictos, y deberían prever una repetición de la llamada en un momento posterior en caso de recibir CRYPTO_E_BUSY. Pregunta Q-32d775a9e61e5731 (abierta)

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

Guía del implementador pendiente (complejidad I1)

función Crypto_KeySetInvalid [SWS_Crypto_91020] 📄 PDF

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

Sets invalid for the status of the key identifi ed by crypto Key Id.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f9c09a4552e9 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 síncrona Crypto_KeySetInvalid establece el estado de una clave identificada mediante cryptoKeyId en no válido [SWS_Crypto_91020]. La función está definida en el archivo de cabecera Crypto.h y se accede a ella mediante el Service ID 0x15 [SWS_Crypto_91020]. Como único parámetro de transferencia sirve el valor de entrada cryptoKeyId (tipo uint32), el cual contiene el identificador unívoco de la clave de destino; no existen parámetros de entrada/salida ni de salida [SWS_Crypto_91020].

Tratamiento de errores y valores de retorno

El resultado de la ejecución de la función se señaliza a través del valor de retorno de tipo Std_ReturnType [SWS_Crypto_91020]:

  • E_OK: La solicitud fue exitosa y el estado de la clave se estableció en no válido [SWS_Crypto_91020].
  • E_NOT_OK: La ejecución de la solicitud ha fallado [SWS_Crypto_91020].
  • CRYPTO_E_BUSY: La solicitud falló porque el objeto de controlador criptográfico (Crypto Driver Object) correspondiente está ocupado actualmente [SWS_Crypto_91020].

Concurrencia y restricciones

La interfaz está especificada como no reentrante (Non Reentrant) [SWS_Crypto_91020]. Por tanto, una llamada concurrente o de interrupción es inadmisible. Dado que la función se ejecuta de forma síncrona, solo regresa al llamante tras finalizar el cambio de estado o tras constatar el error [SWS_Crypto_91020].

Esta nota de uso fue generada automáticamente sobre la base de la especificación.

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyElementGet [SWS_Crypto_91006] 📄 PDF

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This interface shall be used to get a key element of the key identified by the crypto

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c68d666a4fd9 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 y reentrante Crypto_KeyElementGet sirve para leer un elemento de clave identificado mediante keyElementId de la clave cryptoKeyId y almacenarlo en el área de memoria resultPtr [SWS_Crypto_91006]. La interfaz se proporciona a través de la cabecera Crypto.h y posee el Service-ID 0x06 [SWS_Crypto_91006]. En el momento de la llamada, la entidad que realiza la llamada transfiere a través del parámetro de entrada/salida resultLengthPtr el tamaño del búfer o, en caso de acceso parcial configurado, el tamaño de lectura deseado; una vez finalizada la ejecución, el controlador deposita allí la cantidad de datos realmente copiada [SWS_Crypto_91006].

En caso de éxito, la función devuelve E_OK [SWS_Crypto_91006]. Si la operación falla, lo señala mediante códigos de error específicos: CRYPTO_E_BUSY si el objeto del controlador criptográfico está ocupado, CRYPTO_E_KEY_NOT_AVAILABLE si el elemento de clave no está disponible, CRYPTO_E_KEY_READ_FAIL en caso de acceso de lectura denegado, CRYPTO_E_KEY_EMPTY en el caso de un elemento de origen no inicializado, así como de forma genérica E_NOT_OK [SWS_Crypto_91006].

Aunque la interfaz está especificada como reentrante, la especificación señala que, en caso de mapeo directo del elemento de clave en la memoria flash, pueden producirse latencias apreciables durante la ejecución síncrona [SWS_Crypto_91006]. Interpretación: debido a estos posibles retrasos, es probable que la llamada resulte adecuada principalmente en el contexto de tarea y no dentro de rutinas de servicio de interrupción críticas en el tiempo. Pregunta Q-ff4e2843b9aad46d (abierta)

Esta nota de uso se ha generado automáticamente y se basa en el estado de especificación de AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyGetStatus [SWS_Crypto_91019] 📄 PDF

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by crypto Key Id.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4f6e929a170d 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 Crypto_KeyGetStatus sirve para consultar el estado actual de una clave específica dentro del controlador criptográfico [SWS_Crypto_91019]. Se proporciona a través de la cabecera Crypto.h y tiene el Service-ID 0x14 [SWS_Crypto_91019].

Uso y parámetros

La llamada se realiza de forma síncrona y espera dos parámetros [SWS_Crypto_91019]:

  • cryptoKeyId: El identificador de la clave cuyo estado se va a determinar.
  • keyStatusPtr: Puntero al área de memoria del tipo Crypto_KeyStatusType a la que se devuelve el estado.

Como valor de retorno, la interfaz devuelve Std_ReturnType. En caso de ejecución correcta, se notifica E_OK, mientras que en caso de error se devuelve E_NOT_OK [SWS_Crypto_91019].

Concurrencia y restricciones

La función está declarada como no reentrante (Non Reentrant) [SWS_Crypto_91019]. Por tanto, los llamadores deben asegurarse de evitar llamadas concurrentes mediante mecanismos de sincronización de nivel superior. No se enumeran mensajes de error de DET específicos; presumiblemente, una llamada errónea, como un puntero no válido o un ID no válido, conduce directamente a la devolución de E_NOT_OK [SWS_Crypto_91019]. Pregunta Q-5703fab02905e91a (abierta)

Este texto ha sido elaborado por una IA y se basa en la especificación de AUTOSAR R20-11.

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopy.

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

La función síncrona Crypto_KeyElementCopy sirve para copiar un elemento de clave a otro elemento de clave dentro del mismo controlador criptográfico [SWS_Crypto_00148]. Se transfieren los identificadores de la clave de origen (cryptoKeyId) y del elemento de clave de origen (keyElementId), así como de la clave de destino (targetCryptoKeyId) y del elemento de clave de destino (targetKeyElementId) [SWS_Crypto_00148].

En cuanto al comportamiento temporal, debe tenerse en cuenta que, en el caso de elementos de clave mapeados directamente en memoria flash, debido a la ejecución síncrona pueden producirse mayores retardos en la llamada a la función [SWS_Crypto_00148]. Por tanto, el comportamiento en tiempo de ejecución debe considerarse especialmente en contextos de tiempo crítico.

La función está diseñada como reentrante, aunque explícitamente no para el mismo cryptoKeyId [SWS_Crypto_00148]. Por consiguiente, las llamadas simultáneas con una clave de origen idéntica deben sincronizarse o excluirse por parte del llamador.

En caso de éxito, la función devuelve E_OK [SWS_Crypto_00148]. En caso de error, el valor de retorno indica la causa específica [SWS_Crypto_00148]:

  • CRYPTO_E_BUSY: El objeto de controlador criptográfico está ocupado [SWS_Crypto_00148].
  • CRYPTO_E_KEY_NOT_AVAILABLE: El elemento de clave solicitado de al menos una clave no está disponible [SWS_Crypto_00148].
  • CRYPTO_E_KEY_READ_FAIL o CRYPTO_E_KEY_WRITE_FAIL: No está permitida la lectura del elemento de origen o la escritura del elemento de destino [SWS_Crypto_00148].
  • CRYPTO_E_KEY_SIZE_MISMATCH: Los tamaños de los elementos de clave no son compatibles entre sí [SWS_Crypto_00148].
  • CRYPTO_E_KEY_EMPTY: el elemento de clave de origen no está inicializado [SWS_Crypto_00148].
  • E_NOT_OK: la solicitud ha fallado de forma general [SWS_Crypto_00148].

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

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyElementCopyPartial [SWS_Crypto_91015] 📄 PDF

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

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

La función síncrona Crypto_KeyElementCopyPartial sirve para la copia parcial de datos desde un elemento de clave de origen a un elemento de clave de destino dentro del mismo controlador criptográfico [SWS_Crypto_91015]. Mediante los parámetros keyElementSourceOffset y keyElementCopyLength se define el fragmento a copiar del elemento de origen (cryptoKeyId, keyElementId), mientras que keyElementTargetOffset determina la posición inicial en el elemento de destino (targetCryptoKeyId, targetKeyElementId). En caso de verificación sin errores, el controlador realiza la operación de copia de forma síncrona y devuelve E_OK [SWS_Crypto_00209].

Antes de la ejecución, el controlador valida los estados de los búferes y del controlador:

  • Si el controlador criptográfico no está inicializado y el control de desarrollo está activado, la función reporta CRYPTO_E_UNINIT al DET y devuelve E_NOT_OK [SWS_Crypto_00205].
  • Si la longitud total del elemento de clave de origen es menor que keyElementSourceOffset + keyElementCopyLength, la llamada falla con CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00207].
  • Si el búfer máximo del elemento de clave de destino ofrece menos espacio que keyElementTargetOffset + keyElementCopyLength, también se notifica CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00208].
  • Otros valores de error especificados son, entre otros, CRYPTO_E_BUSY (objeto de controlador ocupado), CRYPTO_E_KEY_EMPTY (elemento de origen no inicializado), CRYPTO_E_KEY_NOT_AVAILABLE, así como errores de acceso de lectura o escritura (CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL) [SWS_Crypto_91015].

La función es reentrante, pero no debe llamarse simultáneamente para el mismo ID de clave cryptoKeyId [SWS_Crypto_91015]. Si un elemento de clave está almacenado directamente en la memoria Flash, la ejecución síncrona puede provocar retardos perceptibles [SWS_Crypto_91015].

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 Crypto_KeyCopy [SWS_Crypto_00155] 📄 PDF

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

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

usar

La función síncrona Crypto_KeyCopy copia una clave junto con todos sus elementos de clave a una clave de destino dentro del mismo Crypto Driver [SWS_Crypto_00155]. La asignación se realiza mediante los parámetros de entrada cryptoKeyId para la clave de origen y targetCryptoKeyId para la clave de destino [SWS_Crypto_00155]. Una operación de copia exitosa se confirma con E_OK [SWS_Crypto_00155].

Concurrencia y comportamiento en tiempo de ejecución

La interfaz está diseñada como reentrante, pero no debe ejecutarse simultáneamente para el mismo cryptoKeyId [SWS_Crypto_00155]. Dado que la ejecución se realiza de forma síncrona, en el caso de elementos de clave almacenados directamente en la memoria Flash pueden producirse retardos perceptibles durante la llamada [SWS_Crypto_00155].

Manejo de errores

En caso de error, la función devuelve valores de retorno específicos de tipo Std_ReturnType [SWS_Crypto_00155]:

  • CRYPTO_E_BUSY: El Crypto Driver Object asociado está ocupado [SWS_Crypto_00155].
  • CRYPTO_E_KEY_NOT_AVAILABLE: Al menos una de las claves solicitadas no está disponible [SWS_Crypto_00155].
  • CRYPTO_E_KEY_READ_FAIL: No está permitida la lectura del elemento de clave de origen [SWS_Crypto_00155].
  • CRYPTO_E_KEY_WRITE_FAIL: No está permitida la escritura en el elemento de clave de destino [SWS_Crypto_00155].
  • CRYPTO_E_KEY_SIZE_MISMATCH: Los tamaños de los elementos de clave no son compatibles entre sí [SWS_Crypto_00155].
  • CRYPTO_E_KEY_EMPTY: El elemento de clave de la clave de origen no está inicializado [SWS_Crypto_00155].
  • E_NOT_OK: La ejecución de la solicitud ha fallado [SWS_Crypto_00155].

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

función Crypto_KeyElementIdsGet [SWS_Crypto_00160] 📄 PDF

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);

Used to retrieve information which key elements are available in a given key.

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

La función síncrona Crypto_KeyElementIdsGet sirve para consultar información sobre qué elementos de clave están disponibles en una clave dada [SWS_Crypto_00160]. A través del parámetro de entrada cryptoKeyId se pasa el identificador de la clave cuyos IDs de elementos disponibles deben exportarse [SWS_Crypto_00160]. Los identificadores determinados se almacenan en el array referenciado por el puntero keyElementIdsPtr [SWS_Crypto_00160].

La gestión del tamaño del búfer se realiza mediante el parámetro de entrada y salida keyElementIdsLengthPtr: en el momento de la llamada, este parámetro debe contener el tamaño proporcionado del búfer keyElementIdsPtr [SWS_Crypto_00160]. Una vez finalizada la operación, allí se deposita la cantidad real de elementos de clave presentes [SWS_Crypto_00160].

Como valor de retorno, el servicio devuelve E_OK en caso de consulta exitosa o E_NOT_OK si la solicitud ha fallado [SWS_Crypto_00160]. Si el objeto del controlador criptográfico competente está ocupado en el momento de la llamada, se devuelve el código de error CRYPTO_E_BUSY [SWS_Crypto_00160].

En lo que respecta a la concurrencia, la función es reentrante, pero no debe llamarse simultáneamente para el mismo cryptoKeyId [SWS_Crypto_00160]. La declaración está disponible a través de la cabecera Crypto.h [SWS_Crypto_00160].

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

Guía del implementador pendiente (complejidad I1)

función Crypto_RandomSeed [SWS_Crypto_91013] 📄 PDF

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

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

La función síncrona Crypto_RandomSeed (Service-ID 0x0d) sirve, según [SWS_Crypto_91013], para la generación y actualización del estado interno de la semilla de una clave utilizando una fuente de entropía proporcionada. La declaración de la función está contenida en el archivo de cabecera Crypto.h.

Uso y parámetros de llamada

Además de la generación inicial, la función también puede utilizarse, según [SWS_Crypto_91013], para actualizar el estado de la semilla con nueva entropía. La llamada síncrona requiere tres parámetros de entrada:

  • cryptoKeyId: Transfiere el identificador de la clave para la que se generará una nueva semilla.
  • seedPtr: Contiene un puntero al área de memoria con los datos para alimentar la semilla.
  • seedLength: Define la longitud en bytes de los datos de semilla transferidos.

Valores de retorno y tratamiento de errores

Como valor de retorno, Crypto_RandomSeed notifica un estado del tipo Std_ReturnType según [SWS_Crypto_91013]:

  • E_OK: la solicitud se ejecutó con éxito.
  • E_NOT_OK: La solicitud ha fallado.
  • CRYPTO_E_KEY_NOT_VALID: La ejecución falla porque el estado de la clave identificada mediante cryptoKeyId se encuentra en el estado «invalid».

Concurrencia y restricciones

Según [SWS_Crypto_91013], la función está especificada como reentrante, pero expresamente no para la misma cryptoKeyId. Por lo tanto, las llamadas paralelas para la misma clave deben evitarse del lado del llamador.

Este texto ha sido generado por una IA y se basa exclusivamente en los datos de especificación del payload.

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyGenerate [SWS_Crypto_91007] 📄 PDF

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

Generates new key material store it in the key identified by crypto Key Id.

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

usar

La función Crypto_KeyGenerate, proporcionada a través del archivo de cabecera Crypto.h, genera nuevo material de clave y actualiza la clave direccionada mediante el identificador cryptoKeyId [SWS_Crypto_91007]. La función opera de forma totalmente síncrona y está definida con el Service-ID 0x07 [SWS_Crypto_91007]. Aparte del identificador de clave, no existen otros parámetros [SWS_Crypto_91007].

Concurrencia y restricciones

Con respecto a la concurrencia, Crypto_KeyGenerate está especificada como reentrante, pero expresamente con la restricción de que esto no se aplica para el mismo cryptoKeyId [SWS_Crypto_91007]. Si se realizan varias solicitudes para la misma clave, estas deben sincronizarse por parte del emisor de la llamada para evitar conflictos en el controlador.

Valores de retorno y tratamiento de errores

A través del valor de retorno del tipo básico Std_ReturnType, la entidad que realiza la llamada recibe información detallada sobre el éxito o las causas de error específicas de la operación [SWS_Crypto_91007]:

  • E_OK: La generación de la clave se ejecutó con éxito [SWS_Crypto_91007].
  • CRYPTO_E_BUSY: La solicitud falló porque el Crypto Driver Object competente está ocupado actualmente [SWS_Crypto_91007].
  • CRYPTO_E_KEY_EMPTY: La generación falló porque un elemento de clave de origen requerido no está inicializado [SWS_Crypto_91007].
  • CRYPTO_E_KEY_NOT_VALID: La operación fracasó porque el estado de la clave referenciada mediante cryptoKeyId está marcado como no válido [SWS_Crypto_91007].
  • E_NOT_OK: La solicitud de generación de clave ha fallado por otros motivos [SWS_Crypto_91007].

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

función Crypto_KeyDerive [SWS_Crypto_91008] 📄 PDF

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

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

La función síncrona Crypto_KeyDerive deriva una nueva clave criptográfica a partir de los elementos de clave de una clave de origen (cryptoKeyId) y la almacena en el elemento de clave con el ID 1 de la clave de destino (targetCryptoKeyId) [SWS_Crypto_91008]. La clave de origen debe contener los elementos de clave necesarios para la contraseña y el salt; el número de iteraciones se especifica a través del elemento de clave CRYPTO_KE_KEYDERIVATION_ITERATIONS [SWS_Crypto_91008].

Llamada y concurrencia

La interfaz es reentrante, pero no debe llamarse simultáneamente para el mismo cryptoKeyId [SWS_Crypto_91008]. Por lo tanto, los emisores de llamadas deben asegurarse de que los procesos de derivación paralelos operen sobre claves de origen diferentes.

Valores de retorno y tratamiento de errores

La función señala el resultado mediante valores de retorno definidos del tipo Std_ReturnType [SWS_Crypto_91008]:

  • E_OK: Derivación de clave realizada con éxito.
  • E_NOT_OK: Derivación fallida. Si el parámetro targetCryptoKeyId se encuentra fuera del rango válido, la función notifica además CRYPTO_E_PARAM_HANDLE al DET si la detección de desarrollo está activada [SWS_Crypto_00180].
  • CRYPTO_E_BUSY: el Crypto Driver Object responsable está ocupado [SWS_Crypto_91008].
  • CRYPTO_E_KEY_EMPTY: Un elemento de clave de origen requerido no está inicializado [SWS_Crypto_91008].
  • CRYPTO_E_KEY_NOT_VALID: El estado de la clave referenciada por cryptoKeyId es inválido [SWS_Crypto_91008].

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

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyExchangeCalcPubVal [SWS_Crypto_91009] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

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

usar

La función síncrona Crypto_KeyExchangeCalcPubVal calcula el valor público para un protocolo de intercambio de claves y lo almacena en la ubicación de memoria de publicValuePtr ([SWS_Crypto_91009]). La entidad que realiza la llamada transfiere mediante cryptoKeyId el identificador de la clave que se utilizará para el protocolo. A través del parámetro de entrada y salida publicValueLengthPtr debe transferirse en la llamada el tamaño de búfer de la memoria proporcionada; una vez concluida la ejecución, allí se deposita la longitud real del valor público calculado ([SWS_Crypto_91009]).

Tratamiento de errores y valores de retorno

La función devuelve E_OK en caso de ejecución exitosa. Si se produce un error, se devuelve E_NOT_OK o un código de error específico ([SWS_Crypto_91009]):

  • CRYPTO_E_BUSY: La solicitud falla porque el Crypto Driver Object está ocupado.
  • CRYPTO_E_KEY_EMPTY: La solicitud falla porque el elemento de clave de origen no está inicializado.
  • CRYPTO_E_KEY_NOT_VALID: La solicitud falla porque el estado de la clave referenciada mediante cryptoKeyId es inválido.

Concurrencia e integración en el sistema

Conforme a [SWS_Crypto_91009], la función es reentrante, pero no para el mismo cryptoKeyId. Si el controlador criptográfico requiere servicios de un generador de números aleatorios (RNG) para fines internos como Crypto_KeyExchangeCalcPubVal, el primer Crypto Driver Object (número de objeto 0) debe estar configurado para este fin ([SWS_Crypto_00224]).

Este texto fue generado por una IA. Todos los datos se basan en la especificación AUTOSAR Classic R20-11.

Guía del implementador pendiente (complejidad I1)

función Crypto_KeyExchangeCalcSecret [SWS_Crypto_91010] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

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

La función síncrona Crypto_KeyExchangeCalcSecret sirve para el cálculo de un secreto compartido (Shared Secret Key) para un protocolo de intercambio de claves [SWS_Crypto_91010]. Procesa el material de clave de la clave especificada mediante cryptoKeyId junto con el valor público del interlocutor transmitido a través de partnerPublicValuePtr, cuyo número de bytes se indica mediante partnerPublicValueLength [SWS_Crypto_91010]. El secreto compartido calculado se almacena directamente como elemento de clave dentro de la misma clave [SWS_Crypto_91010].

Como valor de retorno, la función proporciona el estado a través de Std_ReturnType [SWS_Crypto_91010]:

  • E_OK: El cálculo y el almacenamiento del secreto se completaron con éxito [SWS_Crypto_91010].
  • E_NOT_OK: la solicitud ha fallado [SWS_Crypto_91010].
  • CRYPTO_E_BUSY: La ejecución fracasó porque el Crypto Driver Object competente está ocupado [SWS_Crypto_91010].
  • CRYPTO_E_KEY_EMPTY: el elemento de clave de origen no está inicializado [SWS_Crypto_91010].
  • CRYPTO_E_KEY_NOT_VALID: El estado de la clave referenciada por cryptoKeyId es inválido [SWS_Crypto_91010].

La interfaz está implementada como reentrante, pero no debe llamarse de forma concurrente para el mismo cryptoKeyId [SWS_Crypto_91010]. Por lo tanto, los emisores de llamadas deben asegurarse de evitar llamadas simultáneas con un ID de clave idéntico y de que el material de clave referenciado esté previamente inicializado y en un estado válido para prevenir estados de error [SWS_Crypto_91010].

Esta nota de uso se ha generado automáticamente sobre la base de la especificación de SWS_Crypto_91010.

función Crypto_MainFunction [SWS_Crypto_91012] 📄 PDF

void Crypto_MainFunction (void);

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

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

La función Crypto_MainFunction sirve para el procesamiento cíclico de órdenes criptográficas encoladas en las colas de trabajos del controlador criptográfico [SWS_Crypto_91012]. Un requisito previo para su uso es que en el módulo se haya configurado el procesamiento asíncrono de órdenes y existan las correspondientes colas de órdenes [SWS_Crypto_91012].

Invocación y semántica

La función posee la firma void Crypto_MainFunction(void) y está especificada con el Service-ID 0x0c [SWS_Crypto_91012]. No recibe ningún parámetro de entrada ni devuelve ningún valor de retorno. La interfaz se proporciona a través de la cabecera SchM_Crypto.h [SWS_Crypto_91012]. Esto da pie a la interpretación de que la llamada cíclica se inicia según lo previsto por el planificador de BSW (Schedule Manager) en el contexto de una tarea periódica del sistema operativo.

Concurrencia y restricciones

La llamada está estrictamente vinculada a la configuración de colas de trabajos asíncronas [SWS_Crypto_91012]. Puesto que la especificación no indica reentrancia para Crypto_MainFunction, es de suponer que la función debe tratarse como no reentrante; por lo tanto, deben evitarse las llamadas paralelas desde múltiples hilos o tareas. Pregunta Q-038d384305c8c5c3 (abierta)

Manejo de errores

En la especificación no se han definido códigos de error específicos ni entradas de DET para esta función [SWS_Crypto_91012]. Dado que la función no proporciona valores de retorno, los posibles errores durante el procesamiento asíncrono presumiblemente se transmiten a las capas superiores a través de consultas de estado o de los canales de respuesta de los trabajos respectivos. Pregunta (abierta)

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

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Crypto
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Crypto@rel:R20-11#b19a11dd
Content hash
b19a11dd
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

Inicialización y estado

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init función

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

Servicios · KeyElement…

Service Crypto_KeyElementCopy.

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

This interface shall be used to get a key element of the key identified by the crypto

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

Used to retrieve information which key elements are available in a given key.

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);

Sets the given key element bytes to the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Servicios · Key…

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

Generates new key material store it in the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

Returns the key state of the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

Sets invalid for the status of the key identifi ed by crypto Key Id.

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

Sets the key state of the key identified by crypto Key Id to valid.

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Servicios · Otros

This interface removes the provided job from the queue and cancels the processing of the job if possible.

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

Cíclico

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

void Crypto_MainFunction (void);

Tipos

Configuration data structure of Cry If module