fonction Decapsulate [SWS_CRYPT_21412] Upstream: RS_CRYPTO_02102, RS_CRYPTO_02108, RS_CRYPTO_02115
virtual ara::core::Result< SymmetricKey::Sptr > Decapsulate (ReadOnly MemRegion encapsulatedKey, AlgId algId, AllowedUsageFlags allowed Usage) const noexcept=0;
Decapsulate the keying data into a new SymmetricKey.
Utilisation
La méthode Decapsulate de la classe ara::crypto::cryp::KeyDecapsulatorPrivateCtx sert à décapsuler de manière synchrone des données de clé dans un nouvel objet de clé symétrique [SWS_CRYPT_21412]. Elle prend en argument une zone mémoire contenant la clé encapsulée (encapsulatedKey), l'identifiant de l'algorithme cible (algId) ainsi que des drapeaux d'utilisation (allowedUsage) qui définissent les types de transformation autorisés pour la clé cible [SWS_CRYPT_21412]. L'appel est spécifié comme noexcept et exception safe et retourne le résultat de manière synchrone dans un ara::core::Result<SymmetricKey::Sptr> [SWS_CRYPT_21412].
Gestion des erreurs
En cas d'erreur, la fonction garantit une sémantique de rollback [SWS_CRYPT_21412]. Les causes d'erreur possibles comprennent :
UninitializedContext: Le contexte n'a pas encore été initialisé avec une clé privée [SWS_CRYPT_21412].CryptoErrc::kInvalidArgument: Le format du tampon d'entréeencapsulatedKeyn'est pas valide [SWS_CRYPT_21412].ara::crypto::CryptoErrc::kUnknownIdentifier: L'identifiantalgIdtransmis n'est pas pris en charge [SWS_CRYPT_21412].ara::crypto::CryptoErrc::kIncompatibleArguments: Les drapeaux dansallowedUsagesont incompatibles avecalgIdou avec le type de clé, oualgIdne correspond pas àencapsulatedKey[SWS_CRYPT_21412].ara::crypto::CryptoErrc::kUsageViolation: Les autorisations de la clé privée ne permettent paskAllowKeyUnwrapping[SWS_CRYPT_21412].ara::crypto::CryptoErrc::kBusyResourceouara::crypto::CryptoErrc::kEmptyKeySlot: Une ressource requise est occupée ou un KeySlot configuré est actuellement vide [SWS_CRYPT_21412].
Concurrence et restrictions
L'opération est thread-safe et déclarée comme const [SWS_CRYPT_21412]. Interprétation : l'apparition de ara::crypto::CryptoErrc::kEmptyKeySlot devrait supposer qu'un KeySlot configuré pour la décapsulation doit être occupé par du matériel de clé valide avant l'appel. Question Q-941ed6a81c1e714c (ouverte)
Cette note d'utilisation a été générée automatiquement et repose exclusivement sur les données de spécification issues d'AUTOSAR Adaptive R25-11.
| Header-Datei | #include "ara/crypto/cryp/key_decapsulator_private_ctx.h" |
|---|---|
| Scope | class ara::crypto::cryp::KeyDecapsulatorPrivateCtx |
| Exception-Sicherheit | exception safe |
| Thread-Sicherheit | thread-safe CryptoErrc::k rollback_semantics |
Parameter (in)
| Parameter | Beschreibung |
|---|---|
| encapsulatedKey | an input buffer containing the encapsulated key |
| algId | the identifier of the target symmetric crypto algorithm |
| allowedUsage | the flags that define a list of allowed transformations’ types in which the target key can be used |
Rückgabewert
| Typ | Beschreibung |
|---|---|
| ara::core::Result<SymmetricKey::Sptr > | a result containing a the decapsulated symmetric key object or an error |
Fehler
| Fehlercode | Beschreibung |
|---|---|
| UninitializedContext | if the context was not initialized by a private key value |
| CryptoErrc::kInvalidArgument | rollback_semantics if the format of encapsulatedKey is invalid |
| ara::crypto::CryptoErrc::kUnknownIdentifier | rollback_semantics if algId has an unsupported value |
| ara::crypto::CryptoErrc::kIncompatibleArguments | rollback_semantics if the allowedUsage is incompatible with the algId or the key type |
| ara::crypto::CryptoErrc::kIncompatibleArguments | rollback_semantics if the algId is incompatible to the encapsulatedKey |
| ara::crypto::CryptoErrc::kBusyResource | rollback_semantics a required resource is busy |
| ara::crypto::CryptoErrc::kEmptyKeySlot | rollback_semantics if a KeySlot was configured that is currently is empty |
| ara::crypto::CryptoErrc::kUsageViolation | rollback_semantics if the allowed usage of the key does not include kAllowKey Unwrapping |
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/SWS_CRYPT_21412- Status
- valid/unmigrated
- Version
AUTOSAR/AP/record/SWS_CRYPT_21412@rel:R25-11#301311e4- Content hash
301311e4- Source
- https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21412
Status: valid/unmigrated
Version: rel:R25-11#eae42d09
Versionshistorie & Revisions (1 transition, 8 revision)
- Current State
valid/unmigrated- Reason
- mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
- Campaign
2026-08-13-status-backfill- Active Version
AUTOSAR/AP/record/SWS_CRYPT_21412@rel:R25-11#eae42d09
Recorded Revisions (8):
- R25-11
rel:R25-11#adc903502026-09-30 - R19-11
rel:R19-11#2a160e442026-10-14 - R20-11
rel:R20-11#b88e4d222026-10-14 - R21-11
rel:R21-11#5336aaad2026-10-14 - R22-11
rel:R22-11#e33519842026-10-14 - R23-11
rel:R23-11#fae6d8942026-10-14 - R24-11
rel:R24-11#807767cc2026-10-14 - R25-11
rel:R25-11#eae42d092026-10-14 active
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
|---|---|---|---|---|
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
gemini-3.8-flash-low· 2026-10-13 · Original allemand