Gère un emplacement de stockage pour clés cryptographiques et permet les requêtes de métadonnées ainsi que les rappels sur modification.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 15ebff2d544cProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Gère un emplacement de stockage pour clés cryptographiques et permet les requêtes de métadonnées ainsi que les rappels sur modification.
L'interface encapsule un emplacement de stockage persistant ou volatil pour clés cryptographiques et permet l'interrogation des métadonnées de clé ainsi que du CryptoProvider compétent [SWS_CRYPT_30403]. Les applications peuvent surveiller les modifications de contenu via un rappel d'observateur enregistrable [SWS_CRYPT_30404]. Lorsque le slot est vide, les accès au type de clé ou à son algorithme échouent avec le code d'erreur ara::crypto::CryptoErrc::kEmptyKeySlot[SWS_CRYPT_50055]. Comme la copie et le déplacement sont interdits, l'accès s'effectue de manière thread-safe via des pointeurs partagés.
Contexte
L'interface ara::crypto::cryp::KeySlot représente un emplacement de stockage dédié pour les clés cryptographiques au sein de l'AUTOSAR Adaptive Platform. En tant qu'encapsulation d'un slot de clé logique, elle gère les métadonnées, les informations de type et l'association des algorithmes pris en charge pour la clé qui y est stockée. Une instance interagit typiquement avec trois parties : le logiciel applicatif, le cryp::CryptoProvider associé, dont une référence partagée peut être obtenue via [SWS_CRYPT_30403], ainsi qu'un rappel spécifique à l'application pour la surveillance du contenu selon [SWS_CRYPT_30404].
Un KeySlot est fermement lié à l'espace de stockage de clés qu'il représente. Par conséquent, l'interface empêche la duplication et le transfert de l'instance : le constructeur de copie [SWS_CRYPT_50149] ainsi que le constructeur de déplacement [SWS_CRYPT_50150] sont explicitement supprimés. Il en va de même pour l'opérateur d'affectation par copie [SWS_CRYPT_50147] et l'opérateur d'affectation par déplacement [SWS_CRYPT_50148].
Pour la gestion des relations de propriété et de référence, la classe définit l'alias de type de pointeur intelligent Sptr comme std::shared_ptr<KeySlot>[SWS_CRYPT_50151]. La libération s'effectue via un destructeur virtuel par défaut [SWS_CRYPT_50146]. Interprétation : comme l'interface ne définit aucun constructeur public, les instances concrètes devraient être créées par le CryptoProvider compétent et fournies sous forme de Sptr. Question Q-baef4cb1493c96cd (ouverte) Toutes les méthodes fournies sont déclarées comme thread-safe, de sorte que les accès simultanés en lecture et en surveillance depuis plusieurs contextes d'exécution sont autorisés.
Parcours d'utilisation
L'interaction typique avec un KeySlot se divise en configuration de la surveillance du contenu et en requête des métadonnées de clés enregistrées :
Enregistrer un observateur : l'application enregistre au moyen de RegisterUpdateObserver une fonction de rappel ainsi qu'un identifiant spécifique à l'application keySlotIdentifier[SWS_CRYPT_30404]. En cas d'appel répété, seul le dernier rappel transmis est appelé lors des mises à jour ou des suppressions du contenu du slot.
Interroger les algorithmes pris en charge : via GetPossibleAlgIds, l'application détermine une liste de tous les identifiants d'algorithmes pris en charge par le slot [SWS_CRYPT_50056].
Vérifier la clé actuelle : si une clé se trouve dans le slot, GetCryptoObjectType fournit le type d'objet de la clé [SWS_CRYPT_50054] et GetAlgId son identifiant d'algorithme concret [SWS_CRYPT_50055].
Déterminer le fournisseur compétent : au besoin, le CryptoProvider gestionnaire peut être interrogé sous forme de pointeur partagé via GetCryptoProvider[SWS_CRYPT_30403].
Désinscrire l'observateur : au terme de la surveillance, l'enregistrement est révoqué via UnregisterUpdateObserver[SWS_CRYPT_30406].
Les méthodes d'interrogation sécurisent les états d'erreur via le type de résultat ara::core::Result. Si un KeySlot ne contient aucune clé, les appels GetCryptoObjectType[SWS_CRYPT_50054] et GetAlgId[SWS_CRYPT_50055] retournent chacun le code d'erreur standardisé ara::crypto::CryptoErrc::kEmptyKeySlot avec une sémantique de retour arrière. Les méthodes GetPossibleAlgIds[SWS_CRYPT_50056] et GetCryptoProvider[SWS_CRYPT_30403] ne spécifient aucun code d'erreur standardisé. Pour la gestion des observateurs au moyen de RegisterUpdateObserver[SWS_CRYPT_30404] ainsi que UnregisterUpdateObserver[SWS_CRYPT_30406], des erreurs spécifiques à l'implémentation dans l'objet de résultat sont prévues en cas d'erreur.
Ce guide a été rédigé par une IA sur la base de la spécification R25-11.
The interface shall register an application callback function to be called when the content of the KeySlot is updated (i.e., modified or cleared). If this function is called multiple times, only the most recently registered callback of an application will be called.
The interface shall register an application callback function to be called when the content of the KeySlot is updated (i.e., modified or cleared). If this function is called multiple times, only the most recently registered callback of an application will be called.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9361e576efa7ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode RegisterUpdateObserver de la classe ara::crypto::cryp::KeySlot sert à enregistrer une fonction de callback spécifique à l'application, qui est notifiée à chaque mise à jour du contenu d'un emplacement de clé [SWS_CRYPT_30404]. Sont considérées comme mise à jour aussi bien les modifications de contenu que le vidage complet de l'emplacement [SWS_CRYPT_30404].
Utilisation et paramètres
La fonction est incluse via l'en-tête ara/crypto/cryp/keyslot.h et reçoit le callback callback ainsi qu'un identifiant keySlotIdentifier[SWS_CRYPT_30404]. Lors de l'appel, l'objet fonction callback reçoit la chaîne de caractères keySlotIdentifier en argument afin de pouvoir associer sans ambiguïté l'emplacement concerné dans la logique applicative [SWS_CRYPT_30404]. En cas d'appels répétés de RegisterUpdateObserver par la même application, seule la fonction de callback enregistrée en dernier est conservée et exécutée [SWS_CRYPT_30404].
Concurrence et traitement des erreurs
L'interface est thread-safe (thread-safe) et spécifiée comme noexcept sans déclenchement d'exceptions [SWS_CRYPT_30404]. Elle renvoie un ara::core::Result<void>[SWS_CRYPT_30404]. Il n'existe pas d'erreurs standardisées ; en cas d'erreur, un code d'erreur spécifique à l'implémentation est renvoyé [SWS_CRYPT_30404]. Interprétation : l'appel effectif de la fonction de callback devrait s'effectuer de manière asynchrone dans le contexte du pilote cryptographique dès que la mise à jour est effective dans la mémoire de clés. Question Q-cfbcc1ddcbe88062 (ouverte)
Cette note d'utilisation est basée sur la spécification d'AUTOSAR Adaptive R25-11.
Unregisters any previously UpdateObserver callback that has been registered previously by the application.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b5edba50839dProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode UnregisterUpdateObserver de la classe ara::crypto::cryp::KeySlot sert à désenregistrer un rappel d'observateur (UpdateObserver) préalablement enregistré par l'application [SWS_CRYPT_30406]. La fonction est déclarée dans l'en-tête ara/crypto/cryp/keyslot.h, conçue comme une méthode virtuelle pure (=0) et n'attend aucun paramètre de transmission [SWS_CRYPT_30406].
Concernant le contexte d'appel et la concurrence, les conditions aux limites suivantes s'appliquent :
Sémantique synchrone et sécurité des threads : Le désenregistrement s'effectue de manière synchrone et est explicitement spécifié comme thread-safe [SWS_CRYPT_30406]. Les appels peuvent donc être exécutés de façon sûre vis-à-vis des threads et en concurrence avec d'autres opérations sur la même instance de KeySlot.
Sécurité vis-à-vis des exceptions : La méthode possède la spécification noexcept et est considérée comme exception-safe [SWS_CRYPT_30406]. Les états d'erreur ne conduisent donc en aucun cas à des exceptions C++, mais sont gérés de manière ordonnée via l'objet de retour.
Comme valeur de retour, la fonction fournit un ara::core::Result<void>, qui est vide en cas de désenregistrement réussi ou encapsule un code d'erreur en cas d'erreur [SWS_CRYPT_30406]. La spécification ne définit délibérément aucun code d'erreur AUTOSAR standardisé pour cet appel ; d'éventuelles erreurs sont donc spécifiques au fournisseur ou à l'implémentation [SWS_CRYPT_30406]. Les appelants doivent vérifier la présence d'erreurs dans le résultat, mais ne peuvent pas effectuer de contrôle sur des constantes d'erreur standardisées.
En interaction avec la gestion des clés, le désenregistrement empêche de manière fiable que l'application reçoive d'autres notifications concernant les modifications du contenu de la clé. Si aucun rappel n'était enregistré au moment de l'appel, la fonction devrait, selon toute interprétation, soit retourner avec succès sans effet, soit émettre une erreur spécifique à l'implémentation. Question Q-7a1e7e0db0691ce6 (ouverte)
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR.
gemini-3.8-flash-low· 2026-10-13 · Original allemand