Maakt het veilig inpakken en uitpakken van sleutels door middel van symmetrische sleutelversleuteling mogelijk.
Context
De klasse SymmetricKeyWrapperCtx definieert de gestandaardiseerde interface voor symmetrische sleutelwikkelingsalgoritmen (Key Wrapping) binnen het AUTOSAR Adaptive Platform. Haar centrale verantwoordelijkheid bestaat uit de cryptografische bescherming van sleutels bij export en bij het herstellen van ingepakte sleutels voor intern gebruik. Hierbij interageert de klasse primair met sleutelversleutelingssleutels (Key Encryption Keys, KEK), die hetzij als vluchtig sleutelobject van het type SymmetricKey hetzij persistent via een KeySlot beschikbaar worden gesteld [SWS_CRYPT_24018], [SWS_CRYPT_50034]. Bij het inpakken ontvangt de context een generiek CryptoObject [SWS_CRYPT_24014], terwijl de uitpakbewerking een nieuw, inzetbaar SymmetricKey-object genereert en teruglevert [SWS_CRYPT_24016].
Levenscyclus
Instanties van SymmetricKeyWrapperCtx worden beheerd via de getypeerde smart pointer Sptr (een alias voor std::shared_ptr<SymmetricKeyWrapperCtx>) [SWS_CRYPT_24001]. Het daadwerkelijke aanmaken van objecten zal vermoedelijk plaatsvinden via een bevoegde provider-factory, aangezien de klasse een abstracte interface met zuiver virtuele methoden vormt. Vraag Q-7b9a1007da43ddcd (open) Alle elementfuncties van de interface zijn gespecificeerd als uitzonderingsveilig (exception safe) en thread-safe, wat een veilig gebruik in gelijktijdige softwarecomponenten mogelijk maakt [SWS_CRYPT_24014], [SWS_CRYPT_24016].
In de levenscyclus doorloopt de context twee essentiële fasen: direct na de instantiëring bevindt deze zich in een niet-geïnitialiseerde toestand. In deze fase mislukken cryptografische bewerkingen en bufferberekeningen met de fout kUninitializedContext [SWS_CRYPT_50035], [SWS_CRYPT_24014]. Pas door de succesvolle aanroep van SetKey met een compatibele KEK of KeySlot gaat de context over naar de bedrijfsklare toestand, waarin sleutels veilig kunnen worden ingepakt of uitgepakt [SWS_CRYPT_24018], [SWS_CRYPT_50034].
Gebruikspad
Het reguliere verloop voor het inpakken van een sleutel vereist een gecoördineerde opeenvolging van configuratie, buffercontrole en uitvoering. Eerst configureert de applicatie de context via SetKey met het gewenste KEK-object [SWS_CRYPT_24018] of koppelt een corresponderende KeySlot aan [SWS_CRYPT_50034]. In de tweede stap bepaalt de applicatie via GetRequiredWrappedKeyBufferSize de maximaal benodigde uitvoerbuffergrootte voor het in te pakken doelobject [SWS_CRYPT_50035]. Nadat een passend gedimensioneerd geheugenbereik (ReadWriteMemRegion) beschikbaar is gesteld, volgt de aanroep van Wrap, die de geserialiseerde en versleutelde sleutelgegevens naar de buffer schrijft en het exacte aantal bytes retourneert [SWS_CRYPT_24014].
Sequentiediagram: typische aanroepvolgorde voor symmetrische sleutelverpakking. Bronnen: [SWS_CRYPT_24018], [SWS_CRYPT_50035], [SWS_CRYPT_24014]
Voor het complementaire uitpakproces draagt de applicatie na de configuratie door middel van SetKey de invoerbuffer met de gewikkelde gegevens over aan UnwrapSymmetricKey [SWS_CRYPT_24016]. Daarbij moeten de doelalgoritme-identificatie (targetAlgId) en de toegestane gebruiksvlaggen (allowedUsage) voor de nieuw te genereren symmetrische sleutel expliciet worden vastgelegd [SWS_CRYPT_24016].
Foutscenario's
Methoden van de klasse signaleren fouten via het retourtype ara::core::Result met rollback-semantiek. Tot de centrale foutscenario's behoren:
- Ontbrekende initialisatie: worden
GetRequiredWrappedKeyBufferSize, Wrap of UnwrapSymmetricKey aangeroepen vóór een succesvolle sleuteltoewijzing, dan leveren zij ara::crypto::CryptoErrc::kUninitializedContext [SWS_CRYPT_50035], [SWS_CRYPT_24014], [SWS_CRYPT_24016].
- Schending van gebruiksrechten: bij het instellen van de KEK moet deze ten minste de machtiging
kAllowKeyWrapping of kAllowKeyUnwrapping bezitten, anders mislukt SetKey met ara::crypto::CryptoErrc::kUsageViolation [SWS_CRYPT_24018]. Bij Wrap leidt het ontbreken van kAllowKeyWrapping op de KEK of het ontbreken van kAllowSecuredExport op het in te pakken object eveneens tot kUsageViolation [SWS_CRYPT_24014]. Bij het uitpakken wordt gecontroleerd of de KEK kAllowKeyUnwrapping toestaat [SWS_CRYPT_24016].
- Incompatibiliteiten en bufferfouten: als de doelbuffer voor
Wrap te klein is, wordt ara::crypto::CryptoErrc::kInsufficientCapacity gemeld [SWS_CRYPT_24014]. Foutieve sleutelformaten of incompatibele typen leiden tot ara::crypto::CryptoErrc::kInvalidArgument [SWS_CRYPT_24014], [SWS_CRYPT_24016]. Ondersteunt de context alleen slots respectievelijk alleen sleutelobjecten, dan meldt SetKey de fout kUnsupported [SWS_CRYPT_24018], [SWS_CRYPT_50034].
- Resourceconflicten en lege slots: grijpt de bewerking aan op een bezette resource, dan wordt
ara::crypto::CryptoErrc::kBusyResource geretourneerd; is het gerefereerde KeySlot leeg, dan resulteert dit in ara::crypto::CryptoErrc::kEmptyKeySlot [SWS_CRYPT_24014], [SWS_CRYPT_24016].
Deze handleiding is opgesteld door een AI en baseert zich uitsluitend op de AUTOSAR-specificatie.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel