Proporciona tipos básicos, dominios de error y funciones de fábrica para servicios criptográficos y gestión de claves.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 253d08fc1defProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Proporciona tipos básicos, dominios de error y funciones de fábrica para servicios criptográficos y gestión de claves.
El namespace ara::crypto proporciona los tipos básicos comunes, búferes de memoria y funciones globales de fábrica para servicios criptográficos en AUTOSAR Adaptive. Las aplicaciones crean u obtienen instancias de subsistemas, como proveedores criptográficos y de almacenes de claves, de forma determinista a través de puntos de entrada como LoadCryptoProvider[SWS_CRYPT_20099]. Todas las operaciones criptográficas y usos de claves se supervisan estrictamente mediante flags de uso definidos, así como el dominio de error estandarizado con CryptoErrc[SWS_CRYPT_10099]. Todas las interfaces de fábrica presuponen un mapeo de procesos válido y están diseñadas para ser thread-safe.
Contexto
El namespace ara::crypto constituye el fundamento común y el punto de entrada central para todos los servicios criptográficos, funciones de gestión de claves y operaciones de certificados de AUTOSAR Adaptive Platform. En lugar de exponer detalles de implementación de los controladores subyacentes o de módulos de seguridad de hardware, el namespace define interfaces estandarizadas y funciones globales de fábrica. A través de estos puntos de entrada, las aplicaciones solicitan instancias de los subsistemas especializados: el proveedor de criptografía general [SWS_CRYPT_20099], el proveedor X.509 [SWS_CRYPT_40099], accesos de lectura y escritura a ranuras de almacenamiento de claves [SWS_CRYPT_50004][SWS_CRYPT_50005], así como formateadores para la serialización de objetos [SWS_CRYPT_50200].
Para una transferencia de datos segura y consistente, ara::crypto proporciona abstracciones de memoria y sistemas de tipos fundamentales. Las regiones de búfer se encapsulan con seguridad de tipos mediante ReadOnlyMemRegion[SWS_CRYPT_10033] para datos de entrada y ReadWriteMemRegion[SWS_CRYPT_10031] para datos de salida. Los algoritmos se referencian de forma estandarizada a través de AlgId[SWS_CRYPT_10014] o AlgIdString[SWS_CRYPT_50000], y las marcas de tiempo se basan en Timestamp[SWS_CRYPT_50003]. Además, la enumeración CryptoObjectType[SWS_CRYPT_10016] clasifica los tipos de objetos almacenables en el almacén de claves, mientras que las direcciones de transformación como cifrado o descifrado vienen predeterminadas por CryptoTransform[SWS_CRYPT_10019]. Las operaciones de clave permitidas se regulan mediante máscaras de bits del tipo AllowedUsageFlags[SWS_CRYPT_10015], que abarcan, entre otras, cifrado y descifrado [SWS_CRYPT_13101][SWS_CRYPT_13102], firmas [SWS_CRYPT_13103][SWS_CRYPT_13104], acuerdo de claves [SWS_CRYPT_13105] y exportaciones [SWS_CRYPT_40991][SWS_CRYPT_40992]. Para la serialización se encuentran disponibles identificadores de formato del tipo FormatId[SWS_CRYPT_10701] como kFormatRawValueOnly[SWS_CRYPT_60017], kFormatDerEncoded[SWS_CRYPT_60018] y kFormatPemEncoded[SWS_CRYPT_60019].
Diagrama de contexto: interacción entre instancias de aplicación, los puntos de entrada en ara::crypto y los objetos de subsistema proporcionados. Fuentes: [SWS_CRYPT_20099], [SWS_CRYPT_40099], [SWS_CRYPT_50004], [SWS_CRYPT_50005], [SWS_CRYPT_50200].
Ciclo de vida
La gestión del ciclo de vida de los objetos criptográficos centrales sigue el patrón Factory a través de puntos de entrada globales:
Instanciación y relaciones de propiedad: Las aplicaciones no crean instancias manualmente mediante constructores. En su lugar, las funciones de fábrica LoadCryptoProvider[SWS_CRYPT_20099], LoadKeySlot[SWS_CRYPT_50004], LoadWriteableKeySlot[SWS_CRYPT_50005], LoadX509Provider[SWS_CRYPT_40099] y LoadFormatter[SWS_CRYPT_50200] devuelven referencias de propiedad compartida en forma de ara::core::Result<...::Sptr>.
Ciclos de vida de singleton y proveedor: La función LoadX509Provider proporciona la instancia única del proveedor X.509 singleton [SWS_CRYPT_40099]. LoadCryptoProvider crea o referencia la instancia existente del proveedor criptográfico modelado mediante un ara::core::InstanceSpecifier[SWS_CRYPT_20099].
Concurrencia y destrucción: Todas las funciones factoría, así como los asistentes del dominio de error GetCryptoErrorDomain[SWS_CRYPT_19952] y MakeErrorCode[SWS_CRYPT_19951], están especificados como seguros contra excepciones (noexcept) y seguros para subprocesos (thread-safe). La liberación de los objetos referenciados se realiza automáticamente en cuanto expira el último puntero compartido retenido.
Ruta de uso
Una ruta de uso típica para llevar a cabo operaciones criptográficas o para gestionar claves consta de los siguientes pasos:
Cargar el proveedor: La aplicación llama a LoadCryptoProvider con un ara::core::InstanceSpecifier adecuado para obtener acceso a las operaciones criptográficas [SWS_CRYPT_20099].
Referenciar la ranura de clave: Para los flujos basados en claves, se carga el espacio de almacenamiento correspondiente: de solo lectura mediante LoadKeySlot[SWS_CRYPT_50004] o con permisos de escritura a través de LoadWriteableKeySlot[SWS_CRYPT_50005].
Validación de objetos y comprobación de permisos: Antes de la ejecución, la aplicación verifica los tipos de objeto (CryptoObjectType[SWS_CRYPT_10016]) y las restricciones de uso configuradas (AllowedUsageFlags[SWS_CRYPT_10015]), por ejemplo kAllowDataEncryption[SWS_CRYPT_13101] o kAllowDataDecryption[SWS_CRYPT_13102] acordes con CryptoTransform[SWS_CRYPT_10019].
Diagrama de secuencia: orden de invocación e inicialización para cargar proveedores y ranuras de clave con posterior comprobación de errores. Fuentes: [SWS_CRYPT_20099], [SWS_CRYPT_50004], [SWS_CRYPT_19951].
Escenarios de error
El tratamiento de errores en ara::crypto se basa en el dominio de error global CryptoErrorDomain[SWS_CRYPT_19952], cuya enumeración CryptoErrc[SWS_CRYPT_10099] define todos los códigos de error específicos:
Errores de argumentos y de búfer: Los argumentos no válidos conducen a kInvalidArgument, los identificadores desconocidos a kUnknownIdentifier y las combinaciones de parámetros inadecuadas a kIncompatibleArguments[SWS_CRYPT_10099]. Si la capacidad de una ReadWriteMemRegion[SWS_CRYPT_10031] no es suficiente, la interfaz señaliza kInsufficientCapacity[SWS_CRYPT_10099]. Si los tamaños de entrada son incorrectos, se produce kInvalidInputSize[SWS_CRYPT_10099].
Infracciones de estado y de flujo: Si el orden de invocación es incorrecto, el sistema notifica kInvalidUsageOrder[SWS_CRYPT_10099]. Si se utiliza un contexto antes de su inicialización o se consulta un paso de cómputo antes de su finalización, esto resulta en kUninitializedContext, kProcessingNotStarted o kProcessingNotFinished[SWS_CRYPT_10099].
Infracciones de permisos y de seguridad: Las operaciones contrarias a los permisos declarados en AllowedUsageFlags generan kUsageViolation[SWS_CRYPT_10099]. Si la comprobación de una etiqueta de autenticación falla, se desencadena kAuthTagNotValid[SWS_CRYPT_10099].
Errores de ranura y de mapeo: Los contenedores de clave vacíos o incompatibles conducen a kEmptyKeySlot o kIncompatibleObject[SWS_CRYPT_10099]. Si el InstanceSpecifier en LoadCryptoProvider, LoadKeySlot o LoadWriteableKeySlot no apunta a un PortPrototype modelado para el proceso actual, esto se evalúa como ProcessMappingViolation ([SWS_CRYPT_20099], [SWS_CRYPT_50004], [SWS_CRYPT_50005]).
Las instancias de error se generan mediante programación a través de la función auxiliar MakeErrorCode y referencian sin excepción al CryptoErrorDomain[SWS_CRYPT_19951].
Esta guía se basa exclusivamente en los requisitos de especificación de AUTOSAR R25-11.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Diagrama de clases
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
This factory method shall create or return the existing instance of a specific Crypto Provider.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b6b49fc6b39dProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función de fábrica LoadCryptoProvider en el espacio de nombres ara::crypto sirve como punto de entrada central para crear una instancia de un proveedor de servicios criptográficos o recuperar una instancia ya existente [SWS_CRYPT_20099]. Para su integración se requiere la cabecera ara/crypto/common/entry_point.h[SWS_CRYPT_20099].
Al invocarla se aplican las siguientes propiedades de parámetros y de retorno [SWS_CRYPT_20099]:
Parámetro de llamada: El parámetro de transferencia iSpecify (tipo const ara::core::InstanceSpecifier&) identifica el RPortPrototype de tipo CryptoProviderInterface asignado al proceso llamador [SWS_CRYPT_20099].
Valor de retorno: En caso de instanciación correcta, la función devuelve un ara::core::Result<cryp::CryptoProvider::Sptr> que encapsula un puntero compartido al objeto de proveedor cargado [SWS_CRYPT_20099].
Concurrencia: La función está declarada como noexcept, se considera exception safe y está especificada explícitamente como thread-safe, por lo que se permiten llamadas desde subprocesos paralelos [SWS_CRYPT_20099].
En cuanto al tratamiento de errores, la especificación no define códigos de error estandarizados [SWS_CRYPT_20099]. No obstante, se asume que un fallo en la operación se representará como un estado de error en el ara::core::Result devuelto. Pregunta Q-ad283a067489b0eb (abierta) Además, se define la infracción de modelado ProcessMappingViolation: esta se produce cuando el InstanceSpecifier pasado no hace referencia a un PortPrototype válido para el proceso actual que esté tipificado mediante un CryptoProviderInterface[SWS_CRYPT_20099].
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R25-11.
ProcessMappingVio- In case InstanceSpecifier does not point to a PortPrototype typed lation by a CryptoProviderInterface modeled for the current process.
Parameter (in)
Parameter
Beschreibung
iSpecify
InstanceSpecifier of the RPortPrototype of type CryptoProvider Interface
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1ad37ba369f0ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función LoadFormatter en el espacio de nombres ara::crypto actúa como factory para crear una instancia de Formatter[SWS_CRYPT_50200]. La declaración se proporciona a través del archivo de cabecera ara/crypto/common/formatter.h.
Uso e interfaz: La llamada se realiza de forma síncrona y no requiere parámetros de entrada. Como valor de retorno, la función devuelve un ara::core::Result<ara::crypto::Formatter::Sptr> que, en caso de éxito, encapsula un puntero compartido al objeto Formatter recién creado [SWS_CRYPT_50200].
Tratamiento de errores: La especificación no define códigos de error estandarizados para LoadFormatter[SWS_CRYPT_50200]. Dado que el valor de retorno está diseñado como ara::core::Result, es de suponer que los errores específicos de la implementación durante la creación del objeto se transmitan a través del canal de error de este tipo de resultado. Pregunta Q-dd9ac8319a9ad931 (abierta)
Concurrencia y seguridad de ejecución: La función está declarada como noexcept y especificada como segura frente a excepciones (exception safe), así como segura para subprocesos (thread-safe) [SWS_CRYPT_50200]. Por lo tanto, puede invocarse en paralelo desde diferentes subprocesos sin medidas de sincronización externas.
Esta nota de uso se ha generado automáticamente y se basa en las directrices del estándar AUTOSAR.
Load a read-only key slot. This factory method shall load the information associated with the specified KeySlot into a KeySlot object.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8366de538e98Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función LoadKeySlot en el espacio de nombres ara::crypto está concebida como método de fábrica para cargar una ranura de clave de solo lectura (read-only key slot) [SWS_CRYPT_50004]. Durante la llamada síncrona, el método carga los metadatos e informaciones de clave asociados a la ranura indicada en un objeto KeySlot correspondiente [SWS_CRYPT_50004]. Para su inclusión se utiliza el archivo de cabecera ara/crypto/common/entry_point.h.
Como parámetro de entrada, la función recibe una especificación de instancia iSpecify de tipo const ara::core::InstanceSpecifier&[SWS_CRYPT_50004]. Este identificador debe hacer referencia al RPortPrototype de un CryptoKeySlotInterface o de un CryptoKeySlotClientInterface que identifique de forma unívoca la clave que se va a cargar [SWS_CRYPT_50004].
Como resultado, el método devuelve un ara::core::Result<cryp::KeySlot::Sptr> que proporciona un puntero compartido al objeto KeySlot cargado o bien un error [SWS_CRYPT_50004]. La especificación no define códigos de error estandarizados para LoadKeySlot[SWS_CRYPT_50004]. No obstante, se documenta una ProcessMappingViolation: esta se produce cuando el InstanceSpecifier transferido no hace referencia a un puerto modelado para el proceso actual que esté tipificado mediante un CryptoKeySlotInterface o CryptoKeySlotClientInterface[SWS_CRYPT_50004].
Para la ejecución, la función está declarada como noexcept y ofrece seguridad total ante excepciones (exception safe) [SWS_CRYPT_50004]. Además, la llamada está especificada como segura para subprocesos (thread-safe), de modo que se admite el acceso concurrente de varios subprocesos [SWS_CRYPT_50004].
Esta nota de uso fue generada automáticamente sobre la base de la especificación AUTOSAR R25-11.
ProcessMappingVio- In case InstanceSpecifier does not point to a PortPrototype typed lation by a CryptoKeySlotInterface or CryptoKeySlotClientInterface modeled for the current process.
Parameter (in)
Parameter
Beschreibung
iSpecify
instance specifier to the RPortPrototype of a CryptoKeySlot Interface or a CryptoKeySlotClientInterface that identifies the key to be loaded
Load a writeable key slot. This factory method shall load the information associated with the specified KeySlot into a WriteableKeySlot object.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 548256d68415ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
La función LoadWriteableKeySlot sirve como método de fábrica sincrónico para cargar la información de una ranura de clave especificada en un objeto cryp::WriteableKeySlot[SWS_CRYPT_50005]. La función está definida en el espacio de nombres ara::crypto y se proporciona a través del encabezado ara/crypto/common/entry_point.h[SWS_CRYPT_50005].
Parámetro:iSpecify (de tipo const ara::core::InstanceSpecifier&) hace referencia al RPortPrototype de un CryptoKeySlotInterface e identifica con ello la clave que se va a cargar [SWS_CRYPT_50005].
Valor de retorno: un ara::core::Result<cryp::WriteableKeySlot::Sptr> que contiene el KeySlot cargado como puntero compartido o bien un objeto de error [SWS_CRYPT_50005].
Semántica: la llamada se produce de forma sincrónica directamente durante la ejecución [SWS_CRYPT_50005].
Tratamiento de errores y condiciones límite
Para esta función no se han especificado códigos de error estandarizados [SWS_CRYPT_50005]. Presumiblemente, las condiciones de error que se produzcan se transmitirán a través del ara::core::Result devuelto. Pregunta Q-e2f8966bf78b1569 (abierta) Un error de arquitectura o de configuración provoca una ProcessMappingViolation si el InstanceSpecifier pasado no hace referencia a un PortPrototype modelado para el proceso actual que esté tipificado mediante un CryptoKeySlotInterface[SWS_CRYPT_50005].
Concurrencia e interacción
La función está declarada como segura para subprocesos (thread-safe) y segura ante excepciones (exception safe) con garantía noexcept[SWS_CRYPT_50005]. Aborda el requisito de criptografía de nivel superior [RS_CRYPTO_02004] y representa el punto central de acceso para proporcionar ranuras de clave modificables en el proceso [SWS_CRYPT_50005].
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR R25-11.
ProcessMappingVio- In case InstanceSpecifier does not point to a PortPrototype typed lation by a CryptoKeySlotInterface modeled for the current process.
Parameter (in)
Parameter
Beschreibung
iSpecify
instance specifier to the RPortPrototype of a CryptoKeySlot Interface that identifies the key to be loaded
This factory method shall create or return the existing instance of the singleton X.509 Provider.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 70f8a61e4c9eProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
La función LoadX509Provider en el espacio de nombres ara::crypto sirve como método de fábrica para generar la instancia singleton del proveedor X.509 o para obtener la instancia ya existente [SWS_CRYPT_40099]. Para la llamada, debe incluirse el archivo de cabecera ara/crypto/common/entry_point.h[SWS_CRYPT_40099]. La llamada se realiza de forma síncrona y no recibe parámetros. Como valor de retorno, la función proporciona un ara::core::Result<ara::crypto::x509::X509Provider::Sptr> que suministra un puntero compartido a la instancia cargada del proveedor X.509 [SWS_CRYPT_40099].
Manejo de errores
En la especificación no se definen códigos de error estandarizados para LoadX509Provider[SWS_CRYPT_40099]. La función está declarada con noexcept y especificada como segura frente a excepciones (exception safe) [SWS_CRYPT_40099]. Interpretación: Dado que el resultado se encapsula a través del tipo ara::core::Result, es probable que los estados de error específicos del sistema durante la inicialización del proveedor se transmitan al llamador mediante este objeto de resultado. Pregunta Q-c187f4f152ccc89f (abierta)
Concurrencia e interacción
Según la especificación, LoadX509Provider está clasificada como segura para subprocesos (thread-safe) [SWS_CRYPT_40099]. De este modo, la llamada puede realizarse en paralelo desde varios hilos sin medidas de sincronización adicionales para obtener una referencia a la misma instancia singleton. A nivel funcional, la función implementa los requisitos de nivel superior RS_CRYPTO_02306 y RS_CRYPTO_02301[SWS_CRYPT_40099].
Este texto ha sido generado por un sistema de IA a partir de la especificación.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán