Ofrece una interfaz base para contextos criptográficos modificables para la consulta segura para subprocesos del ID de algoritmo.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 40f33685b357ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Ofrece una interfaz base para contextos criptográficos modificables para la consulta segura para subprocesos del ID de algoritmo.
La interfaz sirve como clase base común para contextos criptográficos modificables que no están vinculados de forma fija a un único objeto criptográfico. A través del método puramente virtual GetAlgId(), permite la consulta segura para subprocesos de la identificación de algoritmo como ara::core::Result[SWS_CRYPT_20411]. Para evitar duplicaciones de estado indeseadas, las operaciones de copia y movimiento están completamente suprimidas [SWS_CRYPT_41003]. La liberación se realiza de forma determinista y segura mediante un destructor virtual por defecto.
Contexto
La interfaz ara::crypto::cryp::CryptoContext define la abstracción básica para contextos criptográficos mutables (mutable cryptographic contexts) dentro del módulo criptográfico de AUTOSAR Adaptive Platform. A diferencia de los objetos criptográficos estáticos, dicho contexto no está vinculado rígidamente a un único objeto criptográfico. Más bien sirve como clase base común para diferentes contextos de procesamiento criptográfico cuyo estado interno puede cambiar durante la ejecución de operaciones criptográficas.
La función miembro puramente virtual GetAlgId() actúa como elemento central de esta interfaz base. Permite a los interlocutores consultar el identificador del algoritmo criptográfico actualmente configurado en el contexto [SWS_CRYPT_20411]. Es probable que los contextos concretos de cálculo y transformación criptográficos, como por ejemplo para servicios de hash, firma o cifrado, se deriven en el sistema a partir de CryptoContext para proporcionar funcionalidades algorítmicas específicas. Pregunta Q-203d40209cd355fa (abierta)
Ciclo de vida
El ciclo de vida de CryptoContext está marcado por una identidad unívoca y relaciones de propiedad estrictas. Para evitar la duplicación incontrolada o transferencias inconsistentes de estados de contexto en tiempo de compilación, las operaciones semánticas de copia están totalmente prohibidas. Tanto el constructor de copia [SWS_CRYPT_41003] como el operador de asignación por copia [SWS_CRYPT_30214] están explícitamente declarados como eliminados (=delete).
Del mismo modo, la definición de la interfaz impide el movimiento de contextos: tanto el constructor de movimiento [SWS_CRYPT_41004] como el operador de asignación por movimiento [SWS_CRYPT_30215] están eliminados (=delete). Por lo tanto, las instancias de clases derivadas permanecen permanentemente en su ubicación de memoria original. La destrucción y la liberación de recursos se realizan de forma determinista mediante el destructor virtual, que está definido como default y noexcept[SWS_CRYPT_20401]. Esto garantiza que los objetos de contexto derivados puedan liberarse de forma segura y sin fugas de recursos a través de punteros a la interfaz base.
En lo que respecta a la concurrencia, el requisito para GetAlgId() especifica expresamente la seguridad frente a subprocesos (thread-safety) [SWS_CRYPT_20411]. De este modo, varios subprocesos pueden leer de forma concurrente y sin sincronización externa el identificador de algoritmo del mismo contexto.
Ruta de uso
Dado que CryptoContext es una interfaz puramente virtual, los desarrolladores de aplicaciones no pueden crear instancias directas. Es probable que las instancias de clases de contexto especializadas se instancien típicamente mediante funciones factoría o componentes proveedores de la pila criptográfica y se proporcionen al llamador a través de punteros o referencias. Pregunta Q-728a7b6dd526eb64 (abierta) El flujo de uso típico a nivel de la interfaz base comprende las siguientes fases:
Suministro: un llamador recibe una referencia o un puntero a un contexto configurado desde un proveedor criptográfico.
Comprobación del algoritmo: mediante la llamada a GetAlgId() se consulta y evalúa el identificador de algoritmo [SWS_CRYPT_20411] para garantizar que el contexto cumple las especificaciones requeridas.
Operación y limpieza: tras ejecutar las operaciones específicas del algoritmo a través de la interfaz derivada, el contexto se libera automáticamente mediante el destructor virtual [SWS_CRYPT_20401].
Escenarios de error
El concepto de gestión de errores de CryptoContext sigue el diseño general a prueba de fallos de AUTOSAR Adaptive Platform y prescinde de las excepciones de C++. El método GetAlgId() está especificado como seguro frente a excepciones (exception safe) y devuelve su resultado en un ara::core::Result<ara::crypto::AlgIdString>[SWS_CRYPT_20411]. Si se produce un error al determinar el ID de algoritmo, este se transporta en el canal de error del objeto Result.
Según la especificación, GetAlgId() no define códigos de error estandarizados [SWS_CRYPT_20411]. Por lo tanto, los llamadores deben comprobar primordialmente si el Result contiene un valor válido antes de acceder a la cadena de texto del ID de algoritmo. Durante la destrucción del objeto, el destructor virtual declarado con noexcept garantiza que no se propaguen excepciones durante la destrucción y que la limpieza concluya siempre de manera fiable [SWS_CRYPT_20401].
Esta guía se basa en la especificación AUTOSAR Adaptive R25-11 y ha sido generada por un asistente de curación mediante IA.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán