DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

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

Guide du moduleGÉNÉRÉ PAR IA

Fournit des primitives cryptographiques et la gestion des clés pour la pile cryptographique AUTOSAR Classic proche du matériel.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 79b1b64c6bf7 Provenance Questions ouvertes (2)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Fournit des primitives cryptographiques et la gestion des clés pour la pile cryptographique AUTOSAR Classic proche du matériel.

En tant que module MCAL, le Crypto Driver fournit des calculs cryptographiques proches du matériel ainsi que la gestion des clés pour la pile cryptographique AUTOSAR Classic (EXP_UtilizationOfCryptoServices p. 8). Il encapsule des modules de sécurité matériels (HSM) ou des bibliothèques logicielles dans des Driver Objects et traite les tâches synchrones ainsi qu'asynchrones via l'interface centrale Crypto_ProcessJob ([SWS_Crypto_91003]). Les accès aux clés sont soumis à des droits configurables, et un enregistrement persistant dans la NVM n'est déclenché qu'après validation réussie de la clé (SWS_CryptoDriver p. 37).

Le Crypto Driver (module Crypto) constitue, en tant que pilote MCAL, le socle de base de la pile cryptographique AUTOSAR Classic et relie directement les modules de sécurité matériels (HSM), les accélérateurs cryptographiques ainsi que les routines logicielles à l'interface cryptographique (CryIf) (EXP_UtilizationOfCryptoServices p. 8, SWS_CryptoDriver p. 15). En cas d'implémentations multiples, les instances sont nommées selon le schéma Crypto_<vi>_<ai> spécifique au constructeur ([SWS_Crypto_00012]). L'initialisation s'effectue de manière synchrone via [SWS_Crypto_91000] avec un pointeur nul obligatoire pour [SWS_Crypto_91016] ([SWS_Crypto_00215]). En interne, le module encapsule des unités de calcul autonomes dans des Crypto Driver Objects, dont chacun peut exécuter exactement une tâche à la fois ([SWS_Crypto_00014]), tandis que n objets permettent des calculs parallèles ([SWS_Crypto_00117]). Le Driver Object 0 fait office de générateur de nombres aléatoires central pour les besoins internes de tous les autres objets pilotes de la même instance ([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

Diagramme de contexte : intégration du Crypto Driver dans la pile cryptographique AUTOSAR avec Driver Objects et interfaces vers NvM et DET. Sources : SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Les tâches cryptographiques sont traitées via [SWS_Crypto_91003] (Crypto_ProcessJob), un champ de bits de mode (START, UPDATE, FINISH) unifiant le streaming et les appels globaux (SWS_CryptoDriver p. 25, [SWS_Crypto_00017]). Les tâches asynchrones sont calculées via la fonction cyclique [SWS_Crypto_91012] (Crypto_MainFunction) et signalées à CryIf après achèvement via CRYIF_CallbackNotification ([SWS_Crypto_00027], [SWS_Crypto_00028]). Les tâches en cours peuvent être annulées de manière synchrone au moyen de [SWS_Crypto_00122] ([SWS_Crypto_00183], [SWS_Crypto_00214]), tandis que des redirections directes de tampons vers des éléments de clé réduisent les opérations de copie ([SWS_Crypto_00203], [SWS_Crypto_00221]).

Traitement asynchrone des ordres via le Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Vérifier les paramètres & les handles de cléE_OK (Auftrag angenommen)Crypto_MainFunction()Déclencher le calcul (START/UPDATE/FINISH)Exécuter le calcul cryptographiqueErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Retour

Diagramme de séquence : déroulement du traitement asynchrone via Crypto_ProcessJob, cycle dans Crypto_MainFunction et retour via CRYIF_CallbackNotification. Sources : SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

La gestion des clés comprend la définition ([SWS_Crypto_91004]), la lecture ([SWS_Crypto_91006]), la copie ([SWS_Crypto_00155], [SWS_Crypto_91015]), la génération ([SWS_Crypto_91007]) et la dérivation ([SWS_Crypto_91008]) d'éléments de clé sous un contrôle strict des droits d'accès ([SWS_Crypto_00219], [SWS_Crypto_00220]). Pour des raisons de cohérence, une persistance dans le Non-Volatile RAM Manager (NvM) n'est jamais déclenchée lors d'une écriture unitaire, mais exclusivement lors de la validation de clé via [SWS_Crypto_91014] (Crypto_KeySetValid) (SWS_CryptoDriver p. 37, [SWS_Crypto_91025]). Dans les environnements multicœurs, le module agit de manière isolée dans chaque partition ([SWS_Crypto_CONSTR_00001]), les objets HSM ne pouvant être affectés qu'à une seule partition au maximum ([SWS_Crypto_CONSTR_00003]).

Rôle et limites système du Crypto Driver dans la pile cryptographique Classic

Le Crypto Driver (abréviation de module Crypto) est situé sur la couche la plus basse du logiciel de base AUTOSAR Classic, dans le Microcontroller Abstraction Layer (MCAL) (EXP_UtilizationOfCryptoServices p. 8). Il se trouve directement sous l'interface cryptographique (Crypto Interface, CryIf) et dessert via celle-ci le Crypto Service Manager (CSM) (SWS_CryptoDriver p. 15). Sa tâche principale consiste à encapsuler les unités de calcul cryptographiques concrètes – qu'il s'agisse de modules de sécurité matériels (Hardware Security Modules, HSM), d'accélérateurs cryptographiques dédiés tels que des moteurs AES ou de pures bibliothèques logicielles (SWS_CryptoDriver p. 15). Outre le calcul effectif des primitives cryptographiques, l'étendue des fonctionnalités comprend le stockage, la configuration et la gestion des clés cryptographiques (SWS_CryptoDriver p. 24).

Dans un calculateur, plusieurs instances de pilote de différents constructeurs peuvent coexister en parallèle ; dans ce cas, les identifiants de fichiers, d'API et de configuration sont différenciés de manière univoque par un infixe spécifique au constructeur selon le schéma Crypto_<vi>_<ai> ([SWS_Crypto_00012]). L'initialisation du module s'effectue via la fonction [SWS_Crypto_91000] (Crypto_Init). Pour le pointeur de configuration de type [SWS_Crypto_91016] (Crypto_ConfigType), la particularité réside dans le fait que celui-ci doit toujours être transmis en tant que pointeur nul ([SWS_Crypto_00215]). Les informations de version peuvent être interrogées de manière synchrone via [SWS_Crypto_91001] (Crypto_GetVersionInfo), la transmission d'un pointeur nul en cas de détection de développement active étant signalée au DET avec l'erreur 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

Diagramme de contexte : intégration du Crypto Driver dans la pile cryptographique AUTOSAR avec Driver Objects et interfaces vers NvM et DET. Sources : SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Gestion des Crypto Driver Objects et abstraction matérielle

Chaque instance du Crypto Driver est divisée en interne en un ou plusieurs objets pilotes logiques (Crypto Driver Objects) (SWS_CryptoDriver p. 15). Un Crypto Driver Object forme l'extrémité fonctionnelle d'un canal cryptographique et représente une unité de calcul matérielle autonome ou une implémentation logicielle (SWS_CryptoDriver p. 15). Par principe, un Driver Object individuel ne peut exécuter activement qu'exactement une tâche (job) à un instant donné ([SWS_Crypto_00014]). Un Crypto Driver disposant de n Driver Objects a donc la capacité de calculer n tâches cryptographiques en parallèle ([SWS_Crypto_00117]). Les primitives mathématiques et de sécurité prises en charge sont déterminées par les capacités de l'objet associé ([SWS_Crypto_00013]).

Si un objet pilote a besoin de nombres aléatoires internes (par exemple pour calculer des valeurs publiques dans le cadre de l'échange de clés via [SWS_Crypto_91009]) et ne dispose pas de son propre générateur de nombres aléatoires, il a impérativement recours au Crypto Driver Object 0 du même pilote ([SWS_Crypto_00224], [SWS_Crypto_00225]). Les objets pilotes ne doivent en aucun cas adresser des générateurs de nombres aléatoires d'instances de pilotes cryptographiques tierces ([SWS_Crypto_00226]). Interpretation : le Driver Object 0 fait ainsi office de générateur de nombres aléatoires de référence interne central pour tous les autres objets pilotes de la même partition. Question Q-4e8e30714cbc9c80 (ouverte)

Traitement des tâches entre appel direct synchrone et streaming asynchrone

Les traitements cryptographiques sont transmis au module sous forme de structures de tâche de type Crypto_JobType via l'interface centrale [SWS_Crypto_91003] (Crypto_ProcessJob) ([SWS_Crypto_00042], AUTOSAR_CP_SWS_CryptoServiceManager p. 21). L'interface réunit les appels globaux par blocs et le streaming continu de données via un champ de bits spécifique au mode : les opérations START, UPDATE et FINISH peuvent être transmises individuellement ou de manière combinée (SWS_CryptoDriver p. 25). La définition de l'indicateur START marque une nouvelle tâche et interrompt toutes les instances précédentes de la même tâche ([SWS_Crypto_00017]). En cas de transmission combinée, les étapes sont toujours exécutées dans l'ordre fixe START, UPDATE et enfin FINISH (SWS_CryptoDriver p. 25).

Le fait qu'une tâche soit traitée de manière synchrone ou asynchrone fait partie de la configuration des métadonnées dans Crypto_JobType (SWS_CryptoDriver p. 26). En mode asynchrone, [SWS_Crypto_91003] se contente de réceptionner les données de la tâche ; l'exécution proprement dite est déclenchée ou traitée par la fonction principale cyclique [SWS_Crypto_91012] (Crypto_MainFunction) ([SWS_Crypto_00027], [SWS_Crypto_91012]). Une fois le calcul asynchrone terminé, le Crypto Driver notifie obligatoirement la couche supérieure CryIf via l'appel de la fonction de rappel CRYIF_CallbackNotification en renvoyant le statut et les pointeurs de résultat ([SWS_Crypto_00028]). Interpretation : les appels synchrones exécutent en revanche l'opération cryptographique de manière bloquante dans le contexte de l'appelant, sans être découplés via la fonction principale. Question Q-0447ed9db11aa30b (ouverte)

Traitement asynchrone des ordres via le Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Vérifier les paramètres & les handles de cléE_OK (Auftrag angenommen)Crypto_MainFunction()Déclencher le calcul (START/UPDATE/FINISH)Exécuter le calcul cryptographiqueErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Retour

Diagramme de séquence : déroulement du traitement asynchrone via Crypto_ProcessJob, cycle dans Crypto_MainFunction et retour via CRYIF_CallbackNotification. Sources : SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Les tâches cryptographiques en cours ou en attente peuvent être annulées via la fonction [SWS_Crypto_00122] (Crypto_CancelJob). Si la tâche demandée n'est pas en cours de traitement actif par l'objet pilote, elle est immédiatement retirée et l'appel renvoie E_OK ([SWS_Crypto_00214]). Toutefois, si le matériel ne peut pas interrompre immédiatement le calcul actif, l'API accuse réception de la tentative avec CRYPTO_E_JOB_CANCELED et l'interruption est finalisée à la prochaine étape atteignable ([SWS_Crypto_00183]).

Annulation de job via Crypto_CancelJobCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altLe job n'est pas en cours de traitement actifRetirer le job de la file d'attente du piloteE_OK (Job sofort entfernt)Job actif & le matériel ne peut pas interrompre immédiatementHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

Diagramme de séquence : interruption synchrone de tâches cryptographiques via Crypto_CancelJob avec distinction de cas lors d'une exécution matérielle active. Sources : SWS_Crypto_00122, SWS_Crypto_00183, SWS_Crypto_00214

Pour éviter les opérations de copie inutiles entre la mémoire applicative et la mémoire matérielle, le Crypto Driver prend en charge une redirection directe de tampon (Job Redirection) : les données d'entrée et de sortie peuvent être référencées directement sur des éléments de clé internes via jobRedirectionInfoRef ([SWS_Crypto_00203], [SWS_Crypto_00204]). Afin d'empêcher les fuites de données, des vérifications strictes des droits s'appliquent ici : pour les redirections d'entrée destinées aux services de chiffrement et de déchiffrement, l'élément de clé doit comporter au moins le droit CRYPTO_RA_ENCRYPTED, tandis que pour les pures redirections en lecture, au moins CRYPTO_RA_INTERNAL_COPY est exigé ([SWS_Crypto_00221]).

Gestion des clés, droits d'accès et opérations cryptographiques sur les clés

Dans le Crypto Driver, une clé logique (Key) se compose d'un ou de plusieurs éléments de clé (Key Elements) qui accueillent le matériel de clé proprement dit, les vecteurs d'initialisation (IV), les graines aléatoires ou les preuves SHE (Proof) (SWS_CryptoDriver p. 28). L'accès à chaque élément individuel est strictement réglementé : les accès en lecture et en écriture sont surveillés à l'aide de hiérarchies de droits configurées (par ex. CRYPTO_RA_ALLOWED, CRYPTO_RA_ENCRYPTED, CRYPTO_RA_INTERNAL_COPY), une valeur d'énumération plus petite représentant un droit d'accès supérieur (SWS_CryptoDriver p. 28, [SWS_Crypto_00219]). Les opérations de lecture directe ne sont autorisées qu'avec CRYPTO_RA_ALLOWED ou CRYPTO_RA_ENCRYPTED ([SWS_Crypto_00222]) ; les accès en écriture requièrent au minimum CRYPTO_WA_ALLOWED ou CRYPTO_WA_ENCRYPTED ([SWS_Crypto_00223]). Lors de la copie, l'élément source doit posséder au moins CRYPTO_RA_INTERNAL_COPY et ne doit pas présenter de droits inférieurs à ceux de l'élément cible ([SWS_Crypto_00220]).

Pour la manipulation directe des clés et de leurs éléments, le Crypto Driver met à disposition une série d'API synchrones : la définition et la lecture des données s'effectuent via [SWS_Crypto_91004] (Crypto_KeyElementSet) ou [SWS_Crypto_91006] (Crypto_KeyElementGet). Les identifiants d'éléments existants d'une clé peuvent être déterminés via [SWS_Crypto_00160] (Crypto_KeyElementIdsGet). Des clés complètes ou des éléments individuels sont dupliqués au moyen de [SWS_Crypto_00155] (Crypto_KeyCopy) ou de [SWS_Crypto_00148] (Crypto_KeyElementCopy). Pour les copies partielles, il existe [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial), qui impose des contrôles précis de longueur et d'offset sur les tampons source et cible ([SWS_Crypto_00207], [SWS_Crypto_00208], [SWS_Crypto_00209]) et adapte dynamiquement la longueur cible ([SWS_Crypto_00210], [SWS_Crypto_00211]).

En outre, le module prend en charge des opérations de clé complexes : la génération de clés s'effectue via [SWS_Crypto_91007] (Crypto_KeyGenerate) sur la base de données d'entropie préalablement initialisées au moyen de [SWS_Crypto_91013] (Crypto_RandomSeed). La dérivation de nouveaux matériels de clé est prise en charge par [SWS_Crypto_91008] (Crypto_KeyDerive). Pour les protocoles d'échange de clés Diffie-Hellman, les fonctions [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) pour la génération de la valeur publique ainsi que [SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) pour la détermination du secret partagé sont disponibles (SWS_CryptoServiceManager p. 70).

Chaque clé logique gère un état qui peut être interrogé via [SWS_Crypto_91019] (Crypto_KeyGetStatus). Les clés nouvellement écrites se trouvent d'abord dans l'état invalid et ne sont validées en tant que valid qu'après une validation réussie au moyen de [SWS_Crypto_91014] (Crypto_KeySetValid), tandis que [SWS_Crypto_91020] (Crypto_KeySetInvalid) verrouille explicitement la clé. Concernant les formats de données, le pilote traite les clés asymétriques selon la RFC 5958 avec un encodage ASN.1-PKCS#8 ([SWS_Crypto_00184]), les structures de clés RSA selon la RFC 8017 avec un OID d'algorithme fixe 1.2.840.113549.1.1.1 ([SWS_Crypto_00185], [SWS_Crypto_00186], [SWS_Crypto_00187], [SWS_Crypto_00188]) ainsi que les données de courbes ECC (NIST, Brainpool, ED25519) sous forme de coordonnées de points little-endian ([SWS_Crypto_00189], [SWS_Crypto_00190], [SWS_Crypto_00191], [SWS_Crypto_00192], [SWS_Crypto_00193]). Les clés SHE proches du matériel sont transmises au format M1M2M3 ; leur preuve de vérification M4M5 peut être lue temporairement dans l'élément de clé 2 immédiatement après la validation ([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 (vérification 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

Diagramme d'états : transitions d'état d'une clé, du remplissage au traitement des erreurs en passant par la validation et la persistance. Sources : SWS_Crypto_00198, SWS_Crypto_00242, SWS_Crypto_91014, SWS_Crypto_91019, SWS_Crypto_91020

Persistance des éléments de clé via le Non-Volatile RAM Manager

Si des clés doivent être conservées de manière non volatile au-delà des cycles d'alimentation, le Crypto Driver est raccordé au Non-Volatile RAM Manager (NvM) (SWS_CryptoDriver p. 35, AUTOSAR_CP_SWS_CryptoDriver p. 37). Un principe architectural central stipule que les écritures dans la NvM ne sont jamais déclenchées directement lors du remplissage d'un élément individuel via Crypto_KeyElementSet (SWS_CryptoDriver p. 37). À la place, la persistance est initiée exclusivement par la validation d'état KEYSETVALID via [SWS_Crypto_91014] (Crypto_KeySetValid) ou un travail cryptographique équivalent (SWS_CryptoDriver p. 37). Cela garantit que les éléments de clé interdépendants sont vérifiés de manière cohérente et enregistrés en un seul accès en écriture à la NvM, ce qui préserve les cycles de flash (SWS_CryptoDriver p. 37).

L'interaction avec la NvM s'effectue via des interfaces de rappel dédiées : pendant le démarrage du calculateur, la NvM fournit le bloc d'initialisation via [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>). Le chargement des données persistées depuis le miroir RAM de la NvM s'effectue via [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>). Avant l'écriture, la NvM appelle [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>) afin que le pilote cryptographique copie ses données de clé internes dans le tampon NvM ; la fin du transfert asynchrone de bloc est signalée via [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>). Pour le contrôle, le pilote utilise les services NvM NvM_SetRamBlockStatus et NvM_WriteBlock ([SWS_Crypto_91017]). Si le chargement d'une clé persistante échoue au démarrage, le pilote marque obligatoirement cette clé comme invalid ([SWS_Crypto_00198]).

Persistance de clés en NVM lors de la validationCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)Vérifier la cohérence & les dépendances des élémentsNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)Transférer les données de clé dans le miroir RAM de NvME_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)Définir l'état de la clé sur VALIDE_OKE_OK

Diagramme de séquence : persistance d'éléments de clé dans la NVM lors de la validation via NvM_WriteBlock et des rappels spécifiques au pilote. Sources : SWS_Crypto_00242, SWS_Crypto_91017, SWS_Crypto_91025, SWS_Crypto_91026

Partitionnement et règles de fonctionnement multicœur

Afin de répartir efficacement les opérations cryptographiques sur des systèmes multicœurs, la pile cryptographique peut être distribuée sur plusieurs partitions logicielles (BSWDistributionGuide p. 59). Le module Crypto fonctionne dans chaque partition comme une instance totalement autonome : chaque appel d'API traite les données exclusivement au sein de la partition dans laquelle il a été émis ([SWS_Crypto_CONSTR_00001]). Le partitionnement des objets du pilote est soumis à des règles de configuration strictes : les partitions référencées par CryptoDriverObjectEcucPartitionRef doivent obligatoirement constituer un sous-ensemble strict des partitions assignées au module (CryptoEcucPartitionRef) ([SWS_Crypto_CONSTR_00002]). Si un Crypto Driver Object est couplé à un module de sécurité matériel (HSM), il ne peut être affecté qu'à 0 ou 1 partition pour des raisons d'isolation matérielle ([SWS_Crypto_CONSTR_00003]).

Comportement en cas d'erreur

Le Crypto Driver implémente une surveillance des erreurs à deux niveaux, composée de la détection de développement (Development Errors) et des erreurs d'exécution (Runtime Errors). Lorsque le mode de sécurité de développement (DET) est activé, les violations formelles d'interface sont transmises à Det_ReportError ([SWS_Crypto_91017]). Celles-ci comprennent les appels antérieurs à l'initialisation du pilote (CRYPTO_E_UNINIT, 0x00) ([SWS_Crypto_00040], [SWS_Crypto_00196], [SWS_Crypto_00205]), les données d'initialisation invalides (CRYPTO_E_INIT_FAILED, 0x01) ainsi que les pointeurs nuls non autorisés (CRYPTO_E_PARAM_POINTER, 0x02) ([SWS_Crypto_00040]). Si des identifiants de clé ou des descripteurs de clé cible se situent en dehors de la plage de valeurs autorisée, le pilote interrompt l'appel avec E_NOT_OK et signale CRYPTO_E_PARAM_HANDLE (0x04) ([SWS_Crypto_00040], [SWS_Crypto_00180], [SWS_Crypto_00197], [SWS_Crypto_00202], [SWS_Crypto_00217]).

Si les tampons d'entrée ou de sortie transmis ne sont pas suffisants pour une opération, l'exécution est refusée et, lorsque le DET est actif, l'erreur CRYPTO_E_SMALL_BUFFER est signalée ([SWS_Crypto_00195], SWS_CryptoDriver p. 49). Une exception normative s'applique aux services CRYPTO_HASH et CRYPTO_MACGENERATE : si le tampon de sortie y est inférieur à la longueur native de hachage ou de MAC, le résultat n'est pas rejeté, mais écrit dans le tampon sous forme tronquée des bits de poids fort (MSB) ([SWS_Crypto_00065]). En fonctionnement opérationnel, le pilote signale les erreurs d'exécution spécifiques par la valeur de retour : un épuisement de l'entropie aléatoire est acquitté par [SWS_Crypto_91003] avec le code de retour CRYPTO_E_ENTROPY_EXHAUSTED et signale l'erreur d'exécution CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) ([SWS_Crypto_00141], [SWS_Crypto_00194], [SWS_Crypto_91018]). Si les accès en lecture ou en écriture à la NVM échouent, CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) est signalé ([SWS_Crypto_00194]). D'autres valeurs de retour d'API standardisées sont 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 et CRYPTO_E_KEY_EMPTY ([SWS_Crypto_00155], [SWS_Crypto_00207], [SWS_Crypto_91018]).

Preuves détaillées supplémentaires

Les propriétés essentielles du Crypto Driver s'appuient sur les exigences de spécification fonctionnelle et les éléments d'architecture suivants :

Domaine thématiqueÉléments de spécification essentielsRéférence documentaire
Cadre du module & instanciation[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
Traitement des commandes & annulation[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
Gestion des clés & des droits[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
Opérations cryptographiques & échange[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
Persistance NvM & rappels[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
Multicœur & partitionnement[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

Ce guide repose exclusivement sur les dispositions normatives de la spécification 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

fonction Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4040b6dde00b Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Crypto_Init sert à initialiser le Crypto Driver conformément à [SWS_Crypto_91000]. L'interface est déclarée dans l'en-tête Crypto.h et possède le Service-ID 0x00 [SWS_Crypto_91000].

Les propriétés suivantes sont spécifiées pour l'appel et les paramètres d'interface :

  • Pointeur de configuration : un pointeur vers la structure de configuration sélectionnée est transmis via le paramètre d'entrée configPtr de type const Crypto_ConfigType* [SWS_Crypto_91000].
  • Valeur de retour : la fonction ne possède pas de valeur de retour (void) ; il n'existe ni paramètres d'entrée/sortie ni paramètres de sortie séparés [SWS_Crypto_91000].
  • Comportement d'exécution : la routine d'initialisation est exécutée de manière synchrone (Synchronous) [SWS_Crypto_91000].
  • Réentrance : la fonction est définie comme non réentrante (Non Reentrant) [SWS_Crypto_91000]. Les appels parallèles ou qui se chevauchent ne sont pas autorisés.

En raison de sa classification comme non réentrante et étant donné que la spécification ne renvoie pas de codes d'erreur spécifiques, l'appel devrait typiquement avoir lieu de manière centralisée pendant la phase de démarrage du calculateur avant tout autre accès au pilote (interprétation). Question Q-008bb5a45b823891 (ouverte) L'appelant devrait en outre être responsable de veiller à ce que la structure de configuration référencée reste valide en permanence en mémoire (interprétation). Question Q-6271a86fad440121 (ouverte)

Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 58fc9052e1fa Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Crypto_ProcessJob exécute la primitive cryptographique configurée dans le paramètre job sur le Crypto Driver Object référencé par objectId [SWS_Crypto_91003]. L'appel est réentrant et fonctionne de manière synchrone ou asynchrone selon la configuration du job [SWS_Crypto_91003]. Via le pointeur vers Crypto_JobType, des données de configuration pour la primitive ainsi que des tampons pour les données de résultat sont transmis [SWS_Crypto_91003].

Avant l'exécution effective d'un job, le pilote vérifie la validité des identifiants de clé : si job->cryptoKeyId ou le cas échéant job->targetCryptoKeyId se trouvent en dehors de la plage autorisée, la fonction signale l'erreur CRYPTO_E_PARAM_HANDLE au DET et renvoie E_NOT_OK [SWS_Crypto_00217]. Cela s'applique également au service CRYPTO_KEYDERIVE (job->jobPrimitiveInfo->primitiveInfo->service), pour autant que job->targetCryptoKeyId ne soit pas valide [SWS_Crypto_00202].

Outre E_OK et E_NOT_OK, des codes d'erreur spécifiques signalent l'échec de la demande [SWS_Crypto_91003] :

  • CRYPTO_E_BUSY, lorsque l'objet pilote est occupé ou que sa file d'attente est pleine [SWS_Crypto_91003],
  • des erreurs liées aux clés telles que 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 en cas d'interruption d'un job synchrone [SWS_Crypto_91003] ainsi que
  • CRYPTO_E_ENTROPY_EXHAUSTED en cas d'entropie insuffisante d'un générateur aléatoire ; dans ce cas, la fonction signale en plus l'erreur d'exécution CRYPTO_E_RE_ENTROPY_EXHAUSTED [SWS_Crypto_00141], [SWS_Crypto_91003].

Ce texte a été généré par une IA sur la base des données de spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 53c6dc327c97 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction synchrone Crypto_CancelJob retire un job transmis de la file d'attente et interrompt son traitement si possible [SWS_Crypto_00122]. Lors de l'appel, l'identifiant du Crypto Driver Object (objectId) ainsi qu'un pointeur vers la configuration du job (job) sont transmis [SWS_Crypto_00122].

Les valeurs de retour signalent le résultat de la tentative d'interruption :

  • E_OK : la demande a réussi et le job a été retiré [SWS_Crypto_00122]. S'il n'y a aucune erreur dans le pilote et que le job n'est pas en cours de traitement, le service renvoie également E_OK sans action supplémentaire [SWS_Crypto_00214].
  • E_NOT_OK : la requête a échoué car le travail n'a pas pu être retiré [SWS_Crypto_00122].
  • CRYPTO_E_JOB_CANCELED : le job a été interrompu, mais continue de s'exécuter ; aucun résultat n'est renvoyé à l'application [SWS_Crypto_00122]. Cela s'applique si le pilote fonctionne sans erreur, mais ne peut pas interrompre le job (par exemple en raison de restrictions matérielles) [SWS_Crypto_00183].

Concurrence et restrictions

L'interface est réentrante pour différentes instances, mais ne doit pas être appelée simultanément pour le même Crypto Driver Object [SWS_Crypto_00122].

Cette note d'utilisation a été générée automatiquement et repose exclusivement sur les données de spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c644721999af Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyElementSet sert à définir les données brutes d'un élément de clé particulier pour une clé identifiée via cryptoKeyId dans le pilote cryptographique [SWS_Crypto_91004].

Paramètres et valeurs de retour

L'élément de clé cible est adressé via keyElementId, tandis que keyPtr référence le tampon de données et keyLength sa taille en octets [SWS_Crypto_91004]. En cas d'affectation réussie, l'interface renvoie E_OK [SWS_Crypto_91004].

Gestion des erreurs

Si une erreur survient lors du traitement, la fonction fournit des valeurs de retour spécifiques [SWS_Crypto_91004] :

  • CRYPTO_E_BUSY : le Crypto Driver Object associé est occupé.
  • CRYPTO_E_KEY_WRITE_FAIL : l'accès en écriture à l'élément de clé a été refusé.
  • CRYPTO_E_KEY_NOT_AVAILABLE : l'élément de clé demandé ou la clé n'est pas disponible.
  • CRYPTO_E_KEY_SIZE_MISMATCH : la longueur des données transmises ne correspond pas à la taille de l'élément de clé.
  • E_NOT_OK : la demande a échoué pour d'autres raisons.

concurrence

La fonction est spécifiée comme non réentrante (Non Reentrant) [SWS_Crypto_91004]. Interprétation : les appelants devraient être responsables de synchroniser les appels parallèles entre eux afin d'éviter des incohérences de données dans le pilote. Question Q-d7ef7a774052a212 (ouverte)

Cette note d'utilisation a été générée automatiquement sur la base de la spécification SWS_Crypto_91004 (R20-11).

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 234814436706 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeySetValid sert à définir comme valide l'état d'une clé spécifiée par l'identifiant cryptoKeyId ([SWS_Crypto_91014]). L'interface est disponible via le fichier d'en-tête Crypto.h et possède le Service-ID 0x05 ([SWS_Crypto_91014]).

Lors de l'utilisation, les paramètres et les valeurs de retour suivants sont définis ([SWS_Crypto_91014]) :

  • Paramètres d'entrée : l'identifiant de la clé dont l'état doit être défini comme valide est transmis via cryptoKeyId (type uint32) ([SWS_Crypto_91014]). Il n'existe pas de paramètres d'entrée ou de sortie supplémentaires ([SWS_Crypto_91014]).
  • Valeur de retour : un code d'état de type Std_ReturnType informe sur le résultat de la demande ([SWS_Crypto_91014]) :

En ce qui concerne la concurrence, la fonction est spécifiée comme non réentrante (« Non Reentrant ») ([SWS_Crypto_91014]). Interprétation : les appelants devraient devoir coordonner de manière externe les appels parallèles entre différentes tâches afin d'éviter les conflits, et devraient prévoir une répétition de l'appel à un moment ultérieur lors de la réception de CRYPTO_E_BUSY. Question Q-32d775a9e61e5731 (ouverte)

Ce texte a été généré par une IA et est basé sur l'état de spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f9c09a4552e9 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et sémantique

La fonction synchrone Crypto_KeySetInvalid définit l'état d'une clé identifiée par cryptoKeyId comme non valide [SWS_Crypto_91020]. La fonction est définie dans le fichier d'en-tête Crypto.h et est appelée via le Service-ID 0x15 [SWS_Crypto_91020]. L'unique paramètre transmis est la valeur d'entrée cryptoKeyId (type uint32), qui contient l'identifiant unique de la clé cible ; il n'y a pas de paramètres d'entrée/sortie ni de sortie [SWS_Crypto_91020].

Gestion des erreurs et valeurs de retour

Le résultat de l'exécution de la fonction est signalé via la valeur de retour de type Std_ReturnType [SWS_Crypto_91020] :

  • E_OK : la demande a réussi et l'état de la clé a été défini comme non valide [SWS_Crypto_91020].
  • E_NOT_OK : l'exécution de la demande a échoué [SWS_Crypto_91020].
  • CRYPTO_E_BUSY : la demande a échoué car l'objet pilote crypto (Crypto Driver Object) compétent est actuellement occupé [SWS_Crypto_91020].

Concurrence et restrictions

L'interface est spécifiée comme non réentrante (Non Reentrant) [SWS_Crypto_91020]. Un appel concurrent ou provoquant une interruption est donc inadmissible. Étant donné que la fonction est exécutée de manière synchrone, elle ne retourne à l'appelant qu'après l'achèvement du changement d'état ou après la constatation de l'erreur [SWS_Crypto_91020].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification.

Guide de l'implémenteur à venir (complexité I1)

fonction 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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c68d666a4fd9 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone et réentrante Crypto_KeyElementGet sert à lire un élément de clé identifié par keyElementId à partir de la clé cryptoKeyId et à le stocker dans la zone mémoire resultPtr [SWS_Crypto_91006]. L'interface est fournie via l'en-tête Crypto.h et possède le Service-ID 0x06 [SWS_Crypto_91006]. Lors de l'appel, l'appelant transmet via le paramètre d'entrée-sortie resultLengthPtr la taille du tampon ou, en cas d'accès partiel configuré, la taille de lecture souhaitée ; une fois l'exécution terminée, le pilote y enregistre la quantité de données réellement copiée [SWS_Crypto_91006].

En cas de succès, la fonction renvoie E_OK [SWS_Crypto_91006]. Si l'opération échoue, elle le signale via des codes d'erreur spécifiques : CRYPTO_E_BUSY si l'objet pilote cryptographique est occupé, CRYPTO_E_KEY_NOT_AVAILABLE si l'élément de clé n'est pas disponible, CRYPTO_E_KEY_READ_FAIL en cas de refus d'accès en lecture, CRYPTO_E_KEY_EMPTY en présence d'un élément source non initialisé ainsi que de manière générique E_NOT_OK [SWS_Crypto_91006].

Bien que l'interface soit spécifiée comme réentrante, la spécification indique qu'en cas de mappage direct de l'élément de clé en mémoire flash, des latences perceptibles peuvent survenir pendant l'exécution synchrone [SWS_Crypto_91006]. Interprétation : en raison de ces retards potentiels, l'appel devrait être approprié principalement dans un contexte de tâche et non au sein de routines de service d'interruption à contraintes temporelles critiques. Question Q-ff4e2843b9aad46d (ouverte)

Cette note d'utilisation a été générée automatiquement et repose sur l'état de spécification d'AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4f6e929a170d Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyGetStatus sert à interroger l'état actuel d'une clé spécifique au sein du pilote cryptographique [SWS_Crypto_91019]. Elle est fournie via l'en-tête Crypto.h et porte le Service-ID 0x14 [SWS_Crypto_91019].

Utilisation et paramètres

L'appel s'effectue de manière synchrone et attend deux paramètres [SWS_Crypto_91019] :

  • cryptoKeyId : l'identifiant de la clé dont l'état doit être déterminé.
  • keyStatusPtr : pointeur vers la zone mémoire de type Crypto_KeyStatusType à laquelle l'état est renvoyé.

Comme valeur de retour, l'interface renvoie Std_ReturnType. En cas d'exécution réussie, E_OK est signalé, tandis qu'en cas d'erreur E_NOT_OK est renvoyé [SWS_Crypto_91019].

Concurrence et restrictions

La fonction est déclarée comme non réentrante (Non Reentrant) [SWS_Crypto_91019]. Les appelants doivent donc veiller à éviter les appels concurrents au moyen de mécanismes de synchronisation de niveau supérieur. Aucun message d'erreur DET spécifique n'est mentionné ; vraisemblablement, un appel erroné tel qu'un pointeur non valide ou un ID non valide entraîne directement le retour de E_NOT_OK [SWS_Crypto_91019]. Question Q-5703fab02905e91a (ouverte)

Ce texte a été généré par une IA et repose sur la spécification d'AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

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

Service Crypto_KeyElementCopy.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 0bf976054e55 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyElementCopy sert à copier un élément de clé vers un autre élément de clé au sein du même pilote cryptographique [SWS_Crypto_00148]. Sont transmis les identifiants de la clé source (cryptoKeyId) et de l'élément de clé source (keyElementId) ainsi que de la clé cible (targetCryptoKeyId) et de l'élément de clé cible (targetKeyElementId) [SWS_Crypto_00148].

En ce qui concerne le comportement temporel, il convient de noter qu'en cas d'éléments de clé mappés directement en mémoire flash, des retards plus importants peuvent survenir lors de l'appel de fonction en raison de l'exécution synchrone [SWS_Crypto_00148]. Le comportement temporel d'exécution doit donc être pris en compte, en particulier dans les contextes à contraintes temporelles critiques.

La fonction est conçue pour être réentrante, mais explicitement pas pour la même cryptoKeyId [SWS_Crypto_00148]. Les appels simultanés avec une clé source identique doivent par conséquent être synchronisés ou exclus par l'appelant.

En cas de succès, la fonction renvoie E_OK [SWS_Crypto_00148]. En cas d'erreur, la valeur de retour signale la cause spécifique [SWS_Crypto_00148] :

  • CRYPTO_E_BUSY : l'objet pilote cryptographique est occupé [SWS_Crypto_00148].
  • CRYPTO_E_KEY_NOT_AVAILABLE : l'élément de clé demandé d'au moins une clé n'est pas disponible [SWS_Crypto_00148].
  • CRYPTO_E_KEY_READ_FAIL ou CRYPTO_E_KEY_WRITE_FAIL : la lecture de l'élément source ou l'écriture de l'élément cible n'est pas autorisée [SWS_Crypto_00148].
  • CRYPTO_E_KEY_SIZE_MISMATCH : les tailles des éléments de clé ne sont pas compatibles entre elles [SWS_Crypto_00148].
  • CRYPTO_E_KEY_EMPTY : l'élément de clé source n'est pas initialisé [SWS_Crypto_00148].
  • E_NOT_OK : la requête a échoué de manière générale [SWS_Crypto_00148].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification d'AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a5ad7cce8b26 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyElementCopyPartial sert à la copie partielle de données depuis un élément de clé source vers un élément de clé cible au sein du même pilote crypto [SWS_Crypto_91015]. La section à copier de l'élément source (cryptoKeyId, keyElementId) est définie via les paramètres keyElementSourceOffset et keyElementCopyLength, tandis que keyElementTargetOffset détermine la position de départ dans l'élément cible (targetCryptoKeyId, targetKeyElementId). En cas de vérification sans erreur, le pilote effectue l'opération de copie de manière synchrone et renvoie E_OK [SWS_Crypto_00209].

Avant l'exécution, le pilote valide les états des tampons et du pilote :

  • Si le pilote crypto n'est pas initialisé et que le contrôle de développement est activé, la fonction signale CRYPTO_E_UNINIT au DET et renvoie E_NOT_OK [SWS_Crypto_00205].
  • Si la longueur totale de l'élément de clé source est inférieure à keyElementSourceOffset + keyElementCopyLength, l'appel échoue avec CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00207].
  • Si le tampon maximal de l'élément de clé cible offre moins d'espace que keyElementTargetOffset + keyElementCopyLength, CRYPTO_E_KEY_SIZE_MISMATCH est également signalé [SWS_Crypto_00208].
  • D'autres valeurs d'erreur spécifiées sont entre autres CRYPTO_E_BUSY (objet pilote occupé), CRYPTO_E_KEY_EMPTY (élément source non initialisé), CRYPTO_E_KEY_NOT_AVAILABLE ainsi que des erreurs d'accès en lecture ou en écriture (CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL) [SWS_Crypto_91015].

La fonction est réentrante, mais ne doit pas être appelée simultanément pour le même ID de clé cryptoKeyId [SWS_Crypto_91015]. Si un élément de clé est directement stocké dans la mémoire flash, l'exécution synchrone peut entraîner des retards perceptibles [SWS_Crypto_91015].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I2)

fonction 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)

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4fed74be6625 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction synchrone Crypto_KeyCopy copie une clé ainsi que tous ses éléments de clé vers une clé cible au sein du même pilote crypto [SWS_Crypto_00155]. L'association s'effectue via les paramètres d'entrée cryptoKeyId pour la clé source ainsi que targetCryptoKeyId pour la clé cible [SWS_Crypto_00155]. Une opération de copie réussie est confirmée par E_OK [SWS_Crypto_00155].

Concurrence et comportement à l'exécution

L'interface est conçue pour être réentrante, mais ne doit pas être exécutée simultanément pour la même cryptoKeyId [SWS_Crypto_00155]. Étant donné que l'exécution s'effectue de manière synchrone, des retards perceptibles peuvent survenir pendant l'appel pour les éléments de clé stockés directement dans la mémoire flash [SWS_Crypto_00155].

Gestion des erreurs

En cas d'erreur, la fonction fournit des valeurs de retour spécifiques de type Std_ReturnType [SWS_Crypto_00155] :

  • CRYPTO_E_BUSY : le Crypto Driver Object associé est occupé [SWS_Crypto_00155].
  • CRYPTO_E_KEY_NOT_AVAILABLE : au moins l'une des clés demandées n'est pas disponible [SWS_Crypto_00155].
  • CRYPTO_E_KEY_READ_FAIL : la lecture de l'élément de clé source n'est pas autorisée [SWS_Crypto_00155].
  • CRYPTO_E_KEY_WRITE_FAIL : l'écriture dans l'élément de clé cible n'est pas autorisée [SWS_Crypto_00155].
  • CRYPTO_E_KEY_SIZE_MISMATCH : les tailles des éléments de clé ne sont pas compatibles entre elles [SWS_Crypto_00155].
  • CRYPTO_E_KEY_EMPTY : l'élément de clé de la clé source n'est pas initialisé [SWS_Crypto_00155].
  • E_NOT_OK : l'exécution de la demande a échoué [SWS_Crypto_00155].

Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR CP R20-11.

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 73fbfa8804b7 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyElementIdsGet sert à demander des informations indiquant quels éléments de clé sont disponibles dans une clé donnée [SWS_Crypto_00160]. L'identifiant de la clé dont les ID d'éléments disponibles doivent être exportés est transmis via le paramètre d'entrée cryptoKeyId [SWS_Crypto_00160]. Les identifiants déterminés sont stockés dans le tableau référencé par le pointeur keyElementIdsPtr [SWS_Crypto_00160].

La gestion de la taille du tampon s'effectue via le paramètre d'entrée et de sortie keyElementIdsLengthPtr : lors de l'appel, ce paramètre doit contenir la taille fournie du tampon keyElementIdsPtr [SWS_Crypto_00160]. Une fois l'opération terminée, le nombre réel d'éléments de clé présents y est consigné [SWS_Crypto_00160].

Comme valeur de retour, le service fournit E_OK en cas d'interrogation réussie ou E_NOT_OK si la requête a échoué [SWS_Crypto_00160]. Si l'objet pilote cryptographique concerné est occupé au moment de l'appel, le code d'erreur CRYPTO_E_BUSY est renvoyé [SWS_Crypto_00160].

En ce qui concerne la concurrence, la fonction est réentrante, mais ne doit pas être appelée simultanément pour la même cryptoKeyId [SWS_Crypto_00160]. La déclaration est disponible via l'en-tête Crypto.h [SWS_Crypto_00160].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

fonction 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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 7ee33749b38a Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_RandomSeed (Service-ID 0x0d) sert, selon [SWS_Crypto_91013], à la génération ainsi qu'à la mise à jour de l'état de graine interne d'une clé en utilisant une source d'entropie fournie. La déclaration de la fonction figure dans le fichier d'en-tête Crypto.h.

Utilisation et paramètres d'appel

Outre la génération initiale, la fonction peut également être utilisée selon [SWS_Crypto_91013] pour mettre à jour l'état de graine avec une nouvelle entropie. L'appel synchrone nécessite pour cela trois paramètres d'entrée :

  • cryptoKeyId : transmet l'identifiant de la clé pour laquelle une nouvelle graine doit être générée.
  • seedPtr : contient un pointeur vers la zone mémoire avec les données pour alimenter la graine.
  • seedLength : définit la longueur en octets des données de graine transmises.

Valeurs de retour et gestion des erreurs

Comme valeur de retour, Crypto_RandomSeed signale un état de type Std_ReturnType selon [SWS_Crypto_91013] :

  • E_OK : la requête a été exécutée avec succès.
  • E_NOT_OK : la requête a échoué.
  • CRYPTO_E_KEY_NOT_VALID : l'exécution échoue, car l'état de la clé identifiée par cryptoKeyId se trouve au statut « invalid ».

Concurrence et restrictions

Conformément à [SWS_Crypto_91013], la fonction est spécifiée comme réentrante, mais expressément pas pour la même cryptoKeyId. Les appels parallèles pour la même clé doivent donc être empêchés côté appelant.

Ce texte a été généré par une IA et se base exclusivement sur les données de spécification issues du payload.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9465afa4791c Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction Crypto_KeyGenerate fournie via le fichier d'en-tête Crypto.h génère du nouveau matériel de clé et met à jour la clé adressée via l'identifiant cryptoKeyId [SWS_Crypto_91007]. La fonction fonctionne de manière entièrement synchrone et est définie sous le Service-ID 0x07 [SWS_Crypto_91007]. Il n'existe pas d'autres paramètres en dehors de l'identifiant de la clé [SWS_Crypto_91007].

Concurrence et restrictions

En matière de concurrence, Crypto_KeyGenerate est spécifiée comme réentrante, mais expressément avec la restriction selon laquelle cela ne s'applique pas à la même cryptoKeyId [SWS_Crypto_91007]. Si plusieurs demandes sont émises pour la même clé, celles-ci doivent être synchronisées côté appelant afin d'éviter les conflits de pilote.

Valeurs de retour et gestion des erreurs

Via la valeur de retour du type de base Std_ReturnType, l'appelant reçoit un retour détaillé sur le succès ou les causes d'erreur spécifiques de l'opération [SWS_Crypto_91007] :

  • E_OK : la génération de clé a été exécutée avec succès [SWS_Crypto_91007].
  • CRYPTO_E_BUSY : la demande a échoué, car le Crypto Driver Object concerné est actuellement occupé [SWS_Crypto_91007].
  • CRYPTO_E_KEY_EMPTY : la génération a échoué parce qu'un élément de clé source requis n'est pas initialisé [SWS_Crypto_91007].
  • CRYPTO_E_KEY_NOT_VALID : l'opération a échoué, car l'état de la clé référencée par cryptoKeyId est marqué comme non valide [SWS_Crypto_91007].
  • E_NOT_OK : la demande de génération de clé a échoué pour d'autres raisons [SWS_Crypto_91007].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification d'AUTOSAR Classic R20-11.

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5847568b736a Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyDerive dérive une nouvelle clé cryptographique à partir des éléments de clé d'une clé source (cryptoKeyId) et l'enregistre dans l'élément de clé d'ID 1 de la clé cible (targetCryptoKeyId) [SWS_Crypto_91008]. La clé source doit contenir les éléments de clé requis pour le mot de passe et le sel ; le nombre d'itérations est spécifié via l'élément de clé CRYPTO_KE_KEYDERIVATION_ITERATIONS [SWS_Crypto_91008].

Appel et concurrence

L'interface est réentrante, mais ne doit pas être appelée simultanément pour la même cryptoKeyId [SWS_Crypto_91008]. Les appelants doivent donc s'assurer que les opérations de dérivation parallèles s'exécutent sur des clés sources différentes.

Valeurs de retour et gestion des erreurs

La fonction signale le résultat via des valeurs de retour définies de type Std_ReturnType [SWS_Crypto_91008] :

  • E_OK : dérivation de clé effectuée avec succès.
  • E_NOT_OK : dérivation échouée. Si le paramètre targetCryptoKeyId est en dehors de la plage valide, la fonction signale en outre CRYPTO_E_PARAM_HANDLE au DET lorsque la détection du développement est activée [SWS_Crypto_00180].
  • CRYPTO_E_BUSY : Le Crypto Driver Object concerné est occupé [SWS_Crypto_91008].
  • CRYPTO_E_KEY_EMPTY : un élément de clé source requis n'est pas initialisé [SWS_Crypto_91008].
  • CRYPTO_E_KEY_NOT_VALID : l'état de la clé référencée par cryptoKeyId n'est pas valide [SWS_Crypto_91008].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c27ddd0a9e75 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction synchrone Crypto_KeyExchangeCalcPubVal calcule la valeur publique pour un protocole d'échange de clés et l'enregistre à l'emplacement mémoire de publicValuePtr ([SWS_Crypto_91009]). L'appelant transmet via cryptoKeyId l'identifiant de la clé devant être utilisée pour le protocole. Via le paramètre d'entrée et de sortie publicValueLengthPtr, la taille de tampon de la mémoire fournie doit être transmise lors de l'appel ; une fois l'exécution terminée, la longueur réelle de la valeur publique calculée y est consignée ([SWS_Crypto_91009]).

Gestion des erreurs et valeurs de retour

La fonction renvoie E_OK en cas d'exécution réussie. Si une erreur survient, E_NOT_OK ou un code d'erreur spécifique est renvoyé ([SWS_Crypto_91009]) :

  • CRYPTO_E_BUSY : la requête échoue, car le Crypto Driver Object est occupé.
  • CRYPTO_E_KEY_EMPTY : la requête échoue, car l'élément de clé source n'est pas initialisé.
  • CRYPTO_E_KEY_NOT_VALID : la requête échoue, car l'état de la clé référencée via cryptoKeyId n'est pas valide.

Concurrence et intégration système

Conformément à [SWS_Crypto_91009], la fonction est réentrante, mais pas pour la même cryptoKeyId. Si le pilote cryptographique requiert pour des besoins internes tels que Crypto_KeyExchangeCalcPubVal les services d'un générateur de nombres aléatoires (RNG), le premier Crypto Driver Object (numéro d'objet 0) doit être configuré à cet effet ([SWS_Crypto_00224]).

Ce texte a été généré par une IA. Toutes les indications reposent sur la spécification AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c3912e0f8927 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone Crypto_KeyExchangeCalcSecret sert au calcul d'un secret partagé (Shared Secret Key) pour un protocole d'échange de clés [SWS_Crypto_91010]. Elle traite le matériel de clé de la clé spécifiée via cryptoKeyId conjointement avec la valeur publique du partenaire transmise via partnerPublicValuePtr, dont le nombre d'octets est indiqué via partnerPublicValueLength [SWS_Crypto_91010]. Le secret partagé calculé est directement enregistré en tant qu'élément de clé au sein de la même clé [SWS_Crypto_91010].

Comme valeur de retour, la fonction fournit l'état via Std_ReturnType [SWS_Crypto_91010] :

  • E_OK : le calcul et l'enregistrement du secret se sont terminés avec succès [SWS_Crypto_91010].
  • E_NOT_OK : la demande a échoué [SWS_Crypto_91010].
  • CRYPTO_E_BUSY : l'exécution a échoué, car le Crypto Driver Object concerné est occupé [SWS_Crypto_91010].
  • CRYPTO_E_KEY_EMPTY : l'élément de clé source n'est pas initialisé [SWS_Crypto_91010].
  • CRYPTO_E_KEY_NOT_VALID : l'état de la clé référencée par cryptoKeyId n'est pas valide [SWS_Crypto_91010].

L'interface est implémentée pour être réentrante, mais ne doit pas être appelée de manière concurrente pour la même cryptoKeyId [SWS_Crypto_91010]. Les appelants doivent donc veiller à éviter les appels simultanés avec un identifiant de clé identique et s'assurer que le matériel de clé référencé est initialisé au préalable et se trouve dans un état valide afin d'empêcher les états d'erreur [SWS_Crypto_91010].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification de SWS_Crypto_91010.

fonction 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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 0801a980dea9 Provenance Questions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Crypto_MainFunction sert au traitement cyclique d'ordres cryptographiques mis en file d'attente dans les files d'attente de jobs du pilote cryptographique [SWS_Crypto_91012]. Son utilisation requiert que le traitement asynchrone des ordres ait été configuré dans le module et que les files d'attente d'ordres correspondantes soient présentes [SWS_Crypto_91012].

Appel et sémantique

La fonction possède la signature void Crypto_MainFunction(void) et est spécifiée avec le Service-ID 0x0c [SWS_Crypto_91012]. Elle n'accepte aucun paramètre d'entrée et ne renvoie aucune valeur de retour. L'interface est fournie via l'en-tête SchM_Crypto.h [SWS_Crypto_91012]. Cela autorise l'interprétation selon laquelle l'appel cyclique est déclenché de manière planifiée par l'ordonnanceur BSW (Schedule Manager) dans le contexte d'une tâche périodique du système d'exploitation.

Concurrence et restrictions

L'appel est strictement lié à la configuration de files d'attente de jobs asynchrones [SWS_Crypto_91012]. La spécification n'indiquant aucune réentrance pour Crypto_MainFunction, la fonction devrait être traitée comme non réentrante ; les appels parallèles à partir de plusieurs threads ou tâches devraient donc être évités. Question Q-038d384305c8c5c3 (ouverte)

Gestion des erreurs

Dans la spécification, aucun code d'erreur spécifique ni entrée DET ne sont consignés pour cette fonction [SWS_Crypto_91012]. La fonction ne fournissant pas de valeurs de retour, d'éventuelles erreurs survenues pendant le traitement asynchrone sont probablement transmises aux couches supérieures via des interrogations d'état ou via les canaux de retour des jobs respectifs. Question (ouverte)

Cette note d'utilisation a été générée par une IA sur la base de la spécification 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#eef2cb7a
Content hash
eef2cb7a
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

Initialisation et état

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init fonction

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

Services · 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);

Services · 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);

Services · Autres

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);

Cyclique

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);

Types

Configuration data structure of Cry If module