DEENESPTFRRUARHIKOZHNL

Crypto Interface (CryIf)

ModulCryIf (Crypto Interface)
BSW-Modul-ID112
Standard-Header#include "CryIf.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoInterface.pdf
ClusterCrypto Services

Guía del móduloGENERADO POR IA

Reenvía los trabajos criptográficos y las llamadas de clave del CSM a través de canales configurados a los controladores criptográficos correspondientes.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 6b37c73ee677 Procedencia Preguntas abiertas (4)
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

Reenvía los trabajos criptográficos y las llamadas de clave del CSM a través de canales configurados a los controladores criptográficos correspondientes.

En la pila criptográfica Classic, CryIf actúa como intermediario entre CSM y Crypto Driver, y reenvía trabajos y llamadas de claves a través de canales configurados al Crypto Driver Object responsable SWS CSM p. 26. La interfaz central es CryIf_ProcessJob, que opera de forma síncrona o asíncrona según la configuración [SWS_CryIf_91003]. El controlador notifica los resultados asíncronos mediante un callback a CryIf, que a su vez los traslada a CSM. Antes del reenvío, CryIf mapea sus propios ID de clave a los del controlador y comprueba su rango. Para R20-11 debe tenerse en cuenta que los releases posteriores modificaron los códigos de error y las reglas de sincronicidad.

En la pila criptográfica Classic, CryIf actúa como intermediario entre CSM en la Service Layer y Crypto Driver en MCAL. Las solicitudes de las aplicaciones discurren a través de canales lógicos hasta los motores de hardware de un HSM SWS CSM Fig. 7.4 p. 27. Un canal es la vía desde una cola de CSM a través de CryIf hasta un Crypto Driver Object; cada cola de CSM está asignada exactamente a un canal SWS CSM p. 26. Los canales se configuran en el contenedor CryIfChannel con CryIfChannelId y CryIfDriverObjectRef SWS CryIf p. 51. Antes de cualquier uso, CryIf_Init inicializa el módulo con una configuración específica de la implementación [SWS_CryIf_91000].

kontext cluster_app Application Layer cluster_srv Service Layer cluster_ecu ECU Abstraction Layer cluster_mcal MCAL cluster_hw Microcontroller (HSM) app1 App1 (AES) rte RTE app1->rte app2 App2 (AES) app2->rte app3 App3 (RSA) app3->rte csm CSM Queue je Kanal rte->csm Krypto-Dienste cryif CryIf CryIfChannel csm->cryif CryIf_ProcessJob, CryIf_CancelJob, CryIf_Key… cryif->csm Csm_CallbackNotification crypto Crypto Driver Crypto Driver Objects cryif->crypto Weiterleitung je Kanal an Crypto Driver Object det DET cryif->det Det_ReportError, Det_ReportRuntimeError crypto->cryif CryIf_CallbackNotification hwaes HW-AES crypto->hwaes Kanal AES hwrsa HW-RSA crypto->hwrsa Kanal RSA

Diagrama de contexto: CryIf reenvía las órdenes del CSM canal por canal a los Crypto Driver Objects y devuelve los resultados al CSM. Fuentes: SWS CSM Fig. 7.4 p. 27, [SWS_CryIf_91100]

La interfaz central es CryIf_ProcessJob. La función es reentrante y opera de forma síncrona o asíncrona según la configuración [SWS_CryIf_91003]. Los modos de funcionamiento START, UPDATE y FINISH pueden combinarse, de modo que la misma función cubre tanto llamadas individuales como streaming SWS CryIf p. 22. El controlador notifica los resultados asíncronos mediante CryIf_CallbackNotification [SWS_CryIf_91013]. CryIf los reenvía a través de Csm_CallbackNotification al CSM [SWS_CryIf_91100]. CryIf_CancelJob cancela en el controlador los trabajos en curso [SWS_CryIf_91014].

Procesamiento de jobs mediante CryIf_ProcessJobCSMCryIfCrypto Driver ObjectDETCryIf_ProcessJob(channelId, job)Comprobar los ID de clavey mapear a los ID del controladoroptID de clave fuera de rangoCRYPTO_E_PARAM_HANDLE meldenE_NOT_OKCrypto_ProcessJob(…, job)altsynchron konfiguriertBerechnungErgebnis (E_OK / CRYPTO_E_…)Transmitir el valor de retornoasynchron konfiguriertValor de retorno de la transferenciaTransmitir el valor de retornoBerechnung,p. ej., desde la función principal (MainFunction)CryIf_CallbackNotification(job, result)Csm_CallbackNotification(job, result)

Diagrama de secuencia: CryIf comprueba los ID de clave y a continuación reenvía el trabajo. El resultado se devuelve de forma síncrona como valor de retorno o de forma asíncrona mediante dos etapas de callback. Fuentes: [SWS_CryIf_91003], [SWS_CryIf_91013], SWS Crypto p. 27

Antes del reenvío, CryIf mapea sus propios ID de clave a los ID del controlador. Si se encuentran fuera de rango, notifica CRYPTO_E_PARAM_HANDLE a DET y devuelve E_NOT_OK [SWS_CryIf_00133] [SWS_CryIf_00134]. Además, CryIf ofrece funciones síncronas para establecer, marcar como válida e inválida, leer, generar, derivar, intercambiar y copiar claves. Si durante la copia parcial el origen y el destino se encuentran en controladores distintos, CryIf lee el elemento y lo escribe él mismo en el destino [SWS_CryIf_00140].

Los errores de desarrollo como CRYIF_E_UNINIT o CRYIF_E_PARAM_POINTER se envían a DET [SWS_CryIf_00009]. Los errores de tiempo de ejecución como CRYPTO_E_BUSY o CRYPTO_E_KEY_NOT_VALID se devuelven como valores de retorno [SWS_CryIf_91020]. Los releases posteriores difieren de R20-11: unifican CRYIF_E_PARAM_HANDLE y definen CryIf_RandomSeed así como CryIf_KeyGenerate como síncronos SWS CryIf p. 1.

Rol de CryIf entre Crypto Service Manager y Crypto Driver

La Crypto Interface (CryIf) se ubica en la pila criptográfica Classic dentro de la ECU Abstraction Layer. Las aplicaciones solicitan servicios criptográficos a través de RTE y CSM. Estas solicitudes discurren a través de canales lógicos mediante CryIf hacia el Crypto Driver en MCAL y continúan hacia sus motores de hardware, tales como HW-AES y HW-RSA en un HSM SWS CSM Fig. 7.4 p. 27. Un Crypto Driver Object representa una «instalación» criptográfica independiente en hardware o software, por ejemplo un acelerador AES o una implementación de RSA en software SWS CSM p. 26. CryIf no realiza cálculos por sí mismo. Sus funciones reenvían la llamada correspondiente al Crypto Driver Object configurado, tales como [SWS_CryIf_91005], [SWS_CryIf_91007], [SWS_CryIf_91009] y [SWS_CryIf_91014].

Hacia arriba, CryIf ofrece tres grupos de interfaces:

Para un trabajo en estado «ACTIVE», CSM llama a CryIf_ProcessJob y reenvía su valor de retorno sin modificaciones SWS CSM p. 22. Hacia abajo, CryIf recibe a través de CryIf_CallbackNotification [SWS_CryIf_91013] las notificaciones de finalización del controlador SWS Crypto p. 27. De otros módulos requiere Csm_CallbackNotification y Det_ReportRuntimeError [SWS_CryIf_91100], de forma opcional además Det_ReportError [SWS_CryIf_91101].

kontext cluster_app Application Layer cluster_srv Service Layer cluster_ecu ECU Abstraction Layer cluster_mcal MCAL cluster_hw Microcontroller (HSM) app1 App1 (AES) rte RTE app1->rte app2 App2 (AES) app2->rte app3 App3 (RSA) app3->rte csm CSM Queue je Kanal rte->csm Krypto-Dienste cryif CryIf CryIfChannel csm->cryif CryIf_ProcessJob, CryIf_CancelJob, CryIf_Key… cryif->csm Csm_CallbackNotification crypto Crypto Driver Crypto Driver Objects cryif->crypto Weiterleitung je Kanal an Crypto Driver Object det DET cryif->det Det_ReportError, Det_ReportRuntimeError crypto->cryif CryIf_CallbackNotification hwaes HW-AES crypto->hwaes Kanal AES hwrsa HW-RSA crypto->hwrsa Kanal RSA

Diagrama de contexto: CryIf conecta las colas de CSM canal por canal con los Crypto Driver Objects y devuelve los resultados al CSM. Fuentes: SWS CSM Fig. 7.4 p. 27, [SWS_CryIf_91100], [SWS_CryIf_91013]

Canales, configuración e inicialización

Un canal es la vía desde una cola de CSM a través de CryIf hasta un Crypto Driver Object. Cada cola de CSM está asignada exactamente a un canal; de manera opcional, el Crypto Driver también dispone de una cola propia SWS CSM p. 26. Los canales se configuran en el contenedor CryIfChannel, con multiplicidad 0..* y configuración pre-compile en todas las variantes. El contenedor contiene los parámetros CryIfChannelId y CryIfDriverObjectRef SWS CryIf p. 51. CryIfChannelId determina a qué canal está conectada una cola de CSM. En tiempo de ejecución, el parámetro channelId de [SWS_CryIf_91003] y [SWS_CryIf_91014] designa asimismo el canal criptográfico. Interpretación: es de suponer que CryIfDriverObjectRef vincule el canal al Crypto Driver Object que ejecuta las órdenes de dicho canal. Pregunta Q-5f8f778dc8552b7f (abierta)

Antes de cualquier uso debe llamarse a CryIf_Init [SWS_CryIf_91000]. La función es síncrona y no reentrante. Recibe un puntero a la configuración seleccionada de tipo CryIf_ConfigType, cuyo contenido es específico de la implementación [SWS_CryIf_91118] SWS CryIf p. 20. Para una inicialización fallida, la lista de errores contempla CRYIF_E_INIT_FAILED (0x01) [SWS_CryIf_00009]. CryIf_GetVersionInfo es reentrante y proporciona la información de versión del módulo [SWS_CryIf_91001].

Además de los canales, CryIf gestiona identificadores de clave propios (cryIfKeyId). Los mapea a los ID de clave del controlador competente [SWS_CryIf_00133]. Si un trabajo utiliza una redirección del procesamiento de trabajos (job processing redirection), CryIf adapta adicionalmente las referencias entrantes de claves y de elementos de clave a las del controlador [SWS_CryIf_00136]. Una clave consta de uno o más elementos de clave, tales como material de clave, vector de inicialización o semilla (seed) SWS CSM p. 30.

Procesamiento de trabajos desde CryIf_ProcessJob hasta la notificación de retorno

La llamada individual y el streaming discurren a través de la misma función CryIf_ProcessJob. El campo job->jobPrimitiveInputOutput.mode contiene los modos de funcionamiento «START», «UPDATE» y «FINISH», que se pueden combinar. Un servicio completo en una única llamada corresponde a la combinación de los tres modos SWS CryIf p. 22. La función es reentrante y opera de forma síncrona o asíncrona según la configuración [SWS_CryIf_91003]. Las transiciones de estado de un trabajo las realiza el Crypto Driver, no el CSM SWS CSM p. 22.

En el caso asíncrono, el controlador transfiere únicamente la información necesaria a la primitiva. El cálculo puede entonces iniciarse desde la función Main. Tras la finalización, el controlador notifica a CryIf el trabajo y el resultado a través de CryIf_CallbackNotification SWS Crypto p. 27. Esta función es síncrona y no reentrante; el trabajo transmitido contiene un ID de callback que lo identifica [SWS_CryIf_91013]. CryIf notifica entonces la finalización a través de Csm_CallbackNotification al CSM; esta función está prevista expresamente para la capa subyacente CRYIF [SWS_CryIf_91100]. Si el bit FINISH está establecido, CSM llama al callback configurado SWS CSM p. 82.

Procesamiento de jobs mediante CryIf_ProcessJobCSMCryIfCrypto Driver ObjectDETCryIf_ProcessJob(channelId, job)Comprobar los ID de clavey mapear a los ID del controladoroptID de clave fuera de rangoCRYPTO_E_PARAM_HANDLE meldenE_NOT_OKCrypto_ProcessJob(…, job)altsynchron konfiguriertBerechnungErgebnis (E_OK / CRYPTO_E_…)Transmitir el valor de retornoasynchron konfiguriertValor de retorno de la transferenciaTransmitir el valor de retornoBerechnung,p. ej., desde la función principal (MainFunction)CryIf_CallbackNotification(job, result)Csm_CallbackNotification(job, result)

Diagrama de secuencia: CryIf comprueba primero los ID de clave y a continuación reenvía el trabajo. El resultado se devuelve bien de forma síncrona como valor de retorno, bien de forma asíncrona mediante dos etapas de callback. Fuentes: [SWS_CryIf_91003], [SWS_CryIf_00134], [SWS_CryIf_91013], [SWS_CryIf_91100], SWS Crypto p. 27

Los trabajos asíncronos en curso y los trabajos de streaming pueden cancelarse. Para ello, CSM elimina el trabajo de su propia cola o llama a CryIf_CancelJob SWS CSM p. 80. CryIf_CancelJob es síncrona y reentrante, y reenvía la cancelación al Crypto Driver Object configurado. E_OK significa que el trabajo ha sido eliminado; E_NOT_OK significa que ello no fue posible [SWS_CryIf_91014] SWS CryIf p. 24. Los pasajes documentales de releases posteriores (R24-11/R25-11) mencionan adicionalmente CRYPTO_E_JOB_CANCELED. En este caso, la cancelación solo se produce en el siguiente paso de procesamiento adecuado y se notifica mediante un callback de finalización negativo SWS CSM p. 80.

Cancelación de un trabajoAplicaciónCSMCryIfCrypto Driver ObjectCsm_CancelJob(job, mode)altTrabajo todavía en la cola del CSMEliminar trabajo de la propia colaEl trabajo ya está en el controladorCryIf_CancelJob(channelId, job)Abbruch weiterleiten(Crypto_CancelJob)E_OK / E_NOT_OK(más tarde también CRYPTO_E_JOB_CANCELED)Valor de retornoE_OK: CSM llama al callback de finalización del trabajoCRYPTO_E_JOB_CANCELED: cancelación en el siguientegeeigneten Schritt, negativer Abschluss-CallbackValor de retorno

Diagrama de secuencia: Una cancelación finaliza bien directamente en la cola de CSM o bien se reenvía a través de CryIf al Crypto Driver Object. Fuentes: [SWS_CryIf_91014], SWS CSM p. 80, SWS CryIf p. 45

Mapear y comprobar ID de clave en el trabajo

Algunos trabajos llevan asociado un servicio de gestión de claves: CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL o CRYPTO_KEYEXCHANGECALCSECRET. Para ellos, CryIf comprueba si job->jobPrimitiveInputOutput->cryIfKeyId y, dado el caso, targetCryIfKeyId se encuentran dentro del rango válido. Si es así, establece job->cryptoKeyId o job->targetCryptoKeyId con los ID de clave del controlador [SWS_CryIf_00133] [SWS_CryIf_00141]. Si el ID de origen se encuentra fuera de rango, CryIf_ProcessJob notifica CRYPTO_E_PARAM_HANDLE a DET y devuelve E_NOT_OK [SWS_CryIf_00134]. Para CRYPTO_KEYDERIVE se aplica lo mismo también para el ID de destino [SWS_CryIf_00135].

Las primitivas con referencia a claves también se comprueban. En CRYPTO_MACGENERATE, CRYPTO_MACVERIFY, CRYPTO_ENCRYPT, CRYPTO_DECRYPT, CRYPTO_AEADENCRYPT, CRYPTO_AEADDECRYPT, CRYPTO_RANDOMGENERATE, CRYPTO_SIGNATUREGENERATE y CRYPTO_SIGNATUREVERIFY se comprueba que job->jobPrimitiveInfo->cryIfKeyId se encuentre en el rango válido [SWS_CryIf_00143].

keyid start CryIf_ProcessJob(channelId, job) d1 ¿Servicio de gestión de claves? KEYSETVALID, KEYSETINVALID, RANDOMSEED, KEYGENERATE, KEYDERIVE, KEYEXCHANGECALCPUBVAL, KEYEXCHANGECALCSECRET start->d1 c1 ¿jobPrimitiveInputOutput->cryIfKeyId en el rango válido? d1->c1 Sí d3 ¿Primitiva con clave? MACGENERATE/-VERIFY, (AEAD)ENCRYPT/DECRYPT, RANDOMGENERATE, SIGNATUREGENERATE/-VERIFY d1->d3 No d2 Dienst = CRYPTO_KEYDERIVE? c1->d2 Sí err CRYPTO_E_PARAM_HANDLE a DET retorno E_NOT_OK c1->err No c2 ¿targetCryIfKeyId en el rango válido? d2->c2 Sí map Establecer job->cryptoKeyId (en su caso job->targetCryptoKeyId) a los ID de clave del controlador d2->map No c2->map Sí c2->err No fwd Reenviar a Crypto Driver Object del canal map->fwd c3 ¿jobPrimitiveInfo->cryIfKeyId en el rango válido? d3->c3 Sí d3->fwd No c3->err No c3->fwd Sí

Diagrama de actividades: CryIf comprueba los ID de clave en función del tipo de servicio y los mapea a los ID del controlador antes de reenviar el trabajo. Fuentes: [SWS_CryIf_00133], [SWS_CryIf_00134], [SWS_CryIf_00135], [SWS_CryIf_00143]

Esta área ha variado entre los releases. R20-11 menciona en las comprobaciones CRYPTO_E_PARAM_HANDLE, mientras que la lista de errores del módulo define en cambio CRYIF_E_PARAM_HANDLE (0x03) [SWS_CryIf_00009]. Según el historial de cambios, esto no se unificó a CRYIF_E_PARAM_HANDLE hasta R22-11 SWS CryIf p. 1. Con este mismo cambio se suprimieron los valores de retorno tras notificaciones a DET. Además, se añadió el servicio CRYPTO_CUSTOM, que en el pasaje documental posterior ya figura en la lista SWS CryIf p. 23. Para R20-11 aplican los Requirements en la forma aquí citada.

Gestión de claves: material, estado, generación e intercambio

Las API directas de claves son síncronas. No son reentrantes CryIf_KeyElementSet [SWS_CryIf_91004], CryIf_KeySetValid [SWS_CryIf_91005], CryIf_KeySetInvalid [SWS_CryIf_91021] y CryIf_KeyGetStatus [SWS_CryIf_91012]. La funcionalidad para el estado de la clave se incorporó según el historial de cambios con R20-11 SWS CryIf p. 1. Si el establecimiento de un elemento falla, su estado se considera desconocido según la especificación de CSM SWS CSM p. 62. Este puede comprobarse con Csm_KeyGetStatus, que a su vez llama a CryIf_KeyGetStatus SWS CSM p. 63.

CryIf_KeyElementGet es reentrante [SWS_CryIf_91006]. El parámetro resultLengthPtr sirve como entrada y salida. En el momento de la llamada contiene el tamaño del búfer; en el caso de elementos con acceso parcial contiene en su lugar la cantidad que se desea leer. Tras la finalización contiene la cantidad de datos efectivamente depositada SWS CryIf p. 30.

schluesselstatus start comenzar gesetzt Elementos establecidos (aún no declarados válidos, interpretación) start->gesetzt CryIf_KeyElementSet valid válido (valid) gesetzt->valid CryIf_KeySetValid valid->valid Nutzung in Jobs, CryIf_KeyGetStatus invalid no válido (invalid) valid->invalid CryIf_KeySetInvalid invalid->valid CryIf_KeySetValid invalid->invalid Nutzung scheitert: CRYPTO_E_KEY_NOT_VALID

Diagrama de estados: Una clave se declara válida tras establecer sus elementos y puede volver a marcarse como inválida. Con una clave no válida, las operaciones fallan con CRYPTO_E_KEY_NOT_VALID. El estado inicial antes de CryIf_KeySetValid es una interpretación. Fuentes: [SWS_CryIf_91004], [SWS_CryIf_91005], [SWS_CryIf_91021], [SWS_CryIf_91012], SWS CSM p. 70

Para la generación de claves, CryIf_RandomSeed [SWS_CryIf_91007] suministra los valores iniciales y CryIf_KeyGenerate [SWS_CryIf_91008] genera la clave. Según la especificación de CSM, la clave se crea en el elemento CRYPTO_KE_KEYGENERATE_KEY. La base son la semilla (seed) en CRYPTO_KE_KEYGENERATE_SEED y el algoritmo en CRYPTO_KE_KEYGENERATE_ALGORITHM SWS CSM p. 67. En R20-11, ambas funciones operan de forma síncrona o asíncrona según la configuración [SWS_CryIf_91007] [SWS_CryIf_91008]. No es hasta R21-11 cuando se fijan como síncronas SWS CryIf p. 1. CryIf_KeyDerive es síncrona y reentrante, y deriva a partir de una clave de origen una clave que se almacena en la clave de destino [SWS_CryIf_91009] SWS CryIf p. 42.

Para el intercambio de claves Diffie-Hellman existen dos funciones. CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] calcula el valor público propio. CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] calcula el secreto compartido a partir del valor del interlocutor. El material de clave reside en los elementos CRYPTO_KE_KEYEXCHANGE_BASE, CRYPTO_KE_KEYEXCHANGE_PRIVKEY y CRYPTO_KE_KEYEXCHANGE_OWNPUBKEY SWS CSM p. 70. El controlador almacena el secreto como elemento en la misma clave SWS Crypto p. 84. Interpretación: también en las API directas de claves es de suponer que CryIf mapee el cryIfKeyId al ID de clave del controlador, al igual que en la ruta del trabajo [SWS_CryIf_00133]. Pregunta Q-f146ad33e972fa97 (abierta)

Intercambio de claves a través de CryIfAnwendung / CSMCryIfCrypto Driver ObjectKommunikationspartnerUse Case: Calcular el valor público propioCryIf_KeyExchangeCalcPubVal(cryIfKeyId,publicValuePtr, publicValueLengthPtr)an konfiguriertes Crypto Driver Object weiterleitenvalor público, valor de retornovalor público, valor de retornoUse Case: Intercambio fuera de CryIfenviar el valor público propioenviar el valor público de la contraparteUse Case: Gemeinsames Geheimnis berechnenCryIf_KeyExchangeCalcSecret(cryIfKeyId,partnerPublicValuePtr, partnerPublicValueLength)Crypto_KeyExchangeCalcSecret(…)Secreto como elemento de clavealmacenar en la misma claveValor de retornoValor de retorno

Diagrama de secuencia: El intercambio de claves se realiza en dos llamadas a CryIf. Entre ambas, la aplicación intercambia los valores públicos con el interlocutor fuera de CryIf. Fuentes: [SWS_CryIf_91010], [SWS_CryIf_91011], SWS CSM p. 70, SWS Crypto p. 84

Copia de claves dentro de Crypto Drivers y entre ellos

Para realizar copias existen CryIf_KeyElementCopy [SWS_CryIf_91015], CryIf_KeyCopy [SWS_CryIf_91016] y CryIf_KeyElementCopyPartial [SWS_CryIf_91018]. Las tres son síncronas y reentrantes, pero no para el mismo cryIfKeyId. Además de E_OK y E_NOT_OK, pueden devolver entre otros CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_SIZE_MISMATCH y CRYPTO_E_KEY_EMPTY SWS CryIf p. 35.

En la copia parcial, la especificación distingue dos casos:

  • La clave de origen y la de destino se encuentran en el mismo Crypto Driver: CryIf llama a Crypto_<vi>_<ai>_KeyElementCopyPartial() del controlador asignado y reenvía su valor de retorno [SWS_CryIf_00139].
  • Las claves se encuentran en controladores distintos: CryIf lee el elemento con Crypto_<vi>_<ai>_KeyElementGet(), copia los datos parciales a su destino y escribe el elemento de destino con Crypto_<vi>_<ai>_KeyElementSet() [SWS_CryIf_00140].

Las funciones de copia de los controladores son interfaces opcionales. Si un elemento reside directamente en la memoria flash, una llamada puede tardar un tiempo significativamente mayor SWS CryIf p. 45.

copypartial start CryIf_KeyElementCopyPartial(…) fehler Fehler durch CryIf erkannt? start->fehler abbruch sin reenvío (véase el comportamiento en caso de error) fehler->abbruch Sí gleich ¿cryIfKeyId y targetCryIfKeyId en el mismo Crypto Driver? fehler->gleich No ende Ende abbruch->ende partial Llamar a Crypto_<vi>_<ai>_KeyElementCopyPartial() y transmitir el valor de retorno gleich->partial Sí lesen Leer el elemento de origen con Crypto_<vi>_<ai>_KeyElementGet() gleich->lesen No partial->ende kopieren Teildaten an Zielposition kopieren lesen->kopieren schreiben Escribir el elemento de destino con Crypto_<vi>_<ai>_KeyElementSet() kopieren->schreiben schreiben->ende

Diagrama de actividades: Que CryIf delegue directamente en el controlador o copie por sí mismo mediante lectura y escritura depende de si las claves residen en el mismo controlador. Fuentes: [SWS_CryIf_00139], [SWS_CryIf_00140]

Comportamiento en caso de error

CryIf notifica los errores de desarrollo a DET. La lista de errores del módulo comprende [SWS_CryIf_00009]:

código de errorValorMotivo
CRYIF_E_UNINIT0x00Llamada a la API antes de la inicialización
CRYIF_E_INIT_FAILED0x01Inicialización fallida
CRYIF_E_PARAM_POINTER0x02Puntero nulo como parámetro
CRYIF_E_PARAM_HANDLE0x03Parámetro fuera de rango
CRYIF_E_PARAM_VALUE0x04Valor de parámetro no válido
CRYIF_E_KEY_SIZE_MISMATCH0x05El tamaño del elemento de origen y del elemento de destino no coincide

La notificación de CRYIF_E_UNINIT antes de la inicialización está constatada para varias funciones: CryIf_KeyDerive SWS CryIf p. 42, CryIf_RandomSeed SWS CryIf p. 37, CryIf_CancelJob SWS CryIf p. 24, CryIf_KeyGetStatus SWS CryIf p. 29 y CryIf_CallbackNotification SWS CryIf p. 44. Para los demás servicios probablemente aplique lo mismo. Pregunta (abierta) Asimismo están constatadas otras comprobaciones. CryIf_CancelJob notifica CRYIF_E_PARAM_HANDLE ante un channelId no permitido, y CryIf_KeyGetStatus ante un cryIfKeyId no permitido. CryIf_CallbackNotification comprueba su puntero y notifica dado el caso CRYIF_E_PARAM_POINTER SWS CryIf p. 44.

Los errores de tiempo de ejecución provienen como valores de retorno del controlador. CryIf los reenvía, tal como establece por ejemplo [SWS_CryIf_00139] para la copia parcial. CSM traslada a su vez el valor de retorno de CryIf_ProcessJob SWS CSM p. 22. El rango de valores comprende entre otros [SWS_CryIf_91020]:

  • CRYPTO_E_BUSY (0x02): servicio todavía ocupado
  • CRYPTO_E_ENTROPY_EXHAUSTED (0x04)
  • CRYPTO_E_KEY_READ_FAIL (0x06)
  • CRYPTO_E_KEY_WRITE_FAIL (0x07)
  • CRYPTO_E_KEY_NOT_AVAILABLE (0x08)
  • CRYPTO_E_KEY_NOT_VALID (0x09)

Si una cola de CSM está llena, ya el propio CSM rechaza la orden con CRYPTO_E_BUSY SWS CSM p. 22.

En cuanto a los valores de retorno, merece la pena observar el historial de releases. CRYPTO_E_QUEUE_FULL no se retiró de [SWS_CryIf_91003] hasta R23-11. CRYPTO_E_KEY_EMPTY no se añadió para CryIf_RandomSeed hasta R24-11 SWS CryIf p. 1. Para R20-11 son determinantes por tanto los requisitos de API de ese release, y no los pasajes documentales de fecha posterior.

Más evidencia detallada

Guía generada por IA sobre la base de los Requirements de R20-11 y los pasajes documentales asignados, que proceden en parte de releases posteriores. El texto determinante es la especificación AUTOSAR.

Crypto Interface (CryIf)

Abstracts cryptographic hardware and software acceleration engines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función CryIf_Init [SWS_CryIf_91000] 📄 PDF

void CryIf_Init (const CryIf_ConfigType* configPtr);

Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 2b39ab06c8cb 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 CryIf_Init sirve para la inicialización completa del módulo Crypto Interface (CryIf) según AUTOSAR Classic Platform [SWS_CryIf_91000]. La función está declarada en el archivo de cabecera CryIf.h y tiene el ID de servicio 0x00 [SWS_CryIf_91000]. Como único parámetro de entrada, la interfaz espera configPtr, un puntero a una estructura de configuración seleccionada del tipo CryIf_ConfigType [SWS_CryIf_91000]. La función no devuelve ningún valor de retorno (void) y no posee parámetros de entrada/salida ni de salida [SWS_CryIf_91000].

Semántica y concurrencia

La llamada a CryIf_Init se ejecuta de forma síncrona [SWS_CryIf_91000]. De este modo, el módulo completa todas las tareas de inicialización necesarias antes de que la ejecución se devuelva al llamador. En cuanto a la concurrencia, la función está clasificada como no reentrante (Non Reentrant) [SWS_CryIf_91000]. Por lo tanto, la rutina no debe invocarse en ningún momento de forma paralela o anidada.

Restricciones e integración

Interpretación: la llamada a CryIf_Init normalmente debería tener lugar de forma centralizada durante el arranque del sistema en el marco de la fase de inicialización del software básico, antes de que se puedan invocar servicios posteriores de la interfaz criptográfica. Pregunta Q-31b82ca9b144c843 (abierta) Dado que el payload no menciona tratamientos de errores específicos, notificaciones DET ni eventos DEM, el llamador debe garantizar previamente un puntero válido a la configuración. En el payload no se definen requisitos relacionados.

Esta nota de uso se generó de forma automatizada y se basa exclusivamente en los datos de especificación de SWS_CryIf_91000.

Guía del implementador pendiente (complejidad I1)

función CryIf_ProcessJob [SWS_CryIf_91003] 📄 PDF

Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);

Service CryIf_ProcessJob.

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

La función CryIf_ProcessJob (Service ID 0x03), proporcionada a través de la cabecera CryIf.h, reenvía órdenes de procesamiento criptográfico al correspondiente Crypto Driver Object configurado [SWS_CryIf_91003]. Como parámetros toma el identificador del canal criptográfico (channelId), así como un puntero a la configuración de la orden (job) [SWS_CryIf_91003]. La estructura job contiene toda la información relevante tanto para el usuario como para la primitiva criptográfica específica [SWS_CryIf_91003]. El procesamiento de la orden se efectúa de forma síncrona o asíncrona en función de la configuración; además, la interfaz está implementada como reentrante [SWS_CryIf_91003].

En caso de una aceptación sin errores, la función devuelve E_OK [SWS_CryIf_91003]. Si la solicitud falla, el valor de retorno indica E_NOT_OK o un estado de error específico del controlador: CRYPTO_E_BUSY (objeto de controlador ocupado), CRYPTO_E_QUEUE_FULL (cola llena), errores relativos a los estados de clave tales como CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_EMPTY, CRYPTO_E_KEY_READ_FAIL o CRYPTO_E_KEY_WRITE_FAIL, así como CRYPTO_E_JOB_CANCELED en caso de cancelación de una orden síncrona y CRYPTO_E_ENTROPY_EXHAUSTED [SWS_CryIf_91003].

Además, la interfaz realiza comprobaciones previas de los identificadores de clave:

  • Si job->jobPrimitiveInfo->primitiveInfo->service está ajustado a CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL o CRYPTO_KEYEXCHANGECALCSECRET, job->cryIfKeyId debe encontrarse en el rango de valores válido [SWS_CryIf_00134]. En caso contrario, la función notifica el error CRYPTO_E_PARAM_HANDLE al DET y cancela con E_NOT_OK [SWS_CryIf_00134].
  • Si se solicita el servicio CRYPTO_KEYDERIVE, además el identificador de clave de destino job->cryIfTargetKeyId debe encontrarse dentro del rango válido; de lo contrario, también se notifica CRYPTO_E_PARAM_HANDLE al DET y se devuelve E_NOT_OK [SWS_CryIf_00135].

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

función CryIf_CancelJob [SWS_CryIf_91014] 📄 PDF

Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);

This interface dispatches the job cancellation function to the configured crypto driver object.

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

La función CryIf_CancelJob sirve para el reenvío de una solicitud de cancelación de un trabajo criptográfico al objeto de controlador criptográfico configurado [SWS_CryIf_91014]. Proporciona la interfaz estandarizada del Crypto Interface, está declarada a través de la cabecera CryIf.h y posee el Service ID 0x0e [SWS_CryIf_91014].

Para la llamada deben pasarse el identificador del canal de destino, así como la configuración del trabajo [SWS_CryIf_91014]:

  • channelId (entrada, uint32): contiene el identificador del canal criptográfico correspondiente [SWS_CryIf_91014].
  • job (entrada/salida, Crypto_JobType*): puntero a la configuración del trabajo, la cual incluye estructuras con información relevante para el usuario y la primitiva [SWS_CryIf_91014].

La ejecución se realiza de forma síncrona y devuelve un estado del tipo Std_ReturnType al emisor de la llamada [SWS_CryIf_91014]:

  • E_OK: la solicitud fue exitosa y el trabajo se eliminó del controlador [SWS_CryIf_91014].
  • E_NOT_OK: la solicitud ha fallado, ya que el trabajo no se pudo eliminar [SWS_CryIf_91014].
  • CRYPTO_E_JOB_CANCELED: valor de retorno criptográfico especificado para la confirmación de la cancelación del trabajo [SWS_CryIf_91014].

En cuanto al comportamiento de concurrencia, CryIf_CancelJob está especificada como reentrante [SWS_CryIf_91014]. Esto permite llamadas paralelas para la cancelación de órdenes, delegándose la gestión de forma bloqueante al objeto de controlador subyacente [SWS_CryIf_91014].

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

función CryIf_KeyElementSet [SWS_CryIf_91004] 📄 PDF

Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

This function shall dispatch the set key element function to the configured crypto driver object.

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

La función síncrona CryIf_KeyElementSet (ID de servicio 0x04) reenvía la solicitud para establecer un elemento de clave al objeto controlador criptográfico configurado [SWS_CryIf_91004]. La declaración de la función se proporciona a través del archivo de cabecera CryIf.h [SWS_CryIf_91004].

La llamada se realiza a través de cuatro parámetros de entrada [SWS_CryIf_91004]:

  • cryIfKeyId: designa el identificador de la clave cuyo elemento de clave se va a actualizar.
  • keyElementId: designa el identificador del elemento de clave concreto que se debe establecer.
  • keyPtr: puntero al búfer con los datos de clave que se van a incorporar como elemento.
  • keyLength: indica la longitud del elemento de clave que se va a establecer en bytes.

La función está especificada como no reentrante (Non Reentrant) [SWS_CryIf_91004]. Por lo tanto, los llamadores deben asegurarse de que las llamadas no se produzcan de forma concurrente no coordinada.

El valor de retorno del tipo Std_ReturnType señaliza el resultado del reenvío o de la ejecución [SWS_CryIf_91004]:

  • E_OK: La solicitud se realizó con éxito.
  • E_NOT_OK: La solicitud ha fallado.
  • CRYPTO_E_BUSY: El objeto de controlador criptográfico asignado está ocupado actualmente.
  • CRYPTO_E_KEY_WRITE_FAIL: Se denegó el acceso de escritura al elemento de clave.
  • CRYPTO_E_KEY_NOT_AVAILABLE: La clave solicitada no está disponible.
  • CRYPTO_E_KEY_SIZE_MISMATCH: El tamaño del elemento de clave no coincide con la longitud de los datos proporcionados.

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

Guía del implementador pendiente (complejidad I1)

función CryIf_KeySetValid [SWS_CryIf_91005] 📄 PDF

Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);

This function shall dispatch the set key valid function to the configured crypto driver object.

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

usar

La interfaz síncrona CryIf_KeySetValid (Service-ID 0x05) se proporciona a través del archivo de cabecera CryIf.h y reenvía la solicitud para validar una clave al Crypto Driver Object configurado en cada caso [SWS_CryIf_91005]. Como único parámetro se pasa el identificador cryIfKeyId, el cual determina la clave de destino cuyos elementos de clave se deben marcar como válidos [SWS_CryIf_91005]. Para esta función no existen parámetros adicionales de entrada/salida ni de salida [SWS_CryIf_91005].

Valores de retorno y tratamiento de errores

El valor de retorno de tipo Std_ReturnType informa al llamador sobre el resultado del reenvío y del procesamiento en el controlador [SWS_CryIf_91005]:

  • E_OK: La operación se reenvió correctamente al Crypto Driver Object y finalizó con éxito [SWS_CryIf_91005].
  • E_NOT_OK: Falló el reenvío o la ejecución de la solicitud [SWS_CryIf_91005].
  • CRYPTO_E_BUSY: La solicitud no se pudo ejecutar porque el Crypto Driver Object competente está ocupado actualmente [SWS_CryIf_91005].

Concurrencia y restricciones

En la especificación, la función se designa expresamente como no reentrante (Non Reentrant) [SWS_CryIf_91005]. Por lo tanto, las entidades llamadoras deben garantizar que las llamadas a CryIf_KeySetValid nunca se ejecuten de forma concurrente o interrumpiéndose entre sí, con el fin de evitar de manera fiable conflictos durante el reenvío al objeto de controlador.

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

función CryIf_KeySetInvalid [SWS_CryIf_91021] 📄 PDF

Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);

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

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

La interfaz síncrona CryIf_KeySetInvalid (Service-ID 0x14) establece como no válido el estado de la clave identificada a través del parámetro cryIfKeyId [SWS_CryIf_91021]. La declaración de la función se proporciona a través del archivo de cabecera CryIf.h [SWS_CryIf_91021].

Para el uso de la función se aplican los siguientes parámetros y valores de retorno [SWS_CryIf_91021]:

  • Parámetros de transferencia: A través del parámetro de entrada cryIfKeyId de tipo uint32 se pasa el identificador de la clave cuya validez se debe revocar. No existen parámetros de entrada y salida.
  • Valor de retorno (Std_ReturnType):
    • E_OK: La solicitud de cambio de estado se realizó con éxito.
    • E_NOT_OK: La solicitud ha fallado.
    • CRYPTO_E_BUSY: La ejecución ha fallado porque el Crypto Driver Object competente está ocupado.

En relación con la concurrencia y el contexto de ejecución, CryIf_KeySetInvalid está especificada como no reentrante (Non Reentrant) [SWS_CryIf_91021]. Por lo tanto, las entidades llamadoras deben asegurarse de que las llamadas se realicen secuencialmente y no se solapen entre sí. Si se produce el valor de retorno CRYPTO_E_BUSY, el Crypto Driver Object está bloqueado temporalmente [SWS_CryIf_91021]; en tal caso, el llamador probablemente sea responsable de reintentar más adelante la invalidación de estado. Pregunta Q-4377065d4d4eecab (abierta)

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

Guía del implementador pendiente (complejidad I1)

función CryIf_KeyGetStatus [SWS_CryIf_91012] 📄 PDF

Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by cry If Key Id.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5bef488620f3 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 CryIf_KeyGetStatus sirve para la consulta síncrona del estado de una clave criptográfica dentro del Crypto Interface [SWS_CryIf_91012]. Está disponible a través de la cabecera CryIf.h con el Service ID 0x13 [SWS_CryIf_91012]. En la llamada se pasan los siguientes parámetros:

  • cryIfKeyId (entrada): identificador unívoco de la clave cuyo estado se va a determinar [SWS_CryIf_91012].
  • keyStatusPtr (salida): puntero a una variable del tipo Crypto_KeyStatusType en la que se escribe el estado de la clave [SWS_CryIf_91012].

Tratamiento de errores y valores de retorno

El valor de retorno del tipo Std_ReturnType indica el resultado de la ejecución [SWS_CryIf_91012]:

En la especificación del elemento no se indican códigos de error específicos, notificaciones de DET ni eventos de DEM; el tratamiento de errores por parte del emisor de la llamada se basa principalmente en la evaluación del valor de retorno.

Concurrencia y restricciones

La función está especificada como no reentrante (Non Reentrant) [SWS_CryIf_91012]. Por lo tanto, los emisores de la llamada deben asegurarse de que no se produzcan llamadas simultáneas o de interrupción para la misma o diferentes instancias de clave. Además, el emisor de la llamada probablemente debe proporcionar un área de memoria válida para el puntero de salida keyStatusPtr, ya que la función escribe directamente en él. Pregunta Q-da3a034d4f2e9442 (abierta)

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

Guía del implementador pendiente (complejidad I1)

función CryIf_KeyElementGet [SWS_CryIf_91006] 📄 PDF

Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This function shall dispatch the get key ele ment function to the configured crypto driver object.

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

La función síncrona CryIf_KeyElementGet reenvía la consulta de un elemento de clave al Crypto Driver Object configurado [SWS_CryIf_91006]. Está declarada a través del archivo de cabecera CryIf.h y especificada como reentrante [SWS_CryIf_91006].

Uso y parámetros

Durante la llamada, cryIfKeyId identifica la clave afectada y keyElementId el elemento de clave que se va a recuperar [SWS_CryIf_91006]. Los datos útiles se almacenan en el búfer resultPtr [SWS_CryIf_91006]. El puntero resultLengthPtr sirve como parámetro combinado de entrada y salida para el control de la longitud [SWS_CryIf_91006]:

  • Antes de la ejecución, el llamador pasa en él el tamaño de búfer disponible de resultPtr [SWS_CryIf_91006].
  • Si el elemento de clave permite el acceso parcial, el valor define en su lugar la cantidad de datos que se va a recuperar, la cual no tiene por qué coincidir con el tamaño del búfer [SWS_CryIf_91006].
  • Tras finalizar la operación, la función almacena en esta ubicación de memoria la cantidad de datos realmente escrita [SWS_CryIf_91006].

Tratamiento de errores y valores de retorno

El valor de retorno de tipo Std_ReturnType señala el estado de éxito o de error [SWS_CryIf_91006]:

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

Guía del implementador pendiente (complejidad I1)

función CryIf_KeyElementCopy [SWS_CryIf_91015] 📄 PDF

Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopy.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 98ca892724e4 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 CryIf_KeyElementCopy sirve para copiar un elemento de clave de una clave de origen a una clave de destino según [SWS_CryIf_91015]. El servicio está disponible a través del archivo de cabecera CryIf.h.

Para la llamada se pasan a través de los parámetros de entrada la clave de origen (cryIfKeyId), el elemento de origen que se va a copiar (keyElementId), así como la clave de destino (targetCryIfKeyId) y el elemento de destino (targetKeyElementId) [SWS_CryIf_91015]. La función está diseñada como reentrante, pero explícitamente no para la misma cryIfKeyId [SWS_CryIf_91015]. Como interpretación, parece obvio que, para evitar conflictos de datos, los accesos simultáneos de escritura a la misma clave de destino (targetCryIfKeyId) también deberían ser sincronizados por el emisor de la llamada. Pregunta Q-cba3554c537dd498 (abierta)

El valor de retorno de tipo Std_ReturnType indica el resultado de la operación [SWS_CryIf_91015]:

  • E_OK: el proceso de copia fue exitoso.
  • E_NOT_OK: La solicitud ha fallado.
  • CRYPTO_E_BUSY: el Crypto Driver Object correspondiente está ocupado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: el elemento de clave solicitado no está disponible.
  • CRYPTO_E_KEY_READ_FAIL: la lectura del elemento de clave de origen no está permitida.
  • CRYPTO_E_KEY_WRITE_FAIL: la escritura del elemento de clave de destino no está permitida.
  • CRYPTO_E_KEY_SIZE_MISMATCH: los tamaños de los elementos de clave involucrados no son compatibles.
  • CRYPTO_E_KEY_EMPTY: el elemento de clave de origen no está inicializado.

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

Guía del implementador pendiente (complejidad I1)

función CryIf_KeyElementCopyPartial [SWS_CryIf_91018] 📄 PDF

Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopyPartial.

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

La función síncrona CryIf_KeyElementCopyPartial, proporcionada a través de la cabecera CryIf.h, copia subáreas de un elemento de clave en otro elemento de clave [SWS_CryIf_91018]. Las claves de origen y destino, así como los elementos respectivos, se especifican mediante los parámetros cryIfKeyId, keyElementId, targetCryIfKeyId y targetKeyElementId [SWS_CryIf_91018]. Las posiciones de inicio dentro de ambos elementos se determinan mediante keyElementSourceOffset y keyElementTargetOffset, mientras que keyElementCopyLength define la cantidad exacta de bytes que se van a transferir [SWS_CryIf_91018].

En cuanto a la concurrencia, la rutina está diseñada como reentrante, aunque expresamente no para la misma clave de origen (cryIfKeyId) [SWS_CryIf_91018]. Por lo tanto, las llamadas paralelas con un ID de clave de origen idéntico deben sincronizarse o evitarse por parte del llamador.

El valor de retorno comunica el estado de ejecución detallado de la solicitud síncrona [SWS_CryIf_91018]:

  • E_OK: El proceso de copia se realizó con éxito.
  • E_NOT_OK: La solicitud ha fallado.
  • CRYPTO_E_BUSY: El Crypto Driver Object competente está ocupado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: El elemento de clave de origen o destino solicitado no está disponible.
  • CRYPTO_E_KEY_READ_FAIL: la lectura del elemento de clave de origen no está permitida.
  • CRYPTO_E_KEY_WRITE_FAIL: No está permitida la escritura del elemento de clave de destino.
  • CRYPTO_E_KEY_SIZE_MISMATCH: Los tamaños de elemento o las indicaciones de offset y longitud son incompatibles.
  • CRYPTO_E_KEY_EMPTY: el elemento de clave de origen no está inicializado.

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

Guía del implementador pendiente (complejidad I1)

función CryIf_KeyCopy [SWS_CryIf_91016] 📄 PDF

Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall co py all key elements from the source key to a target key.

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

usar

La función síncrona CryIf_KeyCopy copia todos los elementos de clave desde una clave de origen a una clave de destino indicada ([SWS_CryIf_91016]). Se proporciona a través del archivo de cabecera CryIf.h y posee el Service-ID 0x10 ([SWS_CryIf_91016]).

La función espera dos parámetros de entrada ([SWS_CryIf_91016]):

  • cryIfKeyId: Identificador de la clave cuyos elementos de clave sirven como origen.
  • targetCryIfKeyId: Identificador de la clave que recibe los elementos de clave como destino.

Concurrencia y restricciones

La interfaz está especificada como reentrante, pero no debe llamarse simultáneamente para el mismo identificador de clave de origen (cryIfKeyId) ([SWS_CryIf_91016]).

Manejo de errores

El valor de retorno de tipo Std_ReturnType indica el resultado de la operación ([SWS_CryIf_91016]):

  • E_OK: Proceso de copia finalizado con éxito.
  • E_NOT_OK: solicitud fallida.
  • CRYPTO_E_BUSY: Falló debido a que el Crypto Driver Object subyacente está ocupado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: el elemento de clave solicitado no está disponible.
  • CRYPTO_E_KEY_READ_FAIL: No está permitida la lectura del elemento de clave.
  • CRYPTO_E_KEY_WRITE_FAIL: la escritura del elemento de clave de destino no está permitida.
  • CRYPTO_E_KEY_SIZE_MISMATCH: los tamaños de los elementos de clave no son compatibles entre sí.
  • CRYPTO_E_KEY_EMPTY: el elemento de clave de origen no está inicializado.

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

función CryIf_RandomSeed [SWS_CryIf_91007] 📄 PDF

Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);

This function shall dispatch the random seed function to the configured crypto driver object.

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

La función CryIf_RandomSeed sirve para reenviar la generación o alimentación de una semilla aleatoria (Random Seed) al Crypto Driver Object configurado [SWS_CryIf_91007]. Está disponible a través del archivo de cabecera CryIf.h y posee el Service ID 0x07 [SWS_CryIf_91007].

La interfaz espera tres parámetros de entrada [SWS_CryIf_91007]:

  • cryIfKeyId: Identificador de la clave para la cual se debe generar una nueva semilla.
  • seedPtr: Puntero al área de memoria con los datos para la alimentación de la semilla.
  • seedLength: Longitud de la semilla en bytes.

El comportamiento de ejecución (síncrono o asíncrono) no está predefinido de forma fija, sino que depende de la configuración respectiva [SWS_CryIf_91007]. En cuanto a la concurrencia, la función está especificada como reentrante [SWS_CryIf_91007].

Como valor de retorno, la función devuelve un Std_ReturnType con los siguientes valores de estado [SWS_CryIf_91007]:

  • E_OK: la solicitud fue exitosa.
  • E_NOT_OK: La solicitud ha fallado.
  • CRYPTO_E_KEY_NOT_VALID: La solicitud falló debido a que el estado de la clave es «invalid».

Interpretación: Al devolver CRYPTO_E_KEY_NOT_VALID, es de suponer que la comprobación se refiere a la clave pasada cryIfKeyId, aunque en el texto de la especificación se mencione divergentemente cryptoKeyId [SWS_CryIf_91007]. Pregunta Q-22b20256f21f131b (abierta)

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

función CryIf_KeyGenerate [SWS_CryIf_91008] 📄 PDF

Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);

This function shall dispatch the key generate function to the configured crypto driver object.

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

usar

La función CryIf_KeyGenerate reenvía la llamada a la función para la generación de claves al Crypto Driver Object configurado [SWS_CryIf_91008]. A través del parámetro de entrada cryIfKeyId se pasa el identificador unívoco de la clave que se debe actualizar con el valor de clave recién generado [SWS_CryIf_91008]. La declaración de esta interfaz se proporciona a través de la cabecera CryIf.h [SWS_CryIf_91008].

Comportamiento de sincronización y concurrencia

La ejecución se realiza de forma síncrona o asíncrona en función de la configuración subyacente [SWS_CryIf_91008]. En cuanto al contexto de llamada y la concurrencia, la función está especificada como reentrante [SWS_CryIf_91008].

Valores de retorno y tratamiento de errores

La llamada devuelve un valor de estado del tipo Std_ReturnType [SWS_CryIf_91008]:

  • E_OK: La solicitud de generación de clave se ejecutó con éxito [SWS_CryIf_91008].
  • E_NOT_OK: La solicitud ha fallado [SWS_CryIf_91008].
  • CRYPTO_E_BUSY: La solicitud falló porque el Crypto Driver Object invocado está ocupado actualmente [SWS_CryIf_91008].
  • CRYPTO_E_KEY_EMPTY: La solicitud falló porque un elemento de clave de origen necesario no está inicializado [SWS_CryIf_91008].
  • CRYPTO_E_KEY_NOT_VALID: La solicitud falló porque el estado de la clave referenciada por el identificador de clave no es válido [SWS_CryIf_91008].

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

función CryIf_KeyDerive [SWS_CryIf_91009] 📄 PDF

Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch th e key derive function to the configured crypto driver object.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e0c725352dab 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 CryIf_KeyDerive sirve para reenviar de forma síncrona una solicitud de derivación de claves al Crypto Driver Object configurado en cada caso [SWS_CryIf_91009]. La interfaz se declara a través del archivo de cabecera CryIf.h con el Service ID 0x09 [SWS_CryIf_91009].

En la llamada se pasan dos identificadores de clave [SWS_CryIf_91009]:

  • cryIfKeyId: identificador de la clave que se utiliza como base para la derivación.
  • targetCryIfKeyId: identificador de la clave en la que se almacena la clave derivada.

Tratamiento de errores y valores de retorno

El resultado de la operación se transmite a través del tipo de retorno Std_ReturnType [SWS_CryIf_91009]:

Concurrencia y condiciones de contorno

La interfaz está especificada como reentrante [SWS_CryIf_91009]. Dado que el flujo es síncrono, es probable que los emisores de la llamada deban tener en cuenta el tiempo de ejecución del controlador en el contexto de llamada correspondiente. Pregunta Q-2b2fd50249878177 (abierta)

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

función CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] 📄 PDF

Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available

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

La función síncrona y reentrante CryIf_KeyExchangeCalcPubVal reenvía el cálculo del valor público de intercambio de claves al Crypto Driver Object configurado [SWS_CryIf_91010]. El servicio está disponible a través de la cabecera CryIf.h [SWS_CryIf_91010].

Durante la llamada a la función se procesan los siguientes parámetros [SWS_CryIf_91010]:

  • cryIfKeyId: Identificador de la clave que se va a utilizar para el protocolo de intercambio de claves.
  • publicValuePtr: Puntero al área de memoria en la que se almacena el valor público calculado.
  • publicValueLengthPtr: Puntero a la información de longitud. En el momento de la llamada, este parámetro debe contener el tamaño del búfer proporcionado; tras finalizar, almacena la longitud real del valor calculado.

La función devuelve un estado de tipo Std_ReturnType [SWS_CryIf_91010]:

  • E_OK: La solicitud se realizó con éxito.
  • E_NOT_OK: La solicitud ha fallado.
  • CRYPTO_E_BUSY: Error debido a que el Crypto Driver Object competente está ocupado.
  • CRYPTO_E_KEY_EMPTY: Error debido a un elemento de clave de origen no inicializado.
  • CRYPTO_E_KEY_NOT_VALID: Error debido a que la clave direccionada se encuentra en un estado no válido.

Este texto ha sido generado por un sistema basado en IA y se fundamenta exclusivamente en los datos de especificación de AUTOSAR R20-11.

función CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] 📄 PDF

Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ecfeb27c89f0 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 CryIf_KeyExchangeCalcSecret reenvía el cálculo del secreto compartido en el intercambio de claves al Crypto Driver Object configurado [SWS_CryIf_91011]. Al servicio se le pasan el identificador de la clave (cryIfKeyId), un puntero al valor de clave pública del interlocutor de comunicación (partnerPublicValuePtr), así como su longitud en bytes (partnerPublicValueLength) [SWS_CryIf_91011].

Tratamiento de errores: La función devuelve el resultado a través de Std_ReturnType [SWS_CryIf_91011]:

Concurrencia: La interfaz está especificada como reentrante [SWS_CryIf_91011]. Dado que el flujo se ejecuta de forma síncrona, la llamada probablemente se realiza en el contexto de tarea. Pregunta Q-b3bca3645b0ef468 (abierta) El servicio se proporciona a través del archivo de cabecera CryIf.h [SWS_CryIf_91011].

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

función CryIf_CallbackNotification [SWS_CryIf_91013] 📄 PDF

void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);

Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.

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

La función CryIf_CallbackNotification sirve, según [SWS_CryIf_91013], para informar al Crypto Interface (CryIf) acerca de la finalización de una operación criptográfica, así como de su resultado. La declaración está disponible a través de la cabecera CryIf.h y cuenta con el Service ID 0x0d [SWS_CryIf_91013].

La llamada se realiza de forma síncrona y procesa dos parámetros de entrada obligatorios [SWS_CryIf_91013]:

  • job (entrada, Crypto_JobType*): apunta a la estructura de información de la orden finalizada y contiene un ID de callback para la asignación del trabajo terminado [SWS_CryIf_91013].
  • result (entrada, Crypto_ResultType): transmite el resultado de la operación criptográfica ejecutada [SWS_CryIf_91013].

No hay códigos de error ni notificaciones de error específicos (DET/DEM) definidos para este servicio; la comprobación funcional de errores se realiza a través del parámetro result, que refleja el estado de éxito o de error de la operación [SWS_CryIf_91013].

En cuanto a la concurrencia, la función está especificada según [SWS_CryIf_91013] como no reentrante (Non Reentrant) y no posee valor de retorno (void). Por lo tanto, los emisores de la llamada deben asegurarse de que las llamadas se ejecuten secuencialmente y de que no se produzcan ejecuciones anidadas o paralelas. Interpretación: la notificación probablemente es llamada típicamente por controladores criptográficos subyacentes para devolver el resultado de órdenes criptográficas procesadas de forma asíncrona al Crypto Interface. Pregunta Q-ae17af188a970e00 (abierta)

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

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

Record
AUTOSAR/AP/record/CP_MOD_CryIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_CryIf@rel:R20-11#69b4e5f2
Content hash
69b4e5f2
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoInterface.pdf#nameddest=SWS_CryIf_91000

Inicialización y estado

Returns the version information of this module.

void CryIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
CryIf_Init función

Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface

void CryIf_Init (const CryIf_ConfigType* configPtr);

Servicios · KeyElement…

Service CryIf_KeyElementCopy.

Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopyPartial.

Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

This function shall dispatch the get key ele ment function to the configured crypto driver object.

Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This function shall dispatch the set key element function to the configured crypto driver object.

Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Servicios · Key…

CryIf_KeyCopy función

This function shall co py all key elements from the source key to a target key.

Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch th e key derive function to the configured crypto driver object.

Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available

Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.

Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

This function shall dispatch the key generate function to the configured crypto driver object.

Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);

Returns the key state of the key identified by cry If Key Id.

Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);

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

Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);

This function shall dispatch the set key valid function to the configured crypto driver object.

Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);

Servicios · Otros

Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.

void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);

This interface dispatches the job cancellation function to the configured crypto driver object.

Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);

Service CryIf_ProcessJob.

Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);

This function shall dispatch the random seed function to the configured crypto driver object.

Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);

Tipos

Configuration data structure of Cry If module