Предоставляет интерфейс для аутентифицированного симметричного шифрования и расшифрования с защитой целостности.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a1dee2a3fcf5ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Предоставляет интерфейс для аутентифицированного симметричного шифрования и расшифрования с защитой целостности.
Интерфейс ara::crypto::cryp::AuthCipherCtx служит для аутентифицированного шифрования и расшифрования данных с сохранением конфиденциальности и целостности [SWS_CRYPT_23911]. После настройки ключа обработка осуществляется либо как атомарный одиночный вызов, либо как потоковая последовательность из инициализации, опциональных данных аутентификации, обновлений полезных данных и финализации. В качестве критического условия безопасности расшифрование завершается сбоем при недействительном теге аутентификации, поэтому расшифрованные полезные данные разрешается обрабатывать только после успешной валидации [SWS_CRYPT_50075].
Контекст
Интерфейс ara::crypto::cryp::AuthCipherCtx определяет стандартизированный программный интерфейс для операций аутентифицированного шифрования (Authenticated Encryption with Associated Data, AEAD) в рамках AUTOSAR Adaptive Platform. Он сочетает конфиденциальность с защитой целостности, генерируя или валидируя криптографический тег аутентификации наряду с фактическим шифрованием или расшифрованием полезных данных. В качестве центральных партнеров по взаимодействию выступают вызывающие приложения, а также ключевые объекты: перед использованием контекст либо привязывается к конкретному экземпляру SymmetricKey[SWS_CRYPT_23911], либо конфигурируется с персистентным или предоставленным KeySlot[SWS_CRYPT_50072]. Помимо пошаговой потоковой обработки, класс также поддерживает автономные одиночные вызовы для обработки полных сообщений за один шаг [SWS_CRYPT_50078].
Жизненный цикл
Контексты управляются в области приложения через общий тип указателя ara::crypto::cryp::AuthCipherCtx::Sptr[SWS_CRYPT_20101]. (Интерпретация: создание объекта обычно осуществляется через вышестоящую фабрику провайдера, поскольку AuthCipherCtx специфицирован как чистый интерфейс). Вопрос Q-23125789874cf2f3 (открытый) Все функции-члены объявлены как безопасные к исключениям (exception safe) и потокобезопасные (thread-safe) [SWS_CRYPT_23911], [SWS_CRYPT_24715]. Функциональный жизненный цикл проходит через чётко определённые состояния:
Неинициализирован: непосредственно после создания экземпляра. Вызовы для обработки данных отклоняются, так как ключ ещё не был назначен [SWS_CRYPT_50081].
Ключ сконфигурирован: при успешном вызове SetKey с SymmetricKey[SWS_CRYPT_23911] или KeySlot[SWS_CRYPT_50072] контекст переходит в состояние готовности к работе. Из этого состояния можно напрямую выполнять одиночные (single-shot) операции.
Потоковая передача активна: осуществляется переход вызовом Start с указанием направления преобразования с вектором инициализации (IV) [SWS_CRYPT_24715] или без явного IV [SWS_CRYPT_50073].
Завершение / сброс: текущая потоковая операция завершается штатно с помощью Finish[SWS_CRYPT_50075] или FinishEncrypt[SWS_CRYPT_50076] либо прерывается досрочно через Cancel[SWS_CRYPT_50077]. После этого контекст снова готов к новым последовательностям обработки.
Запуск операции: вызов Start с определением направления (шифрование или расшифрование), а также предоставлением IV [SWS_CRYPT_24715] или запросом собственного IV контекста [SWS_CRYPT_50073].
Ассоциированные данные (AAD): если в расчет целостности необходимо включить дополнительные открытые данные, они передаются через UpdateAuthenticatedData[SWS_CRYPT_20313]. Максимально допустимый размер AAD можно запросить с помощью GetMaxAssociatedDataSize[SWS_CRYPT_20103]. Важно: блоки AAD обязательно должны передаваться до фактических полезных данных.
Обработка полезных данных: пошаговая передача блоков данных через UpdateConfidentialData[SWS_CRYPT_50074]. При расшифровании открытый текст возвращается до подтверждения его подлинности; приложение может использовать эти данные только после успешной финализации.
Финализация: завершение операции с помощью Finish[SWS_CRYPT_50075] или FinishEncrypt[SWS_CRYPT_50076], в результате чего обрабатывается финальный блок и вычисляется либо проверяется тег аутентификации.
Для компактных полезных нагрузок существуют альтернативы в виде одиночного вызова: ProcessSingleCall обрабатывает данные без передачи IV [SWS_CRYPT_50078], ProcessSingleCallWithInputIv принимает внешний IV [SWS_CRYPT_50079], а EncryptSingleCallWithOutputIv возвращает сгенерированный контекстом IV вызывающей стороне [SWS_CRYPT_50080].
Методы AuthCipherCtx возвращают результаты через ara::core::Result и в случае ошибки обладают семантикой отката. Соответствующими кодами ошибок из ara::crypto::CryptoErrc являются:
kInvalidUsageOrder: сигнализирует о неверной последовательности вызовов, если UpdateAuthenticatedData вызывается после того, как полезные данные уже были обработаны через UpdateConfidentialData[SWS_CRYPT_20313].
kAuthTagNotValid: указывает при расшифровании в Finish[SWS_CRYPT_50075] или в методах одиночного вызова [SWS_CRYPT_50078] на то, что вычисленный тег не совпадает с переданным тегом и проверка подлинности не удалась.
kUsageViolation: возникает, если атрибуты использования ключа не соответствуют запрошенной операции (например, отсутствует kAllowDataEncrypt или kAllowDataDecrypt) [SWS_CRYPT_23911], [SWS_CRYPT_50078].
kEmptyKeySlot / kBusyResource: относятся к ошибочным состояниям при использовании сконфигурированных слотов ключей [SWS_CRYPT_24715], [SWS_CRYPT_50078].
Настоящее руководство основано исключительно на стандарте AUTOSAR Adaptive (Release R25-11) и обобщает требования к интерфейсу ara::crypto::cryp::AuthCipherCtx.
Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt() or ProcessSingleCall() by this context.
Get the maximum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the minimum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt() or ProcessSingleCall() by this context.
Get the minimum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the output IV size that will be returned by the functions FinishEncrypt() (in case no IV has been provided by the application during the call to Start()), and EncryptSingleCallWithOutputIv().
Encrypt or decrypt confidential data. When used for decryption, the plaintext is returned without verifying its authenticity. An application must not use the data before verifying its authenticity using Finish().
Cancel the ongoing streaming operation that has been initiated by Start() and has not yet been finished.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 739ac0d710b6Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод Cancel() интерфейса ara::crypto::cryp::AuthCipherCtx прерывает активную потоковую операцию, которая ранее была начата через Start() и ещё не завершена [SWS_CRYPT_50077]. Функция предоставляется через заголовочный файл ara/crypto/cryp/auth_cipher_ctx.h и работает синхронно без входных параметров [SWS_CRYPT_50077]. Она возвращает ara::core::Result<void>, который в случае успеха пуст.
Обработка ошибок и граничные условия
Прерывание предполагает, что обработка данных действительно ранее была начата с помощью Start(). Если потоковая операция не была запущена, вызов завершается сбоем и возвращает код ошибки ara::crypto::CryptoErrc::kProcessingNotStarted с семантикой отката [SWS_CRYPT_50077].
Параллелизм
Операция объявлена как noexcept и согласно спецификации классифицирована как thread-safe, так и exception safe[SWS_CRYPT_50077].
Взаимодействие
Шаблон прерывания, реализованный через Cancel(), стандартизирован в модуле crypt. Идентичная семантика интерфейса и тот же код ошибки ara::crypto::CryptoErrc::kProcessingNotStarted определены для соответствующих потоковых контекстов:
virtual ara::core::Result< std::size_t > EncryptSingleCallWithOutputIv (ReadOnlyMemRegion dataIn, ReadWriteMemRegion dataOut, ReadWriteMem Region tag, ReadWriteMemRegion ivOut, ara::core::Optional< ReadOnlyMem Region > authenticatedData) noexcept=0;
Perform encryption and calculate/verify of the authentication tag in a single-call and return an IV generated by the context.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6385ebfbc16dПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронный метод EncryptSingleCallWithOutputIv интерфейса ara::crypto::cryp::AuthCipherCtx выполняет аутентифицированное шифрование за один шаг и при этом самостоятельно генерирует вектор инициализации [SWS_CRYPT_50080]. Он обрабатывает входные данные из dataIn, а также необязательные дополнительные данные authenticatedData и записывает шифротекст в буфер dataOut. Сгенерированный вектор инициализации сохраняется в буфере ivOut, тогда как тег аутентификации выводится через tag[SWS_CRYPT_50080]. Размер буфера для ivOut может быть предварительно определён с помощью метода GetOutputIvSize[SWS_CRYPT_50165]. Несмотря на составную часть имени Encrypt, метод, вероятно, также может использоваться для расшифрования, поскольку спецификация ошибок явно указывает поведение для transformDirection == kDecrypt[SWS_CRYPT_50080]. Вопрос Q-66618567b20f99b9 (открытый)
Для вызова действуют существенные предварительные условия и ограничения:
Контекст должен быть предварительно успешно инициализирован с помощью SetKey; в противном случае возвращается kUninitializedContext[SWS_CRYPT_50080].
Ключ в сконфигурированном key-слоте должен быть совместимым и иметь соответствующее полномочие (например, kAllowDataEncrypt), иначе возвращается kUsageViolation или kIncompatibleObject[SWS_CRYPT_50080].
Если выходных буферов dataOut или ivOut недостаточно, вызов завершается с ошибкой kInsufficientCapacity[SWS_CRYPT_50080].
Если контекст не поддерживает одношаговую обработку или требует внешнего задания IV, возвращается kUnsupported[SWS_CRYPT_50080].
Операция специфицирована как thread-safe, а также исключениебезопасная и гарантирует семантику отката в случае ошибки [SWS_CRYPT_50080]. Для чистых симметричных шифрований без обработки тегов существует отдельный аналог в SymmetricCipherCtx[SWS_CRYPT_50049].
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
an input data buffer containing the plaintext/ciphertext
authenticatedData
optional additional authenticated data
Parameter (out)
Parameter
Beschreibung
dataOut
an output data buffer that contains en-/decrypted data
ivOut
an output data buffer that the initialization vector (IV) generated by the context will be written to
Parameter (in/out)
Parameter
Beschreibung
tag
for decryption: an input data buffer that contains the authentication tag. for encryption: an output data buffer that the authentication tag is written to.
rollback_semantics if the allowed usage of the SymmetricKey deployed or contained in the provided KeySlot at the time of invocation of this interface does not include kAllowDataEncrypt for encryption, or kAllowData Decrypt for decryption, respectively
Finalize the en-/decryption and calculate/verify the authentication tag without returning an IV.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8b946dd1de69Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование и семантика
Метод Finish синхронно завершает шифрование или расшифрование внутри ara::crypto::cryp::AuthCipherCtx и вычисляет либо проверяет тег аутентификации без возврата вектора инициализации (IV) [SWS_CRYPT_50075]. Вызывающая сторона передаёт оставшиеся данные через буфер in, а также целевой буфер out. Через буфер tag при шифровании выводится вычисленный тег, тогда как при расшифровании передаётся проверяемый тег [SWS_CRYPT_50075]. Возвращаемое значение ara::core::Result<std::size_t> указывает фактически записанные в out байты, количество которых может быть меньше ёмкости выходного буфера [SWS_CRYPT_50075].
Порядок выполнения и взаимодействие
Перед вызовом обработка данных обязательно должна быть инициирована с помощью Start()[SWS_CRYPT_50075]. Если ранее блоки данных обрабатывались с помощью UpdateConfidentialData, приложению разрешается использовать результирующий открытый текст при расшифровании только после успешной аутентификации с помощью Finish[SWS_CRYPT_50074]. Максимально требуемый размер буфера для out можно предварительно определить через GetRequiredOutputBufferSize с указанием isFinal = true[SWS_CRYPT_50081].
Обработка ошибок и параллелизм
Метод специфицирован как потокобезопасный и исключениебезопасный [SWS_CRYPT_50075]. Ошибки возвращаются через ara::core::Result с семантикой отката [SWS_CRYPT_50075]:
ProcessingNotStarted: обработка данных не была предварительно запущена с помощью Start()[SWS_CRYPT_50075].
ara::crypto::CryptoErrc::kInsufficientCapacity: выходной буфер out слишком мал [SWS_CRYPT_50075].
ara::crypto::CryptoErrc::kInvalidInputSize: размер буфера in или tag недопустим [SWS_CRYPT_50075].
ara::crypto::CryptoErrc::kAuthTagNotValid: подлинность данных не может быть подтверждена при расшифровании [SWS_CRYPT_50075].
ara::crypto::CryptoErrc::kUnsupported: потоковая обработка не поддерживается контекстом [SWS_CRYPT_50075].
Указание: это указание по использованию было автоматически сгенерировано на основе данных спецификации.
an input data buffer that contains a part of the plaintext/ciphertext
Parameter (out)
Parameter
Beschreibung
out
an output data buffer that the en-/decrypted data is written to
Parameter (in/out)
Parameter
Beschreibung
tag
for decryption: an input data buffer that contains the authentication tag for encryption: an output data buffer that the authentication tag is written to
Finalize the encryption and calculate the authentication tag and return the IV generated by the context.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fd75aa19665eПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод FinishEncrypt синхронно завершает операцию аутентифицированного шифрования в ara::crypto::cryp::AuthCipherCtx, вычисляет тег аутентификации и возвращает сгенерированный контекстом вектор инициализации через ivOut[SWS_CRYPT_50076]. Вызов специфицирован как потокобезопасный, а также безопасный к исключениям (exception safe) [SWS_CRYPT_50076]. В качестве результата функция возвращает ara::core::Result<std::size_t> с количеством байтов, фактически записанных в выходной буфер out, при этом размер вывода может быть меньше емкости буфера [SWS_CRYPT_50076]. Интерпретация: хотя имя указывает на шифрование, спецификация параметра tag, а также код ошибки ara::crypto::CryptoErrc::kAuthTagNotValid указывают на то, что сигнатура в контексте, вероятно, симметрично используется и для операций дешифрования. Вопрос Q-6b924f12c32e0f33 (открытый)
Взаимодействие и определение размера буфера
Обработка данных обязательно должна быть предварительно инициирована с помощью Start(), в противном случае функция сообщает об ошибке ProcessingNotStarted[SWS_CRYPT_50076]. Для определения размера буфера необходимо учитывать взаимодействие со следующими функциями контекста:
максимально требуемую емкость для out можно предварительно вычислить через [SWS_CRYPT_50081] с параметром isFinal = true, чтобы избежать ошибки ara::crypto::CryptoErrc::kInsufficientCapacity[SWS_CRYPT_50076].
требуемый размер буфера для размещения сгенерированного вектора инициализации в ivOut можно запросить через [SWS_CRYPT_50165].
Обработка ошибок и граничные условия
В случае ошибки все ответные сообщения имеют определенную семантику отката [SWS_CRYPT_50076]. При недопустимых размерах буфера для входных данных или тега аутентификации возвращается ara::crypto::CryptoErrc::kInvalidInputSize[SWS_CRYPT_50076]. Кроме того, функция возвращает ara::crypto::CryptoErrc::kUnsupported, если потоковая обработка не поддерживается, IV не используется или IV уже был задан приложением при запуске [SWS_CRYPT_50076].
Это указание по использованию было создано ИИ и основано исключительно на данных спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
an input data buffer that contains a part of the plaintext/ciphertext
Parameter (out)
Parameter
Beschreibung
out
an output data buffer that the en-/decrypted data is written to
ivOut
an output data buffer that contains the IV
Parameter (in/out)
Parameter
Beschreibung
tag
for decryption: an input data buffer that contains the authentication tag for encryption: an output data buffer that the authentication tag is written to
rollback_semantics if stream processing is not supported by the context or if this context does not use an IV or if the IV has been provided by the application in the Start() function
Request a governed re-review of this record. The record is not changed immediately.
Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt() or ProcessSingleCall() by this context.
Get the maximum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the minimum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt() or ProcessSingleCall() by this context.
Get the minimum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the output IV size that will be returned by the functions FinishEncrypt() (in case no IV has been provided by the application during the call to Start()), and EncryptSingleCallWithOutputIv().
Perform en-/decryption and calculate/verify of the authentication tag in a single-call without setting or returning an IV.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a5183289221aПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронный и определённый как потокобезопасный метод ProcessSingleCall класса ara::crypto::cryp::AuthCipherCtx выполняет шифрование или расшифрование полезных данных и одновременное вычисление либо верификацию тега аутентификации за одну операцию без вектора инициализации (IV) [SWS_CRYPT_50078]. Через опциональный буфер authenticatedData могут быть предоставлены дополнительные аутентифицированные данные [SWS_CRYPT_50078]. Буфер tag при расшифровании служит входом для верификации, а при шифровании — выходом для сохранения сгенерированного тега аутентификации [SWS_CRYPT_50078]. При успешной обработке ara::core::Result<std::size_t> возвращает фактическое количество байтов, записанных в dataOut, которое может быть меньше ёмкости целевого буфера [SWS_CRYPT_50078].
Перед вызовом криптографический контекст должен быть инициализирован посредством успешного вызова SetKey; в противном случае функция завершается сбоем с ara::crypto::CryptoErrc::kUninitializedContext[SWS_CRYPT_50078]. Кроме того, используемый ключ должен быть разрешён для запрошенного направления преобразования (kAllowDataEncrypt или kAllowDataDecrypt), так как иначе возвращается ara::crypto::CryptoErrc::kUsageViolation[SWS_CRYPT_50078]. Если одношаговая обработка не поддерживается или контекст требует IV, функция возвращает ara::crypto::CryptoErrc::kUnsupported[SWS_CRYPT_50078]. Если при расшифровании аутентификация завершается сбоем, инициируется ara::crypto::CryptoErrc::kAuthTagNotValid[SWS_CRYPT_50078]. Ошибки назначенного слота ключа сигнализируются через EmptyKeySlot, ara::crypto::CryptoErrc::kBusyResource или ara::crypto::CryptoErrc::kIncompatibleObject[SWS_CRYPT_50078].
Для управления буферами максимально требуемый выходной размер для dataOut может быть предварительно рассчитан через GetRequiredOutputBufferSize с установленным флагом isFinal = true[SWS_CRYPT_50081]; слишком малый выходной буфер приводит к ara::crypto::CryptoErrc::kInsufficientCapacity[SWS_CRYPT_50078]. Дополнительно размер dataIn должен соответствовать границам GetMinimumChunkSize[SWS_CRYPT_50162] и GetMaximumChunkSize[SWS_CRYPT_50082] во избежание ara::crypto::CryptoErrc::kInvalidInputSize[SWS_CRYPT_50078].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
an input data buffer containing the plaintext/ciphertext
transformDirection
the transformation direction, i.e., encryption or decryption
authenticatedData
optional additional authenticated data
Parameter (out)
Parameter
Beschreibung
dataOut
an output data buffer that contains en-/decrypted data
Parameter (in/out)
Parameter
Beschreibung
tag
for decryption: an input data buffer that contains the authentication tag. for encryption: an output data buffer that the authentication tag is written to.
rollback_semantics if the allowed usage of the SymmetricKey deployed or contained in the provided KeySlot at the time of invocation of this interface does not include kAllowDataEncrypt for encryption, or kAllowData Decrypt for decryption, respectively
Perform en-/decryption and calculate/verify of the authentication tag in a single-call, providing an IV to be used during en-/decryption.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 36312c01407dПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод [SWS_CRYPT_50079] класса ara::crypto::cryp::AuthCipherCtx выполняет синхронную одношаговую обработку (single-call) для шифрования или расшифрования данных с одновременным вычислением либо проверкой тега аутентификации.
При вызове входные данные задаются через dataIn, а направление — через transformDirection. Вектор инициализации передаётся через iv, а необязательные данные аутентификации могут быть предоставлены через authenticatedData[SWS_CRYPT_50079]. Буфер tag в случае шифрования служит для вывода вычисленного тега, а в случае расшифрования — в качестве входных данных для верификации [SWS_CRYPT_50079]. Возвращаемое значение ara::core::Result<std::size_t> при успешном выполнении возвращает количество записанных в dataOut байтов, которое может быть меньше ёмкости буфера [SWS_CRYPT_50079].
В случае ошибки все коды ошибок обладают семантикой отката [SWS_CRYPT_50079]:
ara::crypto::CryptoErrc::kUninitializedContext: предварительно не был сконфигурирован ключ с помощью SetKey[SWS_CRYPT_50079].
ara::crypto::CryptoErrc::kUsageViolation: ключ не обладает требуемым правом kAllowDataEncrypt или kAllowDataDecrypt[SWS_CRYPT_50079].
ara::crypto::CryptoErrc::kEmptyKeySlot, ara::crypto::CryptoErrc::kBusyResource или ara::crypto::CryptoErrc::kIncompatibleObject: сконфигурированный KeySlot пуст, занят или не содержит совместимого SymmetricKey[SWS_CRYPT_50079].
ara::crypto::CryptoErrc::kInvalidInputSize или ara::crypto::CryptoErrc::kInsufficientCapacity: буферы для входных данных, тега или IV имеют недопустимый размер, либо dataOut предоставляет недостаточную ёмкость [SWS_CRYPT_50079].
ara::crypto::CryptoErrc::kAuthTagNotValid: при расшифровании аутентификация завершается неудачей [SWS_CRYPT_50079].
ara::crypto::CryptoErrc::kUnsupported: однократная обработка (single-shot) не поддерживается контекстом, либо контекст требует установки или вывода IV [SWS_CRYPT_50079].
Операция определена как thread-safe и exception safe[SWS_CRYPT_50079]. Допустимые длины для iv могут быть динамически запрошены через GetMinimumInputIvSize[SWS_CRYPT_50163] и GetMaximumInputIvSize[SWS_CRYPT_50164]. По сравнению с чистым блочным шифром в SymmetricCipherCtx[SWS_CRYPT_50048] этот интерфейс объединяет криптографическое преобразование и проверку целостности в одном вызове.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
an input data buffer containing the plaintext/ciphertext
transformDirection
the transformation direction, i.e., encryption or decryption
iv
an Initialization Vector (IV) or "nonce" value
authenticatedData
optional additional authenticated data
Parameter (out)
Parameter
Beschreibung
dataOut
an output data buffer that contains en-/decrypted data
Parameter (in/out)
Parameter
Beschreibung
tag
for decryption: an input data buffer that contains the authentication tag. for encryption: an output data buffer that the authentication tag is written to.
rollback_semantics if the allowed usage of the SymmetricKey deployed or contained in the provided KeySlot at the time of invocation of this interface does not include kAllowDataEncrypt for encryption, or kAllowData Decrypt for decryption, respectively
The interface shall configure the context to use the provided SymmetricKey.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c987f167a8b5ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод SetKey конфигурирует экземпляр ara::crypto::cryp::AuthCipherCtx для использования переданного симметричного ключа [SWS_CRYPT_23911]. В качестве параметра передается shared pointer key (типа SymmetricKey::Sptr), который используется для аутентифицированного шифрования или расшифрования [SWS_CRYPT_23911]. Вызов происходит синхронно, объявлен как noexcept и возвращает ara::core::Result<void>[SWS_CRYPT_23911].
В случае ошибки результат сбрасывается с семантикой отката и возвращает специфические коды ошибок [SWS_CRYPT_23911]:
ara::crypto::CryptoErrc::kUnsupported: если контекст поддерживает конфигурацию исключительно через KeySlot[SWS_CRYPT_23911].
ara::crypto::CryptoErrc::kIncompatibleObject: если переданный тип ключа несовместим с текущим контекстом [SWS_CRYPT_23911].
ara::crypto::CryptoErrc::kUsageViolation: если разрешенные флаги использования ключа не содержат kAllowDataEncrypt для шифрования или kAllowDataDecrypt для расшифрования [SWS_CRYPT_23911].
Согласно спецификации интерфейс классифицирован как потокобезопасный (thread-safe) и безопасный относительно исключений (exception safe) [SWS_CRYPT_23911]. Во взаимодействии с контекстом модуля ключ, вероятно, должен устанавливаться до инициализации нового преобразования через Start[SWS_CRYPT_24715]. Вопрос Q-11f7daa370f5d438 (открытый)
Данное указание по использованию было сгенерировано автоматически на основе полезной нагрузки AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
rollback_semantics if the allowed usage of the provided SymmetricKey does not include kAllowDataEncrypt for encryption, or kAllowDataDecrypt for decryption, respectively
Request a governed re-review of this record. The record is not changed immediately.
The interface shall configure the context to use the key stored in the provided KeySlot when the authenticated encrypt or decrypt operation is executed.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 44d0d6c36fa2Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция SetKey в интерфейсе ara::crypto::cryp::AuthCipherCtx конфигурирует контекст для криптографических операций таким образом, чтобы использовался симметричный ключ, сохраненный в предоставленном слоте ключа, как только будет выполняться аутентифицированное шифрование или дешифрование [SWS_CRYPT_50072].
Использование: синхронный вызов выполняется через интерфейс из ara/crypto/cryp/auth_cipher_ctx.h. В качестве параметра keySlot передается экземпляр KeySlot::Sptr, который инкапсулирует симметричный ключ [SWS_CRYPT_50072]. Функция возвращает ara::core::Result<void>, который подтверждает успех или содержит код ошибки [SWS_CRYPT_50072].
Обработка ошибок: если конкретная реализация контекста поддерживает исключительно прямую конфигурацию через объект SymmetricKey и не предлагает установку через KeySlot, вызов завершается сбоем. В этом случае возвращается ошибка ara::crypto::CryptoErrc::kUnsupported с семантикой отката [SWS_CRYPT_50072].
Параллелизм и ограничения: функция специфицирована как thread-safe и exception safe[SWS_CRYPT_50072]. Ее можно вызывать параллельно, и она гарантирует, что в исключительных ситуациях не останется несогласованного состояния.
Взаимодействие: в качестве функциональной альтернативы доступна перегрузка SetKey с прямым SymmetricKey::Sptr[SWS_CRYPT_23911]. После выполнения привязки ключа контекст инициализируется через Start с направлением операции, а также вектором инициализации [SWS_CRYPT_24715]. Аналогичные сигнатуры с KeySlot::Sptr также существуют в MessageAuthnCodeCtx[SWS_CRYPT_50026] и SymmetricKeyWrapperCtx[SWS_CRYPT_50034].
Этот текст был создан ИИ и основан на спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
Initialize the context for a new encryption or decryption and set the IV used by the context.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: da3f0fb3ff33ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод Start инициализирует контекст ara::crypto::cryp::AuthCipherCtx для нового шифрования или расшифрования и задает используемый вектор инициализации (IV) или значение nonce [SWS_CRYPT_24715]. С помощью параметра transformDirection определяется направление преобразования, тогда как iv передает вектор как ReadOnlyMemRegion[SWS_CRYPT_24715]. Допустимый размер IV можно определить через GetMinimumInputIvSize() и GetMaximumInputIvSize(); при отклонении длины функция сообщает об ошибке ara::crypto::CryptoErrc::kInvalidInputSize[SWS_CRYPT_24715].
Перед вызовом должен быть успешно выполнен метод SetKey, иначе возвращается ara::crypto::CryptoErrc::kUninitializedContext[SWS_CRYPT_24715]. Сконфигурированный KeySlot не должен быть ни пустым (EmptyKeySlot), ни занятым (ara::crypto::CryptoErrc::kBusyResource) [SWS_CRYPT_24715]. Кроме того, сохраненный ключ должен быть подходящим SymmetricKey (иначе ara::crypto::CryptoErrc::kIncompatibleObject) и иметь права для требуемого направления (kAllowDataEncrypt или kAllowDataDecrypt, иначе ara::crypto::CryptoErrc::kUsageViolation) [SWS_CRYPT_24715]. Если поддержка потоковой обработки или установки IV в выбранном направлении отсутствует, вызов завершается с ошибкой ara::crypto::CryptoErrc::kUnsupported[SWS_CRYPT_24715]. Все ошибки обладают семантикой отката [SWS_CRYPT_24715].
Операция объявлена как thread-safe, а также exception-safe (noexcept) [SWS_CRYPT_24715]. Во взаимодействии криптографических процессов после успешной инициализации обычно следует передача дополнительных аутентифицированных данных через UpdateAuthenticatedData[SWS_CRYPT_20313]. Вопрос Q-e023e27f1cd24507 (открытый)
Это указание по использованию было создано автоматически на основе релиза AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
the transformation direction, i.e., encryption or decryption
iv
an Initialization Vector (IV) or "nonce" value. The allowed size of the IV can be queried using the functions GetMinimumInputIvSize() and GetMaximumInputIvSize().
rollback_semantics if the allowed usage of the SymmetricKey deployed or contained in the provided KeySlot at the time of invocation of this interface does not include kAllowDataEncrypt for encryption, or kAllowData Decrypt for decryption, respectively
Initialize the context for a new encryption or decryption. An IV is either not required for this context in this transformation direction, or set by the context itself.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f698e30e2198Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Чисто виртуальный метод Start класса ara::crypto::cryp::AuthCipherCtx синхронно инициализирует контекст для предстоящего шифрования или дешифрования [SWS_CRYPT_50073]. Через параметр transformDirection указывается, подготавливается ли контекст для шифрования или дешифрования. Эту перегрузку без вектора инициализации (IV) разрешается использовать только в том случае, если криптографический контекст в выбранном направлении преобразования не требует IV или определяет его самостоятельно [SWS_CRYPT_50073]. Возвращаемым значением является пустой ara::core::Result<void> в случае успеха или соответствующий код ошибки.
Обработка ошибок и предварительные условия
Перед вызовом контекст должен быть успешно сконфигурирован с ключом через SetKey; в противном случае функция завершается неудачно с ara::crypto::CryptoErrc::kUninitializedContext[SWS_CRYPT_50073]. Кроме того, в случае ошибки возникают следующие возвращаемые значения:
ara::crypto::CryptoErrc::kUnsupported, если потоковая обработка не поддерживается контекстом или если контекст в выбранном направлении преобразования строго требует явного указания IV [SWS_CRYPT_50073].
ara::crypto::CryptoErrc::kUsageViolation, если разрешенное использование ключа в сконфигурированном KeySlot на момент вызова не включает необходимое право доступа kAllowDataEncrypt для шифрования или kAllowDataDecrypt для дешифрования [SWS_CRYPT_50073].
EmptyKeySlot или ara::crypto::CryptoErrc::kBusyResource, если сконфигурированный KeySlot в настоящее время пуст или заблокирован [SWS_CRYPT_50073].
ara::crypto::CryptoErrc::kIncompatibleObject, если сконфигурированный KeySlot не содержит SymmetricKey или этот тип ключа не поддерживается контекстом [SWS_CRYPT_50073].
При возникновении ошибки действует специфицированная семантика отката (rollback_semantics) [SWS_CRYPT_50073].
Параллелизм и взаимодействие
Функция объявлена с noexcept=0, гарантирует безопасность исключений и рассчитана на потокобезопасность [SWS_CRYPT_50073]. Если алгоритм требует внешнего предоставления вектора инициализации, вместо этого следует использовать перегрузку Start(CryptoTransform, ReadOnlyMemRegion)[SWS_CRYPT_24715]. После успешной инициализации дополнительные аутентифицированные данные могут быть включены в вычисление тега аутентификации через UpdateAuthenticatedData[SWS_CRYPT_20313].
Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
rollback_semantics if the allowed usage of the SymmetricKey deployed or contained in the provided KeySlot at the time of invocation of this interface does not include kAllowDataEncrypt for encryption, or kAllowData Decrypt for decryption, respectively
virtual ara::core::Result< void > UpdateAuthenticatedData (ReadOnlyMem Region authenticatedData) noexcept=0;
Update the tag calculation by a new chunk of additional authenticated data.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f3852a997444Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод UpdateAuthenticatedData интерфейса ara::crypto::cryp::AuthCipherCtx служит для того, чтобы пошагово обновлять вычисление тега аутентификации очередным фрагментом дополнительных аутентифицированных данных (Additional Authenticated Data) [SWS_CRYPT_20313]. Через параметр authenticatedData соответствующий буфер передаётся как ReadOnlyMemRegion[SWS_CRYPT_20313].
В отношении контекста вызова и параллелизма операция определена как thread-safe, а также exception safe[SWS_CRYPT_20313]. Для вызова действуют строгие условия порядка выполнения:
Трансформация должна быть предварительно инициирована через метод Start(), в противном случае сообщается о ara::crypto::CryptoErrc::kProcessingNotStarted[SWS_CRYPT_20313].
Функцию больше нельзя вызывать, если UpdateConfidentialData уже был выполнен; в случае несоблюдения возвращается ошибка ara::crypto::CryptoErrc::kInvalidUsageOrder[SWS_CRYPT_20313].
В качестве возвращаемого значения функция предоставляет ara::core::Result<void>, который в случае успеха пуст или инкапсулирует возникший код ошибки [SWS_CRYPT_20313]. Все ошибки обладают семантикой отката (rollback) [SWS_CRYPT_20313]:
ara::crypto::CryptoErrc::kInvalidInputSize: размер переданного входного буфера недопустим [SWS_CRYPT_20313].
ara::crypto::CryptoErrc::kUnsupported: потоковая обработка не поддерживается текущим контекстом [SWS_CRYPT_20313].
Этот текст сгенерирован ИИ и служит в качестве справочного материала. Обязательную силу имеет спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
Encrypt or decrypt confidential data. When used for decryption, the plaintext is returned without verifying its authenticity. An application must not use the data before verifying its authenticity using Finish().
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0a7976c267f4Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод UpdateConfidentialData класса ara::crypto::cryp::AuthCipherCtx служит для пошагового шифрования или расшифрования конфиденциальных полезных данных в рамках контекста аутентифицированного шифрования [SWS_CRYPT_50074]. Ему передаются входной буфер in (тип ReadOnlyMemRegion) с частью открытого или зашифрованного текста, а также выходной буфер out (тип ReadWriteMemRegion) [SWS_CRYPT_50074]. В качестве синхронного возвращаемого значения функция возвращает ara::core::Result<std::size_t>, которое при успехе содержит фактически записанное количество байтов; оно может быть меньше ёмкости out[SWS_CRYPT_50074].
В отношении хода выполнения и параллелизма действуют следующие условия:
Порядок выполнения и целостность: перед обработкой операция должна быть инициирована через Start()[SWS_CRYPT_50074]. Если метод используется для расшифрования, открытый текст выдаётся без предварительной проверки подлинности; приложению категорически запрещено использовать эти данные до завершающей верификации с помощью Finish()[SWS_CRYPT_50074]. Дополнительные аутентифицированные данные могут параллельно поступать в вычисление тега через UpdateAuthenticatedData[SWS_CRYPT_20313].
Потокобезопасность и безопасность исключений: операция объявлена как thread-safe, а также exception-safe и не генерирует исключений (noexcept) [SWS_CRYPT_50074].
В случае сбоя обработки применяется семантика отката с возвратом соответствующего кода ошибки в ara::core::Result[SWS_CRYPT_50074]:
ara::crypto::CryptoErrc::kProcessingNotStarted: обработка ещё не была инициирована через Start()[SWS_CRYPT_50074].
ara::crypto::CryptoErrc::kInsufficientCapacity: выходной буфер out имеет слишком малый размер [SWS_CRYPT_50074].
ara::crypto::CryptoErrc::kInvalidInputSize: размер буфера in недопустим [SWS_CRYPT_50074].
ara::crypto::CryptoErrc::kUnsupported: потоковая обработка не поддерживается контекстом [SWS_CRYPT_50074].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал