Fournit une interface de base pour les contextes cryptographiques modifiables permettant l'interrogation thread-safe de l'ID d'algorithme.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 40f33685b357ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Fournit une interface de base pour les contextes cryptographiques modifiables permettant l'interrogation thread-safe de l'ID d'algorithme.
L'interface sert de classe de base commune pour les contextes cryptographiques modifiables qui ne sont pas liés de manière fixe à un objet cryptographique individuel. Via la méthode purement virtuelle GetAlgId(), elle permet l'interrogation thread-safe de l'identifiant d'algorithme sous forme de ara::core::Result[SWS_CRYPT_20411]. Afin d'empêcher les duplications d'état indésirables, les opérations de copie et de déplacement sont totalement interdites [SWS_CRYPT_41003]. La libération s'effectue de manière déterministe et sûre via un destructeur virtuel par défaut.
Contexte
L'interface ara::crypto::cryp::CryptoContext définit l'abstraction fondamentale pour les contextes cryptographiques modifiables (mutable cryptographic contexts) au sein du module crypto de l'AUTOSAR Adaptive Platform. Contrairement aux objets cryptographiques statiques, un tel contexte n'est pas lié rigidement à un unique objet cryptographique. Il sert plutôt de classe de base commune pour différents contextes de traitement cryptographique dont l'état interne peut changer pendant l'exécution d'opérations cryptographiques.
La fonction membre purement virtuelle GetAlgId() fait office d'élément central de cette interface de base. Elle permet aux partenaires d'interaction d'interroger l'identifiant de l'algorithme cryptographique actuellement configuré dans le contexte [SWS_CRYPT_20411]. Des contextes de calcul et de transformation cryptographiques concrets, tels que pour des services de hachage, de signature ou de chiffrement, devraient être dérivés de CryptoContext dans le système afin de fournir des fonctionnalités d'algorithmes spécifiques. Question Q-203d40209cd355fa (ouverte)
Cycle de vie
Le cycle de vie de CryptoContext est caractérisé par une identité unique et des relations de propriété strictes. Afin d'empêcher la duplication incontrôlée ou les transferts incohérents d'états de contexte au moment de la compilation, les opérations de copie sémantiques sont totalement proscrites. Le constructeur de copie [SWS_CRYPT_41003] tout comme l'opérateur d'assignation par copie [SWS_CRYPT_30214] sont explicitement déclarés comme supprimés (=delete).
De la même manière, la définition de l'interface interdit le déplacement de contextes : le constructeur de déplacement [SWS_CRYPT_41004] ainsi que l'opérateur d'assignation par déplacement [SWS_CRYPT_30215] sont supprimés (=delete). Les instances de classes dérivées restent donc en permanence à leur emplacement mémoire d'origine. La destruction et la libération des ressources s'effectuent de façon déterministe via le destructeur virtuel défini comme default et noexcept[SWS_CRYPT_20401]. Cela garantit que les objets de contexte dérivés peuvent être libérés de manière sûre et sans fuite de ressources via des pointeurs vers l'interface de base.
En ce qui concerne la concurrence, l'exigence pour GetAlgId() spécifie expressément la sécurité des threads [SWS_CRYPT_20411]. Plusieurs threads peuvent ainsi lire simultanément et sans synchronisation externe l'identifiant d'algorithme du même contexte.
Parcours d'utilisation
Étant donné que CryptoContext est une interface purement virtuelle, les développeurs d'applications ne peuvent pas créer d'instances directes. Les instances de classes de contexte spécialisées devraient généralement être instanciées via des fonctions de fabrique ou des composants fournisseurs de la pile crypto et mises à disposition de l'appelant via des pointeurs ou des références. Question Q-728a7b6dd526eb64 (ouverte) Le flux d'utilisation typique au niveau de l'interface de base comprend les phases suivantes :
Mise à disposition : un appelant reçoit d'un fournisseur crypto une référence ou un pointeur vers un contexte configuré.
Vérification de l'algorithme : via l'appel de GetAlgId(), l'identifiant d'algorithme est interrogé et évalué [SWS_CRYPT_20411] afin de s'assurer que le contexte respecte les spécifications requises.
Opération et nettoyage : après l'exécution des opérations spécifiques à l'algorithme via l'interface dérivée, le contexte est automatiquement libéré via le destructeur virtuel [SWS_CRYPT_20401].
Scénarios d'erreur
Le concept de gestion des erreurs de CryptoContext suit la conception générale tolérante aux pannes de l'AUTOSAR Adaptive Platform et renonce aux exceptions C++. La méthode GetAlgId() est spécifiée comme sûre vis-à-vis des exceptions (exception safe) et renvoie son résultat dans un ara::core::Result<ara::crypto::AlgIdString>[SWS_CRYPT_20411]. Si une erreur survient lors de la détermination de l'ID d'algorithme, elle est acheminée dans le canal d'erreur de l'objet Result.
Conformément à la spécification, GetAlgId() ne définit aucun code d'erreur standardisé [SWS_CRYPT_20411]. Les appelants doivent donc principalement vérifier si le Result contient une valeur valide avant d'accéder à la chaîne de caractères de l'ID d'algorithme. Lors de la destruction de l'objet, le destructeur virtuel déclaré avec noexcept garantit qu'aucune exception n'est propagée pendant la destruction et que le nettoyage s'achève toujours de manière fiable [SWS_CRYPT_20401].
Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11 et a été généré par un assistant de curation IA.
gemini-3.8-flash-low· 2026-10-13 · Original allemand