DEENESPTFRRUARHIKOZHNL

Crypto Interface (CryIf)

ModulCryIf (Crypto Interface)
BSW-Modul-ID112
Standard-Header#include "CryIf.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoInterface.pdf
ClusterCrypto Services

Guia do móduloGERADO POR IA

Encaminha jobs criptográficos e chamadas de chaves do CSM para os drivers criptográficos responsáveis por meio de canais configurados.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 6b37c73ee677 Procedência Perguntas em aberto (4)
Â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

Encaminha jobs criptográficos e chamadas de chaves do CSM para os drivers criptográficos responsáveis por meio de canais configurados.

Na pilha criptográfica Classic, o CryIf faz a mediação entre o CSM e o Crypto Driver, encaminhando jobs e chamadas de chaves para o Crypto Driver Object responsável por meio de canais configurados SWS CSM p. 26. A interface central é CryIf_ProcessJob, que opera de forma síncrona ou assíncrona, dependendo da configuração [SWS_CryIf_91003]. O driver reporta resultados assíncronos via callback para o CryIf, que os repassa para o CSM. Antes do encaminhamento, o CryIf mapeia seus próprios IDs de chave para os do driver e verifica seu intervalo. Para o R20-11, deve-se observar que releases posteriores alteraram códigos de erro e regras de sincronismo.

Na pilha criptográfica Classic, o CryIf faz a mediação entre o CSM na Service Layer e o Crypto Driver no MCAL. As requisições das aplicações passam por canais lógicos até as engines de hardware de um HSM SWS CSM Fig. 7.4 p. 27. Um canal é o caminho de uma fila do CSM através do CryIf até um Crypto Driver Object; cada fila do CSM é atribuída a exatamente um canal SWS CSM p. 26. Os canais são configurados no contêiner CryIfChannel com CryIfChannelId e CryIfDriverObjectRef SWS CryIf p. 51. Antes de qualquer utilização, CryIf_Init inicializa o módulo com uma configuração específica da implementação [SWS_CryIf_91000].

kontext cluster_app Application Layer cluster_srv Service Layer cluster_ecu ECU Abstraction Layer cluster_mcal MCAL cluster_hw Microcontroller (HSM) app1 App1 (AES) rte RTE app1->rte app2 App2 (AES) app2->rte app3 App3 (RSA) app3->rte csm CSM Queue je Kanal rte->csm Krypto-Dienste cryif CryIf CryIfChannel csm->cryif CryIf_ProcessJob, CryIf_CancelJob, CryIf_Key… cryif->csm Csm_CallbackNotification crypto Crypto Driver Crypto Driver Objects cryif->crypto Weiterleitung je Kanal an Crypto Driver Object det DET cryif->det Det_ReportError, Det_ReportRuntimeError crypto->cryif CryIf_CallbackNotification hwaes HW-AES crypto->hwaes Kanal AES hwrsa HW-RSA crypto->hwrsa Kanal RSA

Diagrama de contexto: o CryIf encaminha requisições do CSM canal por canal para os Crypto Driver Objects e reporta os resultados de volta ao CSM. Fontes: SWS CSM Fig. 7.4 p. 27, [SWS_CryIf_91100]

A interface central é CryIf_ProcessJob. A função é reentrante e opera de forma síncrona ou assíncrona, dependendo da configuração [SWS_CryIf_91003]. Os modos de operação START, UPDATE e FINISH podem ser combinados, permitindo que a mesma função cubra chamadas únicas e streaming SWS CryIf p. 22. O driver reporta resultados assíncronos via CryIf_CallbackNotification [SWS_CryIf_91013]. O CryIf os repassa para o CSM via Csm_CallbackNotification [SWS_CryIf_91100]. Jobs em andamento são cancelados junto ao driver por CryIf_CancelJob [SWS_CryIf_91014].

Processamento de jobs através de CryIf_ProcessJobCSMCryIfCrypto Driver ObjectDETCryIf_ProcessJob(channelId, job)Verificar IDs de chavee mapear para IDs de driveroptID de chave fora do intervaloCRYPTO_E_PARAM_HANDLE meldenE_NOT_OKCrypto_ProcessJob(…, job)altsynchron konfiguriertBerechnungErgebnis (E_OK / CRYPTO_E_…)Repassar o valor de retornoasynchron konfiguriertValor de retorno da transferênciaRepassar o valor de retornoBerechnung,por ex., a partir da função principalCryIf_CallbackNotification(job, result)Csm_CallbackNotification(job, result)

Diagrama de sequência: o CryIf verifica os IDs de chave e, em seguida, encaminha o job. O resultado retorna de forma síncrona como valor de retorno ou de forma assíncrona por meio de dois estágios de callback. Fontes: [SWS_CryIf_91003], [SWS_CryIf_91013], SWS Crypto p. 27

Antes do encaminhamento, o CryIf mapeia seus próprios IDs de chave para os IDs do driver. Se estiverem fora do intervalo, ele reporta CRYPTO_E_PARAM_HANDLE à DET e retorna E_NOT_OK [SWS_CryIf_00133] [SWS_CryIf_00134]. Além disso, o CryIf oferece funções síncronas para definir, validar, invalidar, ler, gerar, derivar, trocar e copiar chaves. Se, durante uma cópia parcial, a origem e o destino estiverem em drivers diferentes, o próprio CryIf lê o elemento e o escreve no destino [SWS_CryIf_00140].

Erros de desenvolvimento como CRYIF_E_UNINIT ou CRYIF_E_PARAM_POINTER são enviados para a DET [SWS_CryIf_00009]. Erros de tempo de execução como CRYPTO_E_BUSY ou CRYPTO_E_KEY_NOT_VALID retornam como valores de retorno [SWS_CryIf_91020]. Releases posteriores divergem do R20-11: eles padronizam CRYIF_E_PARAM_HANDLE e definem CryIf_RandomSeed bem como CryIf_KeyGenerate como síncronos SWS CryIf p. 1.

Papel do CryIf entre Crypto Service Manager e Crypto Driver

O Crypto Interface (CryIf) localiza-se na ECU Abstraction Layer dentro da pilha criptográfica Classic. As aplicações solicitam serviços criptográficos via RTE e CSM. Essas requisições passam por canais lógicos através do CryIf até o Crypto Driver no MCAL e prosseguem para suas engines de hardware, como HW-AES e HW-RSA em um HSM SWS CSM Fig. 7.4 p. 27. Um Crypto Driver Object representa uma \"entidade\" criptográfica independente em hardware ou software, por exemplo, um acelerador AES ou uma implementação RSA em software SWS CSM p. 26. O CryIf não realiza cálculos por si próprio. Suas funções encaminham a respectiva chamada para o Crypto Driver Object configurado, como [SWS_CryIf_91005], [SWS_CryIf_91007], [SWS_CryIf_91009] e [SWS_CryIf_91014].

Para o nível superior, o CryIf oferece três grupos de interfaces:

Para um job no estado \"ACTIVE\", o CSM chama CryIf_ProcessJob e repassa seu valor de retorno inalterado SWS CSM p. 22. Para o nível inferior, o CryIf recebe as notificações de conclusão do driver via CryIf_CallbackNotification [SWS_CryIf_91013] SWS Crypto p. 27. De outros módulos, ele requer Csm_CallbackNotification e Det_ReportRuntimeError [SWS_CryIf_91100], e opcionalmente também Det_ReportError [SWS_CryIf_91101].

kontext cluster_app Application Layer cluster_srv Service Layer cluster_ecu ECU Abstraction Layer cluster_mcal MCAL cluster_hw Microcontroller (HSM) app1 App1 (AES) rte RTE app1->rte app2 App2 (AES) app2->rte app3 App3 (RSA) app3->rte csm CSM Queue je Kanal rte->csm Krypto-Dienste cryif CryIf CryIfChannel csm->cryif CryIf_ProcessJob, CryIf_CancelJob, CryIf_Key… cryif->csm Csm_CallbackNotification crypto Crypto Driver Crypto Driver Objects cryif->crypto Weiterleitung je Kanal an Crypto Driver Object det DET cryif->det Det_ReportError, Det_ReportRuntimeError crypto->cryif CryIf_CallbackNotification hwaes HW-AES crypto->hwaes Kanal AES hwrsa HW-RSA crypto->hwrsa Kanal RSA

Diagrama de contexto: o CryIf conecta as filas do CSM aos Crypto Driver Objects canal por canal e reporta os resultados de volta ao CSM. Fontes: SWS CSM Fig. 7.4 p. 27, [SWS_CryIf_91100], [SWS_CryIf_91013]

Canais, configuração e inicialização

Um canal é o caminho de uma fila do CSM através do CryIf até um Crypto Driver Object. Cada fila do CSM é atribuída a exatamente um canal; opcionalmente, o Crypto Driver também possui uma fila própria SWS CSM p. 26. Os canais são configurados no contêiner CryIfChannel, com multiplicidade 0..* e configuração pre-compile em todas as variantes. O contêiner contém os parâmetros CryIfChannelId e CryIfDriverObjectRef SWS CryIf p. 51. CryIfChannelId determina a qual canal uma fila do CSM está conectada. Em tempo de execução, o parâmetro channelId de [SWS_CryIf_91003] e [SWS_CryIf_91014] também designa o canal criptográfico. Interpretação: CryIfDriverObjectRef deve vincular o canal ao Crypto Driver Object que executa os jobs desse canal. Pergunta Q-5f8f778dc8552b7f (aberta)

Antes de qualquer utilização, deve-se chamar CryIf_Init [SWS_CryIf_91000]. A função é síncrona e não reentrante. Ela recebe um ponteiro para a configuração selecionada do tipo CryIf_ConfigType, cujo conteúdo é específico da implementação [SWS_CryIf_91118] SWS CryIf p. 20. Para uma inicialização com falha, a lista de erros prevê CRYIF_E_INIT_FAILED (0x01) [SWS_CryIf_00009]. CryIf_GetVersionInfo é reentrante e fornece as informações de versão do módulo [SWS_CryIf_91001].

Além dos canais, o CryIf mantém seus próprios identificadores de chaves (cryIfKeyId). Ele os mapeia para os IDs de chave do driver responsável [SWS_CryIf_00133]. Se um job utilizar um redirecionamento de processamento de job (job processing redirection), o CryIf adapta adicionalmente as referências recebidas de chave e de elementos de chave para as referências do driver [SWS_CryIf_00136]. Uma chave é composta por um ou mais elementos de chave, como material de chave, vetor de inicialização ou seed SWS CSM p. 30.

Processamento de jobs de CryIf_ProcessJob até o retorno

A chamada única e o streaming operam por meio da mesma função CryIf_ProcessJob. O campo job->jobPrimitiveInputOutput.mode contém os modos de operação \"START\", \"UPDATE\" e \"FINISH\", que podem ser combinados. Um serviço completo em uma única chamada corresponde à combinação de todos os três modos SWS CryIf p. 22. A função é reentrante e opera de forma síncrona ou assíncrona, dependendo da configuração [SWS_CryIf_91003]. As transições de estado de um job são realizadas pelo Crypto Driver, não pelo CSM SWS CSM p. 22.

No caso assíncrono, o driver transfere apenas as informações necessárias para a primitiva. O cálculo pode então ser disparado a partir da função Main. Após a conclusão, o driver reporta o job e o resultado ao CryIf via CryIf_CallbackNotification SWS Crypto p. 27. Esta função é síncrona e não reentrante; o job passado contém um ID de callback que o identifica [SWS_CryIf_91013]. O CryIf reporta então o término via Csm_CallbackNotification ao CSM; esta função é expressamente prevista para a camada subjacente CRYIF [SWS_CryIf_91100]. Se o bit FINISH estiver definido, o CSM chama o callback configurado SWS CSM p. 82.

Processamento de jobs através de CryIf_ProcessJobCSMCryIfCrypto Driver ObjectDETCryIf_ProcessJob(channelId, job)Verificar IDs de chavee mapear para IDs de driveroptID de chave fora do intervaloCRYPTO_E_PARAM_HANDLE meldenE_NOT_OKCrypto_ProcessJob(…, job)altsynchron konfiguriertBerechnungErgebnis (E_OK / CRYPTO_E_…)Repassar o valor de retornoasynchron konfiguriertValor de retorno da transferênciaRepassar o valor de retornoBerechnung,por ex., a partir da função principalCryIf_CallbackNotification(job, result)Csm_CallbackNotification(job, result)

Diagrama de sequência: O CryIf verifica primeiro os IDs de chave e depois encaminha o job. O resultado retorna sincronamente como valor de retorno ou assincronamente através de dois estágios de callback. Fontes: [SWS_CryIf_91003], [SWS_CryIf_00134], [SWS_CryIf_91013], [SWS_CryIf_91100], SWS Crypto p. 27

Jobs assíncronos em execução e jobs de streaming podem ser cancelados. Para isso, o CSM remove o job da sua própria fila ou chama CryIf_CancelJob SWS CSM p. 80. CryIf_CancelJob é síncrono e reentrante e encaminha o cancelamento para o Crypto Driver Object configurado. E_OK significa que o job foi removido; E_NOT_OK significa que isso não foi possível [SWS_CryIf_91014] SWS CryIf p. 24. As passagens do documento de releases posteriores (R24-11/R25-11) mencionam adicionalmente CRYPTO_E_JOB_CANCELED. Neste caso, o cancelamento ocorre apenas na próxima etapa de processamento adequada e é reportado através de um callback de conclusão negativo SWS CSM p. 80.

Cancelamento de um jobAplicaçãoCSMCryIfCrypto Driver ObjectCsm_CancelJob(job, mode)altJob ainda na fila do CSMRemover job da própria filaJob já no driverCryIf_CancelJob(channelId, job)Abbruch weiterleiten(Crypto_CancelJob)E_OK / E_NOT_OK(mais tarde também CRYPTO_E_JOB_CANCELED)Valor de retornoE_OK: o CSM chama o callback de conclusão do jobCRYPTO_E_JOB_CANCELED: cancelamento no próximogeeigneten Schritt, negativer Abschluss-CallbackValor de retorno

Diagrama de sequência: Um cancelamento termina já na fila do CSM ou é encaminhado através do CryIf para o Crypto Driver Object. Fontes: [SWS_CryIf_91014], SWS CSM p. 80, SWS CryIf p. 45

Mapear e verificar IDs de chave no job

Alguns jobs contêm um serviço de gerenciamento de chaves: CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL ou CRYPTO_KEYEXCHANGECALCSECRET. Para eles, o CryIf verifica se job->jobPrimitiveInputOutput->cryIfKeyId e, se aplicável, targetCryIfKeyId estão na faixa válida. Se for esse o caso, ele define job->cryptoKeyId ou job->targetCryptoKeyId para os IDs de chave do driver [SWS_CryIf_00133] [SWS_CryIf_00141]. Se o ID de origem estiver fora da faixa, CryIf_ProcessJob reporta CRYPTO_E_PARAM_HANDLE à DET e retorna E_NOT_OK [SWS_CryIf_00134]. Para CRYPTO_KEYDERIVE aplica-se o mesmo também para o ID de destino [SWS_CryIf_00135].

Primitivas com referência a chave também são verificadas. Em CRYPTO_MACGENERATE, CRYPTO_MACVERIFY, CRYPTO_ENCRYPT, CRYPTO_DECRYPT, CRYPTO_AEADENCRYPT, CRYPTO_AEADDECRYPT, CRYPTO_RANDOMGENERATE, CRYPTO_SIGNATUREGENERATE e CRYPTO_SIGNATUREVERIFY, job->jobPrimitiveInfo->cryIfKeyId é verificado quanto à faixa válida [SWS_CryIf_00143].

keyid start CryIf_ProcessJob(channelId, job) d1 Serviço de gerenciamento de chaves? KEYSETVALID, KEYSETINVALID, RANDOMSEED, KEYGENERATE, KEYDERIVE, KEYEXCHANGECALCPUBVAL, KEYEXCHANGECALCSECRET start->d1 c1 jobPrimitiveInputOutput->cryIfKeyId no intervalo válido? d1->c1 sim d3 Primitiva com chave? MACGENERATE/-VERIFY, (AEAD)ENCRYPT/DECRYPT, RANDOMGENERATE, SIGNATUREGENERATE/-VERIFY d1->d3 não d2 Dienst = CRYPTO_KEYDERIVE? c1->d2 sim err CRYPTO_E_PARAM_HANDLE para o DET retorno E_NOT_OK c1->err não c2 targetCryIfKeyId no intervalo válido? d2->c2 sim map Definir job->cryptoKeyId (se aplicável, job->targetCryptoKeyId) para os IDs de chave do driver d2->map não c2->map sim c2->err não fwd Encaminhar para o Crypto Driver Object do canal map->fwd c3 jobPrimitiveInfo->cryIfKeyId no intervalo válido? d3->c3 sim d3->fwd não c3->err não c3->fwd sim

Diagrama de atividades: O CryIf verifica os IDs de chave dependendo do tipo de serviço e os mapeia para IDs de driver antes de encaminhar o job. Fontes: [SWS_CryIf_00133], [SWS_CryIf_00134], [SWS_CryIf_00135], [SWS_CryIf_00143]

Esta área mudou entre os releases. O R20-11 menciona nas verificações CRYPTO_E_PARAM_HANDLE, enquanto a lista de erros do módulo define, em contrapartida, CRYIF_E_PARAM_HANDLE (0x03) [SWS_CryIf_00009]. De acordo com o histórico de alterações, isso foi padronizado para CRYIF_E_PARAM_HANDLE apenas no R22-11 SWS CryIf p. 1. Com a mesma alteração, os valores de retorno após notificações da DET foram eliminados. Além disso, foi adicionado o serviço CRYPTO_CUSTOM, que já consta na lista na passagem posterior do documento SWS CryIf p. 23. Para o R20-11, os requisitos aplicam-se na forma aqui citada.

Gerenciamento de chaves: material, status, geração e troca

As APIs diretas de chave são síncronas. Não são reentrantes: CryIf_KeyElementSet [SWS_CryIf_91004], CryIf_KeySetValid [SWS_CryIf_91005], CryIf_KeySetInvalid [SWS_CryIf_91021] e CryIf_KeyGetStatus [SWS_CryIf_91012]. A funcionalidade para o status da chave foi adicionada, de acordo com o histórico de alterações, com o R20-11 SWS CryIf p. 1. Se a definição de um elemento falhar, seu status é considerado desconhecido segundo a especificação do CSM SWS CSM p. 62. Ele pode ser verificado com Csm_KeyGetStatus, que por sua vez chama CryIf_KeyGetStatus SWS CSM p. 63.

CryIf_KeyElementGet é reentrante [SWS_CryIf_91006]. O parâmetro resultLengthPtr serve como entrada e saída. Na chamada, ele contém o tamanho do buffer; para elementos com acesso parcial, em vez disso, a quantidade a ser lida. Após a conclusão, ele contém a quantidade de dados efetivamente armazenada SWS CryIf p. 30.

schluesselstatus start Start gesetzt Elementos definidos (ainda não declarados válidos, interpretação) start->gesetzt CryIf_KeyElementSet valid válido (valid) gesetzt->valid CryIf_KeySetValid valid->valid Nutzung in Jobs, CryIf_KeyGetStatus invalid inválido (invalid) valid->invalid CryIf_KeySetInvalid invalid->valid CryIf_KeySetValid invalid->invalid Nutzung scheitert: CRYPTO_E_KEY_NOT_VALID

Diagrama de estados: Uma chave é declarada válida após a definição dos seus elementos e pode ser definida novamente como inválida. Em caso de chave inválida, operações falham com CRYPTO_E_KEY_NOT_VALID. O estado inicial antes de CryIf_KeySetValid é uma interpretação. Fontes: [SWS_CryIf_91004], [SWS_CryIf_91005], [SWS_CryIf_91021], [SWS_CryIf_91012], SWS CSM p. 70

Para a geração de chaves, CryIf_RandomSeed [SWS_CryIf_91007] fornece os valores iniciais e CryIf_KeyGenerate [SWS_CryIf_91008] gera a chave. De acordo com a especificação do CSM, a chave é criada no elemento CRYPTO_KE_KEYGENERATE_KEY. A base são a semente em CRYPTO_KE_KEYGENERATE_SEED e o algoritmo em CRYPTO_KE_KEYGENERATE_ALGORITHM SWS CSM p. 67. No R20-11, ambas as funções operam de forma síncrona ou assíncrona, dependendo da configuração [SWS_CryIf_91007] [SWS_CryIf_91008]. Somente o R21-11 as define como síncronas SWS CryIf p. 1. CryIf_KeyDerive é síncrono e reentrante e deriva, a partir de uma chave de origem, uma chave que é armazenada na chave de destino [SWS_CryIf_91009] SWS CryIf p. 42.

Existem duas funções para a troca de chaves Diffie-Hellman. CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] calcula o próprio valor público. CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] calcula o segredo compartilhado a partir do valor do parceiro. O material de chave encontra-se nos elementos CRYPTO_KE_KEYEXCHANGE_BASE, CRYPTO_KE_KEYEXCHANGE_PRIVKEY e CRYPTO_KE_KEYEXCHANGE_OWNPUBKEY SWS CSM p. 70. O driver armazena o segredo como elemento na mesma chave SWS Crypto p. 84. Interpretação: Mesmo nas APIs diretas de chave, o CryIf provavelmente mapeia cryIfKeyId para o ID de chave do driver, como no caminho do job [SWS_CryIf_00133]. Pergunta Q-f146ad33e972fa97 (aberta)

Troca de chaves através do CryIfAnwendung / CSMCryIfCrypto Driver ObjectKommunikationspartnerUse Case: Calcular o próprio valor públicoCryIf_KeyExchangeCalcPubVal(cryIfKeyId,publicValuePtr, publicValueLengthPtr)an konfiguriertes Crypto Driver Object weiterleitenvalor público, valor de retornovalor público, valor de retornoUse Case: Troca fora do CryIfenviar o próprio valor públicoenviar o valor público do parceiroUse Case: Gemeinsames Geheimnis berechnenCryIf_KeyExchangeCalcSecret(cryIfKeyId,partnerPublicValuePtr, partnerPublicValueLength)Crypto_KeyExchangeCalcSecret(…)Segredo como elemento de chavearmazenar na mesma chaveValor de retornoValor de retorno

Diagrama de sequência: A troca de chaves ocorre em duas chamadas do CryIf. Entre elas, a aplicação troca os valores públicos com o parceiro fora do CryIf. Fontes: [SWS_CryIf_91010], [SWS_CryIf_91011], SWS CSM p. 70, SWS Crypto p. 84

Cópia de chaves dentro de Crypto Drivers e entre eles

Para cópias existem CryIf_KeyElementCopy [SWS_CryIf_91015], CryIf_KeyCopy [SWS_CryIf_91016] e CryIf_KeyElementCopyPartial [SWS_CryIf_91018]. Todas as três são síncronas e reentrantes, mas não para a mesma cryIfKeyId. Além de E_OK e E_NOT_OK, elas podem retornar, entre outros, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_SIZE_MISMATCH e CRYPTO_E_KEY_EMPTY SWS CryIf p. 35.

Na cópia parcial, a especificação distingue dois casos:

  • A chave de origem e a chave de destino estão no mesmo Crypto Driver: O CryIf chama Crypto_<vi>_<ai>_KeyElementCopyPartial() do driver atribuído e repassa o seu valor de retorno [SWS_CryIf_00139].
  • As chaves estão em drivers diferentes: O CryIf lê o elemento com Crypto_<vi>_<ai>_KeyElementGet(), copia os dados parciais para o seu destino e escreve o elemento de destino com Crypto_<vi>_<ai>_KeyElementSet() [SWS_CryIf_00140].

As funções de cópia dos drivers são interfaces opcionais. Se um elemento estiver localizado diretamente na flash, uma chamada pode demorar consideravelmente mais SWS CryIf p. 45.

copypartial start CryIf_KeyElementCopyPartial(…) fehler Fehler durch CryIf erkannt? start->fehler abbruch nenhum encaminhamento (consulte o comportamento em caso de erro) fehler->abbruch sim gleich cryIfKeyId e targetCryIfKeyId no mesmo Crypto Driver? fehler->gleich não ende Ende abbruch->ende partial Chamar Crypto_<vi>_<ai>_KeyElementCopyPartial(), repassar o valor de retorno gleich->partial sim lesen Ler elemento de origem com Crypto_<vi>_<ai>_KeyElementGet() gleich->lesen não partial->ende kopieren Teildaten an Zielposition kopieren lesen->kopieren schreiben Gravar elemento de destino com Crypto_<vi>_<ai>_KeyElementSet() kopieren->schreiben schreiben->ende

Diagrama de atividades: Se o CryIf delega diretamente ao driver ou copia ele próprio através de leitura e escrita depende do fato de as chaves estarem no mesmo driver. Fontes: [SWS_CryIf_00139], [SWS_CryIf_00140].

Comportamento em caso de erro

O CryIf reporta erros de desenvolvimento à DET. A lista de erros do módulo abrange [SWS_CryIf_00009]:

Código de erroValorMotivo
CRYIF_E_UNINIT0x00Chamada de API antes da inicialização
CRYIF_E_INIT_FAILED0x01Falha na inicialização
CRYIF_E_PARAM_POINTER0x02Ponteiro nulo como parâmetro
CRYIF_E_PARAM_HANDLE0x03Parâmetro fora da faixa
CRYIF_E_PARAM_VALUE0x04Valor de parâmetro inválido
CRYIF_E_KEY_SIZE_MISMATCH0x05Tamanho do elemento de origem e de destino incompatível

A notificação de CRYIF_E_UNINIT antes da inicialização está comprovada para várias funções: CryIf_KeyDerive SWS CryIf p. 42, CryIf_RandomSeed SWS CryIf p. 37, CryIf_CancelJob SWS CryIf p. 24, CryIf_KeyGetStatus SWS CryIf p. 29 e CryIf_CallbackNotification SWS CryIf p. 44. Para os demais serviços, presume-se que se aplique o mesmo. Pergunta (aberta) Outras verificações também estão comprovadas. CryIf_CancelJob reporta CRYIF_E_PARAM_HANDLE no caso de uma channelId inadmissível, CryIf_KeyGetStatus no caso de uma cryIfKeyId inadmissível. CryIf_CallbackNotification verifica o seu ponteiro e reporta CRYIF_E_PARAM_POINTER se aplicável SWS CryIf p. 44.

Erros de tempo de execução vêm como valores de retorno do driver. O CryIf os repassa, conforme estabelecido, por exemplo, por [SWS_CryIf_00139] para a cópia parcial. O CSM repassa, por sua vez, o valor de retorno de CryIf_ProcessJob SWS CSM p. 22. A faixa de valores abrange, entre outros, [SWS_CryIf_91020]:

  • CRYPTO_E_BUSY (0x02): Serviço ainda ocupado
  • CRYPTO_E_ENTROPY_EXHAUSTED (0x04)
  • CRYPTO_E_KEY_READ_FAIL (0x06)
  • CRYPTO_E_KEY_WRITE_FAIL (0x07)
  • CRYPTO_E_KEY_NOT_AVAILABLE (0x08)
  • CRYPTO_E_KEY_NOT_VALID (0x09)

Se uma fila do CSM estiver cheia, o próprio CSM já rejeita a requisição com CRYPTO_E_BUSY SWS CSM p. 22.

Em relação aos valores de retorno, vale a pena observar o histórico de releases. CRYPTO_E_QUEUE_FULL só foi removido de [SWS_CryIf_91003] com o R23-11. CRYPTO_E_KEY_EMPTY só foi adicionado para CryIf_RandomSeed no R24-11 SWS CryIf p. 1. Para o R20-11, são, portanto, determinantes os requisitos de API desse release, e não as passagens de documentos com datas posteriores.

Evidências mais detalhadas

Guia gerado por IA com base nos requisitos do R20-11 e nas passagens de documento atribuídas, que se originam parcialmente de releases posteriores. A especificação AUTOSAR é determinante.

Crypto Interface (CryIf)

Abstracts cryptographic hardware and software acceleration engines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função CryIf_Init [SWS_CryIf_91000] 📄 PDF

void CryIf_Init (const CryIf_ConfigType* configPtr);

Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface

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

usar

A função síncrona CryIf_Init serve para a inicialização completa do módulo Crypto Interface (CryIf) de acordo com o AUTOSAR Classic Platform [SWS_CryIf_91000]. A função está declarada no arquivo de cabeçalho CryIf.h e possui o Service ID 0x00 [SWS_CryIf_91000]. Como único parâmetro de entrada, a interface espera configPtr, um ponteiro para uma estrutura de configuração selecionada do tipo CryIf_ConfigType [SWS_CryIf_91000]. A função não retorna nenhum valor de retorno (void) e não possui parâmetros inout nem out [SWS_CryIf_91000].

Semântica e concorrência

A chamada de CryIf_Init é executada de forma síncrona [SWS_CryIf_91000]. O módulo conclui, portanto, todas as tarefas de inicialização necessárias antes que a execução seja devolvida ao chamador. Em relação à concorrência, a função é classificada como não reentrante (Non Reentrant) [SWS_CryIf_91000]. Portanto, a rotina não pode em momento algum ser chamada de forma paralela ou aninhada.

Restrições e integração

Interpretação: A chamada de CryIf_Init deve ocorrer tipicamente de forma centralizada durante a inicialização do sistema, no âmbito da fase de inicialização do software básico, antes que os serviços da interface de criptografia subsequentes possam ser chamados. Como o payload não menciona tratamentos de erro específicos, mensagens DET ou eventos DEM, o chamador deve assegurar previamente um ponteiro válido para a configuração. Requisitos relacionados não estão definidos no payload. Pergunta Q-31b82ca9b144c843 (aberta)

Esta nota de utilização foi criada de forma automatizada e baseia-se exclusivamente nos dados de especificação relativos a SWS_CryIf_91000.

Guia do implementador em breve (complexidade I1)

função CryIf_ProcessJob [SWS_CryIf_91003] 📄 PDF

Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);

Service CryIf_ProcessJob.

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

A função CryIf_ProcessJob (ID de serviço 0x03), disponibilizada por meio do cabeçalho CryIf.h, encaminha ordens de processamento criptográfico para o respectivo objeto Crypto Driver configurado [SWS_CryIf_91003]. Como parâmetros, ela recebe o identificador do canal criptográfico (channelId) e um ponteiro para a configuração da ordem (job) [SWS_CryIf_91003]. A estrutura job contém todas as informações relevantes para o usuário e para o primitivo criptográfico específico [SWS_CryIf_91003]. O processamento da ordem ocorre de forma síncrona ou assíncrona, dependendo da configuração; além disso, a interface é implementada como reentrante [SWS_CryIf_91003].

Em caso de aceitação sem erros, a função retorna E_OK [SWS_CryIf_91003]. Se a solicitação falhar, o valor de retorno sinaliza E_NOT_OK ou um estado de erro específico do driver: CRYPTO_E_BUSY (objeto de driver ocupado), CRYPTO_E_QUEUE_FULL (fila cheia), erros relativos aos estados das chaves como CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_EMPTY, CRYPTO_E_KEY_READ_FAIL ou CRYPTO_E_KEY_WRITE_FAIL, bem como CRYPTO_E_JOB_CANCELED em caso de cancelamento de uma ordem síncrona e CRYPTO_E_ENTROPY_EXHAUSTED [SWS_CryIf_91003].

Além disso, a interface realiza verificações prévias dos identificadores de chave:

  • Se job->jobPrimitiveInfo->primitiveInfo->service estiver definido como CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL ou CRYPTO_KEYEXCHANGECALCSECRET, job->cryIfKeyId deve estar dentro da faixa de valores válida [SWS_CryIf_00134]. Caso contrário, a função relata o erro CRYPTO_E_PARAM_HANDLE ao DET e aborta com E_NOT_OK [SWS_CryIf_00134].
  • Se o serviço CRYPTO_KEYDERIVE for solicitado, o identificador da chave de destino job->cryIfTargetKeyId também deve estar dentro da faixa válida; caso contrário, CRYPTO_E_PARAM_HANDLE também é relatado ao DET e E_NOT_OK é retornado [SWS_CryIf_00135].

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

função CryIf_CancelJob [SWS_CryIf_91014] 📄 PDF

Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);

This interface dispatches the job cancellation function to the configured crypto driver object.

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

A função CryIf_CancelJob serve para o encaminhamento de uma solicitação de cancelamento de um job criptográfico para o objeto Crypto Driver configurado [SWS_CryIf_91014]. Ela fornece a interface padronizada da Crypto Interface, é declarada por meio do cabeçalho CryIf.h e possui o ID de serviço 0x0e [SWS_CryIf_91014].

Para a chamada, devem ser passados o identificador do canal de destino, bem como a configuração do job [SWS_CryIf_91014]:

  • channelId (Entrada, uint32): Contém a identificação do respectivo canal criptográfico [SWS_CryIf_91014].
  • job (Entrada/Saída, Crypto_JobType*): Ponteiro para a configuração do job, que compreende estruturas com informações relevantes ao usuário e ao primitivo [SWS_CryIf_91014].

A execução ocorre de forma síncrona e retorna um status do tipo Std_ReturnType ao chamador [SWS_CryIf_91014]:

  • E_OK: A solicitação foi bem-sucedida e o job foi removido do driver [SWS_CryIf_91014].
  • E_NOT_OK: A solicitação falhou porque o job não pôde ser removido [SWS_CryIf_91014].
  • CRYPTO_E_JOB_CANCELED: Valor de retorno criptográfico especificado para confirmação do cancelamento do job [SWS_CryIf_91014].

Em relação ao comportamento de concorrência, CryIf_CancelJob é especificado como reentrante [SWS_CryIf_91014]. Isso permite chamadas paralelas para o cancelamento de ordens, sendo a execução delegada de forma bloqueante ao objeto de driver subjacente [SWS_CryIf_91014].

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

função CryIf_KeyElementSet [SWS_CryIf_91004] 📄 PDF

Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

This function shall dispatch the set key element function to the configured crypto driver object.

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

A função síncrona CryIf_KeyElementSet (Service ID 0x04) encaminha a solicitação de definição de um elemento de chave para o objeto de driver de criptografia configurado [SWS_CryIf_91004]. A declaração da função é disponibilizada através do arquivo de cabeçalho CryIf.h [SWS_CryIf_91004].

A chamada ocorre através de quatro parâmetros de entrada [SWS_CryIf_91004]:

  • cryIfKeyId: Designa o identificador da chave cujo elemento de chave deve ser atualizado.
  • keyElementId: Designa o identificador do elemento de chave concreto que deve ser definido.
  • keyPtr: Ponteiro para o buffer com os dados da chave que devem ser adotados como elemento.
  • keyLength: Indica o comprimento do elemento de chave a ser definido em bytes.

A função é especificada como não reentrante (Non Reentrant) [SWS_CryIf_91004]. Por isso, os chamadores devem garantir que as chamadas não ocorram de forma concorrente e descoordenada.

O valor de retorno do tipo Std_ReturnType sinaliza o resultado do encaminhamento ou da execução [SWS_CryIf_91004]:

  • E_OK: A solicitação foi bem-sucedida.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_BUSY: O objeto de driver de criptografia associado está atualmente ocupado.
  • CRYPTO_E_KEY_WRITE_FAIL: O acesso de gravação ao elemento de chave foi negado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: A chave solicitada não está disponível.
  • CRYPTO_E_KEY_SIZE_MISMATCH: O tamanho do elemento de chave não coincide com o comprimento dos dados fornecidos.

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

Guia do implementador em breve (complexidade I1)

função CryIf_KeySetValid [SWS_CryIf_91005] 📄 PDF

Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);

This function shall dispatch the set key valid function to the configured crypto driver object.

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

usar

A interface síncrona CryIf_KeySetValid (Service ID 0x05) é disponibilizada através do arquivo de cabeçalho CryIf.h e encaminha a solicitação de validação de uma chave para o respectivo objeto de driver de criptografia configurado [SWS_CryIf_91005]. Como único parâmetro é passado o identificador cryIfKeyId, que determina a chave de destino cujos elementos de chave devem ser marcados como válidos [SWS_CryIf_91005]. Não existem parâmetros adicionais de entrada/saída ou de saída para esta função [SWS_CryIf_91005].

Valores de retorno e tratamento de erros

O valor de retorno do tipo Std_ReturnType informa o chamador sobre o resultado do encaminhamento e do processamento no driver [SWS_CryIf_91005]:

  • E_OK: A operação foi encaminhada com sucesso para o objeto de driver de criptografia e concluída com sucesso [SWS_CryIf_91005].
  • E_NOT_OK: O encaminhamento ou a execução da solicitação falhou [SWS_CryIf_91005].
  • CRYPTO_E_BUSY: A solicitação não pôde ser executada porque o objeto de driver de criptografia responsável está atualmente ocupado [SWS_CryIf_91005].

Simultaneidade e restrições

A função é explicitamente indicada na especificação como não reentrante (Non Reentrant) [SWS_CryIf_91005]. Instâncias chamadoras devem, portanto, assegurar que chamadas de CryIf_KeySetValid nunca sejam executadas de forma concorrente ou interruptiva, a fim de evitar de forma confiável conflitos no encaminhamento para o objeto de driver.

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

função CryIf_KeySetInvalid [SWS_CryIf_91021] 📄 PDF

Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);

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

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

A interface síncrona CryIf_KeySetInvalid (Service ID 0x14) define o status da chave identificada através do parâmetro cryIfKeyId como inválido [SWS_CryIf_91021]. A declaração da função é disponibilizada através do arquivo de cabeçalho CryIf.h [SWS_CryIf_91021].

Para a utilização da função, aplicam-se os seguintes parâmetros bem como valores de retorno [SWS_CryIf_91021]:

  • Parâmetros de passagem: através do parâmetro de entrada cryIfKeyId do tipo uint32, é transmitido o identificador da chave cuja validade deve ser revogada. Não existem parâmetros de entrada e saída.
  • Valor de retorno (Std_ReturnType):
    • E_OK: A solicitação de alteração de estado foi bem-sucedida.
    • E_NOT_OK: A solicitação falhou.
    • CRYPTO_E_BUSY: A execução falhou porque o Crypto Driver Object competente está ocupado.

No que diz respeito à simultaneidade e ao contexto de execução, CryIf_KeySetInvalid está especificado como não reentrante (Non Reentrant) [SWS_CryIf_91021]. As instâncias chamadoras devem, portanto, assegurar que as chamadas ocorram de forma sequencial e não se sobreponham mutuamente. Se ocorrer o valor de retorno CRYPTO_E_BUSY, o Crypto Driver Object está temporariamente bloqueado [SWS_CryIf_91021]; o chamador deverá, neste caso, ser responsável por uma repetição posterior da invalidação de estado. Pergunta Q-4377065d4d4eecab (aberta)

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

Guia do implementador em breve (complexidade I1)

função CryIf_KeyGetStatus [SWS_CryIf_91012] 📄 PDF

Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by cry If Key Id.

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

Utilização e contexto de chamada

A função CryIf_KeyGetStatus serve para consultar de forma síncrona o estado de uma chave criptográfica dentro da Crypto Interface [SWS_CryIf_91012]. Ela está disponível por meio do cabeçalho CryIf.h com o ID de serviço 0x13 [SWS_CryIf_91012]. Na chamada, são passados os seguintes parâmetros:

  • cryIfKeyId (Entrada): Identificador exclusivo da chave cujo estado deve ser determinado [SWS_CryIf_91012].
  • keyStatusPtr (Saída): Ponteiro para uma variável do tipo Crypto_KeyStatusType, na qual o estado da chave é gravado [SWS_CryIf_91012].

Tratamento de erros e valores de retorno

O valor de retorno do tipo Std_ReturnType sinaliza o resultado da execução [SWS_CryIf_91012]:

Códigos de erro específicos, mensagens DET ou eventos DEM não são indicados na especificação do elemento; o tratamento de erros pelo chamador baseia-se primariamente na avaliação do valor de retorno.

Simultaneidade e restrições

A função é especificada como não reentrante (Non Reentrant) [SWS_CryIf_91012]. Os chamadores devem, portanto, assegurar que não ocorram chamadas simultâneas ou interruptivas para a mesma instância de chave ou para instâncias diferentes. Além disso, o chamador provavelmente deve fornecer uma área de memória válida para o ponteiro de saída keyStatusPtr, uma vez que este é gravado diretamente pela função. Pergunta Q-da3a034d4f2e9442 (aberta)

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

Guia do implementador em breve (complexidade I1)

função CryIf_KeyElementGet [SWS_CryIf_91006] 📄 PDF

Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This function shall dispatch the get key ele ment function to the configured crypto driver object.

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

A função síncrona CryIf_KeyElementGet encaminha a consulta de um elemento de chave para o Crypto Driver Object configurado [SWS_CryIf_91006]. Ela é declarada através do arquivo de cabeçalho CryIf.h e especificada como reentrante [SWS_CryIf_91006].

Utilização e parâmetros

Na chamada, cryIfKeyId identifica a chave afetada e keyElementId o elemento de chave a ser consultado [SWS_CryIf_91006]. Os dados úteis são armazenados no buffer resultPtr [SWS_CryIf_91006]. O ponteiro resultLengthPtr serve como parâmetro combinado de entrada e saída para o controle de comprimento [SWS_CryIf_91006]:

  • Antes da execução, o chamador passa nele o tamanho de buffer disponível de resultPtr [SWS_CryIf_91006].
  • Se o elemento de chave permitir acesso parcial, o valor define, em vez disso, a quantidade de dados a ser consultada, a qual não precisa corresponder ao tamanho do buffer [SWS_CryIf_91006].
  • Após a conclusão da operação, a função armazena a quantidade de dados efetivamente gravada nesse local de memória [SWS_CryIf_91006].

Tratamento de erros e valores de retorno

O valor de retorno do tipo Std_ReturnType sinaliza o status de sucesso ou de erro [SWS_CryIf_91006]:

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

Guia do implementador em breve (complexidade I1)

função CryIf_KeyElementCopy [SWS_CryIf_91015] 📄 PDF

Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopy.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 98ca892724e4 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 CryIf_KeyElementCopy serve para copiar um elemento de chave de uma chave de origem para uma chave de destino de acordo com [SWS_CryIf_91015]. O serviço está disponível por meio do arquivo de cabeçalho CryIf.h.

Para a chamada, a chave de origem (cryIfKeyId), o elemento de origem a ser copiado (keyElementId), bem como a chave de destino (targetCryIfKeyId) e o elemento de destino (targetKeyElementId) são passados por meio dos parâmetros de entrada [SWS_CryIf_91015]. A função é projetada como reentrante, porém explicitamente não para o mesmo cryIfKeyId [SWS_CryIf_91015]. Como interpretação, parece plausível que, para evitar conflitos de dados, acessos simultâneos de gravação à mesma chave de destino (targetCryIfKeyId) também devam ser sincronizados pelo chamador. Pergunta Q-cba3554c537dd498 (aberta)

O valor de retorno do tipo Std_ReturnType sinaliza o resultado da operação [SWS_CryIf_91015]:

  • E_OK: O processo de cópia foi bem-sucedido.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_BUSY: O Crypto Driver Object associado está ocupado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: O elemento de chave solicitado não está disponível.
  • CRYPTO_E_KEY_READ_FAIL: A leitura do elemento de chave de origem não é permitida.
  • CRYPTO_E_KEY_WRITE_FAIL: A gravação do elemento de chave de destino não é permitida.
  • CRYPTO_E_KEY_SIZE_MISMATCH: Os tamanhos dos elementos de chave envolvidos não são compatíveis.
  • CRYPTO_E_KEY_EMPTY: O elemento de chave de origem não está inicializado.

Esta nota de uso foi gerada automaticamente com base no AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função CryIf_KeyElementCopyPartial [SWS_CryIf_91018] 📄 PDF

Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopyPartial.

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

A função síncrona CryIf_KeyElementCopyPartial, disponibilizada através do cabeçalho CryIf.h, copia partes de um elemento de chave para outro elemento de chave [SWS_CryIf_91018]. As chaves de origem e destino, bem como os respectivos elementos, são especificados através dos parâmetros cryIfKeyId, keyElementId, targetCryIfKeyId e targetKeyElementId [SWS_CryIf_91018]. As posições iniciais dentro de ambos os elementos são definidas por keyElementSourceOffset e keyElementTargetOffset, enquanto keyElementCopyLength determina o número exato de bytes a serem transferidos [SWS_CryIf_91018].

Em relação à concorrência, a rotina foi projetada para ser reentrante, porém explicitamente não para a mesma chave de origem (cryIfKeyId) [SWS_CryIf_91018]. Chamadas paralelas com o mesmo ID de chave de origem devem, portanto, ser sincronizadas ou evitadas pelo chamador.

O valor de retorno informa o status detalhado de execução da solicitação síncrona [SWS_CryIf_91018]:

  • E_OK: O processo de cópia foi executado com sucesso.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_BUSY: O Crypto Driver Object responsável está ocupado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: O elemento de chave de origem ou de destino solicitado não está disponível.
  • CRYPTO_E_KEY_READ_FAIL: A leitura do elemento de chave de origem não é permitida.
  • CRYPTO_E_KEY_WRITE_FAIL: A escrita no elemento de chave de destino não é permitida.
  • CRYPTO_E_KEY_SIZE_MISMATCH: Os tamanhos dos elementos ou as indicações de offset e comprimento são incompatíveis.
  • CRYPTO_E_KEY_EMPTY: O elemento de chave de origem não está inicializado.

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

Guia do implementador em breve (complexidade I1)

função CryIf_KeyCopy [SWS_CryIf_91016] 📄 PDF

Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall co py all key elements from the source key to a target key.

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

usar

A função síncrona CryIf_KeyCopy copia todos os elementos de chave de uma chave de origem para uma chave de destino especificada ([SWS_CryIf_91016]). Ela é disponibilizada através do arquivo de cabeçalho CryIf.h e possui o Service ID 0x10 ([SWS_CryIf_91016]).

A função espera dois parâmetros de entrada ([SWS_CryIf_91016]):

  • cryIfKeyId: Identificador da chave cujos elementos de chave servem como origem.
  • targetCryIfKeyId: Identificador da chave que recebe os elementos de chave como destino.

Simultaneidade e restrições

A interface é especificada como reentrante, mas não pode ser chamada simultaneamente para o mesmo identificador de chave de origem (cryIfKeyId) ([SWS_CryIf_91016]).

Tratamento de erros

O valor de retorno do tipo Std_ReturnType sinaliza o resultado da operação ([SWS_CryIf_91016]):

  • E_OK: Processo de cópia concluído com sucesso.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_BUSY: Falhou porque o objeto de driver de criptografia subjacente está ocupado.
  • CRYPTO_E_KEY_NOT_AVAILABLE: O elemento de chave solicitado não está disponível.
  • CRYPTO_E_KEY_READ_FAIL: A leitura do elemento de chave não é permitida.
  • CRYPTO_E_KEY_WRITE_FAIL: A gravação do elemento de chave de destino não é permitida.
  • CRYPTO_E_KEY_SIZE_MISMATCH: Os tamanhos dos elementos de chave não são compatíveis entre si.
  • CRYPTO_E_KEY_EMPTY: O elemento de chave de origem não está inicializado.

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

função CryIf_RandomSeed [SWS_CryIf_91007] 📄 PDF

Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);

This function shall dispatch the random seed function to the configured crypto driver object.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: cb0539e3124c 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 CryIf_RandomSeed serve para encaminhar a geração ou injeção de uma semente aleatória (Random Seed) para o objeto de driver de criptografia configurado [SWS_CryIf_91007]. Ela está disponível por meio do arquivo de cabeçalho CryIf.h e possui o ID de serviço 0x07 [SWS_CryIf_91007].

A interface espera três parâmetros de entrada [SWS_CryIf_91007]:

  • cryIfKeyId: Identificador da chave para a qual uma nova semente deve ser gerada.
  • seedPtr: Ponteiro para a área de memória com os dados para injeção da semente.
  • seedLength: Comprimento da semente em bytes.

O comportamento de execução (síncrono ou assíncrono) não é fixo, mas depende da respectiva configuração [SWS_CryIf_91007]. Em relação à concorrência, a função é especificada como reentrante [SWS_CryIf_91007].

Como valor de retorno, a função fornece um Std_ReturnType com os seguintes valores de status [SWS_CryIf_91007]:

  • E_OK: A solicitação foi bem-sucedida.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_KEY_NOT_VALID: A requisição falhou porque o estado da chave é "invalid".

Interpretação: Ao retornar CRYPTO_E_KEY_NOT_VALID, a verificação deve se referir à chave passada cryIfKeyId, embora o texto da especificação mencione cryptoKeyId de forma divergente [SWS_CryIf_91007]. Pergunta Q-22b20256f21f131b (aberta)

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

função CryIf_KeyGenerate [SWS_CryIf_91008] 📄 PDF

Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);

This function shall dispatch the key generate function to the configured crypto driver object.

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

usar

A função CryIf_KeyGenerate encaminha a chamada de função para geração de chave para o objeto de driver de criptografia configurado [SWS_CryIf_91008]. Através do parâmetro de entrada cryIfKeyId é passado o identificador único da chave que deve ser atualizada com o valor de chave recém-gerado [SWS_CryIf_91008]. A declaração desta interface é disponibilizada através do cabeçalho CryIf.h [SWS_CryIf_91008].

Comportamento de sincronização e concorrência

A execução ocorre de forma síncrona ou assíncrona, dependendo da configuração subjacente [SWS_CryIf_91008]. Em relação ao contexto de chamada e à concorrência, a função é especificada como reentrante [SWS_CryIf_91008].

Valores de retorno e tratamento de erros

A chamada retorna um valor de status do tipo Std_ReturnType [SWS_CryIf_91008]:

  • E_OK: A solicitação para geração de chave foi executada com sucesso [SWS_CryIf_91008].
  • E_NOT_OK: A solicitação falhou [SWS_CryIf_91008].
  • CRYPTO_E_BUSY: A solicitação falhou porque o objeto de driver de criptografia endereçado está atualmente ocupado [SWS_CryIf_91008].
  • CRYPTO_E_KEY_EMPTY: A solicitação falhou porque um elemento de chave de origem necessário não está inicializado [SWS_CryIf_91008].
  • CRYPTO_E_KEY_NOT_VALID: A solicitação falhou porque o status da chave referenciada pelo identificador de chave é inválido [SWS_CryIf_91008].

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

função CryIf_KeyDerive [SWS_CryIf_91009] 📄 PDF

Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch th e key derive function to the configured crypto driver object.

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

usar

A função CryIf_KeyDerive serve para encaminhar uma solicitação de derivação de chave de forma síncrona para o respectivo Crypto Driver Object configurado [SWS_CryIf_91009]. A interface é declarada por meio do arquivo de cabeçalho CryIf.h com o ID de serviço 0x09 [SWS_CryIf_91009].

Na chamada, são passados dois identificadores de chave [SWS_CryIf_91009]:

  • cryIfKeyId: Identificador da chave que é utilizada como base para a derivação.
  • targetCryIfKeyId: Identificador da chave na qual a chave derivada é armazenada.

Tratamento de erros e valores de retorno

O resultado da operação é transmitido por meio do tipo de retorno Std_ReturnType [SWS_CryIf_91009]:

Simultaneidade e condições marginais

A interface é especificada como reentrante [SWS_CryIf_91009]. Como o processamento ocorre de forma síncrona, os chamadores provavelmente devem considerar o tempo de execução do driver no respectivo contexto de chamada. Pergunta Q-2b2fd50249878177 (aberta)

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

função CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] 📄 PDF

Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available

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

A função síncrona e reentrante CryIf_KeyExchangeCalcPubVal encaminha o cálculo do valor público de troca de chaves para o objeto de driver de criptografia configurado [SWS_CryIf_91010]. O serviço está disponível através do cabeçalho CryIf.h [SWS_CryIf_91010].

Na chamada de função são processados os seguintes parâmetros [SWS_CryIf_91010]:

  • cryIfKeyId: Identificador da chave que deve ser utilizada para o protocolo de troca de chaves.
  • publicValuePtr: Ponteiro para a área de memória na qual o valor público calculado é armazenado.
  • publicValueLengthPtr: Ponteiro para a informação de comprimento. Na chamada, este parâmetro deve conter o tamanho do buffer fornecido; após a conclusão, ele armazena o comprimento real do valor calculado.

A função retorna um status do tipo Std_ReturnType [SWS_CryIf_91010]:

  • E_OK: A solicitação foi bem-sucedida.
  • E_NOT_OK: A solicitação falhou.
  • CRYPTO_E_BUSY: Erro, pois o objeto de driver de criptografia responsável está ocupado.
  • CRYPTO_E_KEY_EMPTY: Erro devido a um elemento de chave de origem não inicializado.
  • CRYPTO_E_KEY_NOT_VALID: Erro, pois a chave endereçada encontra-se no estado inválido.

Este texto foi gerado por um sistema baseado em IA e baseia-se exclusivamente nos dados de especificação do AUTOSAR R20-11.

função CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] 📄 PDF

Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ecfeb27c89f0 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 CryIf_KeyExchangeCalcSecret encaminha o cálculo do segredo compartilhado na troca de chaves para o objeto de driver de criptografia configurado [SWS_CryIf_91011]. São passados ao serviço o identificador da chave (cryIfKeyId), um ponteiro para o valor da chave pública do parceiro de comunicação (partnerPublicValuePtr), bem como o seu comprimento em bytes (partnerPublicValueLength) [SWS_CryIf_91011].

Tratamento de erros: A função retorna o resultado através de Std_ReturnType [SWS_CryIf_91011]:

Concorrência: A interface é especificada como reentrante [SWS_CryIf_91011]. Como o fluxo é executado de forma síncrona, a chamada deve ocorrer tipicamente no contexto de tarefa. Pergunta Q-b3bca3645b0ef468 (aberta) O serviço é disponibilizado através do arquivo de cabeçalho CryIf.h [SWS_CryIf_91011].

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

função CryIf_CallbackNotification [SWS_CryIf_91013] 📄 PDF

void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);

Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 781636a3f50e 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 CryIf_CallbackNotification serve, de acordo com [SWS_CryIf_91013], para informar a Crypto Interface (CryIf) sobre a conclusão de uma operação criptográfica bem como o seu resultado. A declaração está disponível por meio do cabeçalho CryIf.h e possui o ID de serviço 0x0d [SWS_CryIf_91013].

A chamada ocorre de forma síncrona e processa dois parâmetros de entrada obrigatórios [SWS_CryIf_91013]:

  • job (Entrada, Crypto_JobType*): Aponta para a estrutura de informações da ordem concluída e contém um ID de callback para associação do job finalizado [SWS_CryIf_91013].
  • result (Entrada, Crypto_ResultType): Transmite o resultado da operação criptográfica executada [SWS_CryIf_91013].

Códigos de erro ou mensagens de erro específicas (DET/DEM) não são definidos para este serviço; a verificação funcional de erros ocorre por meio do parâmetro result, que reflete o sucesso ou o estado de erro da operação [SWS_CryIf_91013].

Em relação à concorrência, a função é especificada de acordo com [SWS_CryIf_91013] como não reentrante (Non Reentrant) e não possui valor de retorno (void). Os chamadores devem, portanto, assegurar que as chamadas ocorram sequencialmente e que não ocorram execuções aninhadas ou paralelas. Interpretação: A notificação provavelmente deve ser chamada tipicamente por drivers criptográficos subjacentes para retornar o resultado de ordens criptográficas processadas assincronamente à Crypto Interface. Pergunta Q-ae17af188a970e00 (aberta)

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

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

Record
AUTOSAR/AP/record/CP_MOD_CryIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_CryIf@rel:R20-11#7a9534c7
Content hash
7a9534c7
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoInterface.pdf#nameddest=SWS_CryIf_91000

Inicialização e estado

Returns the version information of this module.

void CryIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
CryIf_Init função

Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface

void CryIf_Init (const CryIf_ConfigType* configPtr);

Serviços · KeyElement…

Service CryIf_KeyElementCopy.

Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopyPartial.

Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

This function shall dispatch the get key ele ment function to the configured crypto driver object.

Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This function shall dispatch the set key element function to the configured crypto driver object.

Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Serviços · Key…

CryIf_KeyCopy função

This function shall co py all key elements from the source key to a target key.

Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch th e key derive function to the configured crypto driver object.

Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available

Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.

Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

This function shall dispatch the key generate function to the configured crypto driver object.

Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);

Returns the key state of the key identified by cry If Key Id.

Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);

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

Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);

This function shall dispatch the set key valid function to the configured crypto driver object.

Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);

Serviços · Outros

Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.

void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);

This interface dispatches the job cancellation function to the configured crypto driver object.

Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);

Service CryIf_ProcessJob.

Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);

This function shall dispatch the random seed function to the configured crypto driver object.

Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);

Tipos

Configuration data structure of Cry If module