Permite el empaquetado y desempaquetado seguro de claves mediante cifrado de clave simétrica.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 16126e8d9692ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite el empaquetado y desempaquetado seguro de claves mediante cifrado de clave simétrica.
El contexto SymmetricKeyWrapperCtx sirve para el empaquetado y desempaquetado criptográfico de claves mediante algoritmos simétricos. Antes de la ejecución de Wrap o UnwrapSymmetricKey, el contexto debe configurarse a través de SetKey con una clave de cifrado de clave (KEK) compatible [SWS_CRYPT_24018]. Todas las operaciones requieren las autorizaciones de uso correspondientes de los objetos de clave involucrados y notifican errores a través de ara::core::Result con semántica de reversión [SWS_CRYPT_24014]. La interfaz es segura frente a excepciones y está especificada como segura frente a subprocesos para el funcionamiento concurrente.
Contexto
La clase SymmetricKeyWrapperCtx define la interfaz estandarizada para algoritmos de envoltura de claves simétricas (Key Wrapping) dentro de AUTOSAR Adaptive Platform. Su responsabilidad central consiste en la protección criptográfica de claves durante la exportación, así como en la recuperación de claves empaquetadas para uso interno. En este contexto, la clase interactúa principalmente con claves de cifrado de claves (Key Encryption Keys, KEK), que se proporcionan bien como un objeto de clave volátil del tipo SymmetricKey o bien de forma persistente a través de un KeySlot[SWS_CRYPT_24018], [SWS_CRYPT_50034]. Durante el empaquetado, el contexto recibe un CryptoObject genérico [SWS_CRYPT_24014], mientras que la operación de desempaquetado genera y devuelve un nuevo objeto SymmetricKey listo para su uso [SWS_CRYPT_24016].
Ciclo de vida
Las instancias de SymmetricKeyWrapperCtx se gestionan a través del smart pointer tipado Sptr (un alias para std::shared_ptr<SymmetricKeyWrapperCtx>) [SWS_CRYPT_24001]. La creación efectiva de objetos debería llevarse a cabo a través de una factoría de proveedores competente, ya que la clase representa una interfaz abstracta con métodos virtuales puros. Pregunta Q-7b9a1007da43ddcd (abierta) Todas las funciones miembro de la interfaz están especificadas como seguras frente a excepciones (exception safe), así como seguras para subprocesos (thread-safe), lo que posibilita su uso seguro en componentes de software concurrentes [SWS_CRYPT_24014], [SWS_CRYPT_24016].
A lo largo de su ciclo de vida, el contexto atraviesa dos fases esenciales: Inmediatamente después de la instanciación, se encuentra en un estado no inicializado. En esta fase, las operaciones criptográficas y los cálculos de búfer fallan con el error kUninitializedContext[SWS_CRYPT_50035], [SWS_CRYPT_24014]. Solo mediante la llamada exitosa a SetKey con una KEK o KeySlot compatible, el contexto pasa al estado operativo, en el que las claves se pueden empaquetar o desempaquetar de forma segura [SWS_CRYPT_24018], [SWS_CRYPT_50034].
Ruta de uso
El flujo regular para empaquetar una clave requiere una secuencia coordinada de configuración, verificación de búfer y ejecución. En primer lugar, la aplicación configura el contexto a través de SetKey con el objeto KEK deseado [SWS_CRYPT_24018] o vincula un KeySlot correspondiente [SWS_CRYPT_50034]. En el segundo paso, la aplicación determina mediante GetRequiredWrappedKeyBufferSize el tamaño máximo de búfer de salida requerido para el objeto de destino que se va a empaquetar [SWS_CRYPT_50035]. Una vez proporcionada una zona de memoria dimensionada adecuadamente (ReadWriteMemRegion), se realiza la llamada a Wrap, la cual escribe los datos de clave serializados y cifrados en el búfer y devuelve el número exacto de bytes [SWS_CRYPT_24014].
Para el proceso complementario de desempaquetado, tras la configuración mediante SetKey, la aplicación pasa el búfer de entrada con los datos envueltos a UnwrapSymmetricKey[SWS_CRYPT_24016]. En este proceso, deben especificarse explícitamente el identificador de algoritmo de destino (targetAlgId), así como los indicadores de uso permitidos (allowedUsage) para la nueva clave simétrica que se va a generar [SWS_CRYPT_24016].
Escenarios de error
Los métodos de la clase señalan errores a través del tipo de retorno ara::core::Result con semántica de reversión (rollback). Entre los escenarios de error centrales se encuentran:
Falta de inicialización: Si se llama a GetRequiredWrappedKeyBufferSize, Wrap o UnwrapSymmetricKey antes de una asignación exitosa de clave, devuelven ara::crypto::CryptoErrc::kUninitializedContext[SWS_CRYPT_50035], [SWS_CRYPT_24014], [SWS_CRYPT_24016].
Vulneración de derechos de uso: Al establecer la KEK, esta debe poseer al menos el permiso kAllowKeyWrapping o kAllowKeyUnwrapping; de lo contrario, SetKey falla con ara::crypto::CryptoErrc::kUsageViolation[SWS_CRYPT_24018]. En Wrap, la ausencia de kAllowKeyWrapping en la KEK o la ausencia de kAllowSecuredExport en el objeto que se va a empaquetar conduce asimismo a kUsageViolation[SWS_CRYPT_24014]. Durante el desempaquetado, se comprueba si la KEK permite kAllowKeyUnwrapping[SWS_CRYPT_24016].
Incompatibilidades y errores de búfer: Si el búfer de destino para Wrap es demasiado pequeño, se notifica ara::crypto::CryptoErrc::kInsufficientCapacity[SWS_CRYPT_24014]. Los formatos de clave erróneos o los tipos incompatibles dan lugar a ara::crypto::CryptoErrc::kInvalidArgument[SWS_CRYPT_24014], [SWS_CRYPT_24016]. Si el contexto solo admite slots o solo objetos de clave, SetKey notifica el error kUnsupported[SWS_CRYPT_24018], [SWS_CRYPT_50034].
Conflictos de recursos y slots vacíos: Si la operación accede a un recurso ocupado, se devuelve ara::crypto::CryptoErrc::kBusyResource; si el KeySlot referenciado está vacío, esto resulta en ara::crypto::CryptoErrc::kEmptyKeySlot[SWS_CRYPT_24014], [SWS_CRYPT_24016].
Esta guía fue creada por una IA y se basa exclusivamente en la especificación AUTOSAR.
Configure the context to use the provided key as key encryption key.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d0a83598653dProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Uso y semántica
La función miembro síncrona SetKey configura una instancia de ara::crypto::cryp::SymmetricKeyWrapperCtx de modo que el objeto SymmetricKey::Sptr pasado se utilice como Key Encryption Key (KEK) para operaciones de clave subsiguientes [SWS_CRYPT_24018]. La función está especificada como un método virtual puro con noexcept y devuelve un ara::core::Result<void> vacío, siempre que la asignación haya sido exitosa [SWS_CRYPT_24018].
Tratamiento de errores y rollback
Si se produce un error durante la configuración, se aplica una semántica de rollback vinculante, de modo que el estado del contexto permanece inalterado [SWS_CRYPT_24018]. Las posibles causas de error se representan mediante códigos de error de ara::crypto::CryptoErrc:
kIncompatibleObject: el objeto de clave pasado es incompatible con el contexto simétrico [SWS_CRYPT_24018].
kUsageViolation: el uso permitido de la clave no comprende ni kAllowKeyWrapping ni kAllowKeyUnwrapping[SWS_CRYPT_24018].
kUnsupported: la implementación del contexto admite exclusivamente el establecimiento de una clave mediante un KeySlot[SWS_CRYPT_24018].
Concurrencia e interacción
El método está especificado como thread-safe y seguro frente a excepciones (exception safe) [SWS_CRYPT_24018]. Si las claves se gestionan mediante ranuras o si el contexto admite exclusivamente KeySlots, existe para el mismo contexto de encapsulador la sobrecarga alternativa SetKey con KeySlot::Sptr[SWS_CRYPT_50034]. Esta configura el contexto para cargar la clave depositada en la ranura en el momento de ejecución del key-wrapping [SWS_CRYPT_50034].
Esta nota de uso se basa en la especificación AUTOSAR Adaptive Platform Release R25-11.
Configure the context to use the key stored in the provided KeySlot at the time the key wrapping is performed.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 30d79040bb46Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método virtual SetKey configura el contexto ara::crypto::cryp::SymmetricKeyWrapperCtx de modo que se utilice la clave almacenada en el KeySlot proporcionado en cuanto se ejecute el key-wrapping [SWS_CRYPT_50034]. La llamada espera como parámetro keySlot un KeySlot::Sptr que contiene una clave simétrica [SWS_CRYPT_50034]. La función se invoca de forma sincrónica, está declarada con noexcept y devuelve un ara::core::Result<void>[SWS_CRYPT_50034].
Manejo de errores
En caso de error, el método asegura una semántica de reversión (rollback) y devuelve uno de los siguientes resultados de error [SWS_CRYPT_50034]:
ara::crypto::CryptoErrc::kIncompatibleObject: el keySlot transferido es incompatible con este contexto [SWS_CRYPT_50034].
ara::crypto::CryptoErrc::kUnsupported: el contexto solo admite el establecimiento de un SymmetricKey directo [SWS_CRYPT_50034].
concurrencia
La operación es segura para subprocesos (thread-safe) y ofrece seguridad frente a excepciones garantizada (exception safe) [SWS_CRYPT_50034].
Interacción
Dentro de SymmetricKeyWrapperCtx, la interfaz representa el homólogo basado en slots de la sobrecarga SetKey con SymmetricKey::Sptr, que vincula directamente una clave como Key Encryption Key (KEK) [SWS_CRYPT_24018]. Funciones de configuración análogas basadas en slots también se emplean en contextos criptográficos afines como KeyDerivationFunctionCtx[SWS_CRYPT_50010], KeyEncapsulatorPublicCtx[SWS_CRYPT_50012], VerifierPublicCtx[SWS_CRYPT_50018], MessageAuthnCodeCtx[SWS_CRYPT_50026] y SignerPrivateCtx[SWS_CRYPT_50036].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación de AUTOSAR Adaptive R25-11.
Unwrap a wrapped key using the previously set key encryption key and return an SymmetricKey.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fe87df5f5eaeProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método UnwrapSymmetricKey de la interfaz ara::crypto::cryp::SymmetricKeyWrapperCtx descifra una clave empaquetada utilizando la Key Encryption Key (KEK) establecida previamente y devuelve un nuevo objeto SymmetricKey[SWS_CRYPT_24016]. Como parámetros, la función síncrona recibe el búfer de entrada con los datos protegidos de la clave (wrappedKey), el identificador de algoritmo para la clave de destino (targetAlgId) así como indicadores de bits (flags) para sus tipos de transformación permitidos (allowedUsage) [SWS_CRYPT_24016].
En caso de ejecución satisfactoria, el valor de retorno ara::core::Result<SymmetricKey::Sptr> contiene un puntero inteligente al objeto de clave generado o señala un error con semántica de reversión (rollback) [SWS_CRYPT_24016]. Las posibles causas de error son:
InvalidArgument: Los datos de clave transferidos en wrappedKey no se pueden desempaquetar, por ejemplo debido a un formato no válido o a un tamaño de búfer incorrecto [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kUninitializedContext: El contexto de empaquetado (wrapper) todavía no se ha inicializado con una KEK adecuada [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kUsageViolation: Las restricciones de uso de la KEK prohíben el desempaquetado (ausencia de kAllowKeyUnwrapping) [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kUnknownIdentifier: El valor transferido para targetAlgId no se conoce o no se admite [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kIncompatibleArguments: Los indicadores allowedUsage especificados son incompatibles con targetAlgId o con el tipo de clave [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kBusyResource: Un recurso del sistema requerido para la operación está ocupado actualmente [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kEmptyKeySlot: Un KeySlot configurado para la operación está vacío [SWS_CRYPT_24016].
El método está declarado como const y noexcept, garantiza la seguridad frente a excepciones y, según la especificación, es seguro para subprocesos (thread-safe) para llamadas concurrentes [SWS_CRYPT_24016].
Este texto fue creado por una IA y sirve como guía orientativa. El documento determinante es la especificación.
Wrap the provided key using the previously set key encryption key.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8e6ff8198c9dProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método Wrap de la clase ara::crypto::cryp::SymmetricKeyWrapperCtx (archivo de cabecera ara/crypto/cryp/symmetric_key_wrapper_ctx.h) empaqueta una clave proporcionada utilizando la clave de cifrado de claves (Key Encryption Key) [SWS_CRYPT_24014] establecida previamente.
La función síncrona espera los siguientes parámetros [SWS_CRYPT_24014]:
key (CryptoObject::Sptr): La clave que se va a empaquetar.
wrappedKey (ReadWriteMemRegion): Un búfer de salida en el que se escribe la clave empaquetada.
Como valor de retorno, la operación devuelve un ara::core::Result<std::size_t> que, en caso de éxito, contiene el número de bytes de la clave empaquetada escritos en el búfer [SWS_CRYPT_24014].
Tratamiento de errores y semántica
El método está definido como exception safe e implementa una semántica estricta de reversión (rollback) para casos de error [SWS_CRYPT_24014]. Pueden notificarse los siguientes estados de error [SWS_CRYPT_24014]:
InvalidArgument: El objeto de clave no se puede empaquetar (p. ej. debido a un tamaño no válido o a un tipo incorrecto).
ara::crypto::CryptoErrc::kUninitializedContext: El contexto todavía no se ha inicializado con un valor de clave.
ara::crypto::CryptoErrc::kUsageViolation: El uso permitido de la KEK no incluye kAllowKeyWrapping o el del objeto no incluye kAllowSecuredExport.
ara::crypto::CryptoErrc::kInsufficientCapacity: El búfer de salida wrappedKey es demasiado pequeño.
ara::crypto::CryptoErrc::kBusyResource: Un recurso requerido está ocupado.
ara::crypto::CryptoErrc::kEmptyKeySlot: Un KeySlot configurado está actualmente vacío.
Concurrencia y restricciones
La interfaz está especificada como thread-safe[SWS_CRYPT_24014]. El requisito para la ejecución es un contexto previamente inicializado, así como atributos de uso adecuados para las claves implicadas [SWS_CRYPT_24014].
Esta nota de uso se ha generado automáticamente sobre la base de la especificación de AUTOSAR Adaptive R25-11.
rollback_semantics if the allowed usage of the KEK does not include kAllowKey Wrapping or the allowed usage of the object does not include k AllowSecuredExport
gemini-3.8-flash-low· 2026-10-13 · Original en alemán