AUTOSAR_AP_TR_SystemTests
FIG-f75a9e4937b04018
932 × 709 px
1 Release(s)
Figure 15.3: Sequence diagram of STS_CRYPTO_00004.
SHA-256 Inhalts-Fingerabdruck:
f75a9e4937b0401824d5d12656f94a7177ce4c4caa52d3b09322debe8db2e2bb
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML 2.x Sequenzdiagramm (
sd STS_CRYPTO_00004). - Architektur-Kontext: System-Integrationstestfall aus der Spezifikation
AUTOSAR_AP_TR_SystemTestsfür die AUTOSAR Adaptive Platform (Release R25-11). - Funktionaler Zweck: End-to-End-Verifikation des Functional Clusters Crypto (
ara::crypto). Validiert wird das asymmetrische Signieren und Verifizieren digitaler Signaturen unter Nutzung getrennter privater (<APvK>) und öffentlicher (<APbK>) Schlüssel über standardisierte Krypto-Kontexte (HashFunctionCtx,VerifierPublicCtx).
2. Komponenten, Entitäten & Schnittstellen
- Lifelines / Akteure:
CRYPTO Tester: Externe Testumgebung / Test-Harness (Injektion von Stimuli, Bereitstellung von Referenzdaten und Verifikation von Statusrückmeldungen).CRYPTOApp01: AUTOSAR Adaptive Application (SUT – System Under Test) im User Space, welche die APIs des Krypto-Stacks konsumiert.
- Kryptografische Entitäten & Testvektoren:
<Data1>,<Data2>: Test-Nutzdaten / Payloads.<APvK>: Asymmetrischer privater Schlüssel (Asymmetric Private Key) vonCRYPTOApp01(Signaturschlüssel).<APbK>: Asymmetrischer öffentlicher Schlüssel (Asymmetric Public Key) vonCRYPTOApp01(Verifikationsschlüssel).<DS1>: Referenz-Signatur für<Data1>, vom Tester bereitgestellt.<DS1'>: Zur Laufzeit durchCRYPTOApp01aus<Data1>generierte Signatur.<DS2>: Gültige digitale Signatur für<Data2>, durch Tester vorgegeben.
- Verwendete Schnittstellen & Kontext-Klassen (
ara::crypto::cryp):ara::crypto::cryp::HashFunctionCtx: Schnittstelle zur Digest-Berechnung mit den Lebenszyklus-MethodenStart(),Update(),Finish().ara::crypto::cryp::VerifierPublicCtx: Kontext zur Signaturprüfung viaVerify().- Implizit:
ara::crypto::cryp::SignerPrivateCtxzur Erzeugung von<DS1'>in Step 2. - Inter-Process- / Test-Kommunikation: Dienstbasierte Schnittstellen (z. B. via
ara::comoder Test-RPC) zur Übertragung von Testvektoren und Statuswerten.
3. Dynamisches Verhalten & Sequenzablauf
Der Testfall gliedert sich in zwei sequentielle Prüfphasen:
Phase 1: Signaturerzeugung und Ergebnisprüfung (Steps 1–8)
- [Step 1] Request:
CRYPTO Testersendet Rohdaten<Data1>anCRYPTOApp01. - [Step 2] Execution:
CRYPTOApp01generiert intern die digitale Signatur<DS1'>aus<Data1>unter Verwendung des privaten Schlüssels<APvK>. - [Step 3 & 4] Response & Evaluation:
CRYPTOApp01meldet den Status der Signaturerzeugung zurück (synchron/asynchron).CRYPTO Testerprüft den Status auf Fehlerfreiheit. - [Step 5] Request:
CRYPTO Testerübergibt die Solldaten/Referenzsignatur<DS1>anCRYPTOApp01. - [Step 6] Execution:
CRYPTOApp01vergleicht die lokal generierte Signatur<DS1'>direkt mit der Soll-Signatur<DS1>. - [Step 7 & 8] Response & Evaluation:
CRYPTOApp01liefert das Vergleichsergebnis zurück.CRYPTO Testerevaluiert die Identität der Signaturen.
Phase 2: Signaturverifikation via Public Key (Steps 9–12)
- [Step 9] Request:
CRYPTO Testerinjiziert<Data2>zusammen mit der existierenden Signatur<DS2>inCRYPTOApp01. - [Step 10] Execution:
CRYPTOApp01führt die Verifikation durch:- Aufruf von
HashFunctionCtx::Start()zur Initialisierung des Hash-Puffers. - Aufruf von
HashFunctionCtx::Update()zum Hashing von<Data2>. - Aufruf von
HashFunctionCtx::Finish()zur Finalisierung des Message-Digests. - Aufruf von
VerifierPublicCtx::Verify()mit<DS2>unter Bindung an den öffentlichen Schlüssel<APbK>.
- Aufruf von
- [Step 11 & 12] Response & Evaluation:
CRYPTOApp01meldet den Verifikationsstatus an den Tester zurück.CRYPTO Testervalidiert die Rückgabe auf Erfolg (success, keine Fehler/Exceptions).
4. Normative Relevanz & Entwickler-Hinweise
- Zweistufiger Signatur-/Verifikationsprozess: Die Spezifikation fordert die explizite Entkopplung von Hashing (
HashFunctionCtx) und kryptografischer Verifikation (VerifierPublicCtx). Entwickler müssen sicherstellen, dass Digest-Algorithmus und Signaturalgorithmus (z. B. SHA-256 mit RSA-PSS oder ECDSA) kompatibel über den Crypto Provider konfiguriert sind. - Deterministisches vs. probabilistisches Signieren: Der Byte-für-Byte-Vergleich in Step 6 (
<DS1'>vs.<DS1>) erfordert entweder ein deterministisches Signaturverfahren (z. B. ECDSA nach RFC 6979 oder deterministisches RSASSA-PKCS1-v1_5) oder ein Test-Setup mit fixiertem Nonce/Salt. Bei probabilistischen Verfahren (wie Standard-RSA-PSS) schlägt ein direkter Signaturvergleich fehl; dort ist zwingend eine Verifikation über den Verifier-Kontext erforderlich. - Fehlerbehandlung: Alle Methodenaufrufe in Step 10 unterliegen dem
ara::core::Result<T>-Pattern. Fehler (z. B.SecurityErrorDomain::kProcessingNotFinished,kInvalidInputSizeoderkIncompatibleArguments) müssen deterministisch abgefangen und im Statusreport an den Tester propagiert werden. - Key Slot & Usage Flags: Der Private Key
<APvK>muss im Manifest/Key-Storage mitKeyUsage::kAllowSignaturekonfiguriert sein, der Public Key<APbK>zwingend mitKeyUsage::kAllowVerification. Ein Vertauschen oder Fehlen der Flags führt normativ zum Abbruch mit Sicherheitsfehler.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.