Encapsule les clés cryptographiques symétriques et contrôle leur durée de vie via des pointeurs intelligents partagés.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f71a58d7ce35ProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Encapsule les clés cryptographiques symétriques et contrôle leur durée de vie via des pointeurs intelligents partagés.
L'interface ara::crypto::cryp::SymmetricKey sert dans AUTOSAR Adaptive d'abstraction pour les clés cryptographiques symétriques et hérite des propriétés fondamentales de CryptoObject. Les applications et les contextes crypto gèrent principalement les instances de clés via le type de pointeur intelligent standardisé Sptr (std::shared_ptr<SymmetricKey>) conformément à l'en-tête ara/crypto/cryp/cryobj/symmetric_key.h[SWS_CRYPT_23801]. Interprétation : l'instanciation devrait s'effectuer via des routines de création dédiées de la gestion des clés, la clé étant transmise pour configurer des chiffrements ou des MAC. Question Q-f76fecc360d2d3a5 (ouverte) En tant que contrainte déterminante, le comptage de références du pointeur partagé détermine la durée de vie, de sorte que l'objet clé encapsulé n'est détruit qu'après la libération de la dernière référence [SWS_CRYPT_23801].
Contexte
La classe ara::crypto::cryp::SymmetricKey constitue dans l'AUTOSAR Adaptive Platform (Release R25-11, module crypto) l'interface centrale pour la représentation des clés cryptographiques symétriques. En tant qu'élément fondamental du sous-système de cryptographie, l'interface encapsule toutes les propriétés requises pour les procédés cryptographiques symétriques. La classe est directement dérivée de CryptoObject (class SymmetricKey : public CryptoObject) et s'intègre ainsi dans la hiérarchie d'objets unifiée pour les entités cryptographiques de l'Adaptive Platform. L'interface est déclarée dans le fichier d'en-tête ara/crypto/cryp/cryobj/symmetric_key.h[SWS_CRYPT_23801].
Les contextes d'exécution cryptographiques ainsi que les instances de gestion de clés interviennent typiquement en tant que partenaires d'interaction. L'interface sert de lien entre la création ou la mise à disposition de matériel de clé et son utilisation opérationnelle. Interprétation : les clés symétriques devraient être principalement employées dans des algorithmes de chiffrement symétrique (tels que les chiffrements par blocs ou par flux) ainsi que dans les codes d'authentification de message (MAC), afin de garantir la confidentialité et l'intégrité des données au niveau du véhicule. Question (ouverte) L'encapsulation sous forme de CryptoObject garantit que le matériel de clé reste découplé de la transformation cryptographique concrète.
Cycle de vie
Le cycle de vie des instances de ara::crypto::cryp::SymmetricKey est étroitement lié aux patrons modernes de gestion de la mémoire en C++. Conformément à [SWS_CRYPT_23801], la classe fournit l'alias de type Sptr, qui est défini comme using Sptr = std::shared_ptr<SymmetricKey>;. Via ce pointeur intelligent partagé, le cycle de vie de l'objet d'interface fait l'objet d'un comptage de références et est contrôlé de façon déterministe.
Interprétation : la création et l'initialisation effectives des instances devraient, en pratique, s'effectuer via des générateurs de clés spécialisés, des routines de chargement ou des composants de gestion des clés de la pile crypto, car la définition de l'interface n'expose aucun constructeur public par défaut pour des instanciations directes de clés brutes. Question Q-51acf16b99d9ad1b (ouverte) Dès qu'une instance de clé a été créée sous la forme Sptr, elle peut être référencée par plusieurs composants logiciels ou contextes cryptographiques de manière concurrente et en propriété partagée [SWS_CRYPT_23801].
La libération des ressources sous-jacentes s'effectue automatiquement dès que le dernier Sptr actif est détruit ou réinitialisé. Interprétation : la dérivation de CryptoObject laisse supposer que le matériel de clé sensible est particulièrement protégé en mémoire et nettoyé de manière sécurisée (mise à zéro / zeroization) lors de la destruction de l'objet, afin d'empêcher toute lecture après l'expiration de sa durée de vie. Question (ouverte) L'utilisation de std::shared_ptr garantit en outre la sécurité des threads lors de la gestion des compteurs de références, tandis que l'accès à l'objet clé référencé lui-même reste soumis aux règles habituelles de synchronisation des ressources partagées.
Parcours d'utilisation
L'utilisation normale de ara::crypto::cryp::SymmetricKey dans une application Adaptive suit un déroulement structuré qui s'appuie sur le pointeur intelligent défini [SWS_CRYPT_23801] :
Inclusion de l'en-tête : tout d'abord, le composant logiciel utilisateur inclut l'en-tête #include "ara/crypto/cryp/cryobj/symmetric_key.h" afin d'obtenir l'accès à la définition de type et à l'alias Sptr[SWS_CRYPT_23801].
Obtention de la clé : l'application obtient l'interface sous la forme d'un ara::crypto::cryp::SymmetricKey::Sptr[SWS_CRYPT_23801], par exemple à partir d'un processus préalable de fourniture de clé.
Vérification de validité : avant l'utilisation opérationnelle, l'appelant vérifie que le Sptr obtenu est différent de nullptr et pointe vers un CryptoObject intact.
Attribution aux contextes crypto : le pointeur de clé est transmis au contexte cryptographique compétent afin de configurer celui-ci pour les opérations de chiffrement ou de déchiffrement à venir, ou pour les vérifications d'intégrité.
Libération : une fois les transformations terminées ou lors de l'arrêt du contexte applicatif, le pointeur est détruit ; la destruction de la clé s'effectue par la suppression automatique du dernier Sptr[SWS_CRYPT_23801].
Ce guide est basé sur la spécification AUTOSAR Adaptive Platform Release R25-11. Les déclarations s'appuient sur les éléments de spécification référencés ainsi que sur des interprétations identifiées comme telles.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand