DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

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

ModulegidsAI-GEGENEREERD

Biedt cryptografische primitieven en sleutelbeheer voor de hardwarenabije AUTOSAR Classic-cryptostack.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 79b1b64c6bf7 Herkomst Open vragen (2)
Causaal anker: R20-11 Geldig vanaf R20-11 Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Biedt cryptografische primitieven en sleutelbeheer voor de hardwarenabije AUTOSAR Classic-cryptostack.

De Crypto Driver stelt als MCAL-module hardwarenabije cryptografische berekeningen en het sleutelbeheer beschikbaar voor de AUTOSAR Classic-cryptostack (EXP_UtilizationOfCryptoServices p. 8). Hij kapselt hardware-beveiligingsmodules (HSM) of softwarebibliotheken in Driver Objects in en handelt zowel synchrone als asynchrone opdrachten af via de centrale interface Crypto_ProcessJob ([SWS_Crypto_91003]). Sleuteltoegang is onderworpen aan configureerbare rechten, en permanente opslag in het NVM wordt pas in gang gezet bij een succesvolle sleutelvalidatie (SWS_CryptoDriver p. 37).

De Crypto Driver (module Crypto) vormt als MCAL-driver het onderste fundament van de AUTOSAR Classic-cryptostack en koppelt hardware-beveiligingsmodules (HSM), crypto-accelerators en softwareroutines direct aan de crypto-interface (CryIf) (EXP_UtilizationOfCryptoServices p. 8, SWS_CryptoDriver p. 15). Bij meervoudige implementaties worden instanties fabrikantspecifiek benoemd volgens het schema Crypto_<vi>_<ai> ([SWS_Crypto_00012]). De initialisatie vindt synchroon plaats via [SWS_Crypto_91000] met een verplichte null-pointer voor [SWS_Crypto_91016] ([SWS_Crypto_00215]). Intern kapselt de module zelfstandige rekeneenheden in Crypto Driver Objects in, waarvan elk precies één opdracht tegelijk kan uitvoeren ([SWS_Crypto_00014]), terwijl n objecten parallelle berekeningen mogelijk maken ([SWS_Crypto_00117]). Driver Object 0 fungeert daarbij als centrale toevalsgenerator voor interne behoeften van alle overige driverobjecten van dezelfde instantie ([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

Contextdiagram: Inbedding van de Crypto Driver in de AUTOSAR-cryptostack met Driver Objects en interfaces naar NvM en DET. Bronnen: SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Cryptografische opdrachten worden via [SWS_Crypto_91003] (Crypto_ProcessJob) afgehandeld, waarbij een modus-bitveld (START, UPDATE, FINISH) streaming en totaalaanroepen verenigt (SWS_CryptoDriver p. 25, [SWS_Crypto_00017]). Asynchrone opdrachten worden berekend via de cyclische functie [SWS_Crypto_91012] (Crypto_MainFunction) en na voltooiing via CRYIF_CallbackNotification aan CryIf gemeld ([SWS_Crypto_00027], [SWS_Crypto_00028]). Lopende opdrachten kunnen synchroon worden geannuleerd met behulp van [SWS_Crypto_00122] ([SWS_Crypto_00183], [SWS_Crypto_00214]), terwijl directe bufferomleidingen naar sleutelelementen kopieerbewerkingen verminderen ([SWS_Crypto_00203], [SWS_Crypto_00221]).

Asynchrone opdrachtverwerking via de Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Parameters & sleutelhandles controlerenE_OK (Auftrag angenommen)Crypto_MainFunction()Berekening starten (START/UPDATE/FINISH)Cryptografische berekening uitvoerenErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Terugkeer

Sequentiediagram: Asynchroon verwerkingsverloop via Crypto_ProcessJob, cyclus in Crypto_MainFunction en terugmelding via CRYIF_CallbackNotification. Bronnen: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Het sleutelbeheer omvat het instellen ([SWS_Crypto_91004]), uitlezen ([SWS_Crypto_91006]), kopiëren ([SWS_Crypto_00155], [SWS_Crypto_91015]), genereren ([SWS_Crypto_91007]) en afleiden ([SWS_Crypto_91008]) van sleutelelementen onder strikte toegangsrechtencontrole ([SWS_Crypto_00219], [SWS_Crypto_00220]). Een persistentie in de Non-Volatile RAM Manager (NvM) wordt om consistentieredenen nooit bij enkelvoudig schrijven in gang gezet, maar uitsluitend bij de sleutelvalidatie via [SWS_Crypto_91014] (Crypto_KeySetValid) (SWS_CryptoDriver p. 37, [SWS_Crypto_91025]). In multi-core-omgevingen acteert de module in elke partitie geïsoleerd ([SWS_Crypto_CONSTR_00001]), waarbij HSM-objecten aan maximaal één partitie mogen worden toegewezen ([SWS_Crypto_CONSTR_00003]).

Rol en systeemgrenzen van de Crypto Driver in de Classic-cryptostack

De Crypto Driver (module-afkorting Crypto) bevindt zich op de onderste laag van de AUTOSAR Classic-basissoftware in de Microcontroller Abstraction Layer (MCAL) (EXP_UtilizationOfCryptoServices p. 8). Hij bevindt zich direct onder de crypto-interface (Crypto Interface, CryIf) en bedient via deze interface de Crypto Service Manager (CSM) (SWS_CryptoDriver p. 15). Zijn hoofdtaak bestaat uit het inkapselen van de concrete cryptografische rekenwerken – of het nu hardwareondersteunde beveiligingsmodules (Hardware Security Modules, HSM), dedicated crypto-accelerators zoals AES-engines of zuivere softwarebibliotheken betreft (SWS_CryptoDriver p. 15). Naast de feitelijke berekening van cryptografische primitieven omvat de functionaliteit de opslag, configuratie en het beheer van cryptografische sleutels (SWS_CryptoDriver p. 24).

In een regeleenheid kunnen meerdere driverinstanties van verschillende fabrikanten parallel bestaan; in dat geval worden bestands-, API- en configuratie-identificatoren eenduidig gedifferentieerd door een fabrikantspecifiek infix volgens het schema Crypto_<vi>_<ai> ([SWS_Crypto_00012]). De initialisatie van de module vindt plaats via de functie [SWS_Crypto_91000] (Crypto_Init). Als bijzonderheid geldt voor de configuratie-pointer van het type [SWS_Crypto_91016] (Crypto_ConfigType) dat deze altijd als null-pointer moet worden doorgegeven ([SWS_Crypto_00215]). Versie-informatie kan synchroon worden opgevraagd via [SWS_Crypto_91001] (Crypto_GetVersionInfo), waarbij het doorgeven van een null-pointer bij actieve ontwikkelingsdetectie met de fout CRYPTO_E_PARAM_POINTER aan de DET wordt gemeld (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

Contextdiagram: Inbedding van de Crypto Driver in de AUTOSAR-cryptostack met Driver Objects en interfaces naar NvM en DET. Bronnen: SWS_CryptoDriver p. 15, SWS_Crypto_00012, SWS_Crypto_91017

Beheer van Crypto Driver Objects en hardware-abstractie

Elke instantie van de Crypto Driver is intern onderverdeeld in een of meer logische driverobjecten (Crypto Driver Objects) (SWS_CryptoDriver p. 15). Een Crypto Driver Object vormt het functionele eindpunt van een cryptokanaal en representeert een zelfstandig hardware-rekenwerk of een software-implementatie (SWS_CryptoDriver p. 15). Een afzonderlijk Driver Object kan op een gegeven tijdstip om principiële redenen altijd slechts precies één taak (job) actief uitvoeren ([SWS_Crypto_00014]). Een Crypto Driver met n Driver Objects beschikt bijgevolg over de capaciteit om n cryptotaken parallel te berekenen ([SWS_Crypto_00117]). Welke wiskundige en veiligheidsrelevante primitieven worden ondersteund, wordt bepaald door het prestatievermogen van het toegewezen object ([SWS_Crypto_00013]).

Heeft een driverobject interne toevalsgetallen nodig (bijvoorbeeld voor de berekening van publieke waarden in het kader van sleuteluitwisseling via [SWS_Crypto_91009]) en beschikt het niet over een eigen toevalsgenerator, dan valt het dwingend terug op het Crypto Driver Object 0 van dezelfde driver ([SWS_Crypto_00224], [SWS_Crypto_00225]). Driverobjecten mogen hierbij onder geen enkele voorwaarde toevalsgenerators van externe crypto-driverinstanties adresseren ([SWS_Crypto_00226]). Interpretatie: Driver Object 0 fungeert zodoende als centrale interne referentie-toevalsgenerator voor alle overige driverobjecten van dezelfde partitie. Vraag Q-4e8e30714cbc9c80 (open)

Taakafhandeling tussen synchrone Direct-Call en asynchrone streaming

Cryptografische verwerkingen worden aan de module overgedragen als job-structuren van het type Crypto_JobType via de centrale interface [SWS_Crypto_91003] (Crypto_ProcessJob) ([SWS_Crypto_00042], AUTOSAR_CP_SWS_CryptoServiceManager p. 21). De interface verenigt blokgebaseerde totaalaanroepen en doorlopende datastreaming via een modusspecifiek bitveld: De bewerkingen START, UPDATE en FINISH kunnen afzonderlijk of gecombineerd worden doorgegeven (SWS_CryptoDriver p. 25). Het instellen van de START-vlag markeert een nieuwe taak en breekt alle voorafgaande instanties van dezelfde job af ([SWS_Crypto_00017]). Bij gecombineerde overdracht worden de stappen altijd in de vaste volgorde START, UPDATE en afsluitend FINISH uitgevoerd (SWS_CryptoDriver p. 25).

Of een taak synchroon of asynchron wordt verwerkt, is onderdeel van de metadataconfiguratie in Crypto_JobType (SWS_CryptoDriver p. 26). In de asynchrone modus neemt [SWS_Crypto_91003] louter de taakgegevens in ontvangst; de daadwerkelijke uitvoering wordt in gang gezet respectievelijk afgehandeld door de cyclische hoofdfunctie [SWS_Crypto_91012] (Crypto_MainFunction) ([SWS_Crypto_00027], [SWS_Crypto_91012]). Na afronding van de asynchrone berekening stelt de Crypto Driver de bovenliggende laag CryIf bindend op de hoogte via de aanroep van de callback-functie CRYIF_CallbackNotification onder teruggave van de status en de resultaat-pointers ([SWS_Crypto_00028]). Interpretatie: Synchrone aanroepen voeren de cryptobewerking daarentegen blokkerend uit in de context van de aanroeper, zonder via de hoofdfunctie te worden ontkoppeld. Vraag Q-0447ed9db11aa30b (open)

Asynchrone opdrachtverwerking via de Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Parameters & sleutelhandles controlerenE_OK (Auftrag angenommen)Crypto_MainFunction()Berekening starten (START/UPDATE/FINISH)Cryptografische berekening uitvoerenErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Terugkeer

Sequentiediagram: Asynchroon verwerkingsverloop via Crypto_ProcessJob, cyclus in Crypto_MainFunction en terugmelding via CRYIF_CallbackNotification. Bronnen: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Lopende of wachtende crypto-opdrachten kunnen via de functie [SWS_Crypto_00122] (Crypto_CancelJob) worden geannuleerd. Als de aangevraagde job zich niet in actieve verwerking door het driverobject bevindt, wordt deze onmiddellijk verwijderd en retourneert de aanroep E_OK ([SWS_Crypto_00214]). Kan de hardware de actieve rekenbewerking echter niet meteen onderbreken, dan bevestigt de API de poging met CRYPTO_E_JOB_CANCELED en wordt de annulering bij de eerstvolgende bereikbare stap voltooid ([SWS_Crypto_00183]).

Jobannulering via Crypto_CancelJobCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altJob is niet actief in behandelingJob uit driver-wachtrij verwijderenE_OK (Job sofort entfernt)Job actief & hardware kan niet onmiddellijk afbrekenHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

Sequentiediagram: Synchrone annulering van cryptografische jobs via Crypto_CancelJob met gevalsonderscheid bij actieve hardware-uitvoering. Bronnen: SWS_Crypto_00122, SWS_Crypto_00183, SWS_Crypto_00214

Om onnodige kopieeracties tussen applicatie- en hardwaregeheugens te voorkomen, ondersteunt de Crypto Driver directe bufferomleiding (Job Redirection): ingangs- en uitgangsgegevens kunnen via jobRedirectionInfoRef direct naar interne sleutelelementen worden gerefereerd ([SWS_Crypto_00203], [SWS_Crypto_00204]). Om datalekken te verhinderen, gelden hierbij strikte rechtencontroles: bij ingangs-redirections voor versleutelings- en ontsleutelingsdiensten moet het sleutelelement minimaal over het recht CRYPTO_RA_ENCRYPTED beschikken, voor zuivere leesomleidingen is minimaal CRYPTO_RA_INTERNAL_COPY vereist ([SWS_Crypto_00221]).

Sleutelbeheer, toegangsrechten en cryptografische sleuteloperaties

Een logische sleutel (Key) bestaat in de Crypto Driver uit een of meer sleutelelementen (Key Elements) die het eigenlijke sleutelmateriaal, initialisatievectoren (IV), random seeds of SHE-bewijzen (Proof) opnemen (SWS_CryptoDriver p. 28). De toegang tot elk afzonderlijk element is strikt gereglementeerd: lees- en schrijftoegang worden bewaakt aan de hand van geconfigureerde rechtenhiërarchieën (bijv. CRYPTO_RA_ALLOWED, CRYPTO_RA_ENCRYPTED, CRYPTO_RA_INTERNAL_COPY), waarbij een kleinere enumeratiewaarde een hoger toegangsrecht vertegenwoordigt (SWS_CryptoDriver p. 28, [SWS_Crypto_00219]). Directe leesoperaties zijn alleen toegestaan bij CRYPTO_RA_ALLOWED of CRYPTO_RA_ENCRYPTED ([SWS_Crypto_00222]); schrijftoegang vereist minimaal CRYPTO_WA_ALLOWED of CRYPTO_WA_ENCRYPTED ([SWS_Crypto_00223]). Bij het kopiëren moet het bronelement minimaal CRYPTO_RA_INTERNAL_COPY bezitten en mag het geen lagere rechten hebben dan het doelelement ([SWS_Crypto_00220]).

Voor de directe manipulatie van sleutels en hun elementen stelt de Crypto Driver een reeks synchrone API's beschikbaar: het instellen en uitlezen van gegevens gebeurt via [SWS_Crypto_91004] (Crypto_KeyElementSet) resp. [SWS_Crypto_91006] (Crypto_KeyElementGet). Aanwezige element-identifiers van een sleutel kunnen via [SWS_Crypto_00160] (Crypto_KeyElementIdsGet) worden bepaald. Volledige sleutels of afzonderlijke elementen worden door middel van [SWS_Crypto_00155] (Crypto_KeyCopy) of [SWS_Crypto_00148] (Crypto_KeyElementCopy) gedupliceerd. Voor partiële kopieën bestaat [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial), die nauwkeurige lengte- en offsetcontroles op bron- en doelbuffers afdwingt ([SWS_Crypto_00207], [SWS_Crypto_00208], [SWS_Crypto_00209]) en de doellengte dynamisch aanpast ([SWS_Crypto_00210], [SWS_Crypto_00211]).

Bovendien ondersteunt de module complexe sleuteloperaties: de sleutelgeneratie vindt plaats via [SWS_Crypto_91007] (Crypto_KeyGenerate) op basis van entropiegegevens die vooraf via [SWS_Crypto_91013] (Crypto_RandomSeed) zijn geïnitialiseerd. De afleiding van nieuw sleutelmateriaal wordt verzorgd door [SWS_Crypto_91008] (Crypto_KeyDerive). Voor Diffie-Hellman-sleuteluitwisselingsprotocollen staan de functies [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) voor het genereren van de openbare waarde en [SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) voor het bepalen van het gedeelde geheim ter beschikking (SWS_CryptoServiceManager p. 70).

Elke logische sleutel houdt een status bij, die via [SWS_Crypto_91019] (Crypto_KeyGetStatus) kan worden opgevraagd. Nieuw geschreven sleutels bevinden zich eerst in de toestand invalid en worden pas na succesvolle validatie door middel van [SWS_Crypto_91014] (Crypto_KeySetValid) als valid vrijgegeven, terwijl [SWS_Crypto_91020] (Crypto_KeySetInvalid) de sleutel expliciet blokkeert. Wat de gegevensformaten betreft, verwerkt de driver asymmetrische sleutels conform RFC 5958 in ASN.1-PKCS#8-codering ([SWS_Crypto_00184]), RSA-sleutelstructuren conform RFC 8017 met vaste algoritme-OID 1.2.840.113549.1.1.1 ([SWS_Crypto_00185], [SWS_Crypto_00186], [SWS_Crypto_00187], [SWS_Crypto_00188]) en ECC-krommegegevens (NIST, Brainpool, ED25519) in little-endian-puntcoördinaten ([SWS_Crypto_00189], [SWS_Crypto_00190], [SWS_Crypto_00191], [SWS_Crypto_00192], [SWS_Crypto_00193]). Hardware-nabije SHE-sleutels worden in het formaat M1M2M3 doorgegeven; het bijbehorende verificatiebewijs M4M5 is direct na validatie tijdelijk uitleesbaar in sleutelelement 2 ([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 (controle 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

Toestandsdiagram: Toestandsovergangen van een sleutel van invulling via validatie tot persistering en foutafhandeling. Bronnen: SWS_Crypto_00198, SWS_Crypto_00242, SWS_Crypto_91014, SWS_Crypto_91019, SWS_Crypto_91020

Persisteren van sleutelelementen via de Non-Volatile RAM Manager

Wanneer sleutels over spanningscycli heen niet-vluchtig behouden moeten blijven, wordt de Crypto Driver gekoppeld aan de Non-Volatile RAM Manager (NvM) (SWS_CryptoDriver p. 35, AUTOSAR_CP_SWS_CryptoDriver p. 37). Een centraal architectonisch principe luidt dat schrijfbewerkingen naar het NvM nooit direct bij het invullen van een afzonderlijk element via Crypto_KeyElementSet worden getriggerd (SWS_CryptoDriver p. 37). In plaats daarvan wordt de persistering uitsluitend geïnitieerd door de statusvalidatie KEYSETVALID via [SWS_Crypto_91014] (Crypto_KeySetValid) of een equivalente crypto-job (SWS_CryptoDriver p. 37). Dit garandeert dat onderling afhankelijke sleutelelementen consistent worden gecontroleerd en in één enkele NvM-schrijfopdracht worden opgeslagen, wat flashcycli spaart (SWS_CryptoDriver p. 37).

De wisselwerking met het NvM vindt plaats via dedicated callback-interfaces: tijdens het opstarten van de ECU stelt het NvM via [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>) het initialisatieblok beschikbaar. Het laden van gepersisteerde gegevens uit de RAM-mirror van het NvM gebeurt via [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>). Voorafgaand aan het schrijven roept het NvM [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>) aan, zodat de crypto-driver zijn interne sleutelgegevens naar de NvM-buffer kopieert; de voltooiing van de asynchrone blokoverdracht wordt via [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>) gemeld. Voor de besturing gebruikt de driver de NvM-services NvM_SetRamBlockStatus en NvM_WriteBlock ([SWS_Crypto_91017]). Mislukt het laden van een persistente sleutel bij het opstarten, dan markeert de driver deze sleutel bindend als invalid ([SWS_Crypto_00198]).

Persistent opslaan van sleutels in NVM bij validatieCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)Consistentie & afhankelijkheden van de elementen controlerenNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)Sleutelgegevens naar NvM-RAM-spiegel overdragenE_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)Sleutelstatus op VALID instellenE_OKE_OK

Sequentiediagram: Persisteren van sleutelelementen naar het NVM bij validatie via NvM_WriteBlock en driverspecifieke callbacks. Bronnen: SWS_Crypto_00242, SWS_Crypto_91017, SWS_Crypto_91025, SWS_Crypto_91026

Partitionering en multi-core-bedrijfsregels

Om crypto-operaties op multi-coresystemen efficiënt te verdelen, kan de crypto-stack over meerdere softwarepartities worden verdeeld (BSWDistributionGuide p. 59). De module Crypto werkt in elke partitie als een volledig autonome instantie: elke API-aanroep verwerkt uitsluitend gegevens binnen de partitie waarin deze is geplaatst ([SWS_Crypto_CONSTR_00001]). De partitionering van de driverobjecten is onderworpen aan vaste configuratieregels: de door CryptoDriverObjectEcucPartitionRef gerefereerde partities moeten dwingend een strikte deelverzameling vormen van de aan de module toegewezen partities (CryptoEcucPartitionRef) ([SWS_Crypto_CONSTR_00002]). Is een Crypto Driver Object gekoppeld aan een hardware-beveiligingsmodule (HSM), dan mag het om redenen van hardware-isolatie aan precies 0 of 1 partitie worden toegewezen ([SWS_Crypto_CONSTR_00003]).

Gedrag in het foutgeval

De Crypto Driver implementeert een tweetraps foutbewaking bestaande uit ontwikkelingsdetectie (Development Errors) en runtimefouten (Runtime Errors). Bij een geactiveerde ontwikkelingsveiligheidsmodus (DET) worden formele interfacefouten gemeld aan Det_ReportError ([SWS_Crypto_91017]). Hiertoe behoren aanroepen vóór de driverinitialisatie (CRYPTO_E_UNINIT, 0x00) ([SWS_Crypto_00040], [SWS_Crypto_00196], [SWS_Crypto_00205]), ongeldige initialisatiegegevens (CRYPTO_E_INIT_FAILED, 0x01) en ontoelaatbare null-pointers (CRYPTO_E_PARAM_POINTER, 0x02) ([SWS_Crypto_00040]). Vallen sleutel-identifiers of doelsleutel-handles buiten het toegestane waardebereik, dan breekt de driver de aanroep af met E_NOT_OK en meldt CRYPTO_E_PARAM_HANDLE (0x04) ([SWS_Crypto_00040], [SWS_Crypto_00180], [SWS_Crypto_00197], [SWS_Crypto_00202], [SWS_Crypto_00217]).

Zijn de meegegeven ingangs- of uitgangsbuffers ontoereikend voor een operatie, dan wordt de uitvoering geweigerd en bij een actieve DET de fout CRYPTO_E_SMALL_BUFFER gemeld ([SWS_Crypto_00195], SWS_CryptoDriver p. 49). Een normatieve uitzondering geldt voor de services CRYPTO_HASH en CRYPTO_MACGENERATE: is de uitvoerbuffer hier kleiner dan de natieve hash- resp. MAC-lengte, dan wordt het resultaat niet verworpen, maar getrunceerd in de vorm van de meest significante bits (MSB) in de buffer geschreven ([SWS_Crypto_00065]). Tijdens operationeel bedrijf meldt de driver specifieke runtimefouten via de retourwaarde: uitputting van de willekeurige entropie bevestigt [SWS_Crypto_91003] met de returncode CRYPTO_E_ENTROPY_EXHAUSTED en meldt de runtimefout CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) ([SWS_Crypto_00141], [SWS_Crypto_00194], [SWS_Crypto_91018]). Mislukken lees- of schrijfacties naar het NVM, dan wordt CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) gesignaleerd ([SWS_Crypto_00194]). Verdere gestandaardiseerde API-retourwaarden zijn 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 en CRYPTO_E_KEY_EMPTY ([SWS_Crypto_00155], [SWS_Crypto_00207], [SWS_Crypto_91018]).

Verdere gedetailleerde bewijzen

De wezenlijke eigenschappen van de Crypto Driver steunen op de volgende functionele specificatievoorschriften en architectuurpassages:

OnderwerpWezenlijke specificatie-elementenDocumentverwijzing
Modulekader & instantiëring[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
Opdrachtafhandeling & cancellation[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
Sleutel- & rechtenbeheer[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
Crypto-operaties & uitwisseling[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
NvM-persistering & callbacks[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
Multi-core & partitionering[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

Deze handleiding is uitsluitend gebaseerd op de normatieve bepalingen van de specificatie 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

functie Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4040b6dde00b Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie Crypto_Init dient voor de initialisatie van de Crypto Driver conform [SWS_Crypto_91000]. De interface is in de header Crypto.h gedeclareerd en heeft service-ID 0x00 [SWS_Crypto_91000].

Voor de aanroep en de interfaceparameters zijn de volgende eigenschappen gespecificeerd:

  • Configuratiepointer: Via de invoerparameter configPtr van het type const Crypto_ConfigType* wordt een pointer naar de geselecteerde configuratiestructuur doorgegeven [SWS_Crypto_91000].
  • Retourwaarde: De functie heeft geen retourwaarde (void); er bestaan noch in-/uitvoerparameters noch afzonderlijke uitvoerparameters [SWS_Crypto_91000].
  • Uitvoeringsgedrag: De initialisatieroutine wordt synchroon uitgevoerd (Synchronous) [SWS_Crypto_91000].
  • Re-entrantie: De functie is gedefinieerd als niet-re-entrant (Non Reentrant) [SWS_Crypto_91000]. Parallelle of overlappende aanroepen zijn niet toegestaan.

Vanwege de classificatie als niet-re-entrant en aangezien de specificatie geen specifieke foutcodes retourneert, vindt de aanroep vermoedelijk centraal plaats tijdens de opstartfase van de ECU vóór alle andere drivertoegangen (interpretatie). Vraag Q-008bb5a45b823891 (open) De aanroeper is er vermoedelijk bovendien voor verantwoordelijk dat de gerefereerde configuratiestructuur in het geheugen permanent geldig blijft (interpretatie). Vraag Q-6271a86fad440121 (open)

Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie AUTOSAR CP R20-11.

Implementer's Guide volgt (complexiteit I1)

functie Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 58fc9052e1fa Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie Crypto_ProcessJob voert de in parameter job geconfigureerde cryptografische primitieve uit op het door objectId gerefereerde Crypto Driver Object [SWS_Crypto_91003]. De aanroep is re-entrant en werkt afhankelijk van de jobconfiguratie synchroon of asynchroon [SWS_Crypto_91003]. Via de pointer naar Crypto_JobType worden zowel configuratiegegevens voor de primitieve als buffers voor de resultaatgegevens doorgegeven [SWS_Crypto_91003].

Vóór de daadwerkelijke uitvoering van een job controleert de driver de sleutel-identifiers op geldigheid: vallen job->cryptoKeyId of eventueel job->targetCryptoKeyId buiten het toegestane bereik, dan meldt de functie de fout CRYPTO_E_PARAM_HANDLE aan de DET en retourneert E_NOT_OK [SWS_Crypto_00217]. Dit geldt ook voor de service CRYPTO_KEYDERIVE (job->jobPrimitiveInfo->primitiveInfo->service), voor zover job->targetCryptoKeyId ongeldig is [SWS_Crypto_00202].

Naast E_OK en E_NOT_OK signaleren specifieke foutcodes het mislukken van de aanvraag [SWS_Crypto_91003]:

  • CRYPTO_E_BUSY, wanneer het driver-object bezet is of de wachtrij ervan vol is [SWS_Crypto_91003],
  • sleutelgerelateerde fouten zoals 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 of CRYPTO_E_KEY_EMPTY [SWS_Crypto_91003],
  • CRYPTO_E_JOB_CANCELED bij het afbreken van een synchrone job [SWS_Crypto_91003] evenals
  • CRYPTO_E_ENTROPY_EXHAUSTED bij onvoldoende entropie van een random number generator; hierbij meldt de functie tevens de runtimefout CRYPTO_E_RE_ENTROPY_EXHAUSTED [SWS_Crypto_00141], [SWS_Crypto_91003].

Deze tekst is opgesteld door een AI op basis van AUTOSAR R20-11-specificatiegegevens.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 53c6dc327c97 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De synchrone functie Crypto_CancelJob verwijdert een meegegeven job uit de wachtrij en breekt de verwerking ervan zo mogelijk af [SWS_Crypto_00122]. Bij de aanroep worden de identifier van het Crypto Driver Object (objectId) en een pointer naar de jobconfiguratie (job) doorgegeven [SWS_Crypto_00122].

De retourwaarden signaleren het resultaat van de afbreekpoging:

  • E_OK: Het verzoek was succesvol en de job is verwijderd [SWS_Crypto_00122]. Als er geen fout in de driver is opgetreden en de job momenteel niet wordt verwerkt, retourneert de service eveneens E_OK zonder verdere acties [SWS_Crypto_00214].
  • E_NOT_OK: het verzoek is mislukt, omdat de job niet kon worden verwijderd [SWS_Crypto_00122].
  • CRYPTO_E_JOB_CANCELED: De job is afgebroken, maar wordt verder uitgevoerd; er worden geen resultaten aan de applicatie teruggemeld [SWS_Crypto_00122]. Dit geldt wanneer de driver foutloos werkt, maar de job (bijvoorbeeld wegens hardwarebeperkingen) niet kan afbreken [SWS_Crypto_00183].

Gelijktijdigheid en beperkingen

De interface is re-entrant voor verschillende instanties, maar mag niet gelijktijdig voor hetzelfde Crypto Driver Object worden aangeroepen [SWS_Crypto_00122].

Deze gebruiksinstructie is automatisch gegenereerd en is uitsluitend gebaseerd op de specificatiegegevens van AUTOSAR R20-11.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c644721999af Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyElementSet dient ertoe de ruwe gegevens van een bepaald sleutelelement voor een via cryptoKeyId geïdentificeerde sleutel in de crypto-driver in te stellen [SWS_Crypto_91004].

Parameters en retourwaarden

Via keyElementId wordt het doelsleutelelement geadresseerd, terwijl keyPtr naar de databuffer en keyLength naar de bytegrootte daarvan verwijst [SWS_Crypto_91004]. Bij een succesvolle toewijzing retourneert de interface E_OK [SWS_Crypto_91004].

Foutafhandeling

Treedt er bij de verwerking een fout op, dan levert de functie specifieke retourwaarden [SWS_Crypto_91004]:

  • CRYPTO_E_BUSY: Het bijbehorende Crypto Driver Object is bezet.
  • CRYPTO_E_KEY_WRITE_FAIL: De schrijftoegang tot het sleutelelement is geweigerd.
  • CRYPTO_E_KEY_NOT_AVAILABLE: Het opgevraagde sleutelelement of de sleutel is niet beschikbaar.
  • CRYPTO_E_KEY_SIZE_MISMATCH: De doorgegeven datalengte komt niet overeen met de grootte van het sleutelelement.
  • E_NOT_OK: De aanvraag is om overige redenen mislukt.

Concurrency

De functie is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_Crypto_91004]. Interpretatie: aanroepers zijn er vermoedelijk verantwoordelijk voor parallelle aanroepen onderling te synchroniseren om inconsistenties van gegevens in de driver te voorkomen. Vraag Q-d7ef7a774052a212 (open)

Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie SWS_Crypto_91004 (R20-11).

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 234814436706 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeySetValid dient ertoe de toestand van een via de identifier cryptoKeyId gespecificeerde sleutel op geldig in te stellen ([SWS_Crypto_91014]). De interface is beschikbaar via het headerbestand Crypto.h en heeft service-ID 0x05 ([SWS_Crypto_91014]).

Bij gebruik zijn de volgende parameters en retourwaarden gedefinieerd ([SWS_Crypto_91014]):

  • Invoerparameters: Via cryptoKeyId (type uint32) wordt de identifier van de sleutel meegegeven waarvan de toestand op geldig moet worden ingesteld ([SWS_Crypto_91014]). Aanvullende invoer- of uitvoerparameters ontbreken ([SWS_Crypto_91014]).
  • Retourwaarde: Een statuscode van het type Std_ReturnType informeert over het resultaat van het verzoek ([SWS_Crypto_91014]):

Wat betreft concurrency is de functie gespecificeerd als niet re-entrant („Non Reentrant”) ([SWS_Crypto_91014]). Interpretatie: Aanroepers moeten parallelle aanroepen over taken heen vermoedelijk extern coördineren om conflicten te vermijden, en moeten bij ontvangst van CRYPTO_E_BUSY voorzien in een herhaling van de aanroep op een later tijdstip. Vraag Q-32d775a9e61e5731 (open)

Deze tekst is opgesteld door een AI en is gebaseerd op de specificatiestand AUTOSAR R20-11.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f9c09a4552e9 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik en semantiek

De synchrone functie Crypto_KeySetInvalid zet de status van een door cryptoKeyId geïdentificeerde sleutel op ongeldig [SWS_Crypto_91020]. De functie is gedefinieerd in het headerbestand Crypto.h en wordt via de service-ID 0x15 aangesproken [SWS_Crypto_91020]. Als enige overdrachtsparameter dient de invoerwaarde cryptoKeyId (type uint32), die de unieke identifier van de doelsleutel bevat; in-/uitvoer- en uitvoerparameters zijn niet aanwezig [SWS_Crypto_91020].

Foutafhandeling en retourwaarden

Het resultaat van de functie-uitvoering wordt gesignaleerd via de retourwaarde van het type Std_ReturnType [SWS_Crypto_91020]:

  • E_OK: Het verzoek was succesvol en de sleutelstatus is op ongeldig gezet [SWS_Crypto_91020].
  • E_NOT_OK: Het uitvoeren van het verzoek is mislukt [SWS_Crypto_91020].
  • CRYPTO_E_BUSY: Het verzoek is mislukt, omdat het verantwoordelijke crypto-driverobject (Crypto Driver Object) momenteel bezet is [SWS_Crypto_91020].

Gelijktijdigheid en beperkingen

De interface is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_Crypto_91020]. Een gelijktijdige of onderbrekende aanroep is daarom niet toegestaan. Omdat de functie synchroon wordt uitgevoerd, keert deze pas na voltooiing van de statuswijziging respectievelijk na vaststelling van de fout terug naar de aanroeper [SWS_Crypto_91020].

Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie.

Implementer's Guide volgt (complexiteit I1)

functie 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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c68d666a4fd9 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone en re-entrante functie Crypto_KeyElementGet dient ertoe een door keyElementId geïdentificeerd sleutelelement uit de sleutel cryptoKeyId uit te lezen en in het geheugengebied resultPtr op te slaan [SWS_Crypto_91006]. De interface wordt via de header Crypto.h ter beschikking gesteld en heeft service-ID 0x06 [SWS_Crypto_91006]. Bij de aanroep geeft de aanroeper via de in-outparameter resultLengthPtr de buffergrootte door of, bij geconfigureerde deeltoegang, de gewenste leesgrootte; na afronding van de uitvoering slaat de driver daar de daadwerkelijk gekopieerde hoeveelheid gegevens op [SWS_Crypto_91006].

Bij succes retourneert de functie E_OK [SWS_Crypto_91006]. Mislukt de bewerking, dan signaleert deze dit via specifieke foutcodes: CRYPTO_E_BUSY bij een bezet crypto-driverobject, CRYPTO_E_KEY_NOT_AVAILABLE indien het sleutelelement niet beschikbaar is, CRYPTO_E_KEY_READ_FAIL bij geweigerde leestoegang, CRYPTO_E_KEY_EMPTY bij een ongeïnitialiseerd bronelement evenals generiek E_NOT_OK [SWS_Crypto_91006].

Hoewel de interface als re-entrant is gespecificeerd, wijst de specificatie erop dat bij directe mapping van het sleutelelement in het flashgeheugen merkbare latenties tijdens de synchrone uitvoering kunnen optreden [SWS_Crypto_91006]. Interpretatie: vanwege deze potentiële vertragingen is de aanroep vermoedelijk primair in de taakcontext en niet binnen tijdkritische interrupt-service-routines doelmatig. Vraag Q-ff4e2843b9aad46d (open)

Deze gebruiksinstructie is automatisch gegenereerd en is gebaseerd op de specificatiestand van AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4f6e929a170d Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyGetStatus dient voor het opvragen van de actuele toestand van een specifieke sleutel binnen de crypto-driver [SWS_Crypto_91019]. Ze wordt beschikbaar gesteld via de header Crypto.h en heeft de service-ID 0x14 [SWS_Crypto_91019].

Gebruik en parameters

De aanroep verloopt synchroon en verwacht twee parameters [SWS_Crypto_91019]:

  • cryptoKeyId: De identifier van de sleutel waarvan de status moet worden bepaald.
  • keyStatusPtr: Pointer naar het geheugengebied van het type Crypto_KeyStatusType waarnaar de toestand wordt geretourneerd.

Als retourwaarde levert de interface Std_ReturnType op. Bij een succesvolle uitvoering wordt E_OK gemeld, terwijl in het geval van een fout E_NOT_OK wordt geretourneerd [SWS_Crypto_91019].

Gelijktijdigheid en beperkingen

De functie is gedeclareerd als niet-re-entrant (Non Reentrant) [SWS_Crypto_91019]. Aanroepers moeten er daarom voor zorgen dat gelijktijdige aanroepen door bovenliggende synchronisatiemechanismen worden vermeden. Specifieke DET-foutmeldingen worden niet vermeld; vermoedelijk leidt een foutieve aanroep zoals een ongeldige pointer of een ongeldige ID direct tot het retourneren van E_NOT_OK [SWS_Crypto_91019]. Vraag Q-5703fab02905e91a (open)

Deze tekst is gemaakt door een AI en is gebaseerd op de specificatie van AUTOSAR R20-11.

Implementer's Guide volgt (complexiteit I1)

functie Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

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

Service Crypto_KeyElementCopy.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 0bf976054e55 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyElementCopy dient voor het kopiëren van een sleutelelement naar een ander sleutelelement binnen dezelfde crypto-driver [SWS_Crypto_00148]. Meegegeven worden de identifiers van de bronsleutel (cryptoKeyId) en het bronsleutelelement (keyElementId) evenals van de doelsleutel (targetCryptoKeyId) en het doelsleutelelement (targetKeyElementId) [SWS_Crypto_00148].

Wat betreft het tijdsgedrag dient men er rekening mee te houden dat er bij rechtstreeks in het flashgeheugen gemapte sleutelelementen door de synchrone uitvoering grotere vertragingen bij de functieaanroep kunnen optreden [SWS_Crypto_00148]. Met het runtimegedrag moet daarom met name in tijdkritische contexten rekening worden gehouden.

De functie is ontworpen als re-entrant, maar expliciet niet voor dezelfde cryptoKeyId [SWS_Crypto_00148]. Gelijktijdige aanroepen met een identieke bronsleutel moeten daarom door de aanroeper worden gesynchroniseerd of uitgesloten.

Bij succes retourneert de functie E_OK [SWS_Crypto_00148]. Bij fouten signaleert de retourwaarde de specifieke oorzaak [SWS_Crypto_00148]:

  • CRYPTO_E_BUSY: Het crypto-driverobject is bezet [SWS_Crypto_00148].
  • CRYPTO_E_KEY_NOT_AVAILABLE: Het opgevraagde sleutelelement van minstens één sleutel is niet beschikbaar [SWS_Crypto_00148].
  • CRYPTO_E_KEY_READ_FAIL of CRYPTO_E_KEY_WRITE_FAIL: Het uitlezen van het bron- resp. schrijven van het doelelement is niet toegestaan [SWS_Crypto_00148].
  • CRYPTO_E_KEY_SIZE_MISMATCH: De groottes van de sleutelelementen zijn niet compatibel met elkaar [SWS_Crypto_00148].
  • CRYPTO_E_KEY_EMPTY: Het bronsleutelelement is niet geïnitialiseerd [SWS_Crypto_00148].
  • E_NOT_OK: Het verzoek is algemeen mislukt [SWS_Crypto_00148].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie van AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a5ad7cce8b26 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyElementCopyPartial dient voor het gedeeltelijk kopiëren van data van een bronsleutelelement naar een doelsleutelelement binnen dezelfde crypto-driver [SWS_Crypto_91015]. Via de parameters keyElementSourceOffset en keyElementCopyLength wordt het te kopiëren fragment van het bronelement (cryptoKeyId, keyElementId) vastgelegd, terwijl keyElementTargetOffset de startpositie in het doelelement (targetCryptoKeyId, targetKeyElementId) bepaalt. Bij een foutloze verificatie voert de driver de kopieerbewerking synchroon uit en retourneert E_OK [SWS_Crypto_00209].

Voorafgaand aan de uitvoering valideert de driver de buffer- en driverstatussen:

  • Als de crypto-driver niet is geïnitialiseerd en ontwikkelingsfoutdetectie is geactiveerd, meldt de functie CRYPTO_E_UNINIT aan de DET en retourneert E_NOT_OK [SWS_Crypto_00205].
  • Als de totale lengte van het bronsleutelelement kleiner is dan keyElementSourceOffset + keyElementCopyLength, mislukt de aanroep met CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00207].
  • Biedt de maximale buffer van het doelsleutelelement minder ruimte dan keyElementTargetOffset + keyElementCopyLength, dan wordt eveneens CRYPTO_E_KEY_SIZE_MISMATCH gemeld [SWS_Crypto_00208].
  • Andere gespecificeerde foutwaarden zijn onder meer CRYPTO_E_BUSY (driver-object bezet), CRYPTO_E_KEY_EMPTY (ongeïnitialiseerd bronelement), CRYPTO_E_KEY_NOT_AVAILABLE evenals lees- of schrijftoegangsfouten (CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL) [SWS_Crypto_91015].

De functie is re-entrant, maar mag niet gelijktijdig voor dezelfde sleutel-ID cryptoKeyId worden aangeroepen [SWS_Crypto_91015]. Als een sleutelelement direct in het flashgeheugen is opgeslagen, kan de synchrone uitvoering tot merkbare vertragingen leiden [SWS_Crypto_91015].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie R20-11.

Implementer's Guide volgt (complexiteit I2)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4fed74be6625 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De synchrone functie Crypto_KeyCopy kopieert een sleutel inclusief al zijn sleutelelementen naar een doelsleutel binnen dezelfde crypto-driver [SWS_Crypto_00155]. De toewijzing vindt plaats via de invoerparameters cryptoKeyId voor de bronsleutel en targetCryptoKeyId voor de doelsleutel [SWS_Crypto_00155]. Een succesvolle kopieerbewerking wordt bevestigd met E_OK [SWS_Crypto_00155].

Concurrency en runtimegedrag

De interface is ontworpen als re-entrant, maar mag niet gelijktijdig voor dezelfde cryptoKeyId worden uitgevoerd [SWS_Crypto_00155]. Aangezien de uitvoering synchroon verloopt, kunnen er bij sleutelelementen die direct in het flashgeheugen zijn opgeslagen, merkbare tijdsvertragingen tijdens de aanroep optreden [SWS_Crypto_00155].

Foutafhandeling

In geval van een fout levert de functie specifieke retourwaarden van het type Std_ReturnType [SWS_Crypto_00155]:

  • CRYPTO_E_BUSY: Het bijbehorende Crypto Driver Object is bezet [SWS_Crypto_00155].
  • CRYPTO_E_KEY_NOT_AVAILABLE: Ten minste één van de opgevraagde sleutels is niet beschikbaar [SWS_Crypto_00155].
  • CRYPTO_E_KEY_READ_FAIL: Het uitlezen van het bronsleutelelement is niet toegestaan [SWS_Crypto_00155].
  • CRYPTO_E_KEY_WRITE_FAIL: Het beschrijven van het doelsleutelelement is niet toegestaan [SWS_Crypto_00155].
  • CRYPTO_E_KEY_SIZE_MISMATCH: De groottes van de sleutelelementen zijn niet onderling compatibel [SWS_Crypto_00155].
  • CRYPTO_E_KEY_EMPTY: Het sleutelelement van de bronsleutel is niet geïnitialiseerd [SWS_Crypto_00155].
  • E_NOT_OK: Het uitvoeren van het verzoek is mislukt [SWS_Crypto_00155].

Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie AUTOSAR CP R20-11.

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 73fbfa8804b7 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyElementIdsGet dient ertoe informatie op te vragen over welke sleutelelementen in een gegeven sleutel beschikbaar zijn [SWS_Crypto_00160]. Via de invoerparameter cryptoKeyId wordt de identifier van de sleutel doorgegeven waarvan de beschikbare element-ID’s moeten worden geëxporteerd [SWS_Crypto_00160]. De vastgestelde identifiers worden opgeslagen in de array waarnaar door de pointer keyElementIdsPtr wordt gerefereerd [SWS_Crypto_00160].

Het beheer van de buffergrootte vindt plaats via de in- en uitgangsparameter keyElementIdsLengthPtr: bij de aanroep moet deze parameter de beschikbaar gestelde grootte van de buffer keyElementIdsPtr bevatten [SWS_Crypto_00160]. Na beëindiging van de bewerking wordt daarin het werkelijke aantal aanwezige sleutelelementen opgeslagen [SWS_Crypto_00160].

Als retourwaarde levert de service E_OK bij een succesvolle bevraging of E_NOT_OK indien het verzoek is mislukt [SWS_Crypto_00160]. Als het verantwoordelijke crypto-driverobject op het moment van de aanroep bezig is, wordt de foutcode CRYPTO_E_BUSY geretourneerd [SWS_Crypto_00160].

Wat betreft concurrency is de functie re-entrant, maar deze mag niet gelijktijdig voor dezelfde cryptoKeyId worden aangeroepen [SWS_Crypto_00160]. De declaratie is via de header Crypto.h beschikbaar [SWS_Crypto_00160].

Deze tekst is gegenereerd door een AI op basis van de AUTOSAR-specificatie.

Implementer's Guide volgt (complexiteit I1)

functie 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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7ee33749b38a Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_RandomSeed (service-ID 0x0d) dient conform [SWS_Crypto_91013] voor het genereren en actualiseren van de interne seed-status van een sleutel met behulp van een beschikbaar gestelde entropiebron. De functiedeclaratie is opgenomen in het headerbestand Crypto.h.

Gebruik en aanroepparameters

Naast de initiële generatie kan de functie volgens [SWS_Crypto_91013] ook worden gebruikt om de seed-status met nieuwe entropie te actualiseren. De synchrone aanroep vereist daarbij drie invoerparameters:

  • cryptoKeyId: Geeft de identifier door van de sleutel waarvoor een nieuwe seed moet worden gegenereerd.
  • seedPtr: Bevat een pointer naar het geheugengebied met de gegevens voor het voeden van de seed.
  • seedLength: Definieert de lengte van de doorgegeven seed-gegevens in bytes.

Retourwaarden en foutafhandeling

Als retourwaarde meldt Crypto_RandomSeed een status van het type Std_ReturnType volgens [SWS_Crypto_91013]:

  • E_OK: Het verzoek is met succes uitgevoerd.
  • E_NOT_OK: Het verzoek is mislukt.
  • CRYPTO_E_KEY_NOT_VALID: De uitvoering mislukt omdat de sleutelstatus van de door cryptoKeyId geïdentificeerde sleutel zich in de status “invalid” bevindt.

Gelijktijdigheid en beperkingen

Conform [SWS_Crypto_91013] is de functie gespecificeerd als re-entrant, echter uitdrukkelijk niet voor dezelfde cryptoKeyId. Parallelle aanroepen voor dezelfde sleutel moeten daarom aan de aanroeperszijde worden voorkomen.

Deze tekst is gegenereerd door een AI en is uitsluitend gebaseerd op de specificatiegegevens uit de payload.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9465afa4791c Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De via het headerbestand Crypto.h ter beschikking gestelde functie Crypto_KeyGenerate genereert nieuw sleutelmateriaal en actualiseert de sleutel die via de identifier cryptoKeyId wordt geadresseerd [SWS_Crypto_91007]. De functie werkt volledig synchroon en is gedefinieerd onder de service-ID 0x07 [SWS_Crypto_91007]. Andere parameters bestaan er naast de sleutel-identifier niet [SWS_Crypto_91007].

Gelijktijdigheid en beperkingen

Met betrekking tot concurrency is Crypto_KeyGenerate gespecificeerd als re-entrant, echter uitdrukkelijk met de beperking dat dit niet geldt voor dezelfde cryptoKeyId [SWS_Crypto_91007]. Worden er meerdere verzoeken voor dezelfde sleutel ingediend, dan moeten deze aan de zijde van de aanroeper worden gesynchroniseerd om driverconflicten te voorkomen.

Retourwaarden en foutafhandeling

Via de retourwaarde van het basistype Std_ReturnType ontvangt de aanroeper gedetailleerde feedback over succes of specifieke foutoorzaken van de bewerking [SWS_Crypto_91007]:

  • E_OK: De sleutelgeneratie is succesvol uitgevoerd [SWS_Crypto_91007].
  • CRYPTO_E_BUSY: Het verzoek is mislukt, omdat het verantwoordelijke Crypto Driver Object momenteel bezet is [SWS_Crypto_91007].
  • CRYPTO_E_KEY_EMPTY: De generatie is mislukt, omdat een vereist bronsleutelelement niet geïnitialiseerd is [SWS_Crypto_91007].
  • CRYPTO_E_KEY_NOT_VALID: De bewerking is mislukt, omdat de sleutelstatus van de door cryptoKeyId gerefereerde sleutel als ongeldig is gemarkeerd [SWS_Crypto_91007].
  • E_NOT_OK: Het verzoek tot sleutelgeneratie is om overige redenen mislukt [SWS_Crypto_91007].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie van AUTOSAR Classic R20-11.

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 5847568b736a Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyDerive leidt uit de sleutelelementen van een bronsleutel (cryptoKeyId) een nieuwe cryptografische sleutel af en slaat deze op in het sleutelelement met ID 1 van de doelsleutel (targetCryptoKeyId) [SWS_Crypto_91008]. De bronsleutel moet de vereiste sleutelelementen voor wachtwoord en salt bevatten; het aantal iteraties wordt via het sleutelelement CRYPTO_KE_KEYDERIVATION_ITERATIONS opgegeven [SWS_Crypto_91008].

Aanroep en gelijktijdigheid

De interface is re-entrant, maar mag niet gelijktijdig voor dezelfde cryptoKeyId worden aangeroepen [SWS_Crypto_91008]. Aanroepers moeten er daarom voor zorgen dat parallelle afleidingsprocessen op verschillende bronsleutels opereren.

Retourwaarden en foutafhandeling

De functie signaleert het resultaat via gedefinieerde retourwaarden van het type Std_ReturnType [SWS_Crypto_91008]:

  • E_OK: Sleutelafleiding succesvol uitgevoerd.
  • E_NOT_OK: Afleiding mislukt. Ligt de parameter targetCryptoKeyId buiten het geldige bereik, dan meldt de functie bij geactiveerde ontwikkelingsdetectie bovendien CRYPTO_E_PARAM_HANDLE aan de DET [SWS_Crypto_00180].
  • CRYPTO_E_BUSY: het verantwoordelijke Crypto Driver Object is bezet [SWS_Crypto_91008].
  • CRYPTO_E_KEY_EMPTY: Een benodigd bronsleutelelement is niet geïnitialiseerd [SWS_Crypto_91008].
  • CRYPTO_E_KEY_NOT_VALID: De toestand van de door cryptoKeyId gerefereerde sleutel is ongeldig [SWS_Crypto_91008].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c27ddd0a9e75 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De synchrone functie Crypto_KeyExchangeCalcPubVal berekent de publieke waarde voor een sleuteluitwisselingsprotocol en slaat deze op op de opslaglocatie van publicValuePtr ([SWS_Crypto_91009]). De aanroeper geeft via cryptoKeyId de identifier door van de sleutel die voor het protocol moet worden gebruikt. Via de in- en uitgangsparameter publicValueLengthPtr moet bij de aanroep de buffergrootte van het ter beschikking gestelde geheugen worden doorgegeven; na afronding van de uitvoering wordt daar de daadwerkelijke lengte van de berekende publieke waarde opgeslagen ([SWS_Crypto_91009]).

Foutafhandeling en retourwaarden

De functie retourneert E_OK bij een succesvolle uitvoering. Treedt er een fout op, dan wordt E_NOT_OK of een specifieke foutcode geretourneerd ([SWS_Crypto_91009]):

  • CRYPTO_E_BUSY: Het verzoek mislukt, omdat het Crypto Driver Object bezet is.
  • CRYPTO_E_KEY_EMPTY: Het verzoek mislukt, omdat het bron-sleutelelement niet geïnitialiseerd is.
  • CRYPTO_E_KEY_NOT_VALID: Het verzoek mislukt, omdat de status van de via cryptoKeyId gerefereerde sleutel ongeldig is.

Gelijktijdigheid en systeemintegratie

Volgens [SWS_Crypto_91009] is de functie re-entrant, maar niet voor dezelfde cryptoKeyId. Wanneer de crypto-driver voor interne doeleinden zoals Crypto_KeyExchangeCalcPubVal services van een random number generator (RNG) nodig heeft, moet het eerste Crypto Driver Object (objectnummer 0) voor dit doel zijn geconfigureerd ([SWS_Crypto_00224]).

Deze tekst is gegenereerd door een AI. Alle gegevens zijn gebaseerd op de specificatie AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I1)

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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c3912e0f8927 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie Crypto_KeyExchangeCalcSecret dient voor de berekening van een gedeeld geheim (Shared Secret Key) voor een sleuteluitwisselingsprotocol [SWS_Crypto_91010]. Deze verwerkt het sleutelmateriaal van de via cryptoKeyId gespecificeerde sleutel samen met de via partnerPublicValuePtr doorgegeven publieke waarde van de partner, waarvan het aantal bytes via partnerPublicValueLength wordt opgegeven [SWS_Crypto_91010]. Het berekende gedeelde geheim wordt direct als sleutelelement binnen dezelfde sleutel opgeslagen [SWS_Crypto_91010].

Als retourwaarde levert de functie de status via Std_ReturnType [SWS_Crypto_91010]:

  • E_OK: De berekening en opslag van het geheim zijn succesvol afgerond [SWS_Crypto_91010].
  • E_NOT_OK: Het verzoek is mislukt [SWS_Crypto_91010].
  • CRYPTO_E_BUSY: De uitvoering is mislukt, omdat het verantwoordelijke Crypto Driver Object bezet is [SWS_Crypto_91010].
  • CRYPTO_E_KEY_EMPTY: Het bronsleutelelement is niet-geïnitialiseerd [SWS_Crypto_91010].
  • CRYPTO_E_KEY_NOT_VALID: De toestand van de door cryptoKeyId gerefereerde sleutel is ongeldig [SWS_Crypto_91010].

De interface is geïmplementeerd als re-entrant, maar mag niet gelijktijdig voor dezelfde cryptoKeyId worden aangeroepen [SWS_Crypto_91010]. Aanroepers moeten er daarom voor zorgen dat gelijktijdige aanroepen met een identieke sleutel-ID worden vermeden en dat het gerefereerde sleutelmateriaal vooraf geïnitialiseerd en in een geldige status is, om foutsituaties te voorkomen [SWS_Crypto_91010].

Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie van SWS_Crypto_91010.

functie 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

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 0801a980dea9 Herkomst Open vragen (3)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie Crypto_MainFunction dient voor de cyclische afhandeling van in de wachtrij geplaatste cryptografische opdrachten in de job-wachtrijen van de crypto-driver [SWS_Crypto_91012]. Voorwaarde voor de inzet ervan is dat in de module de asynchrone opdrachtverwerking is geconfigureerd en dat er passende opdrachtwachtrijen aanwezig zijn [SWS_Crypto_91012].

Aanroep en semantiek

De functie heeft de signatuur void Crypto_MainFunction(void) en is gespecificeerd met de service-ID 0x0c [SWS_Crypto_91012]. Ze accepteert geen invoerparameters en levert geen retourwaarde op. De interface wordt beschikbaar gesteld via de header SchM_Crypto.h [SWS_Crypto_91012]. Dit laat de interpretatie toe dat de cyclische aanroep volgens plan wordt getriggerd door de BSW-scheduler (Schedule Manager) in de context van een periodieke taak van het besturingssysteem.

Gelijktijdigheid en beperkingen

De aanroep is strikt gebonden aan de configuratie van asynchrone jobwachtrijen [SWS_Crypto_91012]. Aangezien de specificatie geen re-entrantie voor Crypto_MainFunction aangeeft, dient de functie vermoedelijk als niet-re-entrant te worden behandeld; parallelle aanroepen vanuit meerdere threads of taken moeten daarom worden vermeden. Vraag Q-038d384305c8c5c3 (open)

Foutafhandeling

In de specificatie zijn voor deze functie geen specifieke foutcodes of DET-vermeldingen opgenomen [SWS_Crypto_91012]. Omdat de functie geen retourwaarden levert, worden eventuele fouten tijdens de asynchrone verwerking vermoedelijk via statusopvragingen of via de terugmeldingskanalen van de respectievelijke jobs doorgegeven aan bovenliggende lagen. Vraag (open)

Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie 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#ccc622e8
Content hash
ccc622e8
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

Initialisatie en status

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init functie

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

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

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

Diensten · Overige

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

Cyclisch

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

Typen

Configuration data structure of Cry If module