DEENESPTFRRUARHIKOZHNL

class ara::crypto::cryp::KeyDecapsulatorPrivateCtx

[SWS_CRYPT_21400] Upstream: RS_CRYPTO_02104, RS_CRYPTO_02209

class KeyDecapsulatorPrivateCtx :                public CryptoContext {...};

Asymmetric Key Encapsulation Mechanism (KEM) Private key Context interface.

Header-Datei#include "ara/crypto/cryp/key_decapsulator_private_ctx.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto::cryp
Basisklasse(n)CryptoContext

User GuideAI-GENERATED

Enables asymmetric decapsulation of key data to generate symmetric key objects.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7f8cddaf4e45 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Enables asymmetric decapsulation of key data to generate symmetric key objects.

The interface ara::crypto::cryp::KeyDecapsulatorPrivateCtx serves for the asymmetric decapsulation of key data (Key Encapsulation Mechanism, KEM) to generate symmetric target keys [SWS_CRYPT_21412]. Prior to decapsulation, the context must mandatorily be initialized with a private key or a matching key storage slot via SetKey [SWS_CRYPT_21413]. Subsequently, the method Decapsulate transforms the encapsulated data in a thread-safe and exception-safe manner into a new symmetric key instance [SWS_CRYPT_21412]. All interface calls ensure strict rollback semantics in the event of an error.

Context

The class ara::crypto::cryp::KeyDecapsulatorPrivateCtx forms the standardized interface for asymmetric key decapsulation mechanisms (Key Encapsulation Mechanism, KEM) based on private keys. As a specialized crypto context, it inherits from CryptoContext and serves to decapsulate previously transmitted encapsulated key data using an asymmetric private key and transform it into a new symmetric key object (SymmetricKey) [SWS_CRYPT_21412].

At least three components participate in the decapsulation operation: the requesting application, the decapsulation context itself, and the key sources in the form of a PrivateKey [SWS_CRYPT_21413] or a referenced storage slot via KeySlot [SWS_CRYPT_50083]. After successful decapsulation, the context provides the generated symmetric key object as a smart pointer [SWS_CRYPT_21412].

kem_context Anwendung Application KeyDecapsulatorPrivateCtx KeyDecapsulatorPrivateCtx Anwendung->KeyDecapsulatorPrivateCtx steuert SymmetricKey SymmetricKey KeyDecapsulatorPrivateCtx->SymmetricKey Decapsulate() Schluesselquelle PrivateKey / KeySlot Schluesselquelle->KeyDecapsulatorPrivateCtx SetKey() SymmetricKey->Anwendung Sptr

Context diagram: Integration of the decapsulation context between key provisioning and target key generation. Sources: [SWS_CRYPT_21412], [SWS_CRYPT_21413], [SWS_CRYPT_50083]

Lifecycle

The context is typically referenced and shared via the type alias KeyDecapsulatorPrivateCtx::Sptr as std::shared_ptr [SWS_CRYPT_21401]. Since the interface defines pure virtual member functions, the instantiation of the concrete object presumably takes place via a higher-level crypto factory (interpretation). Question Q-870e12aabbad8472 (open) Destruction and resource cleanup are tied to the lifecycle of the smart pointer.

Initially, the context is in an uninitialized state in which no decapsulation key has yet been assigned. A direct call to Decapsulate fails in this state with the error UninitializedContext [SWS_CRYPT_21412]. Only upon the successful call of one of the two overloaded methods SetKey does the context transition to the operational state [SWS_CRYPT_21413], [SWS_CRYPT_50083]. If a KeySlot is assigned, the private key contained therein is only retrieved dynamically at the time of actual decapsulation; thus, modifications to the slot content presumably have an immediate effect on future decapsulation calls (interpretation). Question Q-0b0dfc1fd3ebbc6f (open)

Regarding concurrency and fault tolerance, all methods are specified as thread-safe (thread-safe) and exception-safe (exception safe) [SWS_CRYPT_21412], [SWS_CRYPT_21413], [SWS_CRYPT_50083]. Since the transformation method Decapsulate is declared as const, multiple threads can trigger decapsulations in parallel on the same configured context [SWS_CRYPT_21412].

Usage Path

The regular sequence for decapsulating a session key is divided into two consecutive phases:

  1. Configuration of the decapsulation key: The application configures the context via SetKey by either passing a PrivateKey::Sptr [SWS_CRYPT_21413] or providing a KeySlot::Sptr [SWS_CRYPT_50083]. The result is a ara::core::Result<void> whose status must be checked before the next step.
  2. Execution of the decapsulation: The application calls Decapsulate and passes the buffer data of the encapsulated key (ReadOnlyMemRegion encapsulatedKey), the algorithm identifier of the target key (AlgId algId), and its permitted usage types (AllowedUsageFlags allowedUsage) [SWS_CRYPT_21412].
  3. Result processing: Upon successful transformation, the function returns a ara::core::Result<SymmetricKey::Sptr> through which the new symmetric key can be used directly for subsequent cryptographic operations [SWS_CRYPT_21412].
Sequence of key decapsulation (KEM)ApplicationKeyDecapsulatorPrivateCtxSymmetricKeyUse Case: Key configurationSetKey(key) or SetKey(keySlot)ara::core::Result<void>Use Case: Key decapsulationDecapsulate(encapsulatedKey, algId, allowedUsage)Generate target keyInstanz erzeugtara::core::Result<SymmetricKey::Sptr>

Sequence diagram: Typical sequence of key configuration and decapsulation of a target key. Sources: [SWS_CRYPT_21412], [SWS_CRYPT_21413], [SWS_CRYPT_50083]

Error Scenarios

All operations return error states via ara::core::Result and guarantee strict rollback semantics (rollback_semantics), whereby the context remains in a valid state in case of failures [SWS_CRYPT_21412], [SWS_CRYPT_21413], [SWS_CRYPT_50083].

Within the scope of key configuration via SetKey, the following errors can occur:

  • CryptoErrc::kIncompatibleObject: The passed PrivateKey object or the KeySlot is incompatible with the context [SWS_CRYPT_21413], [SWS_CRYPT_50083].
  • CryptoErrc::kUsageViolation: The permission flags of the private key do not include the permission to unwrap (kAllowKeyUnwrapping) [SWS_CRYPT_21413].
  • CryptoErrc::kUnsupported: The implementation of the context supports only the respective other configuration variant (e.g., exclusive binding via KeySlot or exclusively via PrivateKey) [SWS_CRYPT_21413], [SWS_CRYPT_50083].

When calling Decapsulate, the following error causes are specified:

  • UninitializedContext: No key has been assigned to the context previously [SWS_CRYPT_21412].
  • CryptoErrc::kInvalidArgument: The data format of the passed buffer encapsulatedKey is invalid [SWS_CRYPT_21412].
  • CryptoErrc::kUnknownIdentifier: The passed algId identifier is not supported [SWS_CRYPT_21412].
  • CryptoErrc::kIncompatibleArguments: Either the target permissions allowedUsage do not match algId or the key type, or algId is incompatible with the KEM data in encapsulatedKey [SWS_CRYPT_21412].
  • CryptoErrc::kUsageViolation: The usage rules of the configured key do not allow unwrapping (kAllowKeyUnwrapping missing) [SWS_CRYPT_21412].
  • CryptoErrc::kEmptyKeySlot: A KeySlot previously bound via SetKey does not contain a key at the time of execution [SWS_CRYPT_21412].
  • CryptoErrc::kBusyResource: A system resource required for the cryptographic computation is temporarily busy [SWS_CRYPT_21412].

This class guide was generated for AUTOSAR Adaptive R25-11 based on the specification requirements of the crypto module.

Member map

Type aliases

1

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__crypto__cryp__KeyDecapsulatorPrivateCtx748 KeyDecapsulatorPrivateCtx + Decapsulate() + SetKey() nara__crypto__cryp__CryptoContext85 CryptoContext nara__crypto__cryp__KeyDecapsulatorPrivateCtx748->nara__crypto__cryp__CryptoContext85

Detail view

Select an entry in the outline.

Methods

Decapsulate function

Decapsulate the keying data into a new SymmetricKey.

virtual ara::core::Result< SymmetricKey::Sptr > Decapsulate (ReadOnly MemRegion encapsulatedKey, AlgId algId, AllowedUsageFlags allowed Usage) const noexcept=0;
SetKey function 2

Configure the context to use the provided key as decapsulation key.

Overloads SetKey 2
virtual ara::core::Result< void > SetKey (PrivateKey::Sptr key) noexcept=0; SWS_CRYPT_21413
virtual ara::core::Result< void > SetKey (KeySlot::Sptr keySlot) noexcept=0; SWS_CRYPT_50083

Type aliases

Sptr type alias

Smart pointer of the interface.

Method documentation

function 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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 74316f4045a4 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The method Decapsulate of class ara::crypto::cryp::KeyDecapsulatorPrivateCtx serves to synchronously decapsulate key data into a new symmetric key object [SWS_CRYPT_21412]. It accepts a memory area with the encapsulated key (encapsulatedKey), the identifier of the target algorithm (algId), and usage flags (allowedUsage) that specify the permissible transformation types of the target key [SWS_CRYPT_21412]. The call is specified as noexcept and exception safe and returns the result synchronously in a ara::core::Result<SymmetricKey::Sptr> [SWS_CRYPT_21412].

Error handling

In the event of an error, the function guarantees rollback semantics [SWS_CRYPT_21412]. Possible causes of error include:

  • UninitializedContext: The context has not yet been initialized with a private key [SWS_CRYPT_21412].
  • CryptoErrc::kInvalidArgument: The format of the input buffer encapsulatedKey is invalid [SWS_CRYPT_21412].
  • ara::crypto::CryptoErrc::kUnknownIdentifier: The passed identifier algId is not supported [SWS_CRYPT_21412].
  • ara::crypto::CryptoErrc::kIncompatibleArguments: The flags in allowedUsage are incompatible with algId or the key type, or algId does not match encapsulatedKey [SWS_CRYPT_21412].
  • ara::crypto::CryptoErrc::kUsageViolation: The permissions of the private key do not allow kAllowKeyUnwrapping [SWS_CRYPT_21412].
  • ara::crypto::CryptoErrc::kBusyResource or ara::crypto::CryptoErrc::kEmptyKeySlot: A required resource is busy or a configured KeySlot is currently empty [SWS_CRYPT_21412].

Concurrency and Limitations

The operation is thread-safe and declared as const [SWS_CRYPT_21412]. Interpretation: The occurrence of ara::crypto::CryptoErrc::kEmptyKeySlot likely requires that a KeySlot configured for decapsulation must be occupied with valid key material prior to the call. Question Q-941ed6a81c1e714c (open)

This usage note was generated automatically and is based exclusively on the specification data from AUTOSAR Adaptive R25-11.

Header-Datei#include "ara/crypto/cryp/key_decapsulator_private_ctx.h"
Scopeclass ara::crypto::cryp::KeyDecapsulatorPrivateCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe CryptoErrc::k rollback_semantics

Parameter (in)

ParameterBeschreibung
encapsulatedKeyan input buffer containing the encapsulated key
algIdthe identifier of the target symmetric crypto algorithm
allowedUsagethe flags that define a list of allowed transformations’ types in which the target key can be used

Rückgabewert

TypBeschreibung
ara::core::Result<SymmetricKey::Sptr >a result containing a the decapsulated symmetric key object or an error

Fehler

FehlercodeBeschreibung
UninitializedContextif the context was not initialized by a private key value
CryptoErrc::kInvalidArgumentrollback_semantics if the format of encapsulatedKey is invalid
ara::crypto::CryptoErrc::kUnknownIdentifierrollback_semantics if algId has an unsupported value
ara::crypto::CryptoErrc::kIncompatibleArgumentsrollback_semantics if the allowedUsage is incompatible with the algId or the key type
ara::crypto::CryptoErrc::kIncompatibleArgumentsrollback_semantics if the algId is incompatible to the encapsulatedKey
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy
ara::crypto::CryptoErrc::kEmptyKeySlotrollback_semantics if a KeySlot was configured that is currently is empty
ara::crypto::CryptoErrc::kUsageViolationrollback_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#adc90350
Content hash
adc90350
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
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#adc903502026-09-30
  • R19-11rel:R19-11#2a160e442026-10-14
  • R20-11rel:R20-11#b88e4d222026-10-14
  • R21-11rel:R21-11#5336aaad2026-10-14
  • R22-11rel:R22-11#e33519842026-10-14
  • R23-11rel:R23-11#fae6d8942026-10-14
  • R24-11rel:R24-11#807767cc2026-10-14
  • R25-11rel:R25-11#eae42d092026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SetKey [SWS_CRYPT_21413] Upstream: RS_CRYPTO_02001, RS_CRYPTO_02003

virtual ara::core::Result< void > SetKey (PrivateKey::Sptr key) noexcept=0;

Configure the context to use the provided key as decapsulation key.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 43bd56adb05b Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The SetKey method configures context KeyDecapsulatorPrivateCtx to use the passed private key (PrivateKey::Sptr key) as the decapsulation key [SWS_CRYPT_21413]. Execution is synchronous and declared as exception safe as well as thread-safe [SWS_CRYPT_21413]. The result is returned as ara::core::Result<void> [SWS_CRYPT_21413].

If an error occurs during configuration, a corresponding error code is returned; rollback semantics apply, ensuring that the previous state of the context remains unchanged [SWS_CRYPT_21413]. The following error cases are specified:

  • ara::crypto::CryptoErrc::kIncompatibleObject: The passed key object is incompatible with the context [SWS_CRYPT_21413].
  • ara::crypto::CryptoErrc::kUsageViolation: The permitted usage of the key does not include kAllowKey Unwrapping [SWS_CRYPT_21413].
  • ara::crypto::CryptoErrc::kUnsupported: The specific context exclusively supports assignment via a KeySlot [SWS_CRYPT_21413].

In the overall cryptographic process, this context represents the counterpart to encapsulation in KeyEncapsulatorPublicCtx, where the public key is set via SetKey [SWS_CRYPT_21815]. While KeyEncapsulatorPublicCtx also provides for assignments via KeySlot [SWS_CRYPT_50012], this call requires providing a compatible PrivateKey object with matching usage rights [SWS_CRYPT_21413].

This text was generated by an AI based on the AUTOSAR Adaptive R25-11 specification.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/crypto/cryp/key_decapsulator_private_ctx.h"
Scopeclass ara::crypto::cryp::KeyDecapsulatorPrivateCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
keythe key encapsulation key

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided key object is incompatible with this context
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowKey Unwrapping
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if the context only supports setting a KeySlot

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_21413
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21413@rel:R25-11#09c6c800
Content hash
09c6c800
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21413
Status: valid/unmigrated Version: rel:R25-11#3d2109f4 Versionshistorie & Revisions (1 transition, 7 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_21413@rel:R25-11#3d2109f4
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#09c6c8002026-09-30
  • R20-11rel:R20-11#15c6e3ca2026-10-14
  • R21-11rel:R21-11#c2e0f0602026-10-14
  • R22-11rel:R22-11#190096332026-10-14
  • R23-11rel:R23-11#b764d7602026-10-14
  • R24-11rel:R24-11#5a49401b2026-10-14
  • R25-11rel:R25-11#3d2109f42026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SetKey [SWS_CRYPT_50083] Upstream: RS_CRYPTO_02001, RS_CRYPTO_02003

virtual ara::core::Result< void > SetKey (KeySlot::Sptr keySlot) noexcept=0;

Configure the context to use the key stored in the provided KeySlot at the time the key decapsulation is performed as encapsulation key.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 80a237bd0066 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The method SetKey configures the instance of ara::crypto::cryp::KeyDecapsulatorPrivateCtx so that the private key stored in the passed KeySlot is used for key decapsulation [SWS_CRYPT_50083]. A smart pointer KeySlot::Sptr to the corresponding storage location is passed as a parameter. The synchronous call returns an ara::core::Result<void>, which is empty in the success case or contains an error code [SWS_CRYPT_50083].

If an error occurs during configuration, rollback semantics apply [SWS_CRYPT_50083]:

  • ara::crypto::CryptoErrc::kIncompatibleObject indicates that the passed KeySlot is not compatible with the context [SWS_CRYPT_50083].
  • ara::crypto::CryptoErrc::kUnsupported is returned if the concrete context implementation exclusively supports assignment via an PrivateKey object [SWS_CRYPT_50083].

The operation is specified as thread-safe and exception safe (noexcept) [SWS_CRYPT_50083]. In interaction with the module, this call represents an alternative to the direct assignment of a PrivateKey [SWS_CRYPT_21413]. Interpretation: The key content should presumably be evaluated from the slot only during the actual execution of the decapsulation operation, since the specification explicitly refers to this later execution point in time [SWS_CRYPT_50083]. Question Q-aa4a9bc9630ecf1c (open)

This text was generated by an AI based on AUTOSAR specifications.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/crypto/cryp/key_decapsulator_private_ctx.h"
Scopeclass ara::crypto::cryp::KeyDecapsulatorPrivateCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
keySlota keyslot containing a private key

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided keySlot is incompatible with this context
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if the context only supports setting a PrivateKey

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50083
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50083@rel:R25-11#fce97029
Content hash
fce97029
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50083
Status: valid/unmigrated Version: rel:R25-11#fce97029 Versionshistorie & Revisions (1 transition)
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_50083@rel:R25-11#fce97029
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Type alias documentation

type alias Sptr [SWS_CRYPT_21401] Upstream: RS_CRYPTO_02104

using Sptr = std::shared_ptr<KeyDecapsulatorPrivateCtx>;

Smart pointer of the interface.

Header-Datei#include "ara/crypto/cryp/key_decapsulator_private_ctx.h"
Scopeclass ara::crypto::cryp::KeyDecapsulatorPrivateCtx
SymbolSptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_21401
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21401@rel:R25-11#3f5f125b
Content hash
3f5f125b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21401
Status: valid/unmigrated Version: rel:R25-11#c79deea3 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_21401@rel:R25-11#c79deea3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#3f5f125b2026-09-30
  • R19-11rel:R19-11#c695802b2026-10-14
  • R20-11rel:R20-11#5f347cf32026-10-14
  • R21-11rel:R21-11#8f070cff2026-10-14
  • R22-11rel:R22-11#ce91ad1b2026-10-14
  • R23-11rel:R23-11#c486e1b82026-10-14
  • R24-11rel:R24-11#c486e1b82026-10-14
  • R25-11rel:R25-11#c79deea32026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill