Sirve para desempaquetar e importar de forma segura claves y datos criptográficos protegidos en una aplicación.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a42cd9e6f52bProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve para desempaquetar e importar de forma segura claves y datos criptográficos protegidos en una aplicación.
La interfaz permite desempaquetar e importar de forma segura datos y claves criptográficos protegidos con ayuda de una clave de transporte configurada [SWS_CRYPT_50205]. El material de clave desempaquetado puede escribirse directamente en una ranura de clave persistente o cargarse en memoria tipificado como objeto de clave [SWS_CRYPT_50207]. Todos los métodos son seguros para subprocesos y siguen una semántica estricta de reversión en caso de error, mientras que Reset garantiza el borrado sin residuos de los búferes internos [SWS_CRYPT_50212].
Contexto
La interfaz ara::crypto::cryp::ProtectedKeyImportCtx proporciona un contexto criptográfico para importar y desempaquetar de forma segura en el sistema estructuras de datos protegidas, como material de clave secreta. El contexto actúa como intermediario entre una aplicación solicitante, un mecanismo de protección basado en una clave de transporte y las estructuras de destino de la criptografía de AUTOSAR. El contexto autentica, descifra y analiza los paquetes de datos serializados entrantes [SWS_CRYPT_50207]. Como fuentes para la clave de transporte requerida sirven o bien objetos de clave simétrica independientes [SWS_CRYPT_50205] o bien ranuras de clave de un almacenamiento de claves [SWS_CRYPT_50206]. Como destino, los objetos de clave desempaquetados pueden transferirse directamente a la aplicación que realiza la llamada o serializarse inmediatamente en una ranura de clave escribible [SWS_CRYPT_50207].
Ciclo de vida
Por lo general, el contexto se gestiona para el acceso compartido a través del tipo de puntero inteligente proporcionado Sptr[SWS_CRYPT_50085]; en este sentido, es de suponer que las instancias son proporcionadas por un componente de controlador criptográfico competente. Pregunta Q-3517b24b5eec4529 (abierta) Antes del procesamiento real, el contexto se encuentra en un estado inicial no configurado en el que todavía no se ha asignado ninguna clave de transporte. La asignación de una clave de transporte se realiza a través del método SetKey, con lo cual el contexto pasa al estado operativo [SWS_CRYPT_50205][SWS_CRYPT_50206].
Tras la ejecución exitosa de la operación Import, el contexto conserva los datos y metadatos desempaquetados en búferes internos, de modo que se puede identificar el tipo de objeto y leer los objetos de clave [SWS_CRYPT_50207][SWS_CRYPT_50208]. Mediante el método Reset, el contexto se restablece de nuevo a su estado inicial: todos los búferes internos con datos importados previamente se limpian por completo y se elimina la clave de transporte guardada [SWS_CRYPT_50212]. Todos los métodos de interfaz están especificados como seguros frente a excepciones y seguros para subprocesos, lo que permite controlar accesos concurrentes desde múltiples contextos de ejecución [SWS_CRYPT_50207].
El flujo de trabajo regular comienza con la configuración de la clave de transporte. Para ello, la aplicación llama a SetKey ya sea con un SymmetricKey::Sptr[SWS_CRYPT_50205] o con un KeySlot::Sptr[SWS_CRYPT_50206]. En el siguiente paso se ejecuta el método Import, al que se le pasa el paquete de datos serializado como ReadOnlyMemRegion[SWS_CRYPT_50207]. Si la clave se va a almacenar de forma persistente, opcionalmente se puede pasar directamente un WriteableKeySlot::Sptr en el que se escribe el material desempaquetado [SWS_CRYPT_50207].
Si no se especificó ninguna ranura de destino o si la clave se va a utilizar de forma volátil, la aplicación determina mediante GetCryptoObjectType la categoría del último objeto importado [SWS_CRYPT_50208]. A partir de este tipo, la aplicación llama al método de obtención adecuado según el tipo: GetPrivateKey para claves privadas [SWS_CRYPT_50209], GetPublicKey para claves públicas [SWS_CRYPT_50211] o GetSymmetricKey para material de clave simétrica [SWS_CRYPT_50210]. Si el protocolo de importación utilizado requiere una respuesta al remitente (como ocurre, por ejemplo, con los bloques de control M4 y M5 de una secuencia LoadKey de SHE), esta puede escribirse en un búfer proporcionado a través de GetResponse[SWS_CRYPT_41020]. Tras finalizar la secuencia de procesamiento, una llamada a Reset restablece el contexto de nuevo al estado inicial [SWS_CRYPT_50212].
Si ocurre un error durante una llamada a un método, se aplica una estricta semántica de reversión que preserva el estado previo a la llamada. En la configuración a través de SetKey, la llamada falla con CryptoErrc::kUsageViolation si el indicador de uso de la clave no contiene el permiso kAllowKeyUnwrapping[SWS_CRYPT_50205][SWS_CRYPT_50206]. Si el objeto de clave o la ranura referenciada no se pueden utilizar en principio como clave de transporte, se notifica CryptoErrc::kIncompatibleObject[SWS_CRYPT_50205][SWS_CRYPT_50206].
Al llamar a Import, las discrepancias de tamaño de los datos de entrada provocan CryptoErrc::kInvalidInputSize y las infracciones de formato dan lugar a CryptoErrc::kInvalidArgument[SWS_CRYPT_50207]. Si falla la comprobación de integridad o autenticidad de la capa de protección (p. ej., debido a un Message Authentication Code no válido o una firma errónea), la llamada devuelve CryptoErrc::kAuthTagNotValid[SWS_CRYPT_50207]. Si el componente criptográfico está ocupado temporalmente, esto se señaliza mediante CryptoErrc::kBusyResource[SWS_CRYPT_50207].
La condición previa para la lectura de claves importadas es la ejecución exitosa de Import; de lo contrario, GetPrivateKey, GetPublicKey y GetSymmetricKey responden con CryptoErrc::kProcessingNotFinished[SWS_CRYPT_50209][SWS_CRYPT_50210][SWS_CRYPT_50211]. Si el tipo de clave solicitado no coincide con el objeto realmente desempaquetado o si todavía no se ha importado ningún objeto, los métodos de obtención lo confirman con CryptoErrc::kNoSuchValue[SWS_CRYPT_50208][SWS_CRYPT_50209][SWS_CRYPT_50210][SWS_CRYPT_50211]. Si el búfer de salida en GetResponse no ofrece suficiente capacidad, esto da como resultado CryptoErrc::kInsufficientCapacity[SWS_CRYPT_41020]. Si la implementación concreta no admite una función parcial (p. ej., determinados tipos de clave o el restablecimiento), se devuelve uniformemente CryptoErrc::kUnsupported[SWS_CRYPT_50205][SWS_CRYPT_50208][SWS_CRYPT_50212].
Esta guía de clases se basa en la especificación de AUTOSAR Adaptive Platform Release R25-11.
The interface shall write the response of the CryptoProvider to the last invocation of Import into the provided output buffer. E.g., this interface could return M4/M5 of a SHE LoadKey operation.
virtual ara::core::Result< std::size_t > GetResponse (ReadWriteMem Region responseBuffer) const noexcept=0; DIRECTION NOT responseBuffer -- DEFINED
The interface shall unwrap the protected data provided, parse the content, and make the parsed content (key-material and meta-data) available for retrieval by the application. If optionally a Key Slot is specified, the unwrapped key material shall be directly serialized into the KeySlot.
The interface shall restore the context to its initial state by ensuring that no key-import-key is set and all previously imported data is deleted from the ProtectedKeyImportCtx’s internal buffers.
The interface shall return a shared pointer to the unwrapped PrivateKey.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 569ddfa8ee2aProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método GetPrivateKey de la clase ara::crypto::cryp::ProtectedKeyImportCtx (proporcionado a través del encabezado #include "ara/crypto/cryp/protected_key_import_ctx.h") sirve para recuperar un shared pointer a una clave privada (PrivateKey::Sptr) previamente importada y desempaquetada ([SWS_CRYPT_50209]). La interfaz no tiene parámetros de transferencia y devuelve el resultado de forma síncrona como ara::core::Result<PrivateKey::Sptr> ([SWS_CRYPT_50209]).
Para la ejecución se aplican especificaciones vinculantes relativas al orden, la concurrencia y la seguridad frente a excepciones: el método está especificado como thread-safe y exception safe, y declarado con noexcept ([SWS_CRYPT_50209]). Un requisito previo obligatorio para la recuperación correcta es que previamente se haya ejecutado con éxito una operación de importación dentro del contexto ([SWS_CRYPT_50209]).
Si se produce un error durante la provisión, se aplica una semántica de reversión para todas las situaciones de error ([SWS_CRYPT_50209]). El Result devuelto contiene en este caso uno de los siguientes códigos de error específicos:
ara::crypto::CryptoErrc::kProcessingNotFinished: El paso de importación previo aún no se ha ejecutado con éxito ([SWS_CRYPT_50209]).
ara::crypto::CryptoErrc::kNoSuchValue: El último CryptoObject importado no es una clave privada ([SWS_CRYPT_50209]).
ara::crypto::CryptoErrc::kUnsupported: El contexto no admite fundamentalmente la importación de claves privadas ([SWS_CRYPT_50209]).
Esta nota de uso fue creada por una IA a partir de la especificación AUTOSAR R25-11.
The interface shall return a shared pointer to the unwrapped PublicKey.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b41e5e96382cProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método GetPublicKey de la clase ara::crypto::cryp::ProtectedKeyImportCtx sirve para la recuperación síncrona de un puntero a una clave pública importada y desempaquetada previamente ([SWS_CRYPT_50211]). La función no acepta parámetros de entrada y devuelve el resultado con seguridad de tipos como ara::core::Result<PublicKey::Sptr> ([SWS_CRYPT_50211]).
Antes de la llamada debe haberse completado con éxito una operación de importación; de lo contrario, la llamada falla y devuelve el código de error ara::crypto::CryptoErrc::kProcessingNotFinished ([SWS_CRYPT_50211]). Si el último objeto criptográfico importado no era una clave pública, esto da como resultado el error ara::crypto::CryptoErrc::kNoSuchValue ([SWS_CRYPT_50211]). Siempre que el contexto de importación concreto no admita en absoluto la incorporación de claves públicas, se notifica ara::crypto::CryptoErrc::kUnsupported ([SWS_CRYPT_50211]). En todos los errores especificados, la interfaz garantiza una semántica de reversión ([SWS_CRYPT_50211]).
En cuanto a la concurrencia y la tolerancia a fallos, el método está especificado como thread-safe y exception-safe, y no lanza excepciones de C++ (noexcept) ([SWS_CRYPT_50211]).
Funcionalmente, este mecanismo de importación se diferencia de otras interfaces: mientras que aquí se desempaqueta un objeto protegido, la función homónima en ara::crypto::cryp::PrivateKey ([SWS_CRYPT_22511]) devuelve la clave pública de una clave privada existente generada, por ejemplo, previamente mediante GeneratePrivateKey ([SWS_CRYPT_20722]).
Este texto fue generado por una IA a partir de las especificaciones requeridas.
virtual ara::core::Result< std::size_t > GetResponse (ReadWriteMem Region responseBuffer) const noexcept=0; DIRECTION NOT responseBuffer -- DEFINED
The interface shall write the response of the CryptoProvider to the last invocation of Import into the provided output buffer. E.g., this interface could return M4/M5 of a SHE LoadKey operation.
The interface shall return a shared pointer to the unwrapped SymmetricKey.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: cefc876d47dbProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método GetSymmetricKey de la clase ara::crypto::cryp::ProtectedKeyImportCtx devuelve un shared pointer a una clave simétrica desempaquetada (SymmetricKey::Sptr) [SWS_CRYPT_50210]. La llamada se realiza de forma síncrona, está declarada como const y noexcept, y no acepta parámetros [SWS_CRYPT_50210].
Para una recuperación correcta deben cumplirse determinadas condiciones previas y secuencias de orden [SWS_CRYPT_50210]:
Previamente debe haberse completado con éxito un proceso de importación; de lo contrario, la llamada falla con el código de error ara::crypto::CryptoErrc::kProcessingNotFinished[SWS_CRYPT_50210].
Si el último objeto criptográfico importado no es una clave simétrica, el método devuelve ara::crypto::CryptoErrc::kNoSuchValue[SWS_CRYPT_50210].
En caso de que el contexto de importación seleccionado no admita de forma general la importación de claves simétricas, se notifica el error ara::crypto::CryptoErrc::kUnsupported[SWS_CRYPT_50210].
En lo relativo a la seguridad de ejecución, la interfaz está especificada como segura frente a subprocesos (thread-safe) y segura frente a excepciones (exception-safe) [SWS_CRYPT_50210]. Todos los casos de error definidos ofrecen una semántica de reversión, de modo que el estado del contexto permanece inalterado en caso de error [SWS_CRYPT_50210].
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R25-11.
The interface shall unwrap the protected data provided, parse the content, and make the parsed content (key-material and meta-data) available for retrieval by the application. If optionally a Key Slot is specified, the unwrapped key material shall be directly serialized into the KeySlot.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 89f9277cd6aaProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método síncrono Import de la clase ara::crypto::cryp::ProtectedKeyImportCtx desempaqueta datos de clave protegidos del área de memoria serialized ([SWS_CRYPT_50207]). Analiza el contenido de los datos y pone a disposición el material de clave extraído, así como los metadatos para su posterior recuperación. Si opcionalmente se suministra un WriteableKeySlot, el material de clave se serializa directamente en este slot ([SWS_CRYPT_50207]). Interpretación: Si no se suministra un keySlot, el material de clave permanece presumiblemente de forma exclusiva en el estado del contexto de importación. Pregunta Q-130f11475af1bb33 (abierta)
Manejo de errores
La función devuelve un ara::core::Result<void>. Si la operación falla, se aplica una semántica de reversión (rollback) para todos los códigos de error ([SWS_CRYPT_50207]):
ara::crypto::CryptoErrc::kInvalidInputSize: El tamaño de entrada de serialized es inesperado ([SWS_CRYPT_50207]).
ara::crypto::CryptoErrc::kInvalidArgument: Los datos serializados no corresponden al formato esperado ([SWS_CRYPT_50207]).
ara::crypto::CryptoErrc::kAuthTagNotValid: La comprobación de autenticación (MAC o firma) falla ([SWS_CRYPT_50207]).
ara::crypto::CryptoErrc::kBusyResource: la operación no se puede ejecutar temporalmente ([SWS_CRYPT_50207]).
Concurrencia e interacción
El método es seguro para subprocesos y seguro frente a excepciones (noexcept) ([SWS_CRYPT_50207]). Tras una llamada exitosa, el objeto de clave desempaquetado puede recuperarse del contexto mediante GetPrivateKey ([SWS_CRYPT_50209]), GetSymmetricKey ([SWS_CRYPT_50210]) o GetPublicKey ([SWS_CRYPT_50211]). Si el protocolo subyacente requiere una confirmación al emisor, GetResponse ([SWS_CRYPT_41020]) proporciona la respuesta del proveedor criptográfico. Para formatos de clave no protegidos, sirven alternativamente los métodos ImportPublicKey ([SWS_CRYPT_20732]), ImportSymmetricKey ([SWS_CRYPT_50014]) y ImportPrivateKey ([SWS_CRYPT_50132]) de la clase de fábrica CryptoProvider.
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R25-11.
The interface shall restore the context to its initial state by ensuring that no key-import-key is set and all previously imported data is deleted from the ProtectedKeyImportCtx’s internal buffers.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 21bf97fcdbf3Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método Reset restablece la instancia de ara::crypto::cryp::ProtectedKeyImportCtx a su estado inicial [SWS_CRYPT_50212]. Al hacerlo, la interfaz garantiza que ya no quede establecida ninguna Key-Import-Key (KIK) y que todos los datos importados previamente se borren por completo de los búferes internos del contexto [SWS_CRYPT_50212].
La llamada se realiza de forma síncrona y, conforme a la especificación, está clasificada como thread-safe y exception safe[SWS_CRYPT_50212]. El método declara la firma virtual ara::core::Result<void> Reset() const noexcept = 0; y requiere la inclusión del encabezado ara/crypto/cryp/protected_key_import_ctx.h[SWS_CRYPT_50212].
Manejo de errores
El resultado se devuelve a través de ara::core::Result<void>[SWS_CRYPT_50212]. Si la operación falla, la interfaz devuelve un código de error:
ara::crypto::CryptoErrc::kUnsupported: Ocurre si el contexto específico no admite el restablecimiento de su estado (semántica de reversión) [SWS_CRYPT_50212].
Esta nota de uso se ha generado automáticamente a partir de la especificación SWS_CRYPT_50212.
The interface shall configure the context to use the provided symmetric key as transport key.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bb7a4eb711eaProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método SetKey de la clase ara::crypto::cryp::ProtectedKeyImportCtx configura el contexto de modo que el objeto de clave simétrica suministrado key (SymmetricKey::Sptr) se utilice como clave de transporte [SWS_CRYPT_50205]. La llamada se realiza de forma síncrona y devuelve un ara::core::Result<void>[SWS_CRYPT_50205].
Manejo de errores
Si se produce un error durante la configuración, este se notifica con semántica de reversión (rollback), de modo que el estado anterior del contexto permanece inalterado [SWS_CRYPT_50205]. Se definen los siguientes códigos de error:
ara::crypto::CryptoErrc::kUnsupported: Se devuelve si el contexto admite exclusivamente la asignación de un KeySlot[SWS_CRYPT_50205].
ara::crypto::CryptoErrc::kIncompatibleObject: El objeto de clave proporcionado no puede utilizarse como clave de transporte [SWS_CRYPT_50205].
ara::crypto::CryptoErrc::kUsageViolation: Los flags de uso de la clave no contienen el permiso requerido kAllowKeyUnwrapping[SWS_CRYPT_50205].
Concurrencia e interacción
La operación está especificada como segura para subprocesos (thread-safe) y segura frente a excepciones (exception safe), y no lanza excepciones (noexcept) [SWS_CRYPT_50205]. Mientras que contextos como SymmetricKeyWrapperCtx vinculan una clave para protegerla o encapsularla (wrapping) [SWS_CRYPT_24018], la clave sirve aquí para la importación de claves protegidas. La condición de error kUnsupported hace referencia además a arquitecturas en las que los contextos se configuran alternativamente mediante un KeySlot[SWS_CRYPT_50034]. Interpretación: Es de suponer que la asignación de la clave de transporte debe completarse obligatoriamente antes de las operaciones de importación posteriores. Pregunta Q-f1f3eab5ab896b1b (abierta)
Esta nota de uso fue generada automáticamente sobre la base de la especificación AUTOSAR R25-11.
The interface shall configure the context to use the key stored in the provided KeySlot at the time the import operation is started as the transport key.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e6e7bd1f753cProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método SetKey configura el contexto [SWS_CRYPT_50206] (ara::crypto::cryp::ProtectedKeyImportCtx) de modo que la clave simétrica almacenada en el KeySlot::Sptr keySlot suministrado se utilice como clave de transporte en el momento de iniciar el proceso de importación. La llamada se realiza de forma síncrona y devuelve un ara::core::Result<void>.
Manejo de errores
Si se produce un error durante la configuración, se aplica una semántica de reversión (rollback) [SWS_CRYPT_50206]. Los códigos de error específicos incluyen:
ara::crypto::CryptoErrc::kUnsupported: Cuando el contexto admite exclusivamente el establecimiento de un objeto SymmetricKey directo [SWS_CRYPT_50206].
ara::crypto::CryptoErrc::kIncompatibleObject: Cuando la clave contenida en el slot no puede utilizarse como clave de transporte [SWS_CRYPT_50206].
ara::crypto::CryptoErrc::kUsageViolation: Cuando los flags de uso permitidos de la clave en el KeySlot no contienen el flag kAllowKeyUnwrapping[SWS_CRYPT_50206].
Concurrencia e interacción
La función está especificada como segura frente a excepciones (exception safe) y segura para subprocesos (thread-safe) [SWS_CRYPT_50206]. La clave no se evalúa a partir del slot hasta el inicio de la importación posterior [SWS_CRYPT_50206]. Si bien otros contextos criptográficos como SymmetricKeyWrapperCtx[SWS_CRYPT_50034] o KeyDerivationFunctionCtx[SWS_CRYPT_50010] también pueden integrar slots como fuente de claves, ProtectedKeyImportCtx::SetKey requiere explícitamente el permiso para desempaquetar claves.
Este texto ha sido generado mediante una herramienta de documentación asistida por IA y no sustituye la consulta de las especificaciones oficiales de AUTOSAR.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán