Gerencia um espaço de armazenamento para chaves criptográficas e permite consultas de metadados, bem como callbacks de alteração.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 15ebff2d544cProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Gerencia um espaço de armazenamento para chaves criptográficas e permite consultas de metadados, bem como callbacks de alteração.
A interface encapsula um espaço de armazenamento persistente ou volátil para chaves criptográficas e permite a consulta de metadados de chaves, bem como do CryptoProvider responsável [SWS_CRYPT_30403]. As aplicações podem monitorar alterações de conteúdo por meio de um callback de observador registrável [SWS_CRYPT_30404]. Se o slot estiver vazio, os acessos ao tipo de chave ou ao seu algoritmo falham com o código de erro ara::crypto::CryptoErrc::kEmptyKeySlot[SWS_CRYPT_50055]. Como a cópia e a movimentação são proibidas, o acesso ocorre de forma thread-safe por meio de shared pointers.
Contexto
A interface ara::crypto::cryp::KeySlot representa um espaço de armazenamento dedicado para chaves criptográficas dentro da AUTOSAR Adaptive Platform. Como encapsulamento de um slot de chave lógico, ela gerencia metadados, informações de tipo e a atribuição de algoritmos suportados para a chave armazenada nele. Uma instância normalmente interage com três partes: o software aplicativo, o cryp::CryptoProvider correspondente, para o qual uma referência compartilhada pode ser obtida via [SWS_CRYPT_30403], e um callback específico da aplicação para monitoramento de conteúdo de acordo com [SWS_CRYPT_30404].
Um KeySlot está firmemente vinculado ao armazenamento de chaves que ele representa. Consequentemente, a interface impede a duplicação e o deslocamento da instância: tanto o construtor de cópia [SWS_CRYPT_50149] quanto o construtor de movimento [SWS_CRYPT_50150] foram explicitamente excluídos. O mesmo se aplica ao operador de atribuição por cópia [SWS_CRYPT_50147] e ao operador de atribuição por movimento [SWS_CRYPT_50148].
Para o gerenciamento de relações de posse e de referência, a classe define o alias de tipo de smart pointer Sptr como std::shared_ptr<KeySlot>[SWS_CRYPT_50151]. A liberação ocorre por meio de um destrutor virtual padrão [SWS_CRYPT_50146]. Interpretação: Como a interface não define construtores públicos, é provável que instâncias concretas sejam criadas pelo CryptoProvider responsável e disponibilizadas como Sptr. Pergunta Q-baef4cb1493c96cd (aberta) Todos os métodos disponibilizados são declarados como thread-safe, permitindo acessos simultâneos de leitura e monitoramento a partir de múltiplos contextos de execução.
Caminho de utilização
A interação típica com um KeySlot é dividida na configuração do monitoramento de conteúdo e na consulta de metadados de chaves armazenadas:
Registrar observador: a aplicação registra, por meio de RegisterUpdateObserver, uma função de callback e um identificador específico da aplicação keySlotIdentifier[SWS_CRYPT_30404]. Em caso de chamadas repetidas, apenas o último callback passado será chamado em atualizações ou exclusões do conteúdo do slot.
Consultar algoritmos suportados: por meio de GetPossibleAlgIds, a aplicação determina uma lista de todos os identificadores de algoritmos suportados pelo slot [SWS_CRYPT_50056].
Verificar chave atual: se houver uma chave no slot, GetCryptoObjectType fornece o tipo de objeto da chave [SWS_CRYPT_50054] e GetAlgId o seu identificador de algoritmo concreto [SWS_CRYPT_50055].
Determinar o provider responsável: se necessário, o CryptoProvider gerenciador pode ser consultado como shared pointer por meio de GetCryptoProvider[SWS_CRYPT_30403].
Cancelar registro do observador: após a conclusão do monitoramento, o registro é cancelado via UnregisterUpdateObserver[SWS_CRYPT_30406].
Os métodos de consulta asseguram estados de erro por meio do tipo de resultado ara::core::Result. Caso um KeySlot não contenha chave, as chamadas GetCryptoObjectType[SWS_CRYPT_50054] e GetAlgId[SWS_CRYPT_50055] retornam, cada uma, o código de erro padronizado ara::crypto::CryptoErrc::kEmptyKeySlot com semântica de rollback. Os métodos GetPossibleAlgIds[SWS_CRYPT_50056] e GetCryptoProvider[SWS_CRYPT_30403] não especificam códigos de erro padronizados. Para o gerenciamento do observador por meio de RegisterUpdateObserver[SWS_CRYPT_30404] e de UnregisterUpdateObserver[SWS_CRYPT_30406], estão previstos, em caso de erro, erros específicos da implementação no objeto de resultado.
Este guia foi criado por uma IA com base na especificação R25-11.
The interface shall register an application callback function to be called when the content of the KeySlot is updated (i.e., modified or cleared). If this function is called multiple times, only the most recently registered callback of an application will be called.
The interface shall register an application callback function to be called when the content of the KeySlot is updated (i.e., modified or cleared). If this function is called multiple times, only the most recently registered callback of an application will be called.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9361e576efa7ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método RegisterUpdateObserver da classe ara::crypto::cryp::KeySlot serve para registrar uma função de callback específica da aplicação, a qual é notificada a cada atualização do conteúdo de um slot de chave [SWS_CRYPT_30404]. Consideram-se atualizações tanto modificações no conteúdo quanto o esvaziamento completo do slot [SWS_CRYPT_30404].
Utilização e parâmetros
A função é incluída através do cabeçalho ara/crypto/cryp/keyslot.h e recebe o callback callback bem como um identificador keySlotIdentifier[SWS_CRYPT_30404]. O objeto de função callback recebe na chamada a string keySlotIdentifier como argumento, a fim de permitir a associação inequívoca do slot afetado na lógica da aplicação [SWS_CRYPT_30404]. Em chamadas repetidas de RegisterUpdateObserver pela mesma aplicação, apenas a função de callback registrada por último é mantida e executada [SWS_CRYPT_30404].
Simultaneidade e tratamento de erros
A interface é segura para threads (thread-safe) e especificada como noexcept sem lançamento de exceções [SWS_CRYPT_30404]. Ela retorna um ara::core::Result<void>[SWS_CRYPT_30404]. Não existem erros padronizados; em caso de falha, é retornado um código de erro específico da implementação [SWS_CRYPT_30404]. Interpretação: a chamada real da função de callback deve ocorrer de forma assíncrona no contexto do driver de criptografia, assim que a atualização for efetivada no armazenamento de chaves. Pergunta Q-cfbcc1ddcbe88062 (aberta)
Esta nota de uso baseia-se na especificação do AUTOSAR Adaptive R25-11.
Unregisters any previously UpdateObserver callback that has been registered previously by the application.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b5edba50839dProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método UnregisterUpdateObserver da classe ara::crypto::cryp::KeySlot serve para cancelar o registro de um callback observador (UpdateObserver) previamente registrado pela aplicação [SWS_CRYPT_30406]. A função é declarada no cabeçalho ara/crypto/cryp/keyslot.h, projetada como método virtual puro (=0) e não espera parâmetros de entrada [SWS_CRYPT_30406].
Em relação ao contexto de chamada e à concorrência, aplicam-se as seguintes condições de contorno:
Semântica síncrona e segurança para threads: O cancelamento de registro ocorre sincronicamente e é especificado explicitamente como thread-safe [SWS_CRYPT_30406]. Chamadas podem, portanto, ser executadas de forma thread-safe e concorrente a outras operações na mesma instância de KeySlot.
Segurança contra exceções: O método possui a especificação noexcept e é considerado exception-safe [SWS_CRYPT_30406]. Estados de erro, portanto, não levam de forma alguma a exceções C++, sendo tratados de forma ordenada por meio do objeto de retorno.
Como valor de retorno, a função fornece um ara::core::Result<void>, que está vazio em caso de cancelamento de registro bem-sucedido ou encapsula um código de erro em caso de falha [SWS_CRYPT_30406]. Para esta chamada, a especificação deliberadamente não define códigos de erro padronizados da AUTOSAR; eventuais erros são, portanto, específicos do fabricante ou da implementação [SWS_CRYPT_30406]. Os chamadores devem verificar a ocorrência de erros no resultado, mas não podem verificar contra constantes de erro padronizadas.
Na interação com o gerenciamento de chaves, o cancelamento de registro impede de maneira confiável que a aplicação receba outras notificações sobre alterações no conteúdo da chave. Caso nenhum callback estivesse registrado no momento da chamada, a função provavelmente, segundo a interpretação, retornará com sucesso sem efeito ou emitirá um erro específico da implementação. Pergunta Q-7a1e7e0db0691ce6 (aberta)
Esta nota de uso foi criada de forma automatizada com base na especificação AUTOSAR.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão