DEENESPTFRRUARHIKOZHNL

Key Manager (KeyM)

ModulKeyM (Key Manager)
BSW-Modul-ID109
Standard-Header#include "KeyM.h"
SWS-SpezifikationAUTOSAR_SWS_KeyManager.pdf
ClusterSecurity & Intrusion Detection

Modul-GuideKI-GENERIERT

Verwaltet Schlüssel und Zertifikate eines Steuergeräts: Aktualisierung, Parsing und Prüfung von Zertifikatsketten.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: a0c67f50ff24 Herkunft Offene Fragen (2)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Verwaltet Schlüssel und Zertifikate eines Steuergeräts: Aktualisierung, Parsing und Prüfung von Zertifikatsketten.

Der Key Manager verwaltet im AUTOSAR-Crypto-Stack das Schlüsselmaterial und die Zertifikate eines Steuergeräts und setzt dazu auf den CSM auf. Das Crypto-Key-Submodul nimmt Schlüssel in einer optionalen Sitzung aus KeyM_Start, KeyM_Prepare, KeyM_Update und KeyM_Finalize entgegen; herstellerspezifische Key Handler lassen sich einbinden. Das Zertifikats-Submodul legt Zertifikate ab, parst sie und prüft sie asynchron gegen eine konfigurierte Kette; das Ergebnis meldet ein Callback [SWS_KeyM_00153]. Ein Zertifikat wird erst nach fehlerfreier Prüfung gültig, und erst dann wird sein öffentlicher Schlüssel im CSM freigeschaltet [SWS_KeyM_00170].

Der Key Manager verwaltet im Crypto-Stack das Schlüsselmaterial und die Zertifikate eines Steuergeräts. Dafür hat er zwei Submodule: Das Crypto-Key-Submodul nimmt Schlüssel von einem Key Master im Fahrzeug oder im Backend entgegen, meist über Diagnosekommandos. Das Zertifikats-Submodul legt Zertifikate ab, parst sie und prüft sie gegen ihre Kette (SWS KeyM S. 24). Nach unten nutzt KeyM den CSM, Pflicht sind Csm_KeyElementGet, Csm_KeyElementSet und Csm_KeySetValid [SWS_KeyM_00076].

Schlüsseloperationen können sitzungsartig ablaufen (SWS KeyM S. 25). KeyM_Start() öffnet die Sitzung, KeyM_Prepare() liefert synchron Daten für den Key Server, und KeyM_Finalize() schließt die Sitzung. KeyM_Update() läuft asynchron und meldet sich über KeyM_CryptoKeyUpdateCallbackNotification() zurück ([SWS_KeyM_00052], [SWS_KeyM_00077]). Optional übernimmt ein Key Handler herstellerspezifische Schritte. KeyM_KH_Update() wird dabei so lange aufgerufen, bis er KEYM_KH_UPDATE_FINISH meldet ([SWS_KeyM_00092], [SWS_KeyM_00096]).

Schlüsselsitzung mit optionalem Key HandlerApplikation / Key MasterKeyMKeyHandlerCSMUse Case: Sitzung öffnenKeyM_Start(StartType, RequestData, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Start(gleiche Parameter)RückgabewertStd_ReturnTypeUse Case: Vorbereiten (synchron)KeyM_Prepare(RequestData, …)optKeyMCryptoKeyPrepareFunctionEnabled und KeyMCryptoKeyHandlerPrepareEnabled = TRUEKeyM_KH_Prepare(…)ResponseDataResponseData, Std_ReturnTypeUse Case: Aktualisieren (asynchron)KeyM_Update(KeyNamePtr, RequestDataPtr,ResultDataPtr, …)E_OK (angenommen)Weiterverarbeitung im Hintergrund,z. B. aus KeyM_MainBackgroundFunction()optKeyMCryptoKeyHandlerUpdateEnabled = TRUEKeyM_KH_Update(…) (ggf. wiederholt)UpdateOperation, KeymId, ResultDataCsm_KeyElementSet() bzw. Csm_KeyDerive()Csm_KeySetValid()KeyM_CryptoKeyUpdateCallbackNotification(Result, …)Use Case: Sitzung schließen (asynchron)KeyM_Finalize(RequestDataPtr, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Finalize(…)RückgabewertE_OK (angenommen)optKeyMCryptoKeyStartFinalizeFunctionEnabled = TRUEKeyM_CryptoKeyFinalizeCallbackNotification(Result, …)

Sequenzdiagramm: Die Sitzung läuft von Start über Prepare und das asynchrone Update bis Finalize, mit optionalen Key Handlern und Ergebnis-Callbacks. Quellen: SWS KeyM S. 25, [SWS_KeyM_00052], [SWS_KeyM_00079]

Zertifikate werden auf zwei Wegen eingebracht. Dauerhaft geschieht das über KeyM_ServiceCertificate(), das der Key Master anstößt [SWS_KeyM_00021]. Temporär übergibt ein Aufrufer ein Zertifikat zur Prüfung mit KeyM_SetCertificate() [SWS_KeyM_00057]. Jedes Zertifikat führt einen Status nach KeyM_CertificateStatusType [SWS_KeyM_91003]. Erst nach fehlerfreier Prüfung wird es KEYM_CERTIFICATE_VALID, und erst dann wird sein öffentlicher Schlüssel im CSM freigeschaltet [SWS_KeyM_00170].

zertstatus start Start na KEYM_CERTIFICATE_NOT_AVAILABLE start->na KeyM_Init() np KEYM_CERTIFICATE_NOT_PARSED (transient) na->np KeyM_SetCertificate(Länge ≠ 0), KeyM_ServiceCertificate(), Laden beim Hochlauf pnv KEYM_CERTIFICATE_PARSED_NOT_VALIDATED np->pnv Parsing erfolgreich ep Parsing-Fehler: KEYM_E_CERTIFICATE_INVALID_FORMAT, KEYM_E_CERTIFICATE_INVALID_TYPE, KEYM_E_CERTIFICATE_INVALID_CONTENT (Zuordnung angenommen) np->ep Parsing fehlgeschlagen pnv->na KeyM_SetCertificate(Länge = 0) valid KEYM_CERTIFICATE_VALID pnv->valid Prüfung erfolgreich, Csm_KeySetValid() ev Prüffehler: KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, KEYM_E_CERTIFICATE_SIGNATURE_FAIL, KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, KEYM_E_CERTIFICATE_REVOKED (Zuordnung angenommen) pnv->ev Prüfung fehlgeschlagen valid->na KeyM_SetCertificate(Länge = 0) ep->na KeyM_SetCertificate(Länge = 0) ev->na KeyM_SetCertificate(Länge = 0)

Zustandsdiagramm: Ein Zertifikat geht von NOT_AVAILABLE über das Parsing zu PARSED_NOT_VALIDATED und nach der Prüfung zu VALID oder in einen Fehlerstatus; ein Reset mit Länge 0 führt zurück. Die Zuordnung von INVALID_CONTENT und REVOKED ist eine Interpretation. Quellen: SWS KeyM S. 24, [SWS_KeyM_91003]

Die Prüfung läuft asynchron über KeyM_VerifyCertificate(), KeyM_VerifyCertificates() oder KeyM_VerifyCertificateChain(). Das Ergebnis meldet ein konfigurierbarer Callback [SWS_KeyM_00153]. Einzelne Inhalte liest man mit KeyM_CertElementGet(); mehrfach belegte Elemente durchläuft ein Iterator [SWS_KeyM_00064]. Fehler meldet KeyM auf drei Wegen: als Entwicklungsfehler wie KEYM_E_UNINIT [SWS_KeyM_00036], als KeyM_ResultType in Callbacks [SWS_KeyM_91008] und bei gescheiterter Kettenprüfung zusätzlich als Sicherheitsereignis [SWS_KeyM_00172].

Rolle im Crypto-Stack: Schlüssel- und Zertifikatsverwaltung oberhalb des CSM

Der Key Manager (KeyM) ist ein Dienstmodul im AUTOSAR-Crypto-Stack und besteht aus zwei Submodulen. Das Crypto-Key-Submodul initialisiert, aktualisiert und pflegt das Schlüsselmaterial eines Steuergeräts. Das Zertifikats-Submodul legt Zertifikate ab, parst sie und prüft sie gegen ihre Kette (SWS KeyM S. 23, SWS KeyM S. 28). Ein typischer Anwendungsfall des Crypto-Key-Submoduls ist die Verteilung von Schlüsseln für die gesicherte Onboard-Kommunikation an CSM-Schlüssel. Die Daten liefert ein Key Master, der im Fahrzeug oder in einem Backend sitzt; die Kommunikation läuft meist über Diagnosekommandos (SWS KeyM S. 24).

Nach unten setzt KeyM auf den CSM auf. Als Pflichtschnittstellen nennt [SWS_KeyM_00076] Csm_KeyElementGet, Csm_KeyElementSet und Csm_KeySetValid. Daneben listet [SWS_KeyM_00078] Csm_KeyDerive, Csm_SignatureVerify, Det_ReportError und IdsM_SetSecurityEvent. Für die zeitliche Gültigkeitsprüfung importiert KeyM Typen des StbM [SWS_KeyM_00037]. Nach oben bietet KeyM C-APIs und RTE-Service-Interfaces für Zertifikate, Zertifikatselemente und Crypto Keys an ([SWS_KeyM_00082], [SWS_KeyM_00083], [SWS_KeyM_00084]). Herstellerspezifische Logik wird über konfigurierbare Key-Handler-Funktionen eingebunden, etwa über KeyM_KH_Start() [SWS_KeyM_00067].

kontext cluster_keym KeyM master Key Master / Key Server (z. B. über Diagnose) ck Crypto-Key-Submodul master->ck KeyM_Start / KeyM_Prepare / KeyM_Update / KeyM_Finalize cert Zertifikats-Submodul master->cert KeyM_ServiceCertificate() nutzer SW-C / BSW-Nutzer (z. B. DCM, TcpIp) nutzer->cert KeyM_SetCertificate(), KeyM_Verify*(), KeyM_CertElementGet*(), KeyM_GetCertificate() ck->master KeyM_CryptoKey*CallbackNotification() kh Key Handler (KeyM_KH_*) ck->kh optionale Key-Handler-Aufrufe csm CSM ck->csm Csm_KeyElementSet(), Csm_KeyDerive(), Csm_KeySetValid() det DET ck->det Det_ReportError() cert->master KeyM_ServiceCertificateCallbackNotification() cert->nutzer KeyM_CertificateVerifyCallbackNotification() cert->kh KeyM_KH_ServiceCertificate() (optional) cert->csm Csm_SignatureVerify(), Csm_KeySetValid() stbm StbM cert->stbm aktuelle Zeit für Gültigkeitsprüfung nvm NvM cert->nvm persistente Zertifikate (optional) idsm IdsM cert->idsm IdsM_SetSecurityEvent()

Kontextdiagramm: KeyM vermittelt zwischen Key Master bzw. Nutzern, optionalen Key Handlern und den Diensten CSM, StbM, NvM, IdsM und DET. Quellen: SWS KeyM S. 23, [SWS_KeyM_00076], [SWS_KeyM_00078], [SWS_KeyM_00037], SWS KeyM S. 119

Initialisierung, Taktung und sicherer Abbau

KeyM_Init() initialisiert das Modul [SWS_KeyM_00043]. Der Inhalt von KeyM_ConfigType ist implementierungsspezifisch [SWS_KeyM_00157], und der Konfigurationszeiger soll stets NULL_PTR sein [SWS_KeyM_00158]. Nach der Initialisierung haben alle Zertifikate den Status KEYM_CERTIFICATE_NOT_AVAILABLE (SWS KeyM S. 34). KeyM_Deinit() setzt das Modul in den uninitialisierten Zustand zurück [SWS_KeyM_00047]. Die zugehörige Dokumentstelle fordert zusätzlich, dass das Crypto-Key-Submodul Schlüsselmaterial und Zwischenergebnisse im RAM aktiv überschreibt (SWS KeyM S. 49).

Im Betrieb wird KeyM_MainFunction() periodisch im konfigurierten Intervall aufgerufen [SWS_KeyM_00074]. KeyM_MainBackgroundFunction() läuft, wenn das präemptive Betriebssystem keine andere Aufgabe hat. Sie kann zeitaufwendige synchrone Funktionen wie KeyM_KH_Update() aufrufen [SWS_KeyM_00075]. Die Periode ist ein Parameter des Containers KeyMGeneral (SWS KeyM S. 131). KeyM_GetVersionInfo() liefert die Versionsinformation [SWS_KeyM_00049].

Schlüsselsitzung: von KeyM_Start bis KeyM_Finalize

Schlüsseloperationen lassen sich sitzungsartig konfigurieren. KeyM_Start() öffnet die Sitzung. Danach nimmt KeyM KeyM_Prepare() und KeyM_Update() an, bis KeyM_Finalize() die Sitzung schließt (SWS KeyM S. 25). KeyM_StartType unterscheidet den OEM-Produktionsmodus und den Werkstattmodus; der Produktionsmodus hat die höheren Rechte [SWS_KeyM_00038]. Standardmäßig wertet KeyM_Start() keine Eingabedaten aus. Ist KeyMCryptoKeyHandlerStartFinalizeEnabled gesetzt, ruft es KeyM_KH_Start() mit denselben Parametern auf und übernimmt dessen Rückgabewert, etwa für OEM-spezifische Signaturprüfungen ([SWS_KeyM_00050], [SWS_KeyM_00067]).

Die einzelnen Schritte der Sitzung:

Außerhalb der Sitzung prüft KeyM_Verify() Schlüssel synchron oder asynchron [SWS_KeyM_00054]. Bei KeyMCryptoKeyVerifyAsyncMode = TRUE kommt das Ergebnis über KeyM_CryptoKeyVerifyCallbackNotification() ([SWS_KeyM_00081], [SWS_KeyM_00151]). Ein Key Handler lässt sich über KeyM_KH_Verify() einbinden [SWS_KeyM_00071].

Schlüsselsitzung mit optionalem Key HandlerApplikation / Key MasterKeyMKeyHandlerCSMUse Case: Sitzung öffnenKeyM_Start(StartType, RequestData, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Start(gleiche Parameter)RückgabewertStd_ReturnTypeUse Case: Vorbereiten (synchron)KeyM_Prepare(RequestData, …)optKeyMCryptoKeyPrepareFunctionEnabled und KeyMCryptoKeyHandlerPrepareEnabled = TRUEKeyM_KH_Prepare(…)ResponseDataResponseData, Std_ReturnTypeUse Case: Aktualisieren (asynchron)KeyM_Update(KeyNamePtr, RequestDataPtr,ResultDataPtr, …)E_OK (angenommen)Weiterverarbeitung im Hintergrund,z. B. aus KeyM_MainBackgroundFunction()optKeyMCryptoKeyHandlerUpdateEnabled = TRUEKeyM_KH_Update(…) (ggf. wiederholt)UpdateOperation, KeymId, ResultDataCsm_KeyElementSet() bzw. Csm_KeyDerive()Csm_KeySetValid()KeyM_CryptoKeyUpdateCallbackNotification(Result, …)Use Case: Sitzung schließen (asynchron)KeyM_Finalize(RequestDataPtr, …)optKeyMCryptoKeyHandlerStartFinalizeEnabled = TRUEKeyM_KH_Finalize(…)RückgabewertE_OK (angenommen)optKeyMCryptoKeyStartFinalizeFunctionEnabled = TRUEKeyM_CryptoKeyFinalizeCallbackNotification(Result, …)

Sequenzdiagramm: Die Sitzung läuft von Start über Prepare und das asynchrone Update bis Finalize; die Key Handler sind optional, die Ergebnisse kommen per Callback. Quellen: SWS KeyM S. 25, SWS KeyM S. 116, [SWS_KeyM_00052], [SWS_KeyM_00075], [SWS_KeyM_00079]

KeyM_Update im Detail: Schlüsselauswahl und Key-Handler-Schleife

Zuerst bestimmt KeyM den Zielschlüssel:

  • Mit Schlüsselnamen sucht KeyM den KeyMCryptoKey-Container mit passendem KeyMCryptoKeyName [SWS_KeyM_00091].
  • Ohne gültigen Namen und bei definierten KeyMCryptoKeyCryptoProps deutet KeyM die RequestData als SHE-Werte M1M2M3 und gleicht die Bits 121..124 ab [SWS_KeyM_00154].
  • Lässt sich keine KeyID ermitteln und ist kein Update-Key-Handler aktiv, endet der Aufruf mit KEYM_E_PARAMETER_MISMATCH [SWS_KeyM_00155].

Mit KeyMCryptoKeyHandlerUpdateEnabled ruft KeyM_Update() die Funktion KeyM_KH_Update() auf. Es übergibt die Anfragedaten, den Namen und die gefundene KeymId, sonst 0xFFFFFFFFul [SWS_KeyM_00092]. Dazu stellt KeyM einen internen Puffer bereit, den es bis zur Rückkehr des Handlers nicht anfasst [SWS_KeyM_00097]. Die Rückmeldung des Handlers steuert den weiteren Ablauf [SWS_KeyM_00055]:

  • KEYM_KH_UPDATE_KEY_UPDATE_REPEAT mit Daten: KeyM speichert den Schlüssel im CSM oder leitet ihn dort ab und ruft den Handler erneut auf [SWS_KeyM_00096].
  • KEYM_KH_UPDATE_FINISH: KeyM kopiert die Ergebnisdaten und löst den Update-Callback aus [SWS_KeyM_00093].

Ob KeyM speichert oder ableitet, legt KeyMCryptoKeyGenerationType fest, mit den Werten KEYM_STORED_KEY bzw. KEYM_DERIVED_KEY (SWS KeyM S. 164). Beim Ableiten ersetzt Csm_KeyDerive den Aufruf von Csm_KeyElementSet (SWS KeyM S. 118). In beiden Fällen schaltet Csm_KeySetValid den Schlüssel anschließend frei (SWS KeyM S. 116).

update start KeyM_Update() aufgerufen qname Schlüsselname angegeben (KeyNameLength > 0)? start->qname suche KeyMCryptoKey mit passendem KeyMCryptoKeyName suchen qname->suche ja qprops KeyMCryptoKeyCryptoProps definiert? qname->qprops nein qkh KeyMCryptoKeyHandlerUpdateEnabled? suche->qkh she RequestData als SHE M1M2M3 deuten, Bits 121..124 gegen CryptoProps prüfen qprops->she ja qprops->qkh nein she->qkh qid KeyID ermittelt? qkh->qid FALSE kh KeyM_KH_Update() mit KeymId (sonst 0xFFFFFFFFul) qkh->kh TRUE fehler Rückgabe KEYM_E_PARAMETER_MISMATCH qid->fehler nein direkt Schlüssel gemäß KeyMCryptoKey im CSM speichern oder ableiten qid->direkt ja ende Ergebnisdaten kopieren, KeyM_CryptoKeyUpdateCallbackNotification() direkt->ende qop UpdateOperation? kh->qop csm Schlüssel im CSM speichern oder ableiten (Konfiguration) qop->csm KEYM_KH_UPDATE_KEY_UPDATE_REPEAT, Ergebnislänge > 0 qop->ende KEYM_KH_UPDATE_FINISH csm->kh bei Erfolg erneut aufrufen

Aktivitätsdiagramm: KeyM_Update wählt den Schlüssel über Namen oder SHE-Kennung, bricht ohne KeyID und ohne Key Handler ab und wiederholt die Key-Handler-Aufrufe bis KEYM_KH_UPDATE_FINISH. Quellen: [SWS_KeyM_00091], [SWS_KeyM_00154], [SWS_KeyM_00155], [SWS_KeyM_00092], [SWS_KeyM_00096], [SWS_KeyM_00093]

Zertifikate: dauerhafte und temporäre Ablage, Hierarchie und Status

Für dauerhaft gespeicherte Zertifikate gibt es KeyM_ServiceCertificate(). Das Zertifikats-Submodul stellt die Funktion bereit, wenn KeyMServiceCertificateFunctionEnabled und KeyMCertificateManagerEnabled gesetzt sind; aufgerufen wird sie vom Key Master [SWS_KeyM_00021]. KeyM_ServiceCertificateType unterscheidet folgende Dienste [SWS_KeyM_00039]:

  • CSR anfordern und signiertes CSR zurückgeben,
  • Root- und Zwischenzertifikate setzen oder aktualisieren,
  • CRL bereitstellen oder aktualisieren.

Der Dienst läuft asynchron und meldet sich über KeyM_ServiceCertificateCallbackNotification() ([SWS_KeyM_00056], [SWS_KeyM_00149], [SWS_KeyM_00152]). Versuche, Root- oder Zwischenzertifikate zu installieren oder zu aktualisieren, sind als Sicherheitsereignisse definiert ([SWS_KeyM_00172], SWS KeyM S. 38).

Root- oder Zwischenzertifikat über KeyM_ServiceCertificate einbringenKey Master / ApplikationKeyMStbMCSMNvMIdsMKeyM_ServiceCertificate(KEYM_SERVICE_CERT_SET_ROOTbzw. KEYM_SERVICE_CERT_SET_INTERMEDIATE, …)E_OK (angenommen, asynchron)Installationsversuch ist Sicherheitsereignis:KEYM_SEV_INST_ROOT_CERT_OP bzw. KEYM_SEV_INST_INTERMEDIATE_CERT_OPParsingSuche nach KeyMCertificateStbM_GetCurrentTime(…)aktuelle ZeitZeitstempelprüfung, Subject-PrüfungVerifyingoptVerifikation erfolgreichaltNvM für die Ablage konfiguriertZertifikat dauerhaft ablegenCSM für die Ablage konfiguriertCsm_KeyElementSet(…)Csm_KeySetValid(…)KeyM_ServiceCertificateCallbackNotification(CertId, Result, …)

Sequenzdiagramm: Beim Einbringen eines Root- oder Zwischenzertifikats wird erst geparst und geprüft; die Ablage in NvM oder CSM folgt nur nach erfolgreicher Verifikation, danach kommt der Service-Callback. Quellen: SWS KeyM S. 120, [SWS_KeyM_00039], [SWS_KeyM_00056], [SWS_KeyM_00149], [SWS_KeyM_00172]

Ein vorgelegtes Zertifikat übergibt der Aufrufer dagegen temporär mit KeyM_SetCertificate() [SWS_KeyM_00057]. Es landet in der konfigurierten KeyMCertificateStorage, typischerweise im RAM, und ist nicht zur Daueraufbewahrung gedacht (SWS KeyM S. 31). Die Daten werden in KeyM_CertDataType mit Länge und Zeiger übergeben [SWS_KeyM_00041]. Die Kette selbst ist statisch konfiguriert. Jedes KeyMCertificate verweist auf sein übergeordnetes Zertifikat, das Root-Zertifikat auf sich selbst. Zusätzlich referenziert jedes Zertifikat einen CSM-Job und einen CSM-Schlüssel für die Signaturprüfung (SWS KeyM S. 22).

pki cluster_keym KeyM (KeyMCertificate) cluster_csm CSM root Root-Zertifikat root->root UpperHierarchicalCertRef (selbstsigniert) job1 CsmJob1 root->job1 SignatureVerifyJobRef key1 CsmKey1 root->key1 SignatureVerifyKeyRef inter Zwischenzertifikat inter->root UpperHierarchicalCertRef job2 CsmJob2 inter->job2 SignatureVerifyJobRef key2 CsmKey2 inter->key2 SignatureVerifyKeyRef work Arbeitszertifikat work->inter UpperHierarchicalCertRef job3 CsmJob3 work->job3 SignatureVerifyJobRef key3 CsmKey3 work->key3 SignatureVerifyKeyRef

Strukturdiagramm: In einer dreistufigen Kette verweist jedes KeyMCertificate auf sein oberes Zertifikat (Root auf sich selbst) sowie auf CSM-Job und CSM-Schlüssel für die Signaturprüfung. Quellen: SWS KeyM S. 22, SWS KeyM S. 31, [SWS_KeyM_00170]

Jedes Zertifikat hat einen Status vom Typ KeyM_CertificateStatusType [SWS_KeyM_91003], den KeyM_CertGetStatus() abfragt [SWS_KeyM_00066]. Der Lebenszyklus:

  • Nach KeyM_Init() gilt KEYM_CERTIFICATE_NOT_AVAILABLE.
  • KeyM_SetCertificate() mit certDataLength = 0 setzt Zertifikat und Status zurück (SWS KeyM S. 34).
  • Gesetzte Daten durchlaufen das Parsing (NOT_PARSED → PARSED_NOT_VALIDATED) und danach die Prüfung (SWS KeyM S. 24).
  • Erst nach fehlerfreier Prüfung schaltet KeyM den öffentlichen Schlüssel per Csm_KeySetValid() frei und setzt KEYM_CERTIFICATE_VALID [SWS_KeyM_00170].

Interpretation: KEYM_E_CERTIFICATE_INVALID_CONTENT dürfte zu den Parsing-Fehlern und KEYM_E_CERTIFICATE_REVOKED zu den Prüffehlern zählen. Frage Q-5d110deddf2d912e (offen) Ausdrücklich belegt ist das nur für INVALID_FORMAT und INVALID_TYPE (SWS KeyM S. 33).

zertstatus start Start na KEYM_CERTIFICATE_NOT_AVAILABLE start->na KeyM_Init() np KEYM_CERTIFICATE_NOT_PARSED (transient) na->np KeyM_SetCertificate(Länge ≠ 0), KeyM_ServiceCertificate(), Laden beim Hochlauf pnv KEYM_CERTIFICATE_PARSED_NOT_VALIDATED np->pnv Parsing erfolgreich ep Parsing-Fehler: KEYM_E_CERTIFICATE_INVALID_FORMAT, KEYM_E_CERTIFICATE_INVALID_TYPE, KEYM_E_CERTIFICATE_INVALID_CONTENT (Zuordnung angenommen) np->ep Parsing fehlgeschlagen pnv->na KeyM_SetCertificate(Länge = 0) valid KEYM_CERTIFICATE_VALID pnv->valid Prüfung erfolgreich, Csm_KeySetValid() ev Prüffehler: KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, KEYM_E_CERTIFICATE_SIGNATURE_FAIL, KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, KEYM_E_CERTIFICATE_REVOKED (Zuordnung angenommen) pnv->ev Prüfung fehlgeschlagen valid->na KeyM_SetCertificate(Länge = 0) ep->na KeyM_SetCertificate(Länge = 0) ev->na KeyM_SetCertificate(Länge = 0)

Zustandsdiagramm: Ein Zertifikat geht von NOT_AVAILABLE über das Parsing zu PARSED_NOT_VALIDATED und nach erfolgreicher Prüfung zu VALID; Fehler führen in Fehlerstatus, und ein Reset mit Länge 0 führt zurück. Die Zuordnung von INVALID_CONTENT und REVOKED ist eine Interpretation. Quellen: SWS KeyM S. 24, [SWS_KeyM_91003], [SWS_KeyM_00170], SWS KeyM S. 34

Zertifikatsprüfung und Zugriff auf Zertifikatsinhalte

Für die Prüfung gibt es drei asynchrone, nicht reentrante Aufträge:

Hat KeyM den Auftrag mit E_OK angenommen und ist KeyMCertificateVerifyCallbackNotificationFunc konfiguriert, meldet der Callback das Ergebnis als KeyM_CertificateStatusType ([SWS_KeyM_00153], [SWS_KeyM_00073]). Ist diese Funktion NULL, gibt es stattdessen den Required Port KeyMCertificateNotification [SWS_KeyM_00161]. Laut den vorliegenden DCM-Dokumentstellen aus späteren Releases nutzt der DCM diesen Weg für die Authentifizierung (SWS DCM S. 147, SWS DCM S. 245).

Arbeitszertifikat setzen und prüfenApplikationKeyMNvMStbMCSMUse Case: Zertifikat übergebenKeyM_SetCertificate(CertId, CertificateDataPtr)E_OKParsing:NOT_PARSED → PARSED_NOT_VALIDATEDKeyM_CertGetStatus(CertId)StatusUse Case: Prüfung (asynchron)KeyM_VerifyCertificate(CertId)E_OK (Auftrag angenommen)optZertifikat in NvM abgelegtNvM_ReadBlock(…)ZertifikatsdatenStbM_GetCurrentTime(…)aktuelle ZeitZeitstempelprüfungSubject-PrüfungCsm_SignatureVerify(…)PrüfergebnisCsm_KeyElementSet(…) (öffentlicher Schlüssel)Csm_KeySetValid(…)Status: KEYM_CERTIFICATE_VALIDKeyM_CertificateVerifyCallbackNotification(CertId, Result)KeyM_CertGetStatus(CertId)KEYM_CERTIFICATE_VALID

Sequenzdiagramm: Ein Arbeitszertifikat wird gesetzt und geparst; die anschließende Prüfung nutzt StbM-Zeit, Subject-Prüfung und CSM-Signaturprüfung und endet mit Schlüsselfreigabe und Callback. Quellen: SWS KeyM S. 119, [SWS_KeyM_00057], [SWS_KeyM_00060], [SWS_KeyM_00170], [SWS_KeyM_00153]

Für den Zugriff auf Zertifikatsinhalte stehen mehrere Funktionen bereit:

Mit der Iteration liest der DCM Whitelists aus Zertifikaten aus (SWS DCM S. 155).

Verhalten im Fehlerfall

Bei aktivierter Entwicklungsfehlererkennung prüft KeyM bei jedem Aufruf:

Weitere Entwicklungsfehler sind KEYM_E_INIT_FAILED und KEYM_E_CONFIG_FAILURE [SWS_KeyM_00036]. Ist die Speicherklasse eines Zertifikats KEYM_STORAGE_IN_CSM oder KEYM_STORAGE_IN_NVM, meldet KeyM KEYM_E_CONFIG_FAILURE; ohne Entwicklungsmodus gibt es E_NOT_OK zurück [SWS_KeyM_00166]. Interpretation: Das betrifft vermutlich den temporären Ablageweg über KeyM_SetCertificate(), der laut Dokumentstelle für den RAM gedacht ist (SWS KeyM S. 31). Frage Q-4308e537bf1d9e0b (offen)

Laufzeitfehler treten auf drei Ebenen auf:

  • Synchrone Rückgaben nutzen KeyM-Codes wie KEYM_E_BUSY, KEYM_E_PENDING, KEYM_E_KEY_CERT_SIZE_MISMATCH oder KEYM_E_PARAMETER_MISMATCH [SWS_KeyM_00040]. Prüfaufträge lehnen schon bei der Annahme leere Zertifikatsplätze (KEYM_E_KEY_CERT_EMPTY) und ungültige obere Zertifikate (KEYM_E_CERT_INVALID_CHAIN_OF_TRUST) ab ([SWS_KeyM_00060], SWS KeyM S. 68).
  • Asynchrone Schlüssel- und Zertifikatsdienste melden ihr Ergebnis als KeyM_ResultType, etwa KEYM_RT_KEY_CERT_WRITE_FAIL oder KEYM_RT_CERT_INVALID_CHAIN_OF_TRUST [SWS_KeyM_91008].
  • Prüfergebnisse tragen Fehlerstatus wie Gültigkeitszeitraum-, Signatur- oder Vertrauenskettenfehler [SWS_KeyM_91003]. Eine gescheiterte Kettenprüfung wird zusätzlich als Sicherheitsereignis KEYM_SEV_CERT_VERIF_FAILED gemeldet [SWS_KeyM_00172].

Weiterführende Detailbelege

KI-generierter Modul-Leitfaden auf Basis der im Payload enthaltenen Spezifikationsauszüge zu KeyM (Classic Platform, R20-11). Normativ sind die zitierten Requirements; Dokumentstellen aus anderen Releases dienen der Erläuterung und sind als solche gekennzeichnet. Interpretationen sind im Text markiert.

Key Manager (KeyM)

Manages lifecycle, storage, and distribution of cryptographic keys and certificates.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function KeyM_Init [SWS_KeyM_00043] 📄 PDF

void KeyM_Init (const KeyM_ConfigType* ConfigPtr);

This function initializes the key management module.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 78b24878ea4f Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_Init dient der Initialisierung des Key-Management-Moduls ([SWS_KeyM_00043]). Der Aufruf erfolgt synchron und ist als nicht reentrant definiert ([SWS_KeyM_00043]). Als einziger Übergabeparameter wird ConfigPtr erwartet, welcher einen Zeiger auf den Konfigurationsdatensatz für VARIANT-POST-BUILD darstellt; die Funktion besitzt keinen Rückgabewert ([SWS_KeyM_00043]).

Hinsichtlich des Zusammenspiels mit anderen Modulfunktionen stellt KeyM_Init eine zwingende Vorbedingung dar: Bei aktivierter Entwicklungserkennung prüfen alle weiteren Funktionen des Key Managers, ob das Modul zuvor über KeyM_Init initialisiert und noch nicht mittels KeyM_Deinit deinitialisiert wurde ([SWS_KeyM_00144]). Wird eine Modulfunktion im uninitialisierten Zustand aufgerufen, meldet der Key Manager den Entwicklungsfehler KEYM_E_UNINIT ([SWS_KeyM_00144]).

Da KeyM_Init als nicht reentrant spezifiziert ist ([SWS_KeyM_00043]), darf die Funktion in der System-Initialisierungsphase nur einmalig und unter Ausschluss nebenläufiger Aufrufe ausgeführt werden. Das Modul ist nach erfolgreicher Ausführung über die Header-Datei KeyM.h verfügbar ([SWS_KeyM_00043]).

Dieser Nutzungshinweis wurde automatisiert auf Basis des AUTOSAR-Spezifikations-Payloads erstellt.

Implementer's Guide folgt (Komplexität I1)

function KeyM_Deinit [SWS_KeyM_00047] 📄 PDF

void KeyM_Deinit (void);

This function resets the key management module to the uninitialized state.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 89101654eb5c Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_Deinit dient dazu, das Modul Key Manager wieder in den uninitialisierten Zustand zurückzusetzen ([SWS_KeyM_00047]).

Verwendung und Aufrufkontext

Der Aufruf von KeyM_Deinit erfolgt synchron und ist als nicht reentrant (Non Reentrant) spezifiziert. Die Funktion besitzt die Service-ID 0x02, akzeptiert keine Parameter und liefert keinen Rückgabewert zurück ([SWS_KeyM_00047]).

Nebenläufigkeit und Zusammenspiel

Durch die Nicht-Reentranz darf KeyM_Deinit nicht nebenläufig zu sich selbst oder im Widerspruch zu laufenden Operationen aufgerufen werden. Nach Ausführung dieser Deinitialisierung befindet sich das Modul im uninitialisierten Zustand. Wenn Development-Fehler aktiviert sind, prüft der Key Manager bei jedem nachfolgenden Funktionsaufruf, ob das Modul zuvor über KeyM_Init() initialisiert und noch nicht mittels KeyM_Deinit() deinitialisiert wurde; andernfalls wird der Entwicklungsfehler KEYM_E_UNINIT gemeldet ([SWS_KeyM_00144]).

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function KeyM_Start [SWS_KeyM_00050] 📄 PDF

Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

This function is optional and only used if the configuration item Key MCrypto Key Start Finalize Function Enabled is set to true. It intents to allow key update operation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d4c5fbe95642 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion KeyM_Start dient dazu, Operationen zur Schlüsselaktualisierung im Key Manager freizugeben ([SWS_KeyM_00050]). Sie ist optional und steht nur zur Verfügung, wenn der Konfigurationsparameter KeyMCryptoKeyStartFinalizeFunctionEnabled auf true konfiguriert ist (AUTOSAR_SWS_KeyManager S. 35). Die Funktion wird über KeyM.h bereitgestellt und erwartet über StartType den auszuführenden Betriebsmodus sowie über Request Data und Request Data Length zusätzliche Anforderungsdaten wie etwa eine Signatur.

Antwortdaten werden über den Ausgabepuffer Response Data zurückgeliefert. Der Parameter Response Data Length fungiert dabei als Ein- und Ausgabeparameter: Vor dem Aufruf definiert er die maximal im Puffer bereitstehende Bytezahl, nach der Ausführung enthält er die tatsächlich geschriebene Datenlänge ([SWS_KeyM_00050]).

Fehlerbehandlung und Rückgabewerte:

  • E_OK: Start-Operation erfolgreich ausgeführt; Schlüsselaktualisierungen sind nun zulässig.
  • E_NOT_OK: Start-Operation nicht akzeptiert.
  • KEYM_E_PARAMETER_MISMATCH: Übergabeparameter stimmen nicht mit den erwarteten Werten überein.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Eine übergebene Parametergröße stimmt nicht mit der erwarteten Größe überein.

Die Funktion ist als nicht-reentrant (Non Reentrant) spezifiziert ([SWS_KeyM_00050]). Da keine modulinternen Verriegelungen beschrieben sind, dürfte der Aufrufer für eine koordinierte, serialisierte Ausführung sorgen müssen. Frage Q-82276b712a8dd170 (offen)

Dieser Text wurde automatisch generiert basierend auf AUTOSAR R20-11.

Implementer's Guide folgt (Komplexität I2)

function KeyM_Prepare [SWS_KeyM_00051] 📄 PDF

Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

This function is used to prepare a key update operation. The main intent is to provide information for the key operation to the key server. Other operations may start the negotiation for a common secret that is used further to derive key material. This function is only av ailable if Key MCrypto Key Prepare Function Enabled is set to TRUE.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c5d2cf507992 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion KeyM_Prepare dient zur Vorbereitung einer Schlüsselaktualisierung (Key Update Operation) und übermittelt die erforderlichen Informationen an den Schlüsselserver oder stößt die Aushandlung eines gemeinsamen Geheimnisses zur Schlüsselableitung an [SWS_KeyM_00051]. Die Funktion besitzt die Service-ID 0x05, ist über den Header KeyM.h deklariert und steht ausschließlich zur Verfügung, wenn der Konfigurationsparameter Key MCrypto Key Prepare Function Enabled auf TRUE gesetzt ist [SWS_KeyM_00051].

Beim Aufruf sind folgende Puffer und Längenangaben zu übergeben [SWS_KeyM_00051]:

  • Request Data und Request Data Length: Eingabedaten und deren Länge für die Anfrage [SWS_KeyM_00051].
  • Response Data: Zeiger auf den Puffer zur Aufnahme der Ausgabedaten [SWS_KeyM_00051].
  • Response Data Length: Ein-/Ausgabeparameter, der vor dem Aufruf die maximal verfügbare Puffergröße angibt und bei Rückkehr die tatsächlich geschriebene Bytezahl enthält [SWS_KeyM_00051].

Wird der Aufruf mit E_OK quittiert, wurde der Dienst angenommen und wird intern verarbeitet; die finalen Ergebnisse werden anschließend über einen Callback bereitgestellt [SWS_KeyM_00051]. Schlägt die Annahme fehl, liefert die Funktion E_NOT_OK bei internen Fehlern, KEYM_E_PARAMETER_MISMATCH bei abweichenden Parameterwerten oder KEYM_E_KEY_CERT_SIZE_MISMATCH bei unpassenden Größenangaben zurück [SWS_KeyM_00051].

Da KeyM_Prepare als nicht reentrant (Non Reentrant) spezifiziert ist, dürfen keine gleichzeitigen oder verschachtelten Aufrufe erfolgen [SWS_KeyM_00051].

Dieser Text wurde automatisch anhand der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function KeyM_Finalize [SWS_KeyM_00053] 📄 PDF

Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);

The function is used to finalize key update operations. It is typi cally used in conjunction with the Key M_

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 649979499281 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_Finalize schließt Aktualisierungsvorgänge für Schlüssel ab und überführt die Schlüsseloperation zurück in den Ruhezustand (Idle-Modus) [SWS_KeyM_00053]. Sie wird typischerweise in Verbindung mit einer vorangegangenen KeyM_Start-Operation verwendet. Nach dem Aufruf akzeptiert das Modul keine weiteren Vorbereitungs- oder Aktualisierungsoperationen (Prepare/Update), bis über KeyM_Start ein neuer Ablauf initiiert wird [SWS_KeyM_00053]. Zudem wird das aktualisierte Schlüsselmaterial persistiert und durch den Aufruf von Csm_KeySetValid in den gültigen Zustand überführt [SWS_KeyM_00053].

Verwendung und Nebenläufigkeit: KeyM_Finalize ist nicht reentrant (Non Reentrant) und arbeitet asynchron [SWS_KeyM_00053]. Interpretation: Mangels Reentranz dürfte der Aufruf typischerweise im Task-Kontext erfolgen. Frage Q-895ebec2d0d2e635 (offen) Die Schnittstelle steht nur zur Verfügung, wenn der Konfigurationsparameter KeyMCryptoKeyStartFinalizeFunctionEnabled auf TRUE gesetzt ist, und ist über KeyM.h deklariert [SWS_KeyM_00053].

Parameter und Rückgabewerte: Über RequestDataPtr und RequestDataLength werden anfragespezifische Daten übergeben. Antwortdaten werden über ResponseDataPtr bereitgestellt; ResponseMaxDataLength dient eingangs als Puffergröße und liefert bei synchroner Rückgabe die tatsächliche Byteanzahl [SWS_KeyM_00053]. Wird die Operation angenommen und intern verarbeitet, gibt die Funktion E_OK zurück (die Ergebnisse folgen asynchron per Callback) und ResponseMaxDataLength bleibt unberührt [SWS_KeyM_00053].

Fehlerbehandlung: Im Fehlerfall signalisiert KeyM_Finalize das Scheitern über spezifische Rückgabewerte [SWS_KeyM_00053]:

  • E_NOT_OK: Operation wegen eines internen Fehlers nicht angenommen.
  • KEYM_E_BUSY: KeyM ist mit anderen Aufträgen beschäftigt; Validierung kann noch nicht durchgeführt werden.
  • KEYM_E_PARAMETER_MISMATCH: Parameter stimmen nicht mit dem erwarteten Wert überein.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Parametergröße stimmt nicht überein.

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function KeyM_SetCertificate [SWS_KeyM_00057] 📄 PDF

Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);

This function provides the certificate data to the key managem ent module to temporarily store the certificate.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8ea4bc8334de Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Funktion KeyM_SetCertificate übergibt dem Schlüsselmanagement-Modul Zertifikatsdaten, um ein Zertifikat temporär zu speichern [SWS_KeyM_00057]. Sie erwartet als Eingabeparameter die Kennung des Zertifikats CertId (Typ KeyM_CertificateIdType) sowie den Zeiger CertificateDataPtr (Typ const KeyM_CertDataType*), der auf die bereitzustellende Zertifikatsstruktur verweist [SWS_KeyM_00057]. Die Schnittstelle wird über den Header KeyM.h deklariert und besitzt die Service-ID 0x0a [SWS_KeyM_00057].

Rückgabewerte und Fehlerbehandlung

Der Rückgabewert vom Typ Std_ReturnType gibt Auskunft über die Annahme der Daten [SWS_KeyM_00057]:

  • E_OK: Das Zertifikat wurde erfolgreich akzeptiert [SWS_KeyM_00057].
  • E_NOT_OK: Das Zertifikat konnte nicht gesetzt werden [SWS_KeyM_00057].
  • KEYM_E_PARAMETER_MISMATCH: Die übergebenen Parameter stimmen nicht mit den erwarteten Werten überein [SWS_KeyM_00057].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Die Größe der übergebenen Zertifikatsdaten weicht von der erwarteten Größe ab [SWS_KeyM_00057].

Nebenläufigkeit und Einschränkungen

Die Funktion ist als nicht reentrant (Non Reentrant) eingestuft [SWS_KeyM_00057]. Konkurrierende Aufrufe müssen daher aufruferseitig synchronisiert oder ausgeschlossen werden. Da die Spezifikation explizit eine temporäre Speicherung vorsieht, verbleiben die übergebenen Zertifikatsdaten vermutlich zunächst im flüchtigen Speicher des Moduls, bevor eine dauerhafte Speicherung oder Verifikation erfolgt. Frage Q-c35c4b02344d5bc9 (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function KeyM_GetCertificate [SWS_KeyM_00058] 📄 PDF

Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);

This function provides the certificate data

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 003468512a7b Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Funktion KeyM_GetCertificate dient dazu, die Zertifikatsdaten für eine vorgegebene Zertifikatskennung bereitzustellen [SWS_KeyM_00058]. Der Aufrufer übergibt über den Parameter CertId den Bezeichner des gewünschten Zertifikats sowie über den Inout-Parameter CertificateDataPtr einen Zeiger auf die Zertifikatsdatenstruktur. Der Aufrufer ist dafür verantwortlich, den Puffer bereitzustellen, auf den der Zeiger in der Struktur verweist [SWS_KeyM_00058]. Vor dem Aufruf muss in der Struktur die Maximallänge dieses Puffers angegeben sein; bei erfolgreicher Rückgabe (E_OK) enthält das Längenfeld die tatsächliche Länge der bereitgestellten Zertifikatsdaten [SWS_KeyM_00058].

Fehlerbehandlung

Die Funktion signalisiert den Erfolg oder spezifische Fehler über den Rückgabewert vom Typ Std_ReturnType [SWS_KeyM_00058]:

  • E_OK: Zertifikatsdaten sind verfügbar und wurden erfolgreich übergeben.
  • KEYM_E_PARAMETER_MISMATCH: Die übergebene Zertifikats-ID (CertId) ist ungültig.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Der bereitgestellte Puffer ist zu klein für das Zertifikat.
  • KEYM_E_KEY_CERT_EMPTY: Es sind keine Zertifikatsdaten vorhanden, da der Zertifikats-Slot leer ist.
  • KEYM_E_KEY_CERT_READ_FAIL: Das Zertifikat kann nicht bereitgestellt werden, da der Zugriff verweigert wurde.
  • E_NOT_OK: Die Operation wurde aufgrund eines internen Fehlers nicht akzeptiert.

Nebenläufigkeit und Einschränkungen

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert und steht über die Header-Datei KeyM.h zur Verfügung [SWS_KeyM_00058]. Aufrufer müssen daher sicherstellen, dass parallele Aufrufe der Funktion gegeneinander synchronisiert werden.

Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Maßgeblich ist die offizielle AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function KeyM_VerifyCertificates [SWS_KeyM_00059] 📄 PDF

Std_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);

This function verifies two certificates that are stored and parsed internally against each other. The certificat e referenced with Cert Id was signed by the certificate referenced with cert Upper Id. Only these two certificates are validated against each other.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4588a9e6ec06 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_VerifyCertificates dient der asynchronen Überprüfung zweier intern gespeicherter und geparster Zertifikate gegeneinander gemäß [SWS_KeyM_00059]. Dabei wird validiert, ob das über CertId referenzierte untergeordnete Zertifikat durch das mit CertUpperId referenzierte übergeordnete Zertifikat signiert wurde.

Da der Dienst als nicht reentrant (Non Reentrant) definiert ist, darf er nicht nebenläufig für überlappende Vorgänge aufgerufen werden [SWS_KeyM_00059]. Die Ausführung erfolgt asynchron im Hintergrund: Ein Rückgabewert von E_OK signalisiert lediglich die erfolgreiche Annahme des Prüfauftrags. Das eigentliche Prüfergebnis wird dem Aufrufer über die konfigurierte Callback-Funktion KeyMCertificateVerifyCallbackNotificationFunc mitgeteilt, sofern diese gültig konfiguriert ist [SWS_KeyM_00153].

Wird die Anfrage nicht akzeptiert, liefert die Funktion spezifische Rückgabewerte zur Fehlerbehandlung [SWS_KeyM_00059]:

  • KEYM_E_BUSY: Der Key Manager ist durch andere Aufgaben ausgelastet; die Validierung kann zu diesem Zeitpunkt noch nicht gestartet werden.
  • KEYM_E_PARAMETER_MISMATCH: Mindestens eine übergebene Zertifikats-ID ist ungültig.
  • KEYM_E_KEY_CERT_EMPTY: Einer der referenzierten Zertifikats-Slots ist leer.
  • KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: Das übergeordnete Zertifikat (CertUpperId) ist nicht gültig.
  • E_NOT_OK: Der Auftrag wurde aufgrund eines internen Fehlers abgewiesen.

Dieser Text wurde von einer KI generiert und dient der technischen Orientierung anhand der AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function KeyM_VerifyCertificate [SWS_KeyM_00060] 📄 PDF

Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);

Service KeyM_VerifyCertificate.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9583f968fa04 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_VerifyCertificate dient der asynchronen Verifikation eines Zertifikats, das zuvor über KeyM_SetCertificate() bereitgestellt wurde [SWS_KeyM_00060]. Die Prüfung erfolgt anhand der übergebenen Zertifikatskennung CertId gegen bereits im Key Manager hinterlegte Zertifikate anderer Zertifikats-IDs [SWS_KeyM_00060]. Die Deklaration ist über die Header-Datei KeyM.h verfügbar [SWS_KeyM_00060].

Aufrufsemantik und Rückgabewerte

Ein Rückgabewert von E_OK bestätigt, dass die Verifikationsanfrage erfolgreich akzeptiert wurde und die Operation im Hintergrund ausgeführt wird [SWS_KeyM_00060]. Kann der Auftrag nicht angenommen werden, erfolgt die Rückmeldung synchron über spezifische Fehlercodes [SWS_KeyM_00060]:

  • E_NOT_OK: Die Operation wurde aufgrund eines internen Fehlers abgewiesen [SWS_KeyM_00060].
  • KEYM_E_BUSY: Das Modul KeyM ist derzeit mit anderen Aufgaben ausgelastet, sodass die Validierung noch nicht ausgeführt werden kann [SWS_KeyM_00060].
  • KEYM_E_PARAMETER_MISMATCH: Die übergebene CertId ist ungültig [SWS_KeyM_00060].
  • KEYM_E_KEY_CERT_EMPTY: Mindestens einer der benötigten Zertifikatsslots ist leer [SWS_KeyM_00060].
  • KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: Ein übergeordnetes Zertifikat in der Vertrauenskette ist ungültig [SWS_KeyM_00060].

Nebenläufigkeit und Asynchronität

Da KeyM_VerifyCertificate als nicht reentrant (Non Reentrant) spezifiziert ist, muss der Aufrufer sicherstellen, dass keine zeitgleichen oder unterbrechenden Aufrufe stattfinden [SWS_KeyM_00060]. Nach erfolgreicher Annahme des Prüfauftrags (Rückgabe E_OK) wird das Ergebnis der Hintergrundoperation an die konfigurierte Callback-Funktion KeyMCertificateVerifyCallbackNotificationFunc übermittelt, sofern diese mit einem gültigen Funktionsnamen versehen ist [SWS_KeyM_00153].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function KeyM_VerifyCertificateChain [SWS_KeyM_00061] 📄 PDF

Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);

Service KeyM_VerifyCertificateChain.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 054cb2b2b599 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_VerifyCertificateChain dient der asynchronen Verifizierung eines Zertifikats gegen eine Kette übergebener Zertifikate [SWS_KeyM_00061]. Als Parameter werden die Kennung des letzten Zertifikats der Kette (CertId), ein Zeiger auf das gemäß der PKI-Reihenfolge sortierte Zertifikatsarray (certChainData) sowie die Anzahl der Zertifikate (NumberOfCertificates) übergeben [SWS_KeyM_00061]. Vor dem Aufruf muss das zu prüfende Zertifikat über KeyM_SetCertificate() eingetragen worden sein, und das Root-Zertifikat muss entweder in der Liste enthalten oder bereits einem der anderen Zertifikate zugewiesen sein [SWS_KeyM_00061].

Die Funktion ist nicht reentrant (Non Reentrant) und wird über die Header-Datei KeyM.h bereitgestellt [SWS_KeyM_00061]. Folgende synchrone Rückgabewerte zeigen den Status der Auftragsannahme an [SWS_KeyM_00061]:

  • E_OK: Der Prüfauftrag wurde akzeptiert und wird im Hintergrund ausgeführt [SWS_KeyM_00061].
  • E_NOT_OK: Der Auftrag wurde aufgrund eines internen Fehlers abgelehnt [SWS_KeyM_00061].
  • KEYM_E_BUSY: Das Modul ist mit anderen Aufträgen ausgelastet; die Validierung kann noch nicht ausgeführt werden [SWS_KeyM_00061].
  • KEYM_E_PARAMETER_MISMATCH: Die übergebene Zertifikats-ID ist ungültig [SWS_KeyM_00061].
  • KEYM_E_KEY_CERT_EMPTY: Einer der benötigten Zertifikats-Slots ist leer [SWS_KeyM_00061].
  • KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: Ein übergeordnetes Zertifikat in der Vertrauenskette ist ungültig [SWS_KeyM_00061].

Wurde der Auftrag mit E_OK angenommen, erfolgt die Auswertung im Hintergrund. Sofern KeyMCertificateVerifyCallbackNotificationFunc mit einer gültigen Funktion konfiguriert ist, meldet KeyM das Endergebnis der Verifizierungsoperation über diese Callback-Funktion an die aufrufende Anwendung zurück [SWS_KeyM_00061] [SWS_KeyM_00153].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CertElementGet [SWS_KeyM_00063] 📄 PDF

Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGet.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3439aa33f4f2 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die synchrone Funktion KeyM_CertElementGet dient dem Auslesen der Daten eines spezifischen Zertifikatselements aus einem Zertifikatsslot in einen vom Aufrufer bereitgestellten Puffer [SWS_KeyM_00063]. Sie kommt zum Einsatz, wenn der in der Zertifikatskonfiguration hinterlegten Objektkennung (OID) genau ein einzelnes Element zugeordnet ist [SWS_KeyM_00063].

Der Aufrufer übergibt die Zertifikatskennung CertId, die Elementkennung CertElementId sowie einen Zeiger auf den Zielpuffer CertElementData [SWS_KeyM_00063]. Der Parameter CertElementDataLength dient als kombinierter Ein- und Ausgabewert: Vor dem Aufruf muss er die maximale Puffergröße enthalten. Im Erfolgsfall (E_OK) wird er mit der tatsächlichen Länge der geschriebenen Daten überschrieben; im Fehlerfall setzt die Funktion den referenzierten Wert auf null zurück [SWS_KeyM_00063].

Fehlerbehandlung und Rückgabewerte

Die Funktion meldet den Ausführungsstatus über folgende Rückgabewerte [SWS_KeyM_00063]:

  • E_OK: Das Element wurde gefunden und erfolgreich in den Puffer kopiert [SWS_KeyM_00063].
  • E_NOT_OK: Die Elementdaten wurden nicht gefunden [SWS_KeyM_00063].
  • KEYM_E_PARAMETER_MISMATCH: Ungültige CertId oder CertElementId [SWS_KeyM_00063].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Der bereitgestellte Puffer ist zu klein für die Daten des Elements [SWS_KeyM_00063].
  • KEYM_E_KEY_CERT_EMPTY: Für den angegebenen Slot existieren keine Daten, der Slot ist leer [SWS_KeyM_00063].
  • KEYM_E_KEY_CERT_INVALID: Das Zertifikat ist ungültig oder wurde noch nicht verifiziert [SWS_KeyM_00063].

Nebenläufigkeit

Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_KeyM_00063]. Bei nebenläufigen Aufrufen aus verschiedenen Tasks oder Kontexten dürfte daher eine aufruferseitige Synchronisation erforderlich sein. Frage Q-238a3e53ce0e3a45 (offen)

Dieser Text wurde von einer KI erstellt. Alle Angaben basieren ausschließlich auf dem AUTOSAR-Standard Release R20-11.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CertificateElementGetByIndex [SWS_KeyM_91014] 📄 PDF

Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);

Service KeyM_CertificateElementGetByIndex.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0bd2bb3fcbc8 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion KeyM_CertificateElementGetByIndex dient dem gezielten Auslesen von Daten eines Zertifikatselements anhand eines nullbasierten Index (0..N), wenn für einen Elementtyp mehrere Einträge vorliegen [SWS_KeyM_91014]. Sie stellt damit eine Direktzugriffsalternative zur sequentiellen Iteration dar.

Verwendung und Parameter

Der Aufrufer übergibt die Zertifikatskennung CertId, die Elementkennung CertElementId sowie den gewünschten Index [SWS_KeyM_91014]. Zudem muss der Aufrufer den Speicher für CertElementDataPtr allokieren und über CertElementDataLengthPtr die maximal verfügbare Puffergröße übergeben. Bei erfolgreicher Rückgabe wird CertElementDataLengthPtr mit der tatsächlichen Länge der kopierten Daten überschrieben [SWS_KeyM_91014].

Rückgabewerte und Fehlerbehandlung

Die Funktion signalisiert das Ergebnis über spezifische Std_ReturnType-Rückgabewerte [SWS_KeyM_91014]:

  • E_OK: Das Element wurde gefunden und erfolgreich in den Zielpuffer kopiert.
  • KEYM_E_PARAMETER_MISMATCH: Ungültige CertId, ungültige CertElementId oder der übergebene Index liegt außerhalb des gültigen Bereichs.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Der bereitgestellte Puffer ist zu klein für das Zertifikatselement.
  • KEYM_E_KEY_CERT_EMPTY: Das angegebene Zertifikat enthält keine Daten bzw. ist leer.
  • KEYM_E_CERT_INVALID: Das Zertifikat ist ungültig oder die Verifikation war nicht erfolgreich.
  • E_NOT_OK: Das Auslesen der Elementdaten ist fehlgeschlagen.

Nebenläufigkeit

Gemäß Spezifikation ist der Dienst als nicht reentrant (Non Reentrant) eingestuft [SWS_KeyM_91014]. Aufrufe dürfen daher nicht ungeschützt nebenläufig ausgeführt werden.

Dieser Nutzungshinweis wurde automatisch durch einen KI-Assistenten auf Basis der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CertificateElementGetCount [SWS_KeyM_91015] 📄 PDF

Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);

This function provides the total number of data elements that a re available for the specified certificate element. Typically, only one data element is available. But in some cases, several data elements can be assigned to one certificate element in a row. This function retrieves the total number of elements. The indiv idual data elements can then accessed with Key M_ Certificate Element Get By Index(). It is similar to the functions Key M_ Cert Element Get First/ Key M_ Cert Element Get Next to retrieve a group of data elements of one certificate element. AUTOSAR CP R20 - of

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5fb0d0d4736f Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Schnittstelle KeyM_CertificateElementGetCount ermittelt die Gesamtanzahl an Datenelementen, die für ein spezifisches Zertifikatselement hinterlegt sind, und schreibt das Ergebnis in den Puffer CountPtr [SWS_KeyM_91015].

Verwendung und Parameter

Die Funktion wird über den Header KeyM.h deklariert und besitzt die Service-ID 0x1c [SWS_KeyM_91015]. Sie verarbeitet folgende Parameter:

  • CertId (IN): Eindeutige Kennung des abzufragenden Zertifikats ([SWS_KeyM_91015]).
  • CertElementId (IN): Bestimmt das konkrete Element innerhalb des Zertifikats ([SWS_KeyM_91015]).
  • CountPtr (OUT): Zeiger auf den Puffer vom Typ uint16, in welchen die Anzahl der verfügbaren Datenelemente kopiert wird ([SWS_KeyM_91015]).

Fehlerbehandlung und Rückgabewerte

Der Rückgabewert vom Typ Std_ReturnType gibt Auskunft über das Ergebnis der Ausführung [SWS_KeyM_91015]:

  • E_OK: Der Zählwert wurde erfolgreich in den Puffer geschrieben ([SWS_KeyM_91015]).
  • E_NOT_OK: Der Zählwert konnte nicht bereitgestellt werden ([SWS_KeyM_91015]).
  • KEYM_E_PARAMETER_MISMATCH: Die Zertifikats-ID (CertId) oder die Element-ID (CertElementId) ist ungültig oder liegt außerhalb des zulässigen Bereichs ([SWS_KeyM_91015]).

Nebenläufigkeit und Zusammenspiel

Die Ausführung ist synchron, jedoch als nicht reentrant (Non Reentrant) eingestuft, sodass gleichzeitige Aufrufe koordiniert werden müssen [SWS_KeyM_91015]. Während Zertifikatselementen typischerweise nur ein einzelnes Datenelement zugewiesen ist, können in bestimmten Fällen mehrere Datenelemente hintereinander vorliegen [SWS_KeyM_91015]. Die ermittelte Gesamtzahl dient als Grundlage, um die einzelnen Elemente anschließend gezielt über KeyM_CertificateElementGetByIndex() auszulesen, was funktional dem iterativen Ansatz mit KeyM_CertElementGetFirst und KeyM_CertElementGetNext ähnelt [SWS_KeyM_91015].

Dieser Nutzungshinweis basiert auf der AUTOSAR-Spezifikation SWS_KeyM_91015.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CertElementGetFirst [SWS_KeyM_00064] 📄 PDF

Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetFirst.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ed15c818bd7a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion KeyM_CertElementGetFirst dient gemäß [SWS_KeyM_00064] dazu, die iterative Extraktion von Zertifikatsdaten einzuleiten. Sie liest das oberste Element des über CertElementId adressierten Zertifikatselements aus dem Zertifikat CertId aus und initialisiert die Iteratorkonstruktion CertElementIterator für nachfolgende Aufrufe von KeyM_CertElementGetNext().

Beim Aufruf sind folgende Parameter- und Speicheranforderungen nach [SWS_KeyM_00064] zu beachten:

  • CertElementIterator: Zeiger auf eine vom Aufrufer allozierte und verwaltete Struktur; diese darf von der Applikation weder zerstört noch verändert werden, solange nicht alle Daten über KeyM_CertElementGetNext() abgerufen wurden.
  • CertElementData: Zeiger auf einen vom Aufrufer bereitgestellten Ausgabepuffer, in den bei erfolgreichem Auffinden (E_OK) die Nutzdaten kopiert werden.
  • CertElementDataLength: Übergibt als Eingabe die Maximallänge des Datenpuffers und wird bei Rückgabe von E_OK mit der tatsächlich geschriebenen Datenlänge überschrieben.

Hinsichtlich Nebenläufigkeit ist der Service laut [SWS_KeyM_00064] reentrant, jedoch bezogen auf genau einen Iterator („Reentrant for one iterator“).

Im Fehlerfall differenziert die Funktion über spezifische Rückgabewerte gemäß [SWS_KeyM_00064]: E_NOT_OK zeigt an, dass keine Elementdaten gefunden wurden (der Iterator darf danach nicht für weitere Aufrufe verwendet werden). KEYM_E_PARAMETER_MISMATCH signalisiert eine ungültige Zertifikats- oder Element-ID, KEYM_E_KEY_CERT_SIZE_MISMATCH einen zu kleinen Datenpuffer, KEYM_E_KEY_CERT_EMPTY ein leeres Zertifikat ohne verfügbare Daten und KEYM_E_CERT_INVALID ein ungültiges oder nicht erfolgreich verifiziertes Zertifikat.

Dieser Nutzungshinweis wurde automatisiert auf Basis von AUTOSAR R20-11 Spezifikationsdaten erstellt.

Implementer's Guide folgt (Komplexität I2)

function KeyM_CertElementGetNext [SWS_KeyM_00065] 📄 PDF

Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetNext.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d7d77461fd1d Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion KeyM_CertElementGetNext (Service-ID 0x11, bereitgestellt über KeyM.h) dient dem fortlaufenden Auslesen weiterer Daten aus einem Zertifikatselement, falls darin mehrere Datensätze sequenziell abgelegt sind [SWS_KeyM_00065]. Als zwingende Aufrufbedingung verlangt die Spezifikation, dass zuvor mindestens einmal die Funktion KeyM_CertElementGetFirst() aufgerufen wurde [SWS_KeyM_00065].

Die Speicherbereiche für sämtliche Parameter müssen durch die aufrufende Applikation bereitgestellt werden [SWS_KeyM_00065]:

  • CertElementIterator: Zeiger auf eine allokierte Iterator-Struktur, die von der Anwendung während des Durchlaufens weder modifiziert noch zerstört werden darf, bis alle Elemente vollständig ausgelesen sind [SWS_KeyM_00065].
  • CertElementData: Zeiger auf den Ausgabepuffer, in welchen die Funktion bei erfolgreicher Ausführung die Nutzdaten kopiert [SWS_KeyM_00065].
  • CertElementDataLength: Übergibt beim Aufruf die maximale Kapazität des Datenpuffers und wird bei erfolgreicher Rückgabe mit der tatsächlichen Länge der kopierten Daten überschrieben [SWS_KeyM_00065].

Liefert der Aufruf E_OK, wurde das nächste Element gefunden, in den Puffer geschrieben und der Iterator entsprechend weitergeführt [SWS_KeyM_00065]. Bei E_NOT_OK konnten keine weiteren Elementdaten gefunden werden; in diesem Fall darf der Iterator für keine weiteren Aufrufe mehr genutzt werden [SWS_KeyM_00065]. Fehlersituationen werden über spezifische Rückgabewerte gemeldet: KEYM_E_KEY_CERT_SIZE_MISMATCH zeigt einen zu klein dimensionierten Datenpuffer an, KEYM_E_PARAMETER_MISMATCH eine ungültige Zertifikats- oder Element-ID, KEYM_E_KEY_CERT_EMPTY ein leeres Zertifikat und KEYM_E_CERT_INVALID ein ungültiges oder nicht erfolgreich verifiziertes Zertifikat [SWS_KeyM_00065].

Bezüglich der Nebenläufigkeit ist die synchrone Funktion reentrant für jeweils einen Iterator spezifiziert [SWS_KeyM_00065].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CertGetStatus [SWS_KeyM_00066] 📄 PDF

Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);

This function provides the sta tus of a certificate.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7bee69d9d0c9 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion KeyM_CertGetStatus dient dazu, den Status eines Zertifikats abzufragen und über einen Ausgabeparameter bereitzustellen [SWS_KeyM_00066]. Die Deklaration der Funktion ist über die Header-Datei KeyM.h zugänglich, und dem Dienst ist die hexadezimale Service-ID 0x12 zugewiesen [SWS_KeyM_00066].

Für den Aufruf werden die folgenden Parameter verwendet [SWS_KeyM_00066]:

  • CertId (IN): Enthält den Bezeichner des abzufragenden Zertifikats und wird mit dem Datentyp KeyM_CertificateIdType übergeben [SWS_KeyM_00066].
  • Status (OUT): Zeiger auf den Speicherbereich vom Typ KeyM_CertificateStatusType, in den die Funktion den ermittelten Status des Zertifikats schreibt [SWS_KeyM_00066].

Der Rückgabewert vom Typ Std_ReturnType informiert über den Ausgang der Statusabfrage [SWS_KeyM_00066]:

  • E_OK: Der Zertifikatsstatus wurde erfolgreich ermittelt und bereitgestellt [SWS_KeyM_00066].
  • E_NOT_OK: Eine Bereitstellung des Status ist gegenwärtig nicht möglich [SWS_KeyM_00066]. Dies tritt beispielsweise auf, wenn eine ungültige Zertifikats-ID übergeben wird, dokumentiert mit dem Fehlercode KEYM_E_PARAMETER_MISMATCH [SWS_KeyM_00066].

In Bezug auf Ausführung und Nebenläufigkeit verhält sich die Schnittstelle rein synchron und ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_KeyM_00066]. Gleichzeitige Aufrufe über mehrere Ausführungskontexte hinweg sind demnach nicht zulässig. Zusätzliche Ein- und Ausgabeparameter sind für diese Schnittstelle nicht vorgesehen [SWS_KeyM_00066].

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I2)

function KeyM_MainFunction [SWS_KeyM_00074] 📄 PDF

void KeyM_MainFunction (void);

Function is called periodically according the specified time interval.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8bdc3a04c6a9 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion KeyM_MainFunction dient als periodische Hauptfunktion für das Classic-AUTOSAR-Modul KeyM [SWS_KeyM_00074]. Gemäß Spezifikation verfügt die Funktion über die Service-ID 0x19 in hexadezimaler Darstellung sowie die Signatur void KeyM_MainFunction (void) [SWS_KeyM_00074]. Aufrufende Instanzen übergeben somit keine Eingabeparameter und erhalten keinen Rückgabewert [SWS_KeyM_00074].

Für die zeitliche Steuerung ist festgelegt, dass die Funktion periodisch gemäß einem definierten Zeitintervall aufzurufen ist [SWS_KeyM_00074]. Als Schnittstellendatei ist die Header-Datei SchM_KeyM.h deklariert [SWS_KeyM_00074]. Daraus ergibt sich die Interpretation: Durch die Bereitstellung über SchM_KeyM.h dürfte der regelmäßige Aufruf der Funktion im Kontext des Basissoftware-Schedulers (SchM) stattfinden [SWS_KeyM_00074]. Frage Q-761ff71812bda3c2 (offen) Zudem dient die zyklische Triggerung vermutlich der internen Bearbeitung zeitabhängiger Abläufe im Modul KeyM.

Hinsichtlich der Fehlerbehandlung und des Fehlerverhaltens sind für diesen Dienst keine Rückgabecodes, Fehlerkonstanten oder Meldungen an DET oder DEM im Spezifikationselement dokumentiert [SWS_KeyM_00074]. Da keine Eingabeparameter existieren, entfällt auch eine Überprüfung von Übergabewerten beim Aufruf [SWS_KeyM_00074].

Dieser Nutzungshinweis wurde automatisch durch ein KI-System auf Basis der Spezifikation für AUTOSAR Release R20-11 generiert.

function KeyM_MainBackgroundFunction [SWS_KeyM_00075] 📄 PDF

void KeyM_MainBackgroundFunction (void);

Function is called from a pre - emptive operating system when no other task operation is needed. Can be used for calling time consuming synchronous functions such as Key M_ KH_ Update().

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: bb4be10aec7d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion KeyM_MainBackgroundFunction besitzt die Signatur void KeyM_MainBackgroundFunction(void) und ist unter der Service-ID 0x1a spezifiziert [SWS_KeyM_00075]. Sie nimmt keine Übergabeparameter entgegen und liefert keinen Rückgabewert an den Aufrufer zurück [SWS_KeyM_00075]. Zur Einbindung wird die Schnittstelle über die Header-Datei SchM_KeyM.h deklariert und bereitgestellt [SWS_KeyM_00075].

Der Aufruf erfolgt durch ein präemptives Betriebssystem im Hintergrund, sobald keine sonstige Task-Operation zur Abarbeitung ansteht [SWS_KeyM_00075]. Primärer Zweck dieser Funktion ist die Bereitstellung eines unkritischen Hintergrundkontexts für zeitaufwendige, synchrone Operationen des Moduls KeyM, wie beispielhaft für die Ausführung von KeyM_KH_Update() beschrieben [SWS_KeyM_00075].

Nebenläufigkeit und Fehlerbehandlung

Da die Funktion im Hintergrundkontext eines präemptiven Betriebssystems ausgeführt wird, dürfte sie durch beliebige reguläre, höher priorisierte Tasks jederzeit unterbrechbar sein. Frage Q-a2394a51ba63467f (offen) Für diesen Hintergrunddienst spezifiziert der Standard weder spezifische Fehlercodes noch Benachrichtigungen an das DET oder DEM [SWS_KeyM_00075]. Zudem werden im vorgegebenen Datenstand keine besonderen Reentranz-Eigenschaften oder feste Reihenfolgebedingungen bezüglich anderer Modulfunktionen vorgeschrieben [SWS_KeyM_00075].

Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationsdaten aus dem Payload.

function KeyM_KH_Start [SWS_KeyM_00067] 📄 PDF

Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5b545d09911d Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und nicht-reentrante Funktion KeyM_KH_Start wird über den Header KeyM_Externals.h deklariert [SWS_KeyM_00067]. Wenn die Konfigurationsparameter KeyMCryptoKeyStartFinalizeFunctionEnabled und KeyMCryptoKeyHandlerStartFinalizeEnabled auf TRUE gesetzt sind, wird sie unmittelbar bei einem Aufruf von KeyM_Start ausgeführt [SWS_KeyM_00067].

Über den Parameter StartType wird der Ausführungsmodus der Schlüsseloperation festgelegt. Mittels RequestData und RequestDataLength empfängt die Funktion anfragespezifische Begleitdaten wie beispielsweise Signaturen. Der Aufrufer übergibt über den Ein-/Ausgabeparameter ResponseDataLength die maximal im Puffer ResponseData verfügbare Bytemenge; im Erfolgsfall meldet die Funktion darüber die tatsächlich geschriebene Anzahl von Antwortbytes zurück [SWS_KeyM_00067].

Als Rückgabewert liefert die Funktion einen Status vom Typ Std_ReturnType [SWS_KeyM_00067]:

  • E_OK: Die Start-Operation war erfolgreich. Nur durch diesen Rückgabewert wechselt der Key Manager in den aktiven Zustand, sodass anschließende Schlüsselaktualisierungen (Key Updates) zulässig sind.
  • E_NOT_OK: Die Start-Operation wurde nicht akzeptiert.
  • KEYM_E_PARAMETER_MISMATCH: Ein übergebener Parameter stimmt nicht mit dem erwarteten Wert überein.
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Eine angegebene Parametergröße passt nicht zur erwarteten Größe.

Da KeyM_KH_Start als nicht-reentrant definiert ist, dürfen Aufrufe für parallele Schlüsseloperationen nicht nebenläufig stattfinden [SWS_KeyM_00067].

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function KeyM_KH_Prepare [SWS_KeyM_00068] 📄 PDF

Std_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);

If the configuration parameters Key MCrypto Key Prepare Function Enabled and Key MCrypto Key Handler Prepare Enabled are both set to TRUE, then this function w ill be called immediately when Key M_ Prepare gets called. The function takes over the task to prepare a key management operation. The response data will be passed on as is to the caller of Key_ Prepare.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c5b0c15ad64e Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion KeyM_KH_Prepare wird über die Header-Datei KeyM_Externals.h deklariert und dient der Vorbereitung einer Schlüsselmanagement-Operation [SWS_KeyM_00068]. Sie wird unmittelbar beim Aufruf von KeyM_Prepare angestoßen, wenn die beiden Konfigurationsparameter KeyMCryptoKeyPrepareFunctionEnabled und KeyMCryptoKeyHandlerPrepareEnabled jeweils auf TRUE gesetzt sind [SWS_KeyM_00068]. Die Ausführung erfolgt synchron und ist als nicht reentrant spezifiziert [SWS_KeyM_00068].

Die Datenübergabe erfolgt über vier Parameter [SWS_KeyM_00068]:

  • RequestData: Eingangsdaten, die zusammen mit der Anfrage übergeben werden [SWS_KeyM_00068].
  • RequestDataLength: Länge der Daten im Array RequestData [SWS_KeyM_00068].
  • ResponseDataPtr: Zeiger auf den Puffer für die von der Funktion zurückgegebenen Antwortdaten, welche unverändert an den Aufrufer von Key_Prepare weitergeleitet werden [SWS_KeyM_00068].
  • ResponseDataLength: Ein- und Ausgabeparameter; übergibt beim Aufruf die maximal im Puffer verfügbare Bytezahl und liefert nach Rückkehr die tatsächlich geschriebene Bytemenge zurück [SWS_KeyM_00068].

Rückgabewerte und Fehlerverhalten

Die Funktion liefert als Ergebnis den Statuswert Std_ReturnType zurück [SWS_KeyM_00068]:

  • E_OK: Der Dienst wurde akzeptiert und wird intern weiterverarbeitet; Resultate werden über einen Callback übermittelt [SWS_KeyM_00068].
  • E_NOT_OK: Der Dienst wurde aufgrund eines internen Fehlers nicht akzeptiert [SWS_KeyM_00068].
  • KEYM_E_PARAMETER_MISMATCH: Ein Parameter stimmt nicht mit dem erwarteten Wert überein [SWS_KeyM_00068].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Die Größe eines Parameters ist nicht passend [SWS_KeyM_00068].

Dieser Text wurde von einer KI erstellt. Alle Angaben basieren ausschließlich auf dem AUTOSAR-Standard Release R20-11.

Implementer's Guide folgt (Komplexität I1)

function KeyM_KH_Finalize [SWS_KeyM_00070] 📄 PDF

Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key Handler Start Finalize Enabled is set to TRUE, this function will be called immediately when Key M_

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ce5fb9dc711f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Delegierung

Die Funktion KeyM_KH_Finalize wird über die Header-Datei KeyM_Externals.h deklariert und fungiert als anwenderspezifischer Key-Handler [SWS_KeyM_00070]. Wenn in der Konfiguration sowohl KeyMCryptoKeyStartFinalizeFunctionEnabled als auch KeyMCryptoKeyHandlerStartFinalizeEnabled auf TRUE gesetzt sind, führt KeyM_Finalize() keine eigenständige Operation aus, sondern delegiert die Verarbeitung unmittelbar an diese Handler-Funktion [SWS_KeyM_00070].

Aufrufkontext und Parameter

Der Aufruf von KeyM_KH_Finalize erfolgt synchron, ist jedoch als nicht reentrant (Non Reentrant) eingestuft und verlangt einen geschützten Aufrufkontext [SWS_KeyM_00070]. Die Datenübergabe erfolgt über folgende Parameter:

  • RequestData und RequestDataLength: Zeiger auf die mit der Anfrage übergebenen Eingangsdaten sowie die Länge des Datenarrays [SWS_KeyM_00070].
  • ResponseData: Puffer für die von der Funktion bereitgestellten Ausgabedaten [SWS_KeyM_00070].
  • ResponseDataLength: Ein In/Out-Parameter, der beim Aufruf die maximal im Antwortpuffer verfügbare Bytemenge vorgibt und bei Rückkehr die tatsächlich geschriebene Bytezahl enthält [SWS_KeyM_00070].

Rückgabewerte und Fehlerbehandlung

Das Operationsergebnis wird über Std_ReturnType zurückgegeben [SWS_KeyM_00070]:

  • E_OK: Die Operation wurde akzeptiert und wird intern weiterverarbeitet; die Ergebnisse werden über einen Callback bereitgestellt [SWS_KeyM_00070]. Interpretation: Obwohl die Funktionsschnittstelle als synchron definiert ist, dürfte die tatsächliche Abarbeitung im Hintergrund fortgeführt werden. Frage Q-02c4aac040570c03 (offen)
  • E_NOT_OK: Die Operation wurde aufgrund eines internen Fehlers nicht akzeptiert [SWS_KeyM_00070].
  • KEYM_E_BUSY: Der Key Manager ist mit anderen Aufgaben ausgelastet, weshalb die Validierung aktuell nicht durchgeführt werden kann [SWS_KeyM_00070].
  • KEYM_E_PARAMETER_MISMATCH: Ein Parameter stimmt nicht mit dem erwarteten Wert überein [SWS_KeyM_00070].
  • KEYM_E_KEY_CERT_SIZE_MISMATCH: Die übergebene Parametergröße entspricht nicht den Vorgaben [SWS_KeyM_00070].

Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Maßgeblich ist die AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CryptoKeyUpdateCallbackNotification [SWS_KeyM_00077] 📄 PDF

void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

Notifies the application that a crypto key update operation has been finished. This function is used by the key manager.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 44ee5bfb41de Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callback-Funktion KeyM_CryptoKeyUpdateCallbackNotification() benachrichtigt die Anwendung darüber, dass eine Aktualisierung eines kryptografischen Schlüssels abgeschlossen wurde ([SWS_KeyM_00077]). Die Funktion wird über KeyM_Externals.h bereitgestellt, ist synchron und reentrant und besitzt keinen Rückgabewert ([SWS_KeyM_00077]).

Parameter

Zusammenspiel und Pufferverwaltung

Der Aufruf von KeyM_CryptoKeyUpdateCallbackNotification() erfolgt durch KeyM_Update(), sobald der Key-Handler zurückkehrt und den Operationstyp KEYM_KH_UPDATE_FINISH liefert ([SWS_KeyM_00093]). Dabei werden die Ergebnisdaten aus KeyM_KH_Update::ResultDataPtr in den Puffer kopiert, der beim Aufruf von KeyM_Update() übergeben wurde, und der Rückgabewert des Key-Handlers wird übernommen ([SWS_KeyM_00093]).

Sofern KeyM_Update() den Vorgang mit E_OK akzeptiert hat, darf die aufrufende Funktion den Puffer ResultDataPtr keinesfalls verändern, bis die Callback-Benachrichtigung KeyM_CryptoKeyUpdateCallbackNotification() erfolgt ist ([SWS_KeyM_00156]). Derselbe Pufferzeiger wird im Callback als ResultDataPtr mit den hineinkopierten Operationsergebnissen übergeben ([SWS_KeyM_00156]).

Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR Classic R20-11.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CryptoKeyFinalizeCallbackNotification [SWS_KeyM_00079] 📄 PDF

void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

Service KeyM_CryptoKeyFinalizeCallbackNotification.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: abee51010fe8 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callback-Funktion KeyM_CryptoKeyFinalizeCallbackNotification benachrichtigt die Anwendung über den Abschluss einer Schlüssel-Finalisierungsoperation [SWS_KeyM_00079]. Sie ist als synchron sowie reentrant spezifiziert, besitzt keinen Rückgabewert und wird über die Header-Datei KeyM_Externals.h deklariert [SWS_KeyM_00079].

Die Schnittstelle übergibt beim Aufruf folgende Parameter an die Anwendung [SWS_KeyM_00079]:

  • Result (Typ KeyM_ResultType): Übermittelt das Ergebnis und Statusinformationen der abgeschlossenen Operation [SWS_KeyM_00079].
  • Result Data Length (Typ uint16): Gibt die Länge der resultierenden Daten dieser Operation an [SWS_KeyM_00079].
  • Result Data Ptr (Typ const uint8*): Zeiger auf den Puffer mit den Ergebnisdaten, der der Service-Funktion zuvor bereitgestellt wurde [SWS_KeyM_00079].

Hinsichtlich der Konfiguration wird die Callback-Funktion nur aufgerufen und benötigt, wenn der Konfigurationsparameter KeyMCryptoKeyStartFinalizeFunctionEnabled auf TRUE gesetzt ist [SWS_KeyM_00079]. Spezifische DET- oder DEM-Fehlermeldungen sind für diese Callback-Funktion nicht definiert. Vermutlich implementiert die Anwendung diesen Callback, um die asynchronen Resultate einer zuvor initiierten Schlüssel-Finalisierung entgegenzunehmen. Frage Q-6d9e4e062b008832 (offen)

Dieser Nutzungshinweis wurde automatisiert anhand der AUTOSAR-Spezifikation R20-11 erstellt.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CryptoKeyVerifyCallbackNotification [SWS_KeyM_00081] 📄 PDF

void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);

Notifies the application that a crypto key verify operation has been finished. This function is used by the key manager.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 82f7eddfd9b7 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Parameter

Die Callback-Funktion KeyM_CryptoKeyVerifyCallbackNotification informiert die Applikation über den Abschluss einer Verifikationsoperation für einen kryptografischen Schlüssel durch das Modul KeyM [SWS_KeyM_00081]. Interpretation: Da das Element laut Spezifikation über den Header KeyM_Externals.h zur Verfügung steht und der Benachrichtigung der Applikation dient, dürfte die Implementierung durch die anwendende Softwarekomponente erfolgen, während der Aufruf durch den Key-Manager vorgenommen wird [SWS_KeyM_00081]. Frage Q-e88e332a7d2cac40 (offen)

Für den Aufruf sind vier reine Eingangsparameter definiert [SWS_KeyM_00081]:

  • Result (KeyM_ResultType): Übergibt das Ergebnis der abgeschlossenen Verifikation [SWS_KeyM_00081].
  • KeyId (uint32): Kennzeichnet die Schlüsselkennung, für welche die Verifikation gestartet wurde [SWS_KeyM_00081].
  • ResultDataLength (uint16): Enthält die Länge der resultierenden Ergebnisdaten, sofern vorhanden [SWS_KeyM_00081].
  • ResultDataPtr (const uint8*): Zeigt auf die Daten des Verifikationsergebnisses [SWS_KeyM_00081].

Nebenläufigkeit und Einschränkungen

Die Funktion besitzt keinen Rückgabewert (void) sowie weder Ausgangs- noch Ein-/Ausgangsparameter [SWS_KeyM_00081]. Der Aufruf ist synchron und reentrant ausgeführt [SWS_KeyM_00081]. Spezifische Fehlercodes sowie DET- oder DEM-Meldungen sind für diesen Callback nicht spezifiziert; Status- und Fehlerinformationen werden ausschließlich über den Parameter Result an die Applikation übermittelt [SWS_KeyM_00081].

Dieser Text wurde von einer KI auf Basis der Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I1)

function KeyM_ServiceCertificateCallbackNotification [SWS_KeyM_00147] 📄 PDF

void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

Notifies the application that the certificate service operation has been finished. This function is used by the certificate submodule. Thi s callback is only provided if Key MService Certificate Function Enabled is set to TRUE. The function name is configurable by Key MService Certificate Callback Notification Func.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 936715001565 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Callback-Funktion KeyM_ServiceCertificateCallbackNotification wird vom Zertifikats-Submodul des KeyM aufgerufen, um die Anwendung über den Abschluss einer Zertifikatsdienst-Operation zu benachrichtigen [SWS_KeyM_00147]. Die vorausgehende Zertifikatsoperation läuft asynchron ab und führt bei ihrer Beendigung diesen Callback aus, um die Resultate an die Anwendung zu übermitteln [SWS_KeyM_00149].

Über die Funktionsparameter werden alle relevanten Ergebnisdaten übermittelt [SWS_KeyM_00147]:

  • CertId: Bezeichner des Zertifikats, für welches die Operation initiiert wurde.
  • Result: Typ KeyM_ResultType mit dem Status bzw. Ergebnis der Operation.
  • ResultDataLength: Länge der Ergebnisdaten, sofern vorhanden.
  • ResultDataPtr: Zeiger auf die Ergebnisdaten.

Die Funktion selbst besitzt keinen Rückgabewert (void) und weist eine synchrone Ausführungssemantik auf [SWS_KeyM_00147].

Konfiguration und Einschränkungen

Der Callback wird über den Header KeyM_Externals.h bereitgestellt, ist jedoch nur verfügbar, wenn der Konfigurationsparameter KeyMServiceCertificateFunctionEnabled auf TRUE gesetzt ist [SWS_KeyM_00147]. Der tatsächliche Name der Benachrichtigungsfunktion ist über den Konfigurationsparameter KeyMServiceCertificateCallbackNotificationFunc anpassbar [SWS_KeyM_00147].

Nebenläufigkeit und Fehlerbehandlung

Gemäß Spezifikation ist die Funktion als reentrant klassifiziert [SWS_KeyM_00147]. Fehler oder Erfolgszustände der vorangegangenen asynchronen Operation werden über den Übergabeparameter Result signalisiert; spezifische DET- oder DEM-Meldungen sind für diese Callback-Schnittstelle im Payload nicht definiert [SWS_KeyM_00147].

Dieser Nutzungshinweis wurde von einer KI basierend auf der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function KeyM_CertificateVerifyCallbackNotification [SWS_KeyM_00073] 📄 PDF

Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);

Notifies the application that a certificate verification has been finished. The function name is configurable by Key MCertificate Verify Callback Notification Func. Availabl e via Key M_ Externals.h

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5eeae15ba9d3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Callback-Funktion KeyM_CertificateVerifyCallbackNotification dient dazu, die Anwendung über den Abschluss einer Zertifikatsverifizierung zu benachrichtigen [SWS_KeyM_00073]. Die Deklaration ist über den Header KeyM_Externals.h verfügbar, wobei der Funktionsname über den Konfigurationsparameter KeyMCertificateVerifyCallbackNotificationFunc konfiguriert werden kann [SWS_KeyM_00073].

Beim Aufruf werden zwei Eingabeparameter übergeben [SWS_KeyM_00073]:

  • CertId (Typ KeyM_CertificateIdType): Bezeichner des verifizierten Zertifikats [SWS_KeyM_00073].
  • Result (Typ KeyM_CertificateStatusType): Enthält Informationen über das Ergebnis der Verifizierungsoperation [SWS_KeyM_00073].

Die Funktion gibt als Statuswert vom Typ Std_ReturnType den Wert E_OK zurück [SWS_KeyM_00073].

Ausführung und Fehlerbehandlung

Die Ausführung der Benachrichtigung ist als synchron und reentrant definiert [SWS_KeyM_00073]. Spezifische Fehlercodes, abweichende Rückgabewerte oder Meldungen an DET oder DEM sind für diesen Callback nicht vorgesehen [SWS_KeyM_00073]. Interpretation: Die anwendungsseitige Implementierung dürfte threadsicher ausgelegt sein müssen, um gleichzeitige Aufrufe für unterschiedliche Zertifikate ohne Nebenwirkungen zu verarbeiten. Frage Q-6bf5313c425fe1a8 (offen)

Dieser Text wurde durch eine KI auf Basis der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

type KeyM_ConfigType [SWS_KeyM_00157] 📄 PDF

This structure is the base type to initialize the Key Manager module. A pointer to an instance of this structure will be used in the initialization of the Key Manager module.

type KeyM_KH_UpdateOperationType [SWS_KeyM_00055] 📄 PDF

Specifies the type of key handler update operation that was performed in the callback.

type KeyM_CertElementIteratorType [SWS_KeyM_00042] 📄 PDF

This structure is used to iterate through a number of elements of a certificate.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a433f4946dd5 Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Der Datentyp KeyM_CertElementIteratorType ist gemäß [SWS_KeyM_00042] als Struktur (Structure) definiert und wird über die Header-Datei KeyM.h zur Verfügung gestellt. Gemäß der Spezifikation dient dieser Typ dazu, über eine Reihe von Elementen eines Zertifikats zu iterieren ([SWS_KeyM_00042]). Da der konkrete Inhalt der Datenstruktur ausdrücklich als implementierungsspezifisch festgelegt ist ([SWS_KeyM_00042]), dürften Anwender den Typ als opaken Iterationszustand betrachten und nicht direkt auf interne Strukturfelder zugreifen. Frage Q-81b5deb7dcdf2812 (offen)

Handhabung und Einschränkungen

Aus der Spezifikation ergeben sich folgende praktische Rahmenbedingungen für die Nutzung:

  • Implementierungsspezifischer Aufbau: Da die Felder von KeyM_CertElementIteratorType herstellerspezifisch implementiert werden ([SWS_KeyM_00042]), hängt das interne Speicher-Layout von der jeweiligen BSW-Realisierung ab.
  • Zustandsverwaltung: Interpretation: Eine Instanz der Struktur dürfte vom Aufrufer als Iteratorkontext allokiert und an die entsprechenden Funktionen zur Zertifikatselement-Traversierung übergeben werden, um den Fortschritt bei der Prüfung oder Extraktion von Zertifikatsfeldern zu verfolgen. Frage Q-5ddb438001abe656 (offen)
  • Nebenläufigkeit: Vermutlich ist eine Iteratorinstanz nicht nebenläufig ohne externe Synchronisation über mehrere Tasks hinweg nutzbar, wenn parallele Zugriffe auf dasselbe Zertifikat erfolgen. Frage Q-6b4b8b1cdc35f021 (offen)

Dieser Text wurde von einer KI erstellt. Er basiert ausschließlich auf den Spezifikationsdaten aus AUTOSAR Classic R20-11.

type KeyM_StartType [SWS_KeyM_00038] 📄 PDF

This type specifies in which mode the key operation will start. The OEM production mode provides higher privileges compared to workshop mode.

type KeyM_ServiceCertificateType [SWS_KeyM_00039] 📄 PDF

This type specifies the requested service operation and what information is provided with this function.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0eab9427a5bc Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Enumerationstyp KeyM_ServiceCertificateType wird über den Header Rte_KeyM_Type.h bereitgestellt und spezifiziert die vom Key-Server angeforderte Zertifikats-Dienstoperation sowie die Art der mit der Funktion übergebenen Informationen [SWS_KeyM_00039]. Die Deklaration in der RTE-Header-Datei dürfte darauf hinweisen, dass der Typ vor allem im Datenaustausch zwischen Software-Komponenten und dem Key-Manager-Modul zur Anwendung kommt. Frage Q-37ed693ea3eda646 (offen)

Folgende standardisierte Operationscodes sind für das Zertifikatsmanagement definiert [SWS_KeyM_00039]:

  • KEYM_SERVICE_CERT_REQUEST_CSR (0x01): Der Key-Server fordert den Key-Client auf, ein Zertifikat bzw. einen Zertifikatsantrag (CSR) zu generieren [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_UPDATE_SIGNED_CSR (0x02): Der Server gibt ein zuvor empfangenes, inzwischen durch die Zertifizierungsstelle (CA) signiertes Zertifikat zurück [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_SET_ROOT (0x03) und KEYM_SERVICE_CERT_UPDATE_ROOT (0x04): Anlegen eines neuen oder Aktualisieren eines bestehenden Root-Zertifikats [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_SET_INTERMEDIATE (0x05) und KEYM_SERVICE_CERT_UPDATE_INTERMEDIATE (0x06): Hinzufügen oder Aktualisieren eines Zwischenzertifikats (CA-Zertifikat) [SWS_KeyM_00039].
  • KEYM_SERVICE_CERT_UPDATE_CRL (0x07): Bereitstellen oder Aktualisieren einer Zertifikatssperrliste (CRL) [SWS_KeyM_00039].

Als wesentliche Vorbedingung verlangt KEYM_SERVICE_CERT_SET_INTERMEDIATE, dass vor dem Setzen eines Zwischenzertifikats bereits das zugehörige Root-Zertifikat hinterlegt sein muss, um eine erfolgreiche Verifikation zu gewährleisten [SWS_KeyM_00039]. Für projektspezifische Erweiterungen sieht die Spezifikation den reservierten Wertebereich von 0x80 bis 0x9F vor [SWS_KeyM_00039].

Dieser Text wurde von einer KI erstellt und basiert auf der Spezifikation von AUTOSAR R20-11.

Implementer's Guide folgt (Komplexität I2)

type KeyM_CertificateStatusType [SWS_KeyM_91003] 📄 PDF

Type KeyM_CertificateStatusType.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5b48c6da481b Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Aufzählungstyp KeyM_CertificateStatusType repräsentiert das Ergebnis von Zertifikatsprüfungen und bildet den aktuellen Verifikations- und Verarbeitungsstatus eines Zertifikats im Key Manager ab [SWS_KeyM_91003]. Der Typ wird über den Header Rte_KeyM_Type.h bereitgestellt und dient Aufrufern dazu, den Zustand oder spezifische Fehlerursachen einer Zertifikatsverifikation differenziert auszuwerten [SWS_KeyM_91003].

Die Enumerationswerte decken sowohl reguläre Zwischen- und Erfolgszustände als auch präzise Fehlerbilder ab [SWS_KeyM_91003]:

  • KEYM_CERTIFICATE_VALID (0x00): Das Zertifikat wurde erfolgreich geparst und verifiziert [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_INVALID (0x01): Das Zertifikat ist ungültig aufgrund eines nicht näher spezifizierten Fehlers [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_NOT_PARSED (0x02): Das Zertifikat wurde bislang noch nicht geparst [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_PARSED_NOT_VALIDATED (0x03): Das Zertifikat wurde geparst, aber noch nicht validiert [SWS_KeyM_91003].
  • KEYM_CERTIFICATE_NOT_AVAILABLE (0x04): Es ist kein Zertifikat gesetzt [SWS_KeyM_91003].
  • Fehlerspezifische Prüfergebnisse: Fehlgeschlagene Gültigkeitsdauer (KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL, 0x05), fehlerhafte Signatur (KEYM_E_CERTIFICATE_SIGNATURE_FAIL, 0x06), ungültige Vertrauenskette (KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST, 0x07), ungültiger Typ (KEYM_E_CERTIFICATE_INVALID_TYPE, 0x08), fehlerhaftes Format (KEYM_E_CERTIFICATE_INVALID_FORMAT, 0x09), ungültiger Inhalt (KEYM_E_CERTIFICATE_INVALID_CONTENT, 0x0A) sowie Widerruf bzw. ungültiger Gültigkeitsbereich (KEYM_E_CERTIFICATE_REVOKED, 0x0B) [SWS_KeyM_91003].

Aufrufer sollten den Status vor der Verwendung kryptografischer Schlüssel prüfen; Operationen dürfen typischerweise nur dann auf einem Zertifikat aufsetzen, wenn der Status explizit KEYM_CERTIFICATE_VALID signalisiert. Da der Typ über Rte_KeyM_Type.h deklariert wird, dürfte er vorrangig in standardisierten Service-Schnittstellen und Ports zur Interaktion zwischen KeyM und Applikations-SWCs eingesetzt werden. Frage Q-f3ca10ee673798df (offen)

Dieser Text wurde von einer KI erstellt. Er ersetzt nicht das Studium der offiziellen AUTOSAR-Spezifikationen.

Implementer's Guide folgt (Komplexität I2)

type KeyM_CertificateElementType [SWS_KeyM_91004] 📄 PDF

Array long enough to store data

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 87fe5a20e3b8 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Struktur

Der Datentyp KeyM_CertificateElementType ist als Byte-Array mit dem Elementtyp uint8 spezifiziert und dient laut Spezifikation als ausreichend großer Speicherbereich zur Ablage von Daten eines Zertifikatselements [SWS_KeyM_91004]. Die Bereitstellung und Deklaration des Datentyps erfolgt für das Modul KeyM über die Headerdatei Rte_KeyM_Type.h [SWS_KeyM_91004].

Konfiguration und Variantenbildung

Die Ausprägung des Datentyps unterliegt einer konfigurationsabhängigen Namens- und Größenvariation, die aus den konfigurierten Parametern des Moduls abgeleitet wird [SWS_KeyM_91004]:

  • Namensmuster: Der konkrete Typname wird elementspezifisch nach dem Schema KeyM_CertificateElementType_{KeyMCertificate}_{KeyMCertificateElement} erzeugt, wobei die Platzhalter den konfigurierten Kurznamen SHORT-NAME der jeweiligen Instanzen von Zertifikat und Zertifikatselement entsprechen [SWS_KeyM_91004].
  • Array-Größe: Die Anzahl der uint8-Elemente wird durch den Konfigurationsparameter KeyMCertificateElementMaxLength bestimmt, damit das Array ausreichend Speicherplatz für die Rohdaten des jeweiligen Elements bietet [SWS_KeyM_91004].

Einschränkungen und Annahmen

Da die Definition in Rte_KeyM_Type.h bereitgestellt wird, dürfte der Typ primär als standardisierter Puffer an den Schnittstellen zu Software-Komponenten für den Austausch von Zertifikatsinhalten verwendet werden [SWS_KeyM_91004]. Frage Q-994f8ac6772de3c1 (offen) Die maximal verarbeitbare Datenlänge bleibt dabei statisch an die zur Konfigurationszeit definierte Maximallänge gebunden [SWS_KeyM_91004].

Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I1)

type KeyM_CryptoKeyDataType [SWS_KeyM_91012] 📄 PDF

Byte - pointer to the input or output data

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 72639cfd726c Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Typdefinition

Der Datentyp KeyM_CryptoKeyDataType ist als Zeigertyp auf uint8* definiert und dient als Byte-Zeiger für Eingabe- oder Ausgabedaten innerhalb des Moduls KeyM [SWS_KeyM_91012]. Die Typdefinition wird über die Header-Datei Rte_KeyM_Type.h bereitgestellt [SWS_KeyM_91012].

Einschränkungen und Speicherverwaltung

Bei der Verwendung von KeyM_CryptoKeyDataType als Zeiger auf Byte-Puffer sind spezifische Randbedingungen zu beachten:

  • Interpretation: Da der Typ als einfacher Byte-Zeiger (uint8*) spezifiziert ist [SWS_KeyM_91012], obliegt die Allokation, Dimensionierung sowie die Gültigkeit des referenzierten Speichers vermutlich dem jeweiligen Aufrufer. Frage Q-07c167f400cbfb9c (offen)
  • Interpretation: Bei der Übergabe als Ausgabepuffer dürfte sicherzustellen sein, dass der referenzierte Speicherbereich groß genug für die aufzunehmenden Schlüssel- bzw. Krypto-Daten ist, um Pufferüberläufe zu verhindern. Frage (offen)
  • Interpretation: Für den nebenläufigen Zugriff auf den referenzierten Puffer dürften zusätzliche Synchronisationsmaßnahmen durch die aufrufende Software erforderlich sein, da der Typ selbst keinen Synchronisationsmechanismus bietet. Frage (offen)

Integration

Aufrufer, die Kryptoschlüssel- oder Zertifikatsdaten an KeyM-Schnittstellen übergeben oder von diesen empfangen, binden Rte_KeyM_Type.h ein, um Zugriff auf die typisierte Zeigerdefinition von KeyM_CryptoKeyDataType zu erhalten [SWS_KeyM_91012].

Dieser Nutzungshinweis wurde automatisiert generiert und stützt sich ausschließlich auf die AUTOSAR-Spezifikation für das Modul KeyM.

Implementer's Guide folgt (Komplexität I1)

type KeyM_ResultType [SWS_KeyM_91008] 📄 PDF

Specifies the result type of an asynchronous key management fu nction.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d66fd62bacf9 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Enumerationstyp KeyM_ResultType spezifiziert das Ergebnis von asynchronen Funktionen des Moduls KeyM zur Schlüssel- und Zertifikatsverwaltung [SWS_KeyM_91008]. Der Typ wird über die Header-Datei Rte_KeyM_Type.h bereitgestellt und dient der Rückmeldung über den Ausgang eines angeforderten asynchronen Arbeitsauftrags [SWS_KeyM_91008].

Der Wertebereich umfasst standardisierte Status- und Fehlercodes zur differenzierten Auswertung durch Aufrufer [SWS_KeyM_91008]:

  • KEYM_RT_OK (0x00): Die Schlüsselmanagement-Operation wurde erfolgreich abgeschlossen [SWS_KeyM_91008].
  • KEYM_RT_NOT_OK (0x01): Während der Schlüsselmanagement-Operation ist ein allgemeiner Fehler aufgetreten [SWS_KeyM_91008].
  • KEYM_RT_KEY_CERT_INVALID (0x02): Der referenzierte Schlüssel oder das Zertifikat ist ungültig und kann nicht für die Operation genutzt werden [SWS_KeyM_91008].
  • KEYM_RT_KEY_CERT_WRITE_FAIL (0x03): Das Schreiben des Schlüssels oder Zertifikats in den vorgesehenen Zielspeicher ist fehlgeschlagen [SWS_KeyM_91008].
  • KEYM_RT_KEY_CERT_UPDATE_FAIL (0x04): Allgemeiner Fehler bei der Aktualisierung eines Schlüssels oder Zertifikats, der nicht durch einen spezifischeren Code präzisiert werden konnte [SWS_KeyM_91008].
  • KEYM_RT_CERT_INVALID_CHAIN_OF_TRUST (0x05): Die Zertifikatsverifikation schlug aufgrund einer ungültigen Vertrauenskette fehl [SWS_KeyM_91008].

Aufrufer asynchroner KeyM-Funktionen müssen diesen Rückgabetyp auswerten, um im Fehlerfall gezielt auf ungültige Vertrauensketten, Speicherzugriffsfehler oder inkorrektes Schlüsselmaterial reagieren zu können [SWS_KeyM_91008].

Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I2)

type KeyM_CertDataType [SWS_KeyM_00041] 📄 PDF

This structure is used to exchange certificate data through interface functions.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 87fc94a82c3d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Struktur KeyM_CertDataType wird im Modul KeyM zur Übergabe und zum Austausch von Zertifikatsdaten über Schnittstellenfunktionen eingesetzt [SWS_KeyM_00041]. Die Typdefinition ist über die Header-Datei KeyM.h verfügbar [SWS_KeyM_00041].

Die Struktur bündelt zwei wesentliche Elemente [SWS_KeyM_00041]:

  • certDataLength: Element vom Typ uint32, das die Länge der Zertifikatsdaten angibt [SWS_KeyM_00041].
  • certData: Element vom Typ VoidPtr, das als Zeiger direkt auf die Zertifikatsdaten in einem lokalen Datenbereich des Aufrufers referenziert [SWS_KeyM_00041].

Da certData auf Speicherbereiche im lokalen Kontext des Aufrufers verweist [SWS_KeyM_00041], obliegt die Pufferverwaltung der aufrufenden Instanz. Interpretation: Der Aufrufer dürfte gewährleisten müssen, dass der referenzierte Speicher für die gesamte Ausführungsdauer der jeweiligen Schnittstellenfunktion gültig bleibt und mindestens die in certDataLength angegebene Bytezahl umfasst. Frage Q-7da9d5ed0975ddbd (offen) Zudem dürfte vermutet werden, dass bei einer Länge größer null ein gültiger Zeiger ungleich NULL übergeben werden muss, um fehlerhafte Speicherzugriffe innerhalb der Schnittstellenfunktion zu vermeiden.

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR R20-11 erstellt.

Implementer's Guide folgt (Komplexität I1)

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

Record
AUTOSAR/AP/record/CP_MOD_KeyM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_KeyM@rel:R20-11#e470a857
Content hash
e470a857
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_KeyManager.pdf#nameddest=SWS_KeyM_00043

Initialisierung und Status

KeyM_Deinit function

This function resets the key management module to the uninitialized state.

void KeyM_Deinit (void);

Provides the version information of this module.

void KeyM_GetVersionInfo (Std_VersionInfoType* VersionInfo);
KeyM_Init function

This function initializes the key management module.

void KeyM_Init (const KeyM_ConfigType* ConfigPtr);

Dienste · Cert…

Service KeyM_CertElementGet.

Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetFirst.

Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

Service KeyM_CertElementGetNext.

Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);

This function provides the sta tus of a certificate.

Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);

Dienste · Certificate…

Service KeyM_CertificateElementGetByIndex.

Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);

This function provides the total number of data elements that a re available for the specified certificate element. Typically, only one data element is available. But in some cases, several data elements can be assigned to one certificate element in a row. This function retrieves the total number of elements. The indiv idual data elements can then accessed with Key M_ Certificate Element Get By Index(). It is similar to the functions Key M_ Cert Element Get First/ Key M_ Cert Element Get Next to retrieve a group of data elements of one certificate element. AUTOSAR CP R20 - of

Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);

Notifies the application that a certificate verification has been finished. The function name is configurable by Key MCertificate Verify Callback Notification Func. Availabl e via Key M_ Externals.h

Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);

Dienste · Crypto…

Service KeyM_CryptoKeyFinalizeCallbackNotification.

void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

Notifies the application that a crypto key update operation has been finished. This function is used by the key manager.

void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

Notifies the application that a crypto key verify operation has been finished. This function is used by the key manager.

void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);

Dienste · K…

If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key Handler Start Finalize Enabled is set to TRUE, this function will be called immediately when Key M_

Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

If the configuration parameters Key MCrypto Key Prepare Function Enabled and Key MCrypto Key Handler Prepare Enabled are both set to TRUE, then this function w ill be called immediately when Key M_ Prepare gets called. The function takes over the task to prepare a key management operation. The response data will be passed on as is to the caller of Key_ Prepare.

Std_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);
KeyM_KH_Start function

If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key

Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

Dienste · Verify…

Service KeyM_VerifyCertificate.

Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);

Service KeyM_VerifyCertificateChain.

Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);

This function verifies two certificates that are stored and parsed internally against each other. The certificat e referenced with Cert Id was signed by the certificate referenced with cert Upper Id. Only these two certificates are validated against each other.

Std_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);

Dienste · Weitere

KeyM_Finalize function

The function is used to finalize key update operations. It is typi cally used in conjunction with the Key M_

Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);

This function provides the certificate data

Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);

Function is called from a pre - emptive operating system when no other task operation is needed. Can be used for calling time consuming synchronous functions such as Key M_ KH_ Update().

void KeyM_MainBackgroundFunction (void);
KeyM_Prepare function

This function is used to prepare a key update operation. The main intent is to provide information for the key operation to the key server. Other operations may start the negotiation for a common secret that is used further to derive key material. This function is only av ailable if Key MCrypto Key Prepare Function Enabled is set to TRUE.

Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

Notifies the application that the certificate service operation has been finished. This function is used by the certificate submodule. Thi s callback is only provided if Key MService Certificate Function Enabled is set to TRUE. The function name is configurable by Key MService Certificate Callback Notification Func.

void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);

This function provides the certificate data to the key managem ent module to temporarily store the certificate.

Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);
KeyM_Start function

This function is optional and only used if the configuration item Key MCrypto Key Start Finalize Function Enabled is set to true. It intents to allow key update operation.

Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);

Zyklisch

Function is called periodically according the specified time interval.

void KeyM_MainFunction (void);

Typen

Byte - pointer to the data of the certificate

This structure is used to exchange certificate data through interface functions.

Certificate Element handle.

This structure is used to iterate through a number of elements of a certificate.

Array long enough to store data

Certificate handle.

Type KeyM_CertificateStatusType.

This structure is the base type to initialize the Key Manager module. A pointer to an instance of this structure will be used in the initialization of the Key Manager module.

Byte - pointer to the input or output data

Crypto key handle.

Specifies the type of key handler update operation that was performed in the callback.

Specifies the result type of an asynchronous key management fu nction.

This type specifies the requested service operation and what information is provided with this function.

This type specifies in which mode the key operation will start. The OEM production mode provides higher privileges compared to workshop mode.

Max type

Array long enough to store the key or certificate name. base Type Encoding = UTF -