fonction AgreeKey [SWS_CRYPT_21312] Upstream: RS_CRYPTO_02115
virtual ara::core::Result< SymmetricKey::Sptr > AgreeKey (Public Key::Sptr otherSideKey, AlgId targetAlgId, AllowedUsageFlags allowed Usage) const noexcept=0;
Produce a common symmetric key via execution of the key-agreement algorithm using a private key and a public key of another side.
La méthode AgreeKey de la classe ara::crypto::cryp::KeyAgreementPrivateCtx exécute un algorithme d'accord de clés à l'aide d'une clé privée et de la clé publique de la contrepartie afin de générer une clé symétrique partagée [SWS_CRYPT_21312]. Sont transmis comme paramètres la clé publique de la contrepartie (otherSideKey), l'identifiant de l'algorithme cible symétrique (targetAlgId) ainsi que les drapeaux d'utilisation autorisés (allowedUsage) [SWS_CRYPT_21312]. En cas d'exécution réussie, un ara::core::Result contenant un SymmetricKey::Sptr, qui renferme le secret partagé calculé, est retourné [SWS_CRYPT_21312]. Interprétation : étant donné que le retour s'effectue directement sous la forme d'un Result et non via un type Future asynchrone, le calcul de la clé devrait se dérouler de manière synchrone. Question Q-ab31a8a62bb1c583 (ouverte)
La méthode est définie comme thread-safe ainsi que exception safe (noexcept) [SWS_CRYPT_21312]. En cas d'erreur, une sémantique de rollback s'applique et un code d'erreur correspondant est retourné [SWS_CRYPT_21312] :
UninitializedContext: Le contexte n'a pas encore été initialisé par la fourniture d'une clé ou les paramètres requis n'ont pas été définis au préalable viaSetParameter()[SWS_CRYPT_21312].CryptoErrc::kIncompatibleObject: La clé publique est incompatible avec le contexte actuel [SWS_CRYPT_21312].CryptoErrc::kUsageViolation: Les restrictions d'utilisation de la clé privée ou publique ne contiennent paskAllowKeyAgreement[SWS_CRYPT_21312].CryptoErrc::kInvalidArgument: Les drapeauxallowedUsagetransmis ne sont pas valides pour une clé symétrique [SWS_CRYPT_21312].ara::crypto::CryptoErrc::kUnknownIdentifier: L'identifianttargetAlgIdcontient une valeur non prise en charge [SWS_CRYPT_21312].CryptoErrc::kBusyResourceouCryptoErrc::kEmptyKeySlot: Une ressource requise est occupée ou un KeySlot configuré est vide [SWS_CRYPT_21312].
Ce texte a été généré par une IA et sert à l'orientation technique.
| Header-Datei | #include "ara/crypto/cryp/key_agreement_private_ctx.h" |
|---|---|
| Scope | class ara::crypto::cryp::KeyAgreementPrivateCtx |
| Exception-Sicherheit | exception safe |
| Thread-Sicherheit | thread-safe CryptoErrc::k rollback_semantics |
Parameter (in)
| Parameter | Beschreibung |
|---|---|
| otherSideKey | the public key of the other side of the Key-Agreement |
| targetAlgId | identifier of the symmetric target algorithm |
| allowedUsage | the allowed usage of the target key |
Rückgabewert
| Typ | Beschreibung |
|---|---|
| ara::core::Result<SymmetricKey::Sptr > | a result containing either a unique pointer to the SymmetricKey object, which contains the computed shared secret produced by the Key-Agreement algorithm or an error |
Fehler
| Fehlercode | Beschreibung |
|---|---|
| UninitializedContext | if the context was not initialized by deploying a key or not all required parameters have been set via SetParameter() |
| CryptoErrc::kIncompatibleObject | rollback_semantics if the public key is not compatible to this context |
| CryptoErrc::kInvalidArgument | rollback_semantics if the allowed usage flags are invalid for a symmetric key |
| CryptoErrc::kBusyResource | rollback_semantics a required resource is busy |
| CryptoErrc::kEmptyKeySlot | rollback_semantics if a KeySlot was configured that is currently is empty |
| CryptoErrc::kUsageViolation | rollback_semantics if the allowed usage of the private or public key do not include k AllowKeyAgreement |
| ara::crypto::CryptoErrc::kUnknownIdentifier | rollback_semantics if targetAlgId has an unsupported value |
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/SWS_CRYPT_21312- Status
- valid/unmigrated
- Version
AUTOSAR/AP/record/SWS_CRYPT_21312@rel:R25-11#da5680ee- Content hash
da5680ee- Source
- https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21312
Status: valid/unmigrated
Version: rel:R25-11#26c80425
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_21312@rel:R25-11#26c80425
Recorded Revisions (8):
- R25-11
rel:R25-11#4f58d41f2026-09-30 - R19-11
rel:R19-11#3975d40e2026-10-14 - R20-11
rel:R20-11#340c62732026-10-14 - R21-11
rel:R21-11#633195382026-10-14 - R22-11
rel:R22-11#418b5aab2026-10-14 - R23-11
rel:R23-11#28812de12026-10-14 - R24-11
rel:R24-11#c610b1882026-10-14 - R25-11
rel:R25-11#26c804252026-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