Disponibiliza tipos de base, domínios de erro e funções de fábrica para serviços criptográficos e gestão de chaves.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 253d08fc1defProcedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Disponibiliza tipos de base, domínios de erro e funções de fábrica para serviços criptográficos e gestão de chaves.
O namespace ara::crypto disponibiliza os tipos de base comuns, buffers de memória e funções de fábrica globais para serviços criptográficos no AUTOSAR Adaptive. As aplicações criam ou obtêm instâncias de subsistemas, tais como fornecedores de criptografia e de armazenamento de chaves, de forma determinística através de pontos de entrada como LoadCryptoProvider[SWS_CRYPT_20099]. Todas as operações criptográficas e utilizações de chaves são rigorosamente monitorizadas através de flags de utilização definidas, bem como pelo domínio de erros normalizado com CryptoErrc[SWS_CRYPT_10099]. Todas as interfaces de fábrica pressupõem um mapeamento de processos válido e foram concebidas para serem thread-safe.
Contexto
O namespace ara::crypto constitui o fundamento comum e o ponto central de entrada para todos os serviços criptográficos, funções de gestão de chaves e operações de certificados da AUTOSAR Adaptive Platform. Em vez de expor detalhes de implementação dos controladores subjacentes ou dos módulos de segurança de hardware, o namespace define interfaces normalizadas e funções de fábrica globais. Através destes pontos de entrada, as aplicações solicitam instâncias dos subsistemas especializados: o fornecedor de criptografia geral [SWS_CRYPT_20099], o fornecedor X.509 [SWS_CRYPT_40099], acessos de leitura e de escrita a locais de armazenamento de chaves [SWS_CRYPT_50004][SWS_CRYPT_50005], bem como formatadores para serialização de objetos [SWS_CRYPT_50200].
Para uma transmissão de dados segura e consistente, ara::crypto disponibiliza abstrações de memória fundamentais e sistemas de tipos. As regiões de buffer são encapsuladas de forma segura quanto aos tipos através de ReadOnlyMemRegion[SWS_CRYPT_10033] para dados de entrada e ReadWriteMemRegion[SWS_CRYPT_10031] para dados de saída. Os algoritmos são referenciados de forma normalizada através de AlgId[SWS_CRYPT_10014] ou AlgIdString[SWS_CRYPT_50000], e os carimbos de data/hora baseiam-se em Timestamp[SWS_CRYPT_50003]. Adicionalmente, a enumeração CryptoObjectType[SWS_CRYPT_10016] classifica os tipos de objeto passíveis de armazenamento na memória de chaves, enquanto sentidos de transformação, como encriptação ou desencriptação, são predefinidos por CryptoTransform[SWS_CRYPT_10019]. As operações de chave permitidas são reguladas através de máscaras de bits do tipo AllowedUsageFlags[SWS_CRYPT_10015], que abrangem, entre outras, encriptação e desencriptação [SWS_CRYPT_13101][SWS_CRYPT_13102], assinaturas [SWS_CRYPT_13103][SWS_CRYPT_13104], acordo de chaves [SWS_CRYPT_13105] e exportações [SWS_CRYPT_40991][SWS_CRYPT_40992]. Para a serialização estão disponíveis identificadores de formato do tipo FormatId[SWS_CRYPT_10701], como kFormatRawValueOnly[SWS_CRYPT_60017], kFormatDerEncoded[SWS_CRYPT_60018] e kFormatPemEncoded[SWS_CRYPT_60019].
Diagrama de contexto: interação entre instâncias de aplicação, os pontos de entrada em ara::crypto e os objetos de subsistema disponibilizados. Fontes: [SWS_CRYPT_20099], [SWS_CRYPT_40099], [SWS_CRYPT_50004], [SWS_CRYPT_50005], [SWS_CRYPT_50200].
Ciclo de vida
A gestão do ciclo de vida dos objetos criptográficos nucleares segue o padrão Factory através de pontos globais de entrada:
Instanciação e relações de posse: As aplicações não criam instâncias manualmente através de construtores. Em vez disso, as funções de fábrica LoadCryptoProvider[SWS_CRYPT_20099], LoadKeySlot[SWS_CRYPT_50004], LoadWriteableKeySlot[SWS_CRYPT_50005], LoadX509Provider[SWS_CRYPT_40099] e LoadFormatter[SWS_CRYPT_50200] retornam referências de posse partilhada sob a forma de ara::core::Result<...::Sptr>.
Ciclos de vida do singleton e do provider: A função LoadX509Provider disponibiliza a instância exclusiva do singleton X509Provider [SWS_CRYPT_40099]. LoadCryptoProvider cria ou referencia a instância existente do provedor criptográfico modelado por meio de um ara::core::InstanceSpecifier[SWS_CRYPT_20099].
Simultaneidade e destruição: Todas as funções de fábrica, bem como os utilitários de domínio de erro GetCryptoErrorDomain[SWS_CRYPT_19952] e MakeErrorCode[SWS_CRYPT_19951], são especificados como seguros contra exceções (noexcept) e seguros para threads (thread-safe). A liberação dos objetos referenciados ocorre automaticamente assim que o último ponteiro compartilhado mantido expirar.
Caminho de utilização
Um caminho de uso típico para executar operações criptográficas ou gerenciar chaves compreende as seguintes etapas:
Carregar o provedor: A aplicação chama LoadCryptoProvider com um ara::core::InstanceSpecifier adequado para obter acesso às operações criptográficas [SWS_CRYPT_20099].
Referenciar o slot de chave: Para fluxos baseados em chave, o espaço de armazenamento correspondente é carregado: somente leitura por meio de LoadKeySlot[SWS_CRYPT_50004] ou com direitos de escrita através de LoadWriteableKeySlot[SWS_CRYPT_50005].
Validação de objetos e verificação de direitos: Antes da execução, a aplicação verifica os tipos de objeto (CryptoObjectType[SWS_CRYPT_10016]) e as restrições de uso configuradas (AllowedUsageFlags[SWS_CRYPT_10015]), por exemplo, kAllowDataEncryption[SWS_CRYPT_13101] ou kAllowDataDecryption[SWS_CRYPT_13102] em conformidade com CryptoTransform[SWS_CRYPT_10019].
Diagrama de sequência: Ordem de chamada e inicialização para carregamento de provedores e slots de chave com posterior verificação de erros. Fontes: [SWS_CRYPT_20099], [SWS_CRYPT_50004], [SWS_CRYPT_19951].
Cenários de erro
O tratamento de erros em ara::crypto baseia-se no domínio de erro global CryptoErrorDomain[SWS_CRYPT_19952], cuja enumeração CryptoErrc[SWS_CRYPT_10099] define todos os códigos de erro específicos:
Erros de argumento e de buffer: Argumentos inválidos levam a kInvalidArgument, identificadores desconhecidos a kUnknownIdentifier e combinações inadequadas de parâmetros a kIncompatibleArguments[SWS_CRYPT_10099]. Se a capacidade de um ReadWriteMemRegion[SWS_CRYPT_10031] for insuficiente, a interface sinaliza kInsufficientCapacity[SWS_CRYPT_10099]. No caso de tamanhos de entrada incorretos, ocorre kInvalidInputSize[SWS_CRYPT_10099].
Violações de estado e de fluxo: Em caso de sequência incorreta de chamadas, o sistema reporta kInvalidUsageOrder[SWS_CRYPT_10099]. Se um contexto for usado antes da inicialização ou uma etapa de cálculo for consultada antes da conclusão, isso resulta em kUninitializedContext, kProcessingNotStarted ou kProcessingNotFinished[SWS_CRYPT_10099].
Violações de direitos e de segurança: Operações contrárias aos direitos declarados em AllowedUsageFlags geram kUsageViolation[SWS_CRYPT_10099]. Se a verificação de uma tag de autenticação falhar, kAuthTagNotValid é disparado [SWS_CRYPT_10099].
Erros de slot e de mapeamento: Contêineres de chaves vazios ou incompatíveis levam a kEmptyKeySlot ou kIncompatibleObject[SWS_CRYPT_10099]. Se o InstanceSpecifier em LoadCryptoProvider, LoadKeySlot ou LoadWriteableKeySlot não apontar para um PortPrototype modelado para o processo atual, isso é avaliado como ProcessMappingViolation ([SWS_CRYPT_20099], [SWS_CRYPT_50004], [SWS_CRYPT_50005]).
Instâncias de erro são geradas programaticamente por meio da função auxiliar MakeErrorCode e referenciam, invariavelmente, o CryptoErrorDomain[SWS_CRYPT_19951].
Este guia baseia-se exclusivamente nos requisitos de especificação da AUTOSAR R25-11.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Diagrama de classes
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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b6b49fc6b39dProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função factory LoadCryptoProvider no namespace ara::crypto serve como ponto de entrada central para criar uma instância de um provedor criptográfico ou recuperar uma instância já existente [SWS_CRYPT_20099]. Para a inclusão, é necessário o cabeçalho ara/crypto/common/entry_point.h[SWS_CRYPT_20099].
Na chamada aplicam-se as seguintes propriedades de parâmetros e retorno [SWS_CRYPT_20099]:
Parâmetros de chamada: o parâmetro de passagem iSpecify (tipo const ara::core::InstanceSpecifier&) identifica o RPortPrototype do tipo CryptoProviderInterface associado ao processo chamador [SWS_CRYPT_20099].
Valor de retorno: em caso de instanciação bem-sucedida, a função retorna um ara::core::Result<cryp::CryptoProvider::Sptr>, o qual encapsula um ponteiro compartilhado (shared pointer) para o objeto provedor carregado [SWS_CRYPT_20099].
Concorrência: a função é declarada como noexcept, considerada como exception safe e especificada explicitamente como thread-safe, de modo que chamadas a partir de threads paralelas são permitidas [SWS_CRYPT_20099].
No que tange ao tratamento de erros, a especificação não define códigos de erro padronizados [SWS_CRYPT_20099]. Uma falha da operação, no entanto, deve ser mapeada como estado de erro no ara::core::Result retornado. Pergunta Q-ad283a067489b0eb (aberta) Além disso, está definida a violação de modelagem ProcessMappingViolation: esta ocorre quando o InstanceSpecifier passado não faz referência a um PortPrototype válido para o processo atual que esteja tipificado por um CryptoProviderInterface[SWS_CRYPT_20099].
Este texto foi gerado por uma IA com base na especificação 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
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 1ad37ba369f0ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função LoadFormatter no namespace ara::crypto serve como factory para a criação de uma instância de Formatter[SWS_CRYPT_50200]. A declaração é disponibilizada por meio do arquivo de cabeçalho ara/crypto/common/formatter.h.
Uso e interface: A chamada ocorre de forma síncrona e não requer parâmetros de passagem. Como valor de retorno, a função fornece um ara::core::Result<ara::crypto::Formatter::Sptr> que, em caso de sucesso, encapsula um ponteiro compartilhado para o objeto Formatter recém-criado [SWS_CRYPT_50200].
Tratamento de erros: A especificação não define códigos de erro padronizados para LoadFormatter[SWS_CRYPT_50200]. Como o valor de retorno é projetado como ara::core::Result, erros específicos da implementação na criação do objeto devem ser transmitidos pelo canal de erro desse tipo de resultado. Pergunta Q-dd9ac8319a9ad931 (aberta)
Concorrência e segurança de execução: A função é declarada como noexcept e especificada como segura contra exceções (exception safe) e segura para threads (thread-safe) [SWS_CRYPT_50200]. Ela pode, assim, ser chamada em paralelo a partir de diferentes threads sem medidas de sincronização externa.
Esta nota de uso foi gerada automaticamente e baseia-se nas diretrizes do padrão AUTOSAR.
Load a read-only key slot. This factory method shall load the information associated with the specified KeySlot into a KeySlot object.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8366de538e98Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função LoadKeySlot no namespace ara::crypto foi concebida como método factory para carregar um slot de chave somente leitura (read-only key slot) [SWS_CRYPT_50004]. Na chamada síncrona, o método carrega os metadados e as informações de chave associados ao slot especificado em um respectivo objeto KeySlot[SWS_CRYPT_50004]. O arquivo de cabeçalho ara/crypto/common/entry_point.h serve para a inclusão.
Como parâmetro de entrada, a função recebe uma especificação de instância iSpecify do tipo const ara::core::InstanceSpecifier&[SWS_CRYPT_50004]. Esse identificador precisa referenciar o RPortPrototype de um CryptoKeySlotInterface ou de um CryptoKeySlotClientInterface que identifique de forma inequívoca a chave a ser carregada [SWS_CRYPT_50004].
Como resultado, o método retorna um ara::core::Result<cryp::KeySlot::Sptr>, o qual disponibiliza um shared pointer para o objeto KeySlot carregado ou um erro [SWS_CRYPT_50004]. A especificação não define códigos de erro padronizados para LoadKeySlot[SWS_CRYPT_50004]. No entanto, é documentada uma ProcessMappingViolation: esta ocorre se o InstanceSpecifier passado não apontar para uma porta modelada para o processo atual que seja tipada por um CryptoKeySlotInterface ou CryptoKeySlotClientInterface[SWS_CRYPT_50004].
Para a execução, a função está declarada como noexcept e oferece total segurança de exceções (exception safe) [SWS_CRYPT_50004]. Além disso, a chamada é especificada como segura para threads (thread-safe), de modo que o acesso concorrente por múltiplas threads é suportado [SWS_CRYPT_50004].
Esta nota de utilização foi gerada automaticamente com base na especificação 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 548256d68415ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função LoadWriteableKeySlot serve como método factory síncrono para carregar as informações de um slot de chave especificado em um objeto cryp::WriteableKeySlot[SWS_CRYPT_50005]. A função está definida no namespace ara::crypto e é disponibilizada através do cabeçalho ara/crypto/common/entry_point.h[SWS_CRYPT_50005].
Parâmetros:iSpecify (do tipo const ara::core::InstanceSpecifier&) referencia o RPortPrototype de um CryptoKeySlotInterface e identifica, assim, a chave a ser carregada [SWS_CRYPT_50005].
Valor de retorno: um ara::core::Result<cryp::WriteableKeySlot::Sptr> que contém o KeySlot carregado como shared pointer ou um objeto de erro [SWS_CRYPT_50005].
Semântica: a chamada ocorre de forma síncrona diretamente durante a execução [SWS_CRYPT_50005].
Tratamento de erros e condições de contorno
Para esta função não estão especificados códigos de erro padronizados [SWS_CRYPT_50005]. Condições de erro ocorridas presumivelmente deverão ser transmitidas através do ara::core::Result retornado. Pergunta Q-e2f8966bf78b1569 (aberta) Um erro de arquitetura ou de configuração leva a um ProcessMappingViolation se o InstanceSpecifier passado não fizer referência a um PortPrototype modelado para o processo atual que seja tipificado por um CryptoKeySlotInterface[SWS_CRYPT_50005].
Concorrência e interação
A função está declarada como thread-safe (thread-safe) e segura contra exceções (exception safe) com garantia de noexcept[SWS_CRYPT_50005]. Ela atende ao requisito de criptografia de nível superior [RS_CRYPTO_02004] e representa o ponto de acesso central para disponibilizar slots de chave graváveis no processo [SWS_CRYPT_50005].
Esta nota de utilização foi gerada por uma IA com base na especificação 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 70f8a61e4c9eProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função LoadX509Provider no namespace ara::crypto serve como método factory para criar a instância singleton do provedor X.509 ou para obter a instância já existente [SWS_CRYPT_40099]. Para a chamada, o arquivo de cabeçalho ara/crypto/common/entry_point.h precisa ser incluído [SWS_CRYPT_40099]. A chamada é realizada de forma síncrona e não recebe parâmetros de entrada. Como valor de retorno, a função fornece um ara::core::Result<ara::crypto::x509::X509Provider::Sptr>, o qual disponibiliza um shared pointer para a instância carregada do provedor X.509 [SWS_CRYPT_40099].
Tratamento de erros
Na especificação, não há códigos de erro padronizados definidos para LoadX509Provider[SWS_CRYPT_40099]. A função está declarada com noexcept e especificada como segura contra exceções (exception safe) [SWS_CRYPT_40099]. Interpretação: como o resultado é encapsulado através do tipo ara::core::Result, estados de erro específicos do sistema durante a inicialização do provedor devem ser transmitidos ao chamador por meio deste objeto Result. Pergunta Q-c187f4f152ccc89f (aberta)
Concorrência e interação
De acordo com a especificação, LoadX509Provider é classificada como segura para threads (thread-safe) [SWS_CRYPT_40099]. Com isso, a chamada pode ocorrer em paralelo a partir de múltiplas threads sem medidas adicionais de sincronização, para obter uma referência à mesma instância singleton. Do ponto de vista funcional, a função implementa os requisitos de nível superior RS_CRYPTO_02306 e RS_CRYPTO_02301[SWS_CRYPT_40099].
Este texto foi gerado por um sistema de IA com base na especificação.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão