DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

ModulCrypto (Crypto Driver)
BSW-Modul-ID114
Standard-Header#include "Crypto.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoDriver.pdf
ClusterCrypto Services

Guia do móduloGERADO POR IA

Fornece primitivas criptográficas e gerenciamento de chaves para a pilha criptográfica do AUTOSAR Classic próxima ao hardware.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 79b1b64c6bf7 Procedência Perguntas em aberto (2)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Fornece primitivas criptográficas e gerenciamento de chaves para a pilha criptográfica do AUTOSAR Classic próxima ao hardware.

Como módulo MCAL, o Crypto Driver fornece cálculos criptográficos de baixo nível, bem como o gerenciamento de chaves para a pilha criptográfica do AUTOSAR Classic (EXP_UtilizationOfCryptoServices p. 8). Ele encapsula módulos de segurança de hardware (HSM) ou bibliotecas de software em Driver Objects e processa jobs síncronos e assíncronos por meio da interface central Crypto_ProcessJob ([SWS_Crypto_91003]). Os acessos a chaves estão sujeitos a permissões configuráveis, e o armazenamento persistente na NVM é acionado apenas após a validação bem-sucedida da chave (SWS_CryptoDriver p. 37).

O Crypto Driver (módulo Crypto), como driver MCAL, forma a base inferior da pilha criptográfica do AUTOSAR Classic e conecta módulos de segurança de hardware (HSM), aceleradores criptográficos e rotinas de software diretamente à interface de criptografia (CryIf) (EXP_UtilizationOfCryptoServices p. 8, SWS_CryptoDriver p. 15). No caso de múltiplas implementações, as instâncias são nomeadas de forma específica do fornecedor com o esquema Crypto_<vi>_<ai> ([SWS_Crypto_00012]). A inicialização ocorre de forma síncrona via [SWS_Crypto_91000] com um ponteiro nulo obrigatório para [SWS_Crypto_91016] ([SWS_Crypto_00215]). Internamente, o módulo encapsula unidades de computação autônomas em Crypto Driver Objects, cada um dos quais pode executar exatamente um job simultaneamente ([SWS_Crypto_00014]), enquanto n objetos permitem cálculos paralelos ([SWS_Crypto_00117]). O Driver Object 0 atua como gerador central de números aleatórios para necessidades internas de todos os outros objetos de driver da mesma instância ([SWS_Crypto_00224], [SWS_Crypto_00225]).

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

Diagrama de contexto: integração do Crypto Driver na pilha criptográfica AUTOSAR com Driver Objects e interfaces para NvM e DET. Fontes: SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Jobs criptográficos são processados por meio de [SWS_Crypto_91003] (Crypto_ProcessJob), onde um campo de bits de modo (START, UPDATE, FINISH) unifica streaming e chamadas únicas completas (SWS_CryptoDriver p. 25, [SWS_Crypto_00017]). Jobs assíncronos são calculados através da função cíclica [SWS_Crypto_91012] (Crypto_MainFunction) e reportados à CryIf após a conclusão via CRYIF_CallbackNotification ([SWS_Crypto_00027], [SWS_Crypto_00028]). Jobs em execução podem ser cancelados de forma síncrona usando [SWS_Crypto_00122] ([SWS_Crypto_00183], [SWS_Crypto_00214]), enquanto redirecionamentos diretos de buffer para elementos de chave reduzem operações de cópia ([SWS_Crypto_00203], [SWS_Crypto_00221]).

Processamento assíncrono de ordens através do Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Verificar parâmetros e handles de chaveE_OK (Auftrag angenommen)Crypto_MainFunction()Iniciar cálculo (START/UPDATE/FINISH)Executar cálculo criptográficoErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Retorno

Diagrama de sequência: fluxo de processamento assíncrono via Crypto_ProcessJob, ciclo em Crypto_MainFunction e retorno via CRYIF_CallbackNotification. Fontes: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

O gerenciamento de chaves abrange a definição ([SWS_Crypto_91004]), leitura ([SWS_Crypto_91006]), cópia ([SWS_Crypto_00155], [SWS_Crypto_91015]), geração ([SWS_Crypto_91007]) e derivação ([SWS_Crypto_91008]) de elementos de chave sob rigoroso controle de permissões de acesso ([SWS_Crypto_00219], [SWS_Crypto_00220]). Por motivos de consistência, a persistência no Non-Volatile RAM Manager (NvM) nunca é disparada em operações de escrita individuais, mas exclusivamente na validação da chave via [SWS_Crypto_91014] (Crypto_KeySetValid) (SWS_CryptoDriver p. 37, [SWS_Crypto_91025]). Em ambientes multicore, o módulo atua de forma isolada em cada partição ([SWS_Crypto_CONSTR_00001]), sendo que objetos HSM só podem ser atribuídos a no máximo uma partição ([SWS_Crypto_CONSTR_00003]).

Função e limites de sistema do Crypto Driver na pilha criptográfica Classic

O Crypto Driver (abreviação do módulo Crypto) está situado na camada mais baixa do software básico do AUTOSAR Classic, no Microcontroller Abstraction Layer (MCAL) (EXP_UtilizationOfCryptoServices p. 8). Ele localiza-se diretamente abaixo da interface de criptografia (Crypto Interface, CryIf) e atende, por meio desta, o Crypto Service Manager (CSM) (SWS_CryptoDriver p. 15). Sua principal tarefa consiste no encapsulamento dos mecanismos de computação criptográfica concretos – sejam módulos de segurança baseados em hardware (Hardware Security Modules, HSM), aceleradores criptográficos dedicados como motores AES ou bibliotecas puramente de software (SWS_CryptoDriver p. 15). Além do cálculo propriamente dito de primitivas criptográficas, o escopo funcional compreende o armazenamento, a configuração e o gerenciamento de chaves criptográficas (SWS_CryptoDriver p. 24).

Em uma unidade de controle eletrônico, múltiplas instâncias de driver de diferentes fornecedores podem coexistir em paralelo; nesse caso, os identificadores de arquivo, API e configuração são diferenciados de forma unívoca por um infixo específico do fornecedor de acordo com o esquema Crypto_<vi>_<ai> ([SWS_Crypto_00012]). A inicialização do módulo ocorre por meio da função [SWS_Crypto_91000] (Crypto_Init). Como particularidade para o ponteiro de configuração do tipo [SWS_Crypto_91016] (Crypto_ConfigType), este deve ser sempre passado como um ponteiro nulo ([SWS_Crypto_00215]). Informações de versão podem ser consultadas de forma síncrona via [SWS_Crypto_91001] (Crypto_GetVersionInfo), sendo que a passagem de um ponteiro nulo com a detecção de desenvolvimento ativa é reportada ao DET com o erro CRYPTO_E_PARAM_POINTER (SWS_CryptoDriver p. 56).

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

Diagrama de contexto: integração do Crypto Driver na pilha criptográfica AUTOSAR com Driver Objects e interfaces para NvM e DET. Fontes: SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Gerenciamento de Crypto Driver Objects e abstração de hardware

Cada instância do Crypto Driver é estruturada internamente em um ou mais objetos de driver lógicos (Crypto Driver Objects) (SWS_CryptoDriver p. 15). Um Crypto Driver Object forma o terminal funcional de um canal criptográfico e representa um mecanismo de computação de hardware autônomo ou uma implementação de software (SWS_CryptoDriver p. 15). Por definição, um único Driver Object pode executar ativamente apenas um job por vez ([SWS_Crypto_00014]). Consequentemente, um Crypto Driver com n Driver Objects possui a capacidade de computar n jobs criptográficos em paralelo ([SWS_Crypto_00117]). Quais primitivas matemáticas e de segurança são suportadas é determinado pela capacidade de desempenho do objeto atribuído ([SWS_Crypto_00013]).

Se um objeto de driver precisar de números aleatórios internos (por exemplo, para o cálculo de valores públicos no âmbito da troca de chaves via [SWS_Crypto_91009]) e não possuir um gerador de números aleatórios próprio, ele recorrerá obrigatoriamente ao Crypto Driver Object 0 do mesmo driver ([SWS_Crypto_00224], [SWS_Crypto_00225]). Os objetos de driver não devem, sob nenhuma circunstância, endereçar geradores de números aleatórios de instâncias externas de drivers criptográficos ([SWS_Crypto_00226]). Interpretação: o Driver Object 0 atua, assim, como gerador de números aleatórios de referência interno central para todos os outros objetos de driver da mesma partição. Pergunta Q-4e8e30714cbc9c80 (aberta)

Processamento de jobs entre chamada direta síncrona e streaming assíncrono

Processamentos criptográficos são transferidos ao módulo como estruturas de job do tipo Crypto_JobType por meio da interface central [SWS_Crypto_91003] (Crypto_ProcessJob) ([SWS_Crypto_00042], AUTOSAR_CP_SWS_CryptoServiceManager p. 21). A interface combina chamadas únicas completas baseadas em blocos e streaming contínuo de dados por meio de um campo de bits específico do modo: as operações START, UPDATE e FINISH podem ser passadas individualmente ou combinadas (SWS_CryptoDriver p. 25). A definição do sinalizador START marca um novo job e cancela todas as instâncias anteriores do mesmo job ([SWS_Crypto_00017]). Em caso de passagem combinada, as etapas são executadas sempre na ordem fixa START, UPDATE e, por fim, FINISH (SWS_CryptoDriver p. 25).

Se um job é processado de forma síncrona ou assíncrona faz parte da configuração de metadados em Crypto_JobType (SWS_CryptoDriver p. 26). No modo assíncrono, [SWS_Crypto_91003] apenas recebe os dados do job; a execução propriamente dita é iniciada ou processada pela função principal cíclica [SWS_Crypto_91012] (Crypto_MainFunction) ([SWS_Crypto_00027], [SWS_Crypto_91012]). Após a conclusão do cálculo assíncrono, o Crypto Driver notifica a camada superior CryIf de forma vinculativa através da chamada da função de callback CRYIF_CallbackNotification, retornando o status e os ponteiros de resultado ([SWS_Crypto_00028]). Interpretação: em contrapartida, chamadas síncronas executam a operação criptográfica de forma bloqueante no contexto do chamador, sem serem desacopladas via função principal. Pergunta Q-0447ed9db11aa30b (aberta)

Processamento assíncrono de ordens através do Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Verificar parâmetros e handles de chaveE_OK (Auftrag angenommen)Crypto_MainFunction()Iniciar cálculo (START/UPDATE/FINISH)Executar cálculo criptográficoErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Retorno

Diagrama de sequência: fluxo de processamento assíncrono via Crypto_ProcessJob, ciclo em Crypto_MainFunction e retorno via CRYIF_CallbackNotification. Fontes: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Jobs criptográficos em execução ou pendentes podem ser cancelados por meio da função [SWS_Crypto_00122] (Crypto_CancelJob). Se o job solicitado não estiver em processamento ativo pelo objeto de driver, ele é removido imediatamente e a chamada retorna E_OK ([SWS_Crypto_00214]). No entanto, se o hardware não puder interromper imediatamente o processo de cálculo ativo, a API sinaliza a tentativa com CRYPTO_E_JOB_CANCELED, e o cancelamento é concluído no próximo passo alcançável ([SWS_Crypto_00183]).

Cancelamento de job através de Crypto_CancelJobCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altO job não está em processamento ativoRemover job da fila do driverE_OK (Job sofort entfernt)Job ativo & o hardware não pode cancelar imediatamenteHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

Diagrama de sequência: cancelamento síncrono de jobs criptográficos via Crypto_CancelJob com distinção de casos na execução ativa em hardware. Fontes: SWS_Crypto_00122, SWS_Crypto_00183, SWS_Crypto_00214

Para evitar operações de cópia desnecessárias entre memórias de aplicação e de hardware, o Crypto Driver suporta o redirecionamento direto de buffer (Job Redirection): dados de entrada e saída podem ser referenciados diretamente para elementos de chave internos via jobRedirectionInfoRef ([SWS_Crypto_00203], [SWS_Crypto_00204]). Para evitar vazamentos de dados, aplicam-se verificações rigorosas de permissão: em redirecionamentos de entrada para serviços de cifragem e decifragem, o elemento de chave deve ter pelo menos a permissão CRYPTO_RA_ENCRYPTED; para redirecionamentos puramente de leitura, exige-se no mínimo CRYPTO_RA_INTERNAL_COPY ([SWS_Crypto_00221]).

Gerenciamento de chaves, permissões de acesso e operações criptográficas de chaves

No Crypto Driver, uma chave lógica (Key) é composta por um ou mais elementos de chave (Key Elements), que armazenam o material de chave propriamente dito, vetores de inicialização (IV), sementes aleatórias ou provas SHE (Proof) (SWS_CryptoDriver p. 28). O acesso a cada elemento individual é estritamente regulamentado: acessos de leitura e escrita são monitorados com base em hierarquias de permissão configuradas (por exemplo, CRYPTO_RA_ALLOWED, CRYPTO_RA_ENCRYPTED, CRYPTO_RA_INTERNAL_COPY), onde um valor de enumeração menor representa uma permissão de acesso superior (SWS_CryptoDriver p. 28, [SWS_Crypto_00219]). Operações diretas de leitura só são permitidas com CRYPTO_RA_ALLOWED ou CRYPTO_RA_ENCRYPTED ([SWS_Crypto_00222]); acessos de escrita pressupõem no mínimo CRYPTO_WA_ALLOWED ou CRYPTO_WA_ENCRYPTED ([SWS_Crypto_00223]). Ao copiar, o elemento de origem deve possuir pelo menos CRYPTO_RA_INTERNAL_COPY e não pode apresentar direitos inferiores aos do elemento de destino ([SWS_Crypto_00220]).

Para a manipulação direta de chaves e seus elementos, o Crypto Driver fornece uma série de APIs síncronas: a definição e a leitura de dados ocorrem via [SWS_Crypto_91004] (Crypto_KeyElementSet) e [SWS_Crypto_91006] (Crypto_KeyElementGet), respectivamente. Identificadores de elementos existentes de uma chave podem ser obtidos via [SWS_Crypto_00160] (Crypto_KeyElementIdsGet). Chaves completas ou elementos individuais são duplicados por meio de [SWS_Crypto_00155] (Crypto_KeyCopy) ou [SWS_Crypto_00148] (Crypto_KeyElementCopy). Para cópias parciais, existe [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial), que impõe verificações precisas de comprimento e deslocamento nos buffers de origem e destino ([SWS_Crypto_00207], [SWS_Crypto_00208], [SWS_Crypto_00209]) e ajusta o comprimento de destino dinamicamente ([SWS_Crypto_00210], [SWS_Crypto_00211]).

Além disso, o módulo suporta operações complexas de chaves: a geração de chaves ocorre por meio de [SWS_Crypto_91007] (Crypto_KeyGenerate) com base em dados de entropia previamente inicializados via [SWS_Crypto_91013] (Crypto_RandomSeed). A derivação de novos materiais de chave é realizada por [SWS_Crypto_91008] (Crypto_KeyDerive). Para protocolos de troca de chaves Diffie-Hellman, estão disponíveis as funções [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) para a geração do valor público e [SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) para a determinação do segredo compartilhado (SWS_CryptoServiceManager p. 70).

Cada chave lógica mantém um estado que pode ser consultado através de [SWS_Crypto_91019] (Crypto_KeyGetStatus). As chaves recém-gravadas encontram-se inicialmente no estado invalid e são liberadas como valid apenas após validação bem-sucedida por meio de [SWS_Crypto_91014] (Crypto_KeySetValid), enquanto [SWS_Crypto_91020] (Crypto_KeySetInvalid) bloqueia a chave explicitamente. No que diz respeito aos formatos de dados, o driver processa chaves assimétricas de acordo com a RFC 5958 na codificação ASN.1-PKCS#8 ([SWS_Crypto_00184]), estruturas de chaves RSA de acordo com a RFC 8017 com OID de algoritmo fixo 1.2.840.113549.1.1.1 ([SWS_Crypto_00185], [SWS_Crypto_00186], [SWS_Crypto_00187], [SWS_Crypto_00188]), bem como dados de curvas ECC (NIST, Brainpool, ED25519) em coordenadas de pontos Little-Endian ([SWS_Crypto_00189], [SWS_Crypto_00190], [SWS_Crypto_00191], [SWS_Crypto_00192], [SWS_Crypto_00193]). Chaves SHE de baixo nível de hardware são passadas no formato M1M2M3; sua comprovação de verificação M4M5 pode ser lida temporariamente no elemento de chave 2 imediatamente após a validação ([SWS_Crypto_00255]).

diag_schluessel_lebenszyklus UNINITIALIZED UNINITIALIZED INVALID INVALID UNINITIALIZED->INVALID Crypto_Init / NVM-Ladefehler INVALID->INVALID Crypto_KeyElementSet / Crypto_KeyGenerate VALID VALID INVALID->VALID Crypto_KeySetValid (verificação OK) VALID->INVALID Crypto_KeySetInvalid VALID->VALID Crypto_KeyElementSet (Re-Validierung ausstehend) NVM_SYNC NVM_SYNC VALID->NVM_SYNC NVM-Schreibanforderung NVM_SYNC->VALID Persistierung erfolgreich

Diagrama de estados: Transições de estado de uma chave desde o preenchimento, passando pela validação, até a persistência e o tratamento de erros. Fontes: SWS_Crypto_00198, SWS_Crypto_00242, SWS_Crypto_91014, SWS_Crypto_91019, SWS_Crypto_91020

Persistência de elementos de chave através do Non-Volatile RAM Manager

Se as chaves precisarem ser mantidas de forma não volátil ao longo de ciclos de alimentação, o Crypto Driver é conectado ao Non-Volatile RAM Manager (NvM) (SWS_CryptoDriver p. 35, AUTOSAR_CP_SWS_CryptoDriver p. 37). Um princípio arquitetural central estabelece que operações de gravação no NvM nunca são acionadas diretamente durante o preenchimento de um elemento individual via Crypto_KeyElementSet (SWS_CryptoDriver p. 37). Em vez disso, a persistência é iniciada exclusivamente através da validação de estado KEYSETVALID via [SWS_Crypto_91014] (Crypto_KeySetValid) ou por um job de criptografia equivalente (SWS_CryptoDriver p. 37). Isso garante que elementos de chave interdependentes sejam verificados de forma consistente e armazenados em um único acesso de gravação no NvM, o que poupa ciclos de flash (SWS_CryptoDriver p. 37).

A interação com o NvM ocorre por meio de interfaces de callback dedicadas: durante a inicialização da ECU, o NvM disponibiliza o bloco de inicialização via [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>). O carregamento de dados persistidos a partir do espelho em RAM do NvM é realizado via [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>). Antes da gravação, o NvM chama [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>) para que o driver criptográfico copie seus dados internos de chave para o buffer do NvM; a conclusão da transferência assíncrona de blocos é reportada via [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>). Para o controle, o driver utiliza os serviços do NvM NvM_SetRamBlockStatus e NvM_WriteBlock ([SWS_Crypto_91017]). Caso o carregamento de uma chave persistente falhe durante a inicialização, o driver marca essa chave obrigatoriamente como invalid ([SWS_Crypto_00198]).

Persistência de chaves na NVM durante a validaçãoCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)Verificar consistência e dependências dos elementosNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)Transferir dados da chave para o espelho RAM da NvME_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)Definir estado da chave como VALIDE_OKE_OK

Diagrama de sequência: Persistência de elementos de chave no NVM na validação via NvM_WriteBlock e callbacks específicos do driver. Fontes: SWS_Crypto_00242, SWS_Crypto_91017, SWS_Crypto_91025, SWS_Crypto_91026

Particionamento e regras de operação multi-core

Para distribuir operações criptográficas de forma eficiente em sistemas multi-core, a pilha de criptografia pode ser dividida em várias partições de software (BSWDistributionGuide p. 59). O módulo Crypto opera em cada partição como uma instância completamente independente: cada chamada de API processa dados exclusivamente dentro da partição na qual foi disparada ([SWS_Crypto_CONSTR_00001]). O particionamento dos objetos do driver está sujeito a regras fixas de configuração: as partições referenciadas por CryptoDriverObjectEcucPartitionRef devem obrigatoriamente formar um subconjunto próprio das partições atribuídas ao módulo (CryptoEcucPartitionRef) ([SWS_Crypto_CONSTR_00002]). Se um Crypto Driver Object estiver acoplado a um módulo de segurança de hardware (HSM), ele pode ser atribuído a exatamente 0 ou 1 partição por motivos de isolamento de hardware ([SWS_Crypto_CONSTR_00003]).

Comportamento em caso de erro

O Crypto Driver implementa um monitoramento de erros de dois níveis, composto por detecção de desenvolvimento (Development Errors) e erros de tempo de execução (Runtime Errors). Com o modo de segurança de desenvolvimento (DET) ativado, violações formais de interface são transmitidas para Det_ReportError ([SWS_Crypto_91017]). Isso inclui chamadas antes da inicialização do driver (CRYPTO_E_UNINIT, 0x00) ([SWS_Crypto_00040], [SWS_Crypto_00196], [SWS_Crypto_00205]), dados de inicialização inválidos (CRYPTO_E_INIT_FAILED, 0x01), bem como ponteiros nulos inadmissíveis (CRYPTO_E_PARAM_POINTER, 0x02) ([SWS_Crypto_00040]). Se os identificadores de chave ou handles de chaves de destino estiverem fora da faixa de valores permitida, o driver interrompe a chamada com E_NOT_OK e reporta CRYPTO_E_PARAM_HANDLE (0x04) ([SWS_Crypto_00040], [SWS_Crypto_00180], [SWS_Crypto_00197], [SWS_Crypto_00202], [SWS_Crypto_00217]).

Se os buffers de entrada ou saída fornecidos forem insuficientes para uma operação, a execução é recusada e, com o DET ativo, o erro CRYPTO_E_SMALL_BUFFER é reportado ([SWS_Crypto_00195], SWS_CryptoDriver p. 49). Uma exceção normativa se aplica aos serviços CRYPTO_HASH e CRYPTO_MACGENERATE: se o buffer de saída aqui for menor que o comprimento nativo de hash ou MAC, o resultado não é descartado, mas gravado no buffer de forma truncada sob a forma dos bits mais significativos (MSB) ([SWS_Crypto_00065]). Na operação operacional, o driver reporta erros específicos de tempo de execução através do valor de retorno: o esgotamento da entropia aleatória é acusado por [SWS_Crypto_91003] com o código de retorno CRYPTO_E_ENTROPY_EXHAUSTED e reporta o erro de tempo de execução CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) ([SWS_Crypto_00141], [SWS_Crypto_00194], [SWS_Crypto_91018]). Se acessos de leitura ou gravação no NVM falharem, CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) é sinalizado ([SWS_Crypto_00194]). Outros valores de retorno padronizados da API são CRYPTO_E_BUSY, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH e CRYPTO_E_KEY_EMPTY ([SWS_Crypto_00155], [SWS_Crypto_00207], [SWS_Crypto_91018]).

Evidências mais detalhadas

As características essenciais do Crypto Driver baseiam-se nos seguintes requisitos funcionais de especificação e pontos de arquitetura:

Área temáticaElementos essenciais de especificaçãoReferência de documento
Estrutura do módulo & instanciação[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
Processamento de pedidos & cancelamento[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
Gerenciamento de chaves & permissões[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
Operações criptográficas & substituição[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
Persistência NvM & callbacks[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
Multi-core & particionamento[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

Este guia baseia-se exclusivamente nas determinações normativas da especificação AUTOSAR Classic R20-11.

Crypto Driver (Crypto)

Low-level driver executing cryptographic primitives on hardware security modules (HSM) or software libraries.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4040b6dde00b Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Crypto_Init serve para inicializar o Crypto Driver em conformidade com [SWS_Crypto_91000]. A interface está declarada no cabeçalho Crypto.h e possui o service ID 0x00 [SWS_Crypto_91000].

Para a chamada e os parâmetros da interface, estão especificadas as seguintes propriedades:

  • Ponteiro de configuração: através do parâmetro de entrada configPtr do tipo const Crypto_ConfigType*, é passado um ponteiro para a estrutura de configuração selecionada [SWS_Crypto_91000].
  • Valor de retorno: a função não possui valor de retorno (void); não existem parâmetros de entrada/saída nem parâmetros de saída separados [SWS_Crypto_91000].
  • Comportamento de execução: a rotina de inicialização é executada de forma síncrona (Synchronous) [SWS_Crypto_91000].
  • Reentrância: a função está definida como não reentrante (Non Reentrant) [SWS_Crypto_91000]. Chamadas paralelas ou sobrepostas são inadmissíveis.

Devido à classificação como não reentrante e uma vez que a especificação não retorna códigos de erro específicos, a chamada deverá ocorrer tipicamente de forma centralizada durante a fase de inicialização da unidade de controlo, antes de quaisquer outros acessos ao driver (interpretação). Pergunta Q-008bb5a45b823891 (aberta) O chamador deverá também ser responsável por assegurar que a estrutura de configuração referenciada permaneça permanentemente válida na memória (interpretação). Pergunta Q-6271a86fad440121 (aberta)

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 58fc9052e1fa Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Crypto_ProcessJob executa a primitiva criptográfica configurada no parâmetro job sobre o Crypto Driver Object referenciado por objectId [SWS_Crypto_91003]. A chamada é reentrante e opera de forma síncrona ou assíncrona, dependendo da configuração do job [SWS_Crypto_91003]. Através do ponteiro para Crypto_JobType, são passados tanto dados de configuração para a primitiva quanto buffers para os dados de resultado [SWS_Crypto_91003].

Antes da execução efetiva de um job, o driver verifica a validade dos identificadores de chave: se job->cryptoKeyId ou, se aplicável, job->targetCryptoKeyId estiverem fora do intervalo permitido, a função reporta o erro CRYPTO_E_PARAM_HANDLE ao DET e retorna E_NOT_OK [SWS_Crypto_00217]. Isto também se aplica ao serviço CRYPTO_KEYDERIVE (job->jobPrimitiveInfo->primitiveInfo->service), caso job->targetCryptoKeyId seja inválido [SWS_Crypto_00202].

Além de E_OK e E_NOT_OK, códigos de erro específicos sinalizam a falha da solicitação [SWS_Crypto_91003]:

  • CRYPTO_E_BUSY, se o objeto de driver estiver ocupado ou a sua fila estiver cheia [SWS_Crypto_91003],
  • erros relacionados com a chave como CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE ou CRYPTO_E_KEY_EMPTY [SWS_Crypto_91003],
  • CRYPTO_E_JOB_CANCELED em caso de cancelamento de um job síncrono [SWS_Crypto_91003] bem como
  • CRYPTO_E_ENTROPY_EXHAUSTED em caso de entropia insuficiente de um gerador de números aleatórios; neste caso, a função reporta adicionalmente o erro de tempo de execução CRYPTO_E_RE_ENTROPY_EXHAUSTED [SWS_Crypto_00141], [SWS_Crypto_91003].

Este texto foi criado por uma IA com base nos dados de especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_CancelJob [SWS_Crypto_00122] 📄 PDF

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

This interface removes the provided job from the queue and cancels the processing of the job if possible.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 53c6dc327c97 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona Crypto_CancelJob remove um job passado da fila e, na medida do possível, cancela o seu processamento [SWS_Crypto_00122]. Na chamada, são passados o identificador do Crypto Driver Object (objectId) e um ponteiro para a configuração do job (job) [SWS_Crypto_00122].

Os valores de retorno sinalizam o resultado da tentativa de cancelamento:

  • E_OK: A solicitação foi bem-sucedida e o job foi removido [SWS_Crypto_00122]. Se não houver erro no driver e o job não estiver a ser processado no momento, o serviço também retorna E_OK sem ações adicionais [SWS_Crypto_00214].
  • E_NOT_OK: A solicitação falhou porque o job não pôde ser removido [SWS_Crypto_00122].
  • CRYPTO_E_JOB_CANCELED: O job foi cancelado, mas continua a ser executado; nenhuns resultados são reportados de volta à aplicação [SWS_Crypto_00122]. Isto aplica-se se o driver funcionar sem erros, mas não conseguir cancelar o job (por exemplo, devido a limitações de hardware) [SWS_Crypto_00183].

Simultaneidade e restrições

A interface é reentrante para instâncias diferentes, mas não pode ser chamada simultaneamente para o mesmo Crypto Driver Object [SWS_Crypto_00122].

Esta nota de utilização foi criada automaticamente e baseia-se exclusivamente nos dados de especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyElementSet [SWS_Crypto_91004] 📄 PDF

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Sets the given key element bytes to the key identified by crypto Key Id.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c644721999af Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyElementSet destina-se a definir os dados brutos de um determinado elemento de chave para uma chave identificada através de cryptoKeyId no driver criptográfico [SWS_Crypto_91004].

Parâmetros e valores de retorno

Através de keyElementId é endereçado o elemento de chave de destino, enquanto keyPtr aponta para o buffer de dados e keyLength para o seu tamanho em bytes [SWS_Crypto_91004]. Em caso de atribuição bem-sucedida, a interface retorna E_OK [SWS_Crypto_91004].

Tratamento de erros

Se ocorrer um erro durante o processamento, a função fornece valores de retorno específicos [SWS_Crypto_91004]:

  • CRYPTO_E_BUSY: O objeto de driver criptográfico associado está ocupado.
  • CRYPTO_E_KEY_WRITE_FAIL: O acesso de gravação ao elemento de chave foi negado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: O elemento de chave solicitado ou a chave não está disponível.
  • CRYPTO_E_KEY_SIZE_MISMATCH: O comprimento dos dados passados não coincide com o tamanho do elemento de chave.
  • E_NOT_OK: A solicitação falhou por outros motivos.

simultaneidade

A função está especificada como não reentrante (Non Reentrant) [SWS_Crypto_91004]. Interpretação: os chamadores deverão ser responsáveis por sincronizar chamadas paralelas entre si, a fim de evitar inconsistências de dados no driver. Pergunta Q-d7ef7a774052a212 (aberta)

Esta nota de utilização foi criada de forma automatizada com base na especificação SWS_Crypto_91004 (R20-11).

Guia do implementador em breve (complexidade I1)

função Crypto_KeySetValid [SWS_Crypto_91014] 📄 PDF

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Sets the key state of the key identified by crypto Key Id to valid.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 234814436706 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeySetValid serve para definir o estado de uma chave especificada pelo identificador cryptoKeyId como válido ([SWS_Crypto_91014]). A interface está disponível através do arquivo de cabeçalho Crypto.h e possui o Service ID 0x05 ([SWS_Crypto_91014]).

Durante o uso, os seguintes parâmetros e valores de retorno são definidos ([SWS_Crypto_91014]):

  • Parâmetro de entrada: Através de cryptoKeyId (tipo uint32), é passado o identificador da chave cujo estado deve ser definido como válido ([SWS_Crypto_91014]). Não existem parâmetros adicionais de entrada ou de saída ([SWS_Crypto_91014]).
  • Valor de retorno: Um código de status do tipo Std_ReturnType informa sobre o resultado da solicitação ([SWS_Crypto_91014]):

Em relação à simultaneidade, a função é especificada como não reentrante ("Non Reentrant") ([SWS_Crypto_91014]). Interpretação: Os chamadores provavelmente precisam coordenar chamadas paralelas entre tarefas externamente para evitar conflitos, e devem prever uma nova tentativa da chamada em um momento posterior ao receber CRYPTO_E_BUSY. Pergunta Q-32d775a9e61e5731 (aberta)

Este texto foi criado por uma IA e baseia-se na versão da especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_KeySetInvalid [SWS_Crypto_91020] 📄 PDF

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

Sets invalid for the status of the key identifi ed by crypto Key Id.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f9c09a4552e9 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função síncrona Crypto_KeySetInvalid define o status de uma chave identificada por cryptoKeyId como inválido [SWS_Crypto_91020]. A função é definida no arquivo de cabeçalho Crypto.h e é acessada por meio do Service ID 0x15 [SWS_Crypto_91020]. O único parâmetro de passagem é o valor de entrada cryptoKeyId (tipo uint32), que contém o identificador unívoco da chave de destino; não existem parâmetros de entrada/saída nem de saída [SWS_Crypto_91020].

Tratamento de erros e valores de retorno

O resultado da execução da função é sinalizado através do valor de retorno do tipo Std_ReturnType [SWS_Crypto_91020]:

  • E_OK: A solicitação foi bem-sucedida e o status da chave foi definido como inválido [SWS_Crypto_91020].
  • E_NOT_OK: A execução da solicitação falhou [SWS_Crypto_91020].
  • CRYPTO_E_BUSY: A solicitação falhou porque o objeto de driver de criptografia (Crypto Driver Object) responsável está atualmente ocupado [SWS_Crypto_91020].

Simultaneidade e restrições

A interface é especificada como não reentrante (Non Reentrant) [SWS_Crypto_91020]. Uma chamada simultânea ou de interrupção é, portanto, inadmissível. Como a função é executada de forma síncrona, ela só retorna ao chamador após a conclusão da alteração de status ou após a identificação do erro [SWS_Crypto_91020].

Esta nota de uso foi gerada automaticamente com base na especificação.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyElementGet [SWS_Crypto_91006] 📄 PDF

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This interface shall be used to get a key element of the key identified by the crypto

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c68d666a4fd9 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona e reentrante Crypto_KeyElementGet destina-se a ler um elemento de chave identificado por keyElementId a partir da chave cryptoKeyId e a armazená-lo na área de memória resultPtr [SWS_Crypto_91006]. A interface é disponibilizada através do cabeçalho Crypto.h e possui o service ID 0x06 [SWS_Crypto_91006]. Na chamada, o chamador passa através do parâmetro de entrada e saída resultLengthPtr o tamanho do buffer ou, no caso de acesso parcial configurado, o tamanho de leitura desejado; após a conclusão da execução, o driver armazena aí a quantidade de dados efetivamente copiada [SWS_Crypto_91006].

Em caso de sucesso, a função retorna E_OK [SWS_Crypto_91006]. Se a operação falhar, sinaliza isso através de códigos de erro específicos: CRYPTO_E_BUSY se o objeto de driver criptográfico estiver ocupado, CRYPTO_E_KEY_NOT_AVAILABLE se o elemento de chave não estiver disponível, CRYPTO_E_KEY_READ_FAIL se o acesso de leitura for negado, CRYPTO_E_KEY_EMPTY no caso de um elemento de origem não inicializado, bem como, genericamente, E_NOT_OK [SWS_Crypto_91006].

Embora a interface esteja especificada como reentrante, a especificação salienta que, no caso de mapeamento direto do elemento de chave na memória flash, podem ocorrer latências percetíveis durante a execução síncrona [SWS_Crypto_91006]. Interpretação: devido a estes potenciais atrasos, a chamada deverá ser adequada primordialmente no contexto de tarefas e não dentro de rotinas de serviço de interrupção com requisitos críticos de tempo. Pergunta Q-ff4e2843b9aad46d (aberta)

Esta nota de utilização foi gerada automaticamente e baseia-se no estado de especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyGetStatus [SWS_Crypto_91019] 📄 PDF

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by crypto Key Id.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4f6e929a170d Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyGetStatus destina-se a consultar o estado atual de uma chave específica dentro do driver criptográfico [SWS_Crypto_91019]. É disponibilizada através do cabeçalho Crypto.h e possui o service ID 0x14 [SWS_Crypto_91019].

Utilização e parâmetros

A chamada ocorre de forma síncrona e espera dois parâmetros [SWS_Crypto_91019]:

  • cryptoKeyId: O identificador da chave cujo estado deve ser determinado.
  • keyStatusPtr: Ponteiro para a área de memória do tipo Crypto_KeyStatusType, para a qual o estado é retornado.

Como valor de retorno, a interface devolve Std_ReturnType. Em caso de execução bem-sucedida, é reportado E_OK, enquanto em caso de erro é retornado E_NOT_OK [SWS_Crypto_91019].

Simultaneidade e restrições

A função está declarada como não reentrante (Non Reentrant) [SWS_Crypto_91019]. Os chamadores devem, por conseguinte, assegurar que chamadas concorrentes sejam evitadas através de mecanismos de sincronização de nível superior. Mensagens de erro DET específicas não estão listadas; provavelmente uma chamada incorreta, como um ponteiro inválido ou um ID inválido, leva diretamente ao retorno de E_NOT_OK [SWS_Crypto_91019]. Pergunta Q-5703fab02905e91a (aberta)

Este texto foi criado por uma IA e baseia-se na especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopy.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0bf976054e55 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyElementCopy destina-se a copiar um elemento de chave para outro elemento de chave dentro do mesmo driver criptográfico [SWS_Crypto_00148]. São passados os identificadores da chave de origem (cryptoKeyId) e do elemento de chave de origem (keyElementId), bem como da chave de destino (targetCryptoKeyId) e do elemento de chave de destino (targetKeyElementId) [SWS_Crypto_00148].

No que diz respeito ao comportamento temporal, deve notar-se que, no caso de elementos de chave mapeados diretamente na memória flash, podem ocorrer atrasos maiores na chamada da função devido à execução síncrona [SWS_Crypto_00148]. O comportamento do tempo de execução deve, por isso, ser tido em conta, em particular em contextos com requisitos críticos de tempo.

A função é concebida como reentrante, mas explicitamente não para a mesma cryptoKeyId [SWS_Crypto_00148]. As chamadas simultâneas com uma chave de origem idêntica devem, por conseguinte, ser sincronizadas ou excluídas pelo chamador.

Em caso de sucesso, a função retorna E_OK [SWS_Crypto_00148]. Em caso de erros, o valor de retorno sinaliza a causa específica [SWS_Crypto_00148]:

  • CRYPTO_E_BUSY: O objeto de driver criptográfico está ocupado [SWS_Crypto_00148].
  • CRYPTO_E_KEY_NOT_AVAILABLE: O elemento de chave solicitado de pelo menos uma chave não está disponível [SWS_Crypto_00148].
  • CRYPTO_E_KEY_READ_FAIL ou CRYPTO_E_KEY_WRITE_FAIL: A leitura do elemento de origem ou a escrita do elemento de destino não é permitida [SWS_Crypto_00148].
  • CRYPTO_E_KEY_SIZE_MISMATCH: Os tamanhos dos elementos de chave não são compatíveis entre si [SWS_Crypto_00148].
  • CRYPTO_E_KEY_EMPTY: o elemento de chave de origem não está inicializado [SWS_Crypto_00148].
  • E_NOT_OK: A solicitação falhou de forma geral [SWS_Crypto_00148].

Esta nota de uso foi gerada de forma automatizada com base na especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyElementCopyPartial [SWS_Crypto_91015] 📄 PDF

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a5ad7cce8b26 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyElementCopyPartial serve para a cópia parcial de dados de um elemento de chave de origem para um elemento de chave de destino dentro do mesmo driver de criptografia [SWS_Crypto_91015]. Por meio dos parâmetros keyElementSourceOffset e keyElementCopyLength, define-se o trecho a ser copiado do elemento de origem (cryptoKeyId, keyElementId), enquanto keyElementTargetOffset determina a posição inicial no elemento de destino (targetCryptoKeyId, targetKeyElementId). Em caso de verificação sem erros, o driver realiza a operação de cópia sincronamente e retorna E_OK [SWS_Crypto_00209].

Antes da execução, o driver valida os estados do buffer e do driver:

  • Se o driver de criptografia não estiver inicializado e o controle de desenvolvimento estiver ativado, a função reporta CRYPTO_E_UNINIT ao DET e retorna E_NOT_OK [SWS_Crypto_00205].
  • Se o comprimento total do elemento de chave de origem for menor que keyElementSourceOffset + keyElementCopyLength, a chamada falha com CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00207].
  • Se o buffer máximo do elemento de chave de destino oferecer menos espaço do que keyElementTargetOffset + keyElementCopyLength, CRYPTO_E_KEY_SIZE_MISMATCH também é reportado [SWS_Crypto_00208].
  • Outros valores de erro especificados incluem CRYPTO_E_BUSY (objeto de driver ocupado), CRYPTO_E_KEY_EMPTY (elemento de origem não inicializado), CRYPTO_E_KEY_NOT_AVAILABLE bem como erros de acesso de leitura ou escrita (CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL) [SWS_Crypto_91015].

A função é reentrante, mas não deve ser chamada simultaneamente para o mesmo ID de chave cryptoKeyId [SWS_Crypto_91015]. Se um elemento de chave estiver armazenado diretamente na memória flash, a execução síncrona pode causar atrasos perceptíveis [SWS_Crypto_91015].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função Crypto_KeyCopy [SWS_Crypto_00155] 📄 PDF

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4fed74be6625 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona Crypto_KeyCopy copia uma chave juntamente com todos os seus elementos de chave para uma chave de destino dentro do mesmo Crypto Driver [SWS_Crypto_00155]. A atribuição é realizada por meio dos parâmetros de entrada cryptoKeyId para a chave de origem e targetCryptoKeyId para a chave de destino [SWS_Crypto_00155]. Uma operação de cópia bem-sucedida é confirmada com E_OK [SWS_Crypto_00155].

Simultaneidade e comportamento em tempo de execução

A interface foi projetada para ser reentrante, mas não deve ser executada simultaneamente para o mesmo cryptoKeyId [SWS_Crypto_00155]. Como a execução é síncrona, podem ocorrer atrasos perceptíveis durante a chamada para elementos de chave armazenados diretamente na memória flash [SWS_Crypto_00155].

Tratamento de erros

Em caso de erro, a função fornece valores de retorno específicos do tipo Std_ReturnType [SWS_Crypto_00155]:

  • CRYPTO_E_BUSY: O Crypto Driver Object associado está ocupado [SWS_Crypto_00155].
  • CRYPTO_E_KEY_NOT_AVAILABLE: Pelo menos uma das chaves solicitadas não está disponível [SWS_Crypto_00155].
  • CRYPTO_E_KEY_READ_FAIL: A leitura do elemento de chave de origem não é permitida [SWS_Crypto_00155].
  • CRYPTO_E_KEY_WRITE_FAIL: A escrita no elemento de chave de destino não é permitida [SWS_Crypto_00155].
  • CRYPTO_E_KEY_SIZE_MISMATCH: Os tamanhos dos elementos de chave não são compatíveis entre si [SWS_Crypto_00155].
  • CRYPTO_E_KEY_EMPTY: O elemento de chave da chave de origem não está inicializado [SWS_Crypto_00155].
  • E_NOT_OK: A execução da solicitação falhou [SWS_Crypto_00155].

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.

função Crypto_KeyElementIdsGet [SWS_Crypto_00160] 📄 PDF

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);

Used to retrieve information which key elements are available in a given key.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 73fbfa8804b7 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyElementIdsGet destina-se a consultar informações sobre quais os elementos de chave que estão disponíveis numa determinada chave [SWS_Crypto_00160]. Através do parâmetro de entrada cryptoKeyId, é transmitido o identificador da chave cujos IDs de elementos disponíveis devem ser exportados [SWS_Crypto_00160]. Os identificadores determinados são armazenados no array referenciado pelo ponteiro keyElementIdsPtr [SWS_Crypto_00160].

A gestão do tamanho do buffer é efetuada através do parâmetro de entrada e saída keyElementIdsLengthPtr: aquando da chamada, este parâmetro deve conter o tamanho disponibilizado do buffer keyElementIdsPtr [SWS_Crypto_00160]. Após a conclusão da operação, é armazenado aí o número efetivo de elementos de chave existentes [SWS_Crypto_00160].

Como valor de retorno, o serviço fornece E_OK em caso de consulta bem-sucedida ou E_NOT_OK se a solicitação falhar [SWS_Crypto_00160]. Se o objeto de driver criptográfico competente estiver ocupado no momento da chamada, é retornado o código de erro CRYPTO_E_BUSY [SWS_Crypto_00160].

No que diz respeito à simultaneidade, a função é reentrante, mas não pode ser chamada simultaneamente para a mesma cryptoKeyId [SWS_Crypto_00160]. A declaração está disponível através do cabeçalho Crypto.h [SWS_Crypto_00160].

Este texto foi gerado por uma IA com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Crypto_RandomSeed [SWS_Crypto_91013] 📄 PDF

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 7ee33749b38a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_RandomSeed (service ID 0x0d) serve, de acordo com [SWS_Crypto_91013], para a geração bem como para a atualização do estado de semente interno de uma chave utilizando uma fonte de entropia disponibilizada. A declaração da função está contida no ficheiro de cabeçalho Crypto.h.

Utilização e parâmetros de chamada

Além da geração inicial, a função também pode ser utilizada, de acordo com [SWS_Crypto_91013], para atualizar o estado de semente com nova entropia. A chamada síncrona requer três parâmetros de entrada:

  • cryptoKeyId: Passa o identificador da chave para a qual deve ser gerada uma nova semente.
  • seedPtr: Contém um ponteiro para a área de memória com os dados para alimentar a semente.
  • seedLength: Define o comprimento dos dados de semente passados em bytes.

Valores de retorno e tratamento de erros

Como valor de retorno, Crypto_RandomSeed reporta um estado do tipo Std_ReturnType de acordo com [SWS_Crypto_91013]:

  • E_OK: A solicitação foi executada com sucesso.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_KEY_NOT_VALID: A execução falha porque o estado da chave identificada por cryptoKeyId se encontra no estado «invalid».

Simultaneidade e restrições

De acordo com [SWS_Crypto_91013], a função está especificada como reentrante, mas expressamente não para a mesma cryptoKeyId. As chamadas paralelas para a mesma chave devem, por isso, ser impedidas do lado do chamador.

Este texto foi gerado por uma IA e baseia-se exclusivamente nos dados de especificação do payload.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyGenerate [SWS_Crypto_91007] 📄 PDF

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

Generates new key material store it in the key identified by crypto Key Id.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9465afa4791c Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função Crypto_KeyGenerate, disponibilizada através do ficheiro de cabeçalho Crypto.h, gera novo material de chave e atualiza a chave endereçada através do identificador cryptoKeyId [SWS_Crypto_91007]. A função opera de forma totalmente síncrona e está definida sob o service ID 0x07 [SWS_Crypto_91007]. Além do identificador da chave, não existem outros parâmetros [SWS_Crypto_91007].

Simultaneidade e restrições

No que diz respeito à simultaneidade, Crypto_KeyGenerate está especificado como reentrante, mas expressamente com a restrição de que isso não se aplica à mesma cryptoKeyId [SWS_Crypto_91007]. Se forem feitas várias solicitações para a mesma chave, estas devem ser sincronizadas do lado do chamador para evitar conflitos no driver.

Valores de retorno e tratamento de erros

Através do valor de retorno do tipo base Std_ReturnType, o chamador obtém feedback detalhado sobre o sucesso ou as causas de erro específicas da operação [SWS_Crypto_91007]:

  • E_OK: A geração da chave foi executada com sucesso [SWS_Crypto_91007].
  • CRYPTO_E_BUSY: A solicitação falhou porque o Crypto Driver Object competente está ocupado no momento [SWS_Crypto_91007].
  • CRYPTO_E_KEY_EMPTY: A geração falhou porque um elemento de chave de origem necessário não está inicializado [SWS_Crypto_91007].
  • CRYPTO_E_KEY_NOT_VALID: A operação falhou porque o estado da chave referenciada por cryptoKeyId está marcado como inválido [SWS_Crypto_91007].
  • E_NOT_OK: A solicitação para geração da chave falhou por outros motivos [SWS_Crypto_91007].

Esta nota de uso foi gerada de forma automatizada com base na especificação do AUTOSAR Classic R20-11.

função Crypto_KeyDerive [SWS_Crypto_91008] 📄 PDF

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5847568b736a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyDerive deriva uma nova chave criptográfica a partir dos elementos de chave de uma chave de origem (cryptoKeyId) e armazena-a no elemento de chave com o ID 1 da chave de destino (targetCryptoKeyId) [SWS_Crypto_91008]. A chave de origem deve conter os elementos de chave necessários para a palavra-passe e o salt; o número de iterações é especificado através do elemento de chave CRYPTO_KE_KEYDERIVATION_ITERATIONS [SWS_Crypto_91008].

Chamada e simultaneidade

A interface é reentrante, mas não pode ser chamada simultaneamente para a mesma cryptoKeyId [SWS_Crypto_91008]. Os chamadores devem, por conseguinte, assegurar que operações de derivação paralelas operem sobre chaves de origem diferentes.

Valores de retorno e tratamento de erros

A função sinaliza o resultado através de valores de retorno definidos do tipo Std_ReturnType [SWS_Crypto_91008]:

  • E_OK: Derivação de chave realizada com sucesso.
  • E_NOT_OK: Derivação falhou. Se o parâmetro targetCryptoKeyId estiver fora do intervalo válido, a função reporta adicionalmente CRYPTO_E_PARAM_HANDLE ao DET com a deteção de desenvolvimento ativada [SWS_Crypto_00180].
  • CRYPTO_E_BUSY: O Crypto Driver Object responsável está ocupado [SWS_Crypto_91008].
  • CRYPTO_E_KEY_EMPTY: Um elemento de chave de origem necessário não está inicializado [SWS_Crypto_91008].
  • CRYPTO_E_KEY_NOT_VALID: O estado da chave referenciada por cryptoKeyId é inválido [SWS_Crypto_91008].

Esta nota de utilização foi gerada automaticamente com base na especificação.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyExchangeCalcPubVal [SWS_Crypto_91009] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c27ddd0a9e75 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona Crypto_KeyExchangeCalcPubVal calcula o valor público para um protocolo de troca de chaves e armazena-o na localização de memória de publicValuePtr ([SWS_Crypto_91009]). O chamador passa através de cryptoKeyId o identificador da chave que deve ser utilizada para o protocolo. Através do parâmetro de entrada e saída publicValueLengthPtr, deve ser passado aquando da chamada o tamanho do buffer da memória disponibilizada; após a conclusão da execução, é armazenado aí o comprimento efetivo do valor público calculado ([SWS_Crypto_91009]).

Tratamento de erros e valores de retorno

A função retorna E_OK em caso de execução bem-sucedida. Se ocorrer um erro, é retornado E_NOT_OK ou um código de erro específico ([SWS_Crypto_91009]):

  • CRYPTO_E_BUSY: A solicitação falha porque o Crypto Driver Object está ocupado.
  • CRYPTO_E_KEY_EMPTY: A solicitação falha porque o elemento de chave de origem não está inicializado.
  • CRYPTO_E_KEY_NOT_VALID: A solicitação falha porque o estado da chave referenciada através de cryptoKeyId é inválido.

Simultaneidade e integração do sistema

De acordo com [SWS_Crypto_91009], a função é reentrante, mas não para a mesma cryptoKeyId. Se o driver criptográfico necessitar de serviços de um gerador de números aleatórios (RNG) para fins internos, como Crypto_KeyExchangeCalcPubVal, o primeiro Crypto Driver Object (número de objeto 0) deve estar configurado para este fim ([SWS_Crypto_00224]).

Este texto foi gerado por uma IA. Todas as informações baseiam-se na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função Crypto_KeyExchangeCalcSecret [SWS_Crypto_91010] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c3912e0f8927 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Crypto_KeyExchangeCalcSecret destina-se ao cálculo de um segredo partilhado (Shared Secret Key) para um protocolo de troca de chaves [SWS_Crypto_91010]. Ela processa o material de chave da chave especificada através de cryptoKeyId juntamente com o valor público do parceiro passado através de partnerPublicValuePtr, cujo número de bytes é indicado através de partnerPublicValueLength [SWS_Crypto_91010]. O segredo partilhado calculado é armazenado diretamente como elemento de chave dentro da mesma chave [SWS_Crypto_91010].

Como valor de retorno, a função fornece o estado através de Std_ReturnType [SWS_Crypto_91010]:

  • E_OK: O cálculo e o armazenamento do segredo foram concluídos com sucesso [SWS_Crypto_91010].
  • E_NOT_OK: a solicitação falhou [SWS_Crypto_91010].
  • CRYPTO_E_BUSY: A execução falhou porque o Crypto Driver Object competente está ocupado [SWS_Crypto_91010].
  • CRYPTO_E_KEY_EMPTY: O elemento de chave de origem não está inicializado [SWS_Crypto_91010].
  • CRYPTO_E_KEY_NOT_VALID: O estado da chave referenciada por cryptoKeyId é inválido [SWS_Crypto_91010].

A interface está implementada como reentrante, mas não pode ser chamada concorrentemente para a mesma cryptoKeyId [SWS_Crypto_91010]. Os chamadores devem, portanto, assegurar que sejam evitadas chamadas simultâneas com ID de chave idêntico e que o material de chave referenciado esteja previamente inicializado e num estado válido, a fim de evitar estados de erro [SWS_Crypto_91010].

Esta nota de utilização foi gerada de forma automatizada com base na especificação de SWS_Crypto_91010.

função Crypto_MainFunction [SWS_Crypto_91012] 📄 PDF

void Crypto_MainFunction (void);

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0801a980dea9 Procedência Perguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Crypto_MainFunction destina-se ao processamento cíclico de pedidos criptográficos enfileirados nas filas de jobs do driver criptográfico [SWS_Crypto_91012]. Pré-requisito para a sua utilização é que o processamento assíncrono de pedidos tenha sido configurado no módulo e que existam as filas de pedidos correspondentes [SWS_Crypto_91012].

Chamada e semântica

A função possui a assinatura void Crypto_MainFunction(void) e está especificada com o service ID 0x0c [SWS_Crypto_91012]. Não recebe nenhuns parâmetros de entrada e não fornece nenhum valor de retorno. A interface é disponibilizada através do cabeçalho SchM_Crypto.h [SWS_Crypto_91012]. Isto permite a interpretação de que a chamada cíclica é despoletada conforme planeado pelo escalonador da BSW (Schedule Manager) no contexto de uma tarefa periódica do sistema operativo.

Simultaneidade e restrições

A chamada está estritamente vinculada à configuração de filas de jobs assíncronos [SWS_Crypto_91012]. Como a especificação não indica reentrância para Crypto_MainFunction, a função deverá ser tratada como não reentrante; chamadas paralelas a partir de múltiplas threads ou tarefas devem, por conseguinte, ser evitadas. Pergunta Q-038d384305c8c5c3 (aberta)

Tratamento de erros

Na especificação não estão registados códigos de erro específicos ou entradas DET para esta função [SWS_Crypto_91012]. Uma vez que a função não fornece valores de retorno, quaisquer erros durante o processamento assíncrono serão provavelmente transmitidos a camadas superiores através de consultas de estado ou através dos canais de retorno dos respetivos jobs. Pergunta (aberta)

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Crypto
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Crypto@rel:R20-11#5c817407
Content hash
5c817407
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

Inicialização e estado

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init função

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

Serviços · KeyElement…

Service Crypto_KeyElementCopy.

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

This interface shall be used to get a key element of the key identified by the crypto

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

Used to retrieve information which key elements are available in a given key.

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);

Sets the given key element bytes to the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Serviços · Key…

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

Generates new key material store it in the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

Returns the key state of the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

Sets invalid for the status of the key identifi ed by crypto Key Id.

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

Sets the key state of the key identified by crypto Key Id to valid.

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Serviços · Outros

This interface removes the provided job from the queue and cancels the processing of the job if possible.

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

Cíclico

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

void Crypto_MainFunction (void);

Tipos

Configuration data structure of Cry If module