Sert d'interface commune pour l'inspection thread-safe et le stockage persistant d'objets cryptographiques.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 156a618ba987ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert d'interface commune pour l'inspection thread-safe et le stockage persistant d'objets cryptographiques.
L'interface ara::crypto::cryp::CryptoObject définit l'abstraction commune pour tous les objets cryptographiques dans la pile Adaptive Crypto et régule leur cycle de vie via Sptr[SWS_CRYPT_20501]. Elle permet la lecture thread-safe des identifiants d'algorithmes ainsi que des indicateurs d'utilisation, et prend en charge l'écrasement permanent de matériel de clé dans un WriteableKeySlot[SWS_CRYPT_20505], [SWS_CRYPT_20517]. Lors de l'opération de stockage, des codes d'erreur définis avec une sémantique de rollback garantissent l'intégrité des données de l'emplacement de stockage sous-jacent [SWS_CRYPT_20517].
Contexte
L'interface ara::crypto::cryp::CryptoObject constitue l'abstraction commune pour tous les objets cryptographiques pouvant être reconnus et gérés par un Crypto Provider. La classe étend ara::crypto::Serializable et définit des propriétés fondamentales telles que l'identification de l'algorithme, les restrictions d'utilisation ainsi que les mécanismes de stockage persistant. Les partenaires d'interaction typiques sont les applications appelantes, le Crypto Provider fournisseur ainsi que les mémoires cibles sous la forme d'instances de WriteableKeySlot.
Cycle de vie
Les objets cryptographiques sont principalement gérés au sein de la plateforme par le biais d'une propriété partagée. Pour cela, la classe définit l'alias de pointeur intelligent canonique ara::crypto::cryp::CryptoObject::Sptr sous la forme std::shared_ptr<CryptoObject>[SWS_CRYPT_20501]. Les instances concrètes devraient être instanciées par les routines spécialisées de fabrique et de chargement d'un Crypto Provider et mises à la disposition de l'appelant via ce type de pointeur. Toutes les méthodes déclarées de l'interface sont spécifiées comme thread-safe et sûres vis-à-vis des exceptions (exception safe, noexcept), ce qui garantit un accès concurrent sécurisé en lecture et en stockage à travers plusieurs threads [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517]. La libération de l'objet et du matériel de clé associé s'effectue automatiquement dès que la dernière référence Sptr s'éteint. Question Q-36e2bd12d7dc8b98 (ouverte)
Parcours d'utilisation
Un chemin d'utilisation typique comprend l'identification des propriétés cryptographiques d'un objet et son stockage persistant consécutif. Tout d'abord, l'application interroge via GetAlgId() l'identifiant d'algorithme de l'objet sous forme de ara::crypto::AlgIdString[SWS_CRYPT_20505]. Ensuite, les indicateurs d'utilisation autorisés (AllowedUsageFlags) sont déterminés via GetAllowedUsage()[SWS_CRYPT_50092] afin de s'assurer que l'objet est autorisé pour l'opération prévue. Pour une sauvegarde permanente, l'application transmet un emplacement de clé inscriptible à la méthode Save()[SWS_CRYPT_20517]. Le matériel de clé ainsi que les métadonnées associées sont ensuite déposés dans l'emplacement cible, les données préalablement présentes dans l'emplacement étant écrasées [SWS_CRYPT_20517].
Tandis que GetAlgId()[SWS_CRYPT_20505] et GetAllowedUsage()[SWS_CRYPT_50092] n'indiquent aucun code d'erreur standardisé et renvoient le résultat respectif dans un ara::core::Result en cas de succès, l'opération de persistance Save() définit des conditions d'erreur spécifiques avec une sémantique de rollback contraignante [SWS_CRYPT_20517] :
ara::crypto::CryptoErrc::kIncompatibleObject : se produit lorsque l'objet est incompatible avec le WriteableKeySlot transmis, par exemple parce que les identifiants d'algorithmes (AlgId) diffèrent les uns des autres ou que le KeySlot appartient à un Crypto Provider différent [SWS_CRYPT_20517].
ara::crypto::CryptoErrc::kUsageViolation : signale une utilisation non autorisée si les indicateurs d'utilisation de la clé déclarés via GetAllowedUsage() ne contiennent pas le droit de persistance (kAllowPersist) [SWS_CRYPT_50092], [SWS_CRYPT_20517].
ara::crypto::CryptoErrc::kBusyResource : est renvoyé lorsque la ressource mémoire sous-jacente est temporairement occupée et que l'opération ne peut pas être exécutée immédiatement [SWS_CRYPT_20517].
Grâce à la sémantique de rollback, l'état du WriteableKeySlot reste intact lors de chacune de ces erreurs, de sorte qu'aucune donnée de clé partiellement écrite ou corrompue ne subsiste en mémoire [SWS_CRYPT_20517].
Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11 et résume les exigences relatives à l'interface ara::crypto::cryp::CryptoObject.
The interface shall persistently store the key-material and its meta-data in the provided WriteableKeySlot. Data previously stored in keyslot shall be overwritten.
The interface shall persistently store the key-material and its meta-data in the provided WriteableKeySlot. Data previously stored in keyslot shall be overwritten.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 0aae854cf6a9Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode Save de l'interface ara::crypto::cryp::CryptoObject sert au stockage persistant de matériau de clé ainsi que des métadonnées associées dans un WriteableKeySlot fourni ([SWS_CRYPT_20517]). Les données déjà déposées auparavant dans le KeySlot de destination sont écrasées lors de l'exécution ([SWS_CRYPT_20517]).
Le paramètre transmis est keyslot de type WriteableKeySlot::Sptr, qui représente l'emplacement mémoire sous-jacent ([SWS_CRYPT_20517]). La fonction est spécifiée comme noexcept ainsi que exception safe et fournit comme valeur de retour un ara::core::Result<void>, qui est vide en cas de succès ([SWS_CRYPT_20517]).
En cas d'erreur, une sémantique de rollback s'applique ([SWS_CRYPT_20517]). Plus précisément, les codes d'erreur suivants sont renvoyés :
ara::crypto::CryptoErrc::kIncompatibleObject : la clé est incompatible avec le KeySlot, par exemple en raison d'une AlgId divergente ou de l'association à un autre CryptoProvider ([SWS_CRYPT_20517]).
ara::crypto::CryptoErrc::kUsageViolation : l'utilisation autorisée de la clé n'englobe pas le droit kAllowPersist ([SWS_CRYPT_20517]).
ara::crypto::CryptoErrc::kBusyResource : l'opération ne peut pas être exécutée temporairement ([SWS_CRYPT_20517]).
Concernant la concurrence, la méthode est déclarée comme thread-safe ([SWS_CRYPT_20517]).
Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR R25-11.
rollback_semantics if the key is incompatible to the KeySlot, e.g., because the AlgId of the KeySlot is incompatible to the AlgId of the key or because the KeySlot belongs to a different CryptoProvider
gemini-3.8-flash-low· 2026-10-13 · Original allemand