DEENESPTFRRUARHIKOZHNL

класс ara::crypto::cryp::HashFunctionCtx

[SWS_CRYPT_21100] Upstream: RS_CRYPTO_02205

class HashFunctionCtx :           public CryptoContext {...};

Hash function interface.

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

Руководство пользователяСОЗДАНО ИИ

Вычисляет криптографические хеш-значения для непрерывных потоков данных или отдельных блоков памяти.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bf2cec48587e Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Вычисляет криптографические хеш-значения для непрерывных потоков данных или отдельных блоков памяти.

Класс ara::crypto::cryp::HashFunctionCtx предоставляет интерфейс для вычисления криптографических хеш-значений для блоков памяти и потоков данных ([SWS_CRYPT_50060]). Потоковые операции требуют соблюдения цикла обработки, состоящего из инициализации с помощью Start(), пошаговой передачи данных через Update(), финализации посредством Finish() и последующего считывания через GetDigest() ([SWS_CRYPT_21116]). Все методы специфицированы как потокобезопасные, гарантируют семантику отката (rollback) и детерминированно сообщают об ошибках последовательности или буфера через объекты результатов.

Контекст

Класс ara::crypto::cryp::HashFunctionCtx определяет интерфейс для вычисления криптографических хеш-значений и контрольных сумм в модуле crypto AUTOSAR Adaptive Platform. Являясь специализацией CryptoContext, он предоставляет методы как для одиночных вызовов без сохранения состояния, так и для потоковых процедур с сохранением состояния. Управление жизненным циклом и владением обычно осуществляется через псевдоним типа умного указателя Sptr ([SWS_CRYPT_21101]), определенный как std::shared_ptr<HashFunctionCtx>.

К основным участникам взаимодействия относятся:

  • Вызывающее приложение: управляет жизненным циклом вычисления и передает входные данные поблочно или в виде целого сообщения.
  • Области памяти: входные данные, векторы инициализации (IV), а также выходные буферы и буферы состояния передаются через ReadOnlyMemRegion и ReadWriteMemRegion.
  • Объекты ключей: через CryptoObject::Sptr криптографические ключи могут напрямую включаться в вычисление хеша в качестве источника данных ([SWS_CRYPT_50057]).
  • Crypto Provider: интерпретация: экземпляры HashFunctionCtx, вероятно, обычно создаются через соответствующий Crypto Provider; обмен экспортированными состояниями контекста обязательно предполагает использование одного и того же Crypto Provider и одного и того же идентификатора алгоритма (ID) ([SWS_CRYPT_50065]). Вопрос Q-8365d4bee96bbf67 (открытый)

Жизненный цикл

Экземпляр HashFunctionCtx в ходе потоковой обработки проходит через несколько дискретных состояний:

hash_states Bereit Bereit InVerarbeitung InVerarbeitung Bereit->InVerarbeitung Start() / Start(iv) Bereit->InVerarbeitung ImportContextState() InVerarbeitung->Bereit Cancel() / Start() InVerarbeitung->InVerarbeitung Update() / GetIntermediateDigest() Abgeschlossen Abgeschlossen InVerarbeitung->Abgeschlossen Finish() Unterbrochen Unterbrochen InVerarbeitung->Unterbrochen ExportContextState() Abgeschlossen->Bereit Start()

Диаграмма состояний: переходы состояний хеш-контекста при инициализации, обработке и завершении. Источники: [SWS_CRYPT_50152], [SWS_CRYPT_50153], [SWS_CRYPT_21113], [SWS_CRYPT_50058], [SWS_CRYPT_21115], [SWS_CRYPT_50064], [SWS_CRYPT_50065]

После создания контекст находится в незапущенном состоянии. При вызове Start() без IV ([SWS_CRYPT_50152]) или Start(iv) с вектором инициализации ([SWS_CRYPT_50153]) контекст переходит в активную фазу обработки. Уже выполняющиеся вычисления неявно сбрасываются повторным вызовом запуска.

В состоянии обработки входные данные аккумулируются посредством повторяющихся вызовов Update() с сырыми фрагментами данных ([SWS_CRYPT_21113]) или ключами ([SWS_CRYPT_50057]). С помощью GetIntermediateDigest() может быть вычислен промежуточный результат без завершения контекста или прерывания потока данных ([SWS_CRYPT_50059]). Текущую операцию потоковой передачи можно прервать в любой момент с помощью Cancel() ([SWS_CRYPT_50058]), в результате чего контекст возвращается в незапущенное состояние.

Вызов Finish() переводит контекст в состояние «завершено» ([SWS_CRYPT_21115]). Только в этом состоянии результирующее хеш-значение может быть извлечено через GetDigest() ([SWS_CRYPT_21116]) или напрямую проверено на соответствие ожидаемому значению через Compare() ([SWS_CRYPT_50154]).

Для приостановки и последующего возобновления вычислений требуемый размер буфера можно запросить с помощью GetContextStateSize() ([SWS_CRYPT_50063]), а внутреннее состояние сохранить через ExportContextState() ([SWS_CRYPT_50064]). Возобновление выполняется через ImportContextState() ([SWS_CRYPT_50065]). Все методы интерфейса объявлены безопасными относительно исключений (exception safe) и потокобезопасными (thread-safe).

Путь использования

Класс поддерживает два режима обработки: прямое одношаговое вычисление и сегментированную потоковую обработку.

Одношаговое вычисление выполняется через CalculateHashDigest() ([SWS_CRYPT_50060]). При этом передаются входные данные, опциональный IV и целевая область памяти, а хеш-значение вычисляется за одну атомарную операцию.

Для больших объемов данных или непрерывных потоков данных используется потоковый путь:

Потоковая обработка хеш-значенияПриложениеHashFunctionCtxStart()Result<void>loopДля каждого блока данныхUpdate(data)Result<void>Finish()Result<void>GetDigest(digest)Result<std::size_t>

Диаграмма последовательности: типовой процесс потокового вычисления через Start, Update, Finish и GetDigest. Источники: [SWS_CRYPT_50152], [SWS_CRYPT_21113], [SWS_CRYPT_21115], [SWS_CRYPT_21116]

  1. Проверка вместимости: запрос выходного размера через GetDigestSize() ([SWS_CRYPT_50061]) и максимального размера блока через GetMaximumChunkSize() ([SWS_CRYPT_50062]).
  2. Инициализация: подготовка контекста путем вызова Start() ([SWS_CRYPT_50152]) или Start(iv) ([SWS_CRYPT_50153]).
  3. Передача данных: последовательная передача блоков данных через Update(data) ([SWS_CRYPT_21113]) или ключей через Update(key) ([SWS_CRYPT_50057]).
  4. Финализация: завершение аккумуляции хеш-значения с помощью Finish() ([SWS_CRYPT_21115]).
  5. Оценка результата: считывание вычисленного хеш-значения с помощью GetDigest() ([SWS_CRYPT_21116]) или сравнение на месте с эталонным значением через Compare() ([SWS_CRYPT_50154]).

Сценарии ошибок

Методы HashFunctionCtx сигнализируют об ошибках через ara::core::Result и гарантируют семантику отката при ошибках. Типичными причинами ошибок являются:

  • Нарушения последовательности: Если Update() ([SWS_CRYPT_21113], [SWS_CRYPT_50057]) или Cancel() ([SWS_CRYPT_50058]) вызывается без предшествующего успешного вызова Start(), возвращается CryptoErrc::kProcessingNotStarted. Если Finish() ([SWS_CRYPT_21115]) или GetIntermediateDigest() ([SWS_CRYPT_50059]) вызывается без предварительной инициализации, контекст сообщает CryptoErrc::kInvalidUsageOrder. Запрос результатов через GetDigest() ([SWS_CRYPT_21116]) или Compare() ([SWS_CRYPT_50154]) до выполнения Finish() завершается с ошибкой CryptoErrc::kProcessingNotFinished.
  • Проблемы с буфером и размером: Если выходного буфера недостаточно, CalculateHashDigest() ([SWS_CRYPT_50060]), GetDigest() ([SWS_CRYPT_21116]), GetIntermediateDigest() ([SWS_CRYPT_50059]), а также ExportContextState() ([SWS_CRYPT_50064]) возвращают ошибку CryptoErrc::kInsufficientCapacity. Неподдерживаемая длина входных данных или IV приводит в CalculateHashDigest(), Start(iv) ([SWS_CRYPT_50153]) и Update() к CryptoErrc::kInvalidInputSize.
  • Несовместимость и отсутствие поддержки функций: CryptoErrc::kUnsupported сигнализирует о том, что одиночные вызовы не поддерживаются ([SWS_CRYPT_50060]), наличие IV не соответствует хеш-функции ([SWS_CRYPT_50152], [SWS_CRYPT_50153]), промежуточные результаты не предоставляются ([SWS_CRYPT_50059]), экспорт/импорт контекста не поддерживается ([SWS_CRYPT_50063], [SWS_CRYPT_50064], [SWS_CRYPT_50065]) или хеширование ключей недопустимо ([SWS_CRYPT_50057]).
  • Валидация объектов и права: При передаче ключей через Update(key) несовместимый ключ приводит к CryptoErrc::kIncompatibleObject, а отсутствие разрешения для kAllowHashCalculation — к CryptoErrc::kUsageViolation ([SWS_CRYPT_50057]). Недопустимое содержимое буфера при ImportContextState() вызывает CryptoErrc::kInvalidArgument ([SWS_CRYPT_50065]).
  • Нехватка ресурсов: Если требуемый криптографический ресурс занят, Start() подтверждает попытку с CryptoErrc::kBusyResource ([SWS_CRYPT_50152], [SWS_CRYPT_50153]).

Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform R25-11.

Карта членов

Диаграмма классов

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

G nara__crypto__cryp__HashFunctionCtx412 HashFunctionCtx + CalculateHashDigest() + Cancel() + Compare() + ExportContextState() + Finish() + GetContextStateSize() + GetDigest() + GetDigestSize() + GetIntermediateDigest() + GetMaximumChunkSize() + ImportContextState() + Start() + Update() nara__crypto__cryp__CryptoContext85 CryptoContext nara__crypto__cryp__HashFunctionCtx412->nara__crypto__cryp__CryptoContext85

Подробный вид

Выберите элемент в оглавлении.

Методы

CalculateHashDigest функция

Calculate the hash digest and write the the calculated digest into the provided output buffer.

virtual ara::core::Result< std::size_t > CalculateHashDigest (ReadOnly MemRegion data, ReadWriteMemRegion digest, ara::core::Optional< Read OnlyMemRegion > iv) const noexcept=0;
Cancel функция

Cancel the ongoing streaming operation that has been initiated by Start() and has not yet been finished.

virtual ara::core::Result< void > Cancel () noexcept=0;
Compare функция

Compare the size and content of the calculated digest against an expected value.

virtual ara::core::Result< bool > Compare (ReadOnlyMemRegion expected) const noexcept=0;
ExportContextState функция

Write the current state of this hash context into the provided output buffer contextState. This function can be used to suspend an ongoing hash operation and resume it at a later point in time.

virtual ara::core::Result< void > ExportContextState (ReadWriteMem Region contextState) const noexcept=0;
Finish функция

Finish the digest calculation.

virtual ara::core::Result< void > Finish () noexcept=0;
GetContextStateSize функция

Get the buffer size required to store the state of this context using ExportContextState()

virtual ara::core::Result< std::size_t > GetContextStateSize () const noexcept=0;
GetDigest функция

Write the calculated hash digest into the provided output buffer.

virtual ara::core::Result< std::size_t > GetDigest (ReadWriteMemRegion digest) const noexcept=0;
GetDigestSize функция

Get the output digest size.

virtual ara::core::Result< std::size_t > GetDigestSize () const noexcept=0;
GetIntermediateDigest функция

Calculate the hash digest with the data provided to the hash context and write the calculated hash digest into the provided output buffer. The hash digest is equal to the hash digest returned when calling Finish() and GetDigest(), however, after calling GetIntermediateDigest(), this context can still be updated with additional data.

virtual ara::core::Result< std::size_t > GetIntermediateDigest (Read WriteMemRegion digest) const noexcept=0;
GetMaximumChunkSize функция

Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), or CalculateHashDigest() by this context.

virtual ara::core::Result< std::size_t > GetMaximumChunkSize () const noexcept=0;
ImportContextState функция

Set the current state of this hash context to the state provided by contextState. This function can be used to resume a previously suspended hash operation. The contextState must have been exported from a HashFunctionCtx with the same AlgorithmId provided by the same Crypto Provider as the current context using the function ExportContextState(). The current state of this context (e.g., any ongoing hash calculation) will be replaced by the state provided to this function.

virtual ara::core::Result< void > ImportContextState (ReadOnlyMem Region contextState) noexcept=0;
Start функция 2

Initialize the context for processing of a hash digest without an IV. Will cancel any ongoing hash calculation.

Перегрузки Start 2
virtual ara::core::Result< void > Start () noexcept=0; SWS_CRYPT_50152
virtual ara::core::Result< void > Start (ReadOnlyMemRegion iv) noexcept=0; SWS_CRYPT_50153
Update функция 2

Update the digest calculation context by a new part of the message.

Перегрузки Update 2
virtual ara::core::Result< void > Update (ReadOnlyMemRegion data) noexcept=0; SWS_CRYPT_21113
virtual ara::core::Result< void > Update (CryptoObject::Sptr key) noexcept=0; SWS_CRYPT_50057

Псевдонимы типов

Sptr псевдоним типа

Smart pointer of the interface.

Документация методов

функция CalculateHashDigest [SWS_CRYPT_50060] Upstream: RS_CRYPTO_02205

virtual ara::core::Result< std::size_t > CalculateHashDigest (ReadOnly MemRegion data, ReadWriteMemRegion digest, ara::core::Optional< Read OnlyMemRegion > iv) const noexcept=0;

Calculate the hash digest and write the the calculated digest into the provided output buffer.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: adb7aefb7feb Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод CalculateHashDigest выполняет синхронное one-shot-вычисление криптографического хеш-значения и записывает результат в предоставленный выходной буфер [SWS_CRYPT_50060]. В качестве параметров передаются обрабатываемое входное сообщение data, целевой буфер digest, а также необязательный вектор инициализации iv. При успешном выполнении функция через объект результата ara::core::Result<std::size_t> возвращает фактическое количество записанных байтов дайджеста [SWS_CRYPT_50060].

Обработка ошибок

Если вычисление завершается сбоем, интерфейс гарантирует семантику отката [SWS_CRYPT_50060]. Результат может содержать следующие коды ошибок:

  • ara::crypto::CryptoErrc::kInvalidInputSize: размер переданных данных или вектора инициализации не поддерживается [SWS_CRYPT_50060].
  • ara::crypto::CryptoErrc::kUnsupported: вычисление single-call не поддерживается контекстом или передача вектора инициализации не соответствует конфигурации контекста (IV требуется, но отсутствует, либо IV передан, хотя не поддерживается) [SWS_CRYPT_50060].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: емкости выходного буфера digest недостаточно для вычисленного дайджеста [SWS_CRYPT_50060].

Параллелизм и взаимодействие

Функция объявлена как безопасная к исключениям (exception safe) и потокобезопасная (thread-safe) [SWS_CRYPT_50060]. Чтобы заранее избежать ошибок, связанных с недопустимой длиной входных данных, максимально допустимый для одиночного вызова размер буфера контекста можно определить через GetMaximumChunkSize [SWS_CRYPT_50062].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

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

Parameter (in)

ParameterBeschreibung
datathe input message that should be processed
ivan optional initialization vector

Parameter (out)

ParameterBeschreibung
digestan output data buffer that the digest will be written into.

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the digest or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics if the size of provided data or IV is not supported
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if single-call operation is not supported, or if the context requires setting an IV but no IV is provided, or if the context does not support setting an IV but an IV is provided
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50060
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50060@rel:R25-11#d8df4b3b
Content hash
d8df4b3b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50060
Status: valid/unmigrated Version: rel:R25-11#29fd4c6d 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_50060@rel:R25-11#29fd4c6d
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

функция Cancel [SWS_CRYPT_50058] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Cancel () noexcept=0;

Cancel the ongoing streaming operation that has been initiated by Start() and has not yet been finished.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5c8d759c011a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Метод Cancel() служит для целенаправленного прерывания выполняющейся потоковой операции, которая ранее была начата через метод Start() и ещё не завершена штатным образом [SWS_CRYPT_50058]. Вызов выполняется синхронно и без параметров на экземпляре ara::crypto::cryp::HashFunctionCtx из заголовочного файла ara/crypto/cryp/hash_function_ctx.h [SWS_CRYPT_50058]. При успешном выполнении операция возвращает пустой ara::core::Result<void> [SWS_CRYPT_50058].

Обработка ошибок

Если во время выполнения возникает проблема, возвращаемый ara::core::Result содержит соответствующее значение ошибки [SWS_CRYPT_50058]. Если обработка перед вызовом Cancel() не была инициирована через Start(), прерывание завершается сбоем и возвращает специфический код ошибки ara::crypto::CryptoErrc::kProcessingNotStarted с семантикой отката [SWS_CRYPT_50058].

Параллелизм и ограничения

Интерфейс определён как thread-safe и exception safe и объявлен с noexcept [SWS_CRYPT_50058]. Важным функциональным предусловием является то, что обработка данных должна находиться в активном состоянии, созданном предшествующим вызовом Start() [SWS_CRYPT_50058].

Взаимодействие

Шаблон, реализованный посредством Cancel(), стандартизирован для различных потоковых контекстов стека Crypto. Точно совпадающую семантику и сигнализацию об ошибках имеют также контексты VerifierPublicCtx [SWS_CRYPT_50023], MessageAuthnCodeCtx [SWS_CRYPT_50027], SignerPrivateCtx [SWS_CRYPT_50041], SymmetricCipherCtx [SWS_CRYPT_50046], DecryptorPrivateCtx [SWS_CRYPT_50069], AuthCipherCtx [SWS_CRYPT_50077] и EncryptorPublicCtx [SWS_CRYPT_50089].

Это указание по использованию основано на спецификации AUTOSAR Adaptive R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

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

Rückgabewert

TypBeschreibung
ara::core::Result< void >an empty result if the ongoing streaming operation was cancelled successfully, or a result containing an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotStartedrollback_semantics if data processing was not started by a call of the Start() method

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50058
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50058@rel:R25-11#e90cc466
Content hash
e90cc466
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50058
Status: valid/unmigrated Version: rel:R25-11#69ced25c 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_50058@rel:R25-11#69ced25c
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

функция Compare [SWS_CRYPT_50154] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< bool > Compare (ReadOnlyMemRegion expected) const noexcept=0;

Compare the size and content of the calculated digest against an expected value.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1c3bf0837502 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Compare класса ara::crypto::cryp::HashFunctionCtx ([SWS_CRYPT_50154]) синхронно сравнивает размер и содержимое предварительно вычисленного хэш-дайджеста с ожидаемым эталонным значением. Заданное значение передается через параметр expected типа ReadOnlyMemRegion. В случае успеха функция возвращает ara::core::Result<bool>, который содержит true тогда и только тогда, когда ожидаемая последовательность байтов идентична вычисленному дайджесту.

Предварительным условием для вызова является предварительное завершение вычисления дайджеста методом Finish(). Если это не так, вызов завершается с ошибкой и возвращает ошибку ara::crypto::CryptoErrc::kProcessingNotFinished с семантикой отката ([SWS_CRYPT_50154]). Интерпретация: отличающаяся длина или несовпадающее содержимое expected, предположительно, приводит не к коду ошибки, а к регулярному false в объекте результата. Вопрос Q-fdd0ecaec22f6985 (открытый)

Что касается параллелизма, метод специфицирован как thread-safe и exception safe ([SWS_CRYPT_50154]). Благодаря объявлению как noexcept он не генерирует исключений C++.

В родственных криптографических контекстах применяется тот же шаблон проверки: для Message Authentication Codes метод ara::crypto::cryp::MessageAuthnCodeCtx::Compare ([SWS_CRYPT_50133]) сравнивает размер и содержимое вычисленного значения MAC, тогда как CompareSubspan ([SWS_CRYPT_50028]) проверяет старшие биты. Оба метода одинаково требуют предварительно завершенного вычисления.

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R25-11.

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

Parameter (in)

ParameterBeschreibung
expectedthe memory region containing an expected digest value

Rückgabewert

TypBeschreibung
ara::core::Result< bool >true if the expected byte sequence is identical to the calculated digest

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotFinishedrollback_semantics if the digest calculation was not finished by a call of the Finish() method

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50154
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50154@rel:R25-11#83f7eb1b
Content hash
83f7eb1b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50154
Status: valid/unmigrated Version: rel:R25-11#d6c1faba 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_50154@rel:R25-11#d6c1faba
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

функция ExportContextState [SWS_CRYPT_50064] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< void > ExportContextState (ReadWriteMem Region contextState) const noexcept=0;

Write the current state of this hash context into the provided output buffer contextState. This function can be used to suspend an ongoing hash operation and resume it at a later point in time.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 78b3b1c67b6a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод [SWS_CRYPT_50064] класса ara::crypto::cryp::HashFunctionCtx синхронно записывает текущее состояние контекста хеширования в переданный выходной буфер contextState типа ReadWriteMem Region. Это позволяет приложениям прерывать текущую операцию криптографического хеширования и возобновлять ее позднее. При успешном выполнении вызов возвращает пустой ara::core::Result<void>.

Взаимодействие и определение размера буфера

Чтобы предотвратить ошибки памяти, строго необходимый размер буфера в байтах следует предварительно запросить через функцию [SWS_CRYPT_50063]. Экспортированное состояние впоследствии может быть снова загружено в контекст хеширования с помощью [SWS_CRYPT_50065]. Необходимым условием для этого является то, чтобы целевой контекст имел ту же AlgorithmId и предоставлялся тем же Crypto Provider, что и исходный контекст. При импорте любое существующее состояние вычислений полностью перезаписывается.

Обработка ошибок

Если операция завершается неудачно, ошибка возвращается в ara::core::Result. Специфицированы следующие коды ошибок из ara::crypto::CryptoErrc:

  • ara::crypto::CryptoErrc::kUnsupported: конкретный контекст не поддерживает экспорт или импорт состояний.
  • ara::crypto::CryptoErrc::kInsufficientCapacity: емкости переданного буфера contextState недостаточно для размещения состояния.

Для обоих случаев ошибок определена семантика отката, благодаря чему состояние объекта остается неизменным.

Параллелизм и надёжность выполнения

Интерфейс объявлен как const и noexcept. Согласно спецификации, вызов является как потокобезопасным (thread-safe), так и безопасным к исключениям (exception-safe).

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

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

Parameter (out)

ParameterBeschreibung
contextStatean output data buffer that the state of the context will be written into.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support im-/exporting the context state
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50064
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50064@rel:R25-11#a3a58202
Content hash
a3a58202
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50064
Status: valid/unmigrated Version: rel:R25-11#10cf645c 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_50064@rel:R25-11#10cf645c
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

функция Finish [SWS_CRYPT_21115] Upstream: RS_CRYPTO_02302, RS_CRYPTO_02205

virtual ara::core::Result< void > Finish () noexcept=0;

Finish the digest calculation.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3afea8abb39d Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронный метод Finish() завершает вычисление хеш-значения в ara::crypto::cryp::HashFunctionCtx [SWS_CRYPT_21115]. Беспараметрический вызов возвращает ara::core::Result<void>, который сигнализирует об успешном завершении или инкапсулирует ошибку [SWS_CRYPT_21115]. Интерфейс объявлен как noexcept, а также специфицирован как безопасный к исключениям (exception safe) и потокобезопасный (thread-safe) [SWS_CRYPT_21115].

Обработка ошибок и параллелизм

Если вычисление хеша перед вызовом не было успешно запущено, метод завершается с ошибкой ara::crypto::CryptoErrc::kInvalidUsageOrder [SWS_CRYPT_21115]. Для этого случая ошибки определена семантика отката (rollback), поэтому вызывающие стороны перед финализацией обязательно должны следить за надлежащим запуском контекста [SWS_CRYPT_21115].

Взаимодействие

После успешного вызова Finish() вычисленный хеш-дайджест обычно переносится с помощью GetDigest() в предоставленный буфер [SWS_CRYPT_21116], [SWS_CRYPT_50059]. Для разграничения служит GetIntermediateDigest(): эта функция возвращает то же хеш-значение, что и последовательность Finish() и GetDigest(), однако затем допускает передачу дальнейших данных [SWS_CRYPT_50059]. Интерпретация: после вызова Finish() вычисление, вероятно, окончательно завершено, и контекст больше не принимает дополнительных данных. Вопрос Q-f4daf29364f45fd5 (открытый) Допустимые размеры буфера для шагов обработки в контексте можно запросить через GetMaximumChunkSize() [SWS_CRYPT_50062].

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR R25-11.

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

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidUsageOrderrollback_semantics the hash calculation has not been started successfully.

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21115
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21115@rel:R25-11#61544223
Content hash
61544223
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21115
Status: valid/unmigrated Version: rel:R25-11#03ec3455 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_21115@rel:R25-11#03ec3455
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#5c49c1122026-09-30
  • R20-11rel:R20-11#23a4ded62026-10-14
  • R21-11rel:R21-11#33ec9dc92026-10-14
  • R22-11rel:R22-11#13315a192026-10-14
  • R23-11rel:R23-11#6b14e99d2026-10-14
  • R24-11rel:R24-11#de528ef72026-10-14
  • R25-11rel:R25-11#03ec34552026-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

функция GetContextStateSize [SWS_CRYPT_50063] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< std::size_t > GetContextStateSize () const noexcept=0;

Get the buffer size required to store the state of this context using ExportContextState()

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

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing required context state buffer size in bytes or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support im-/exporting the context state

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50063
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50063@rel:R25-11#c031fcea
Content hash
c031fcea
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50063
Status: valid/unmigrated Version: rel:R25-11#c5c390c7 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_50063@rel:R25-11#c5c390c7
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

функция GetDigest [SWS_CRYPT_21116] Upstream: RS_CRYPTO_02205

virtual ara::core::Result< std::size_t > GetDigest (ReadWriteMemRegion digest) const noexcept=0;

Write the calculated hash digest into the provided output buffer.

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

Parameter (out)

ParameterBeschreibung
digestan output data buffer that the hash digest will be written into

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the hash digest or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotFinishedrollback_semantics if the hash calculation was not finished by a call of the Finish() method
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21116
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21116@rel:R25-11#de7b3859
Content hash
de7b3859
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21116
Status: valid/unmigrated Version: rel:R25-11#5176bc54 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_21116@rel:R25-11#5176bc54
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#d36ab7962026-09-30
  • R20-11rel:R20-11#6044ba662026-10-14
  • R21-11rel:R21-11#c195cbba2026-10-14
  • R22-11rel:R22-11#32e02a4e2026-10-14
  • R23-11rel:R23-11#7888ecb32026-10-14
  • R24-11rel:R24-11#96e2c5772026-10-14
  • R25-11rel:R25-11#5176bc542026-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

функция GetDigestSize [SWS_CRYPT_50061] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< std::size_t > GetDigestSize () const noexcept=0;

Get the output digest size.

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

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size of the output from this digest-function in bytes or an error

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50061
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50061@rel:R25-11#f7be8d23
Content hash
f7be8d23
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50061
Status: valid/unmigrated Version: rel:R25-11#739a55c8 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_50061@rel:R25-11#739a55c8
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

функция GetIntermediateDigest [SWS_CRYPT_50059] Upstream: RS_CRYPTO_02205

virtual ara::core::Result< std::size_t > GetIntermediateDigest (Read WriteMemRegion digest) const noexcept=0;

Calculate the hash digest with the data provided to the hash context and write the calculated hash digest into the provided output buffer. The hash digest is equal to the hash digest returned when calling Finish() and GetDigest(), however, after calling GetIntermediateDigest(), this context can still be updated with additional data.

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

Parameter (out)

ParameterBeschreibung
digestan output data buffer that the hash digest will be written into

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the hash digest or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidUsageOrderrollback_semantics the hash calculation has not been started successfully.
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support getting an intemediate digest

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50059
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50059@rel:R25-11#f6f48f93
Content hash
f6f48f93
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50059
Status: valid/unmigrated Version: rel:R25-11#9bc73898 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_50059@rel:R25-11#9bc73898
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

функция GetMaximumChunkSize [SWS_CRYPT_50062] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< std::size_t > GetMaximumChunkSize () const noexcept=0;

Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), or CalculateHashDigest() by this context.

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

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the maximum buffer size in bytes or an error

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50062
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50062@rel:R25-11#4de01d07
Content hash
4de01d07
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50062
Status: valid/unmigrated Version: rel:R25-11#17fdd281 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_50062@rel:R25-11#17fdd281
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

функция ImportContextState [SWS_CRYPT_50065] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< void > ImportContextState (ReadOnlyMem Region contextState) noexcept=0;

Set the current state of this hash context to the state provided by contextState. This function can be used to resume a previously suspended hash operation. The contextState must have been exported from a HashFunctionCtx with the same AlgorithmId provided by the same Crypto Provider as the current context using the function ExportContextState(). The current state of this context (e.g., any ongoing hash calculation) will be replaced by the state provided to this function.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 16a68c3d97e9 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод ImportContextState класса ara::crypto::cryp::HashFunctionCtx (определенный в ara/crypto/cryp/hash_function_ctx.h) служит для восстановления внутреннего состояния контекста хэширования из переданного буфера и тем самым продолжения ранее прерванной операции хэширования [SWS_CRYPT_50065]. Любое текущее состояние вычисления текущего контекста при этом полностью заменяется импортированным состоянием [SWS_CRYPT_50065].

Вызов и предварительные условия

Синхронный вызов выполняется через сигнатуру ImportContextState(ReadOnlyMem Region contextState) noexcept и возвращает ara::core::Result<void> [SWS_CRYPT_50065]. К параметру contextState предъявляются следующие обязательные требования:

  • Буфер данных должен быть предварительно экспортирован с помощью метода ExportContextState() из экземпляра HashFunctionCtx [SWS_CRYPT_50065].
  • Исходный контекст должен был обладать тем же AlgorithmId и быть предоставлен тем же Crypto Provider, что и целевой контекст [SWS_CRYPT_50065].

Обработка ошибок и параллелизм

В случае ошибки возвращается код ошибки с семантикой отката (rollback), благодаря чему текущее состояние контекста при неудаче остаётся неизменным [SWS_CRYPT_50065]:

  • ara::crypto::CryptoErrc::kInvalidArgument: аргумент contextState содержит недопустимые данные [SWS_CRYPT_50065].
  • ara::crypto::CryptoErrc::kUnsupported: данный контекст не поддерживает экспорт и импорт состояний контекста [SWS_CRYPT_50065].

Операция специфицирована как thread-safe и exception safe [SWS_CRYPT_50065].

Данное указание по использованию основано на спецификации AUTOSAR Adaptive релиза R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

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

Parameter (in)

ParameterBeschreibung
contextStatea data buffer that contains a previously exported state of the context

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support im-/exporting the context state
ara::crypto::CryptoErrc::kInvalidArgumentrollback_semantics if the contextState argument contains invalid data

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50065@rel:R25-11#6b2e29cd
Content hash
6b2e29cd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50065
Status: valid/unmigrated Version: rel:R25-11#7db4f4c5 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_50065@rel:R25-11#7db4f4c5
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

функция Start [SWS_CRYPT_50152] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Start () noexcept=0;

Initialize the context for processing of a hash digest without an IV. Will cancel any ongoing hash calculation.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6588b8251bb2 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Start() интерфейса ara::crypto::cryp::HashFunctionCtx инициализирует контекст для пошагового вычисления хеш-значения без вектора инициализации (IV) [SWS_CRYPT_50152]. Повторный вызов прерывает возможное уже выполняющееся вычисление хеша и настраивает контекст для нового вычисления [SWS_CRYPT_50152].

Функция является синхронной, не принимает параметров и возвращает ara::core::Result<void> [SWS_CRYPT_50152]. Если при инициализации возникает ошибка, применяется семантика отката со следующими специфическими кодами ошибок [SWS_CRYPT_50152]:

  • ara::crypto::CryptoErrc::kUnsupported: используемая хеш-функция обязательно ожидает вектор инициализации [SWS_CRYPT_50152].
  • ara::crypto::CryptoErrc::kBusyResource: внутренний ресурс, обязательно необходимый для операции, занят [SWS_CRYPT_50152].

В отношении параллелизма метод специфицирован как thread-safe, а также exception safe и объявлен как noexcept [SWS_CRYPT_50152]. После успешной инициализации части сообщения могут последовательно подаваться через метод Update() контекста [SWS_CRYPT_21113]. Поскольку вызов прерывает выполняющиеся вычисления, на практике функция, вероятно, служит также механизмом сброса перед перезапуском. Вопрос Q-9c369489a6c6e8cb (открытый)

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR для R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

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

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics the used hash function expects an IV
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50152
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50152@rel:R25-11#280d6b44
Content hash
280d6b44
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50152
Status: valid/unmigrated Version: rel:R25-11#b2ed1e78 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_50152@rel:R25-11#b2ed1e78
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

функция Start [SWS_CRYPT_50153] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Start (ReadOnlyMemRegion iv) noexcept=0;

Initialize the context for processing of a hash digest with an IV. Will cancel any ongoing hash calculation.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3e6743c0173b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция Start интерфейса ara::crypto::cryp::HashFunctionCtx инициализирует контекст для вычисления хеш-дайджеста с использованием вектора инициализации (IV) [SWS_CRYPT_50153]. В качестве параметра вектор инициализации iv передается через ReadOnlyMemRegion [SWS_CRYPT_50153]. Синхронный вызов возвращает ara::core::Result<void>, которое в случае успеха не содержит возвращаемого значения [SWS_CRYPT_50153]. Вызов также прерывает возможное уже выполняющееся вычисление хеша в этом контексте [SWS_CRYPT_50153].

Обработка ошибок

Если при инициализации возникает ошибка, возвращается соответствующий код ошибки, причем для всех случаев ошибок гарантируется семантика отката [SWS_CRYPT_50153]:

  • ara::crypto::CryptoErrc::kInvalidInputSize: размер предоставленного вектора инициализации не поддерживается [SWS_CRYPT_50153].
  • ara::crypto::CryptoErrc::kUnsupported: базовая хеш-функция не использует вектор инициализации [SWS_CRYPT_50153].
  • ara::crypto::CryptoErrc::kBusyResource: ресурс, необходимый для инициализации, занят [SWS_CRYPT_50153].

Параллелизм и взаимодействие

Интерфейс объявлен как noexcept, а также специфицирован как потокобезопасный (thread-safe) и безисключительный (exception safe) [SWS_CRYPT_50153]. В типичном сценарии вызов образует предварительное условие для последующей пошаговой обработки входного сообщения через метод Update [SWS_CRYPT_21113].

Это указание по использованию было создано автоматически на основе спецификации AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

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

Parameter (in)

ParameterBeschreibung
ivthe used Initialization Vector (IV)

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics the size of provided IV is not supported
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics the used hash function does not use an IV
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50153
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50153@rel:R25-11#2f81b708
Content hash
2f81b708
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50153
Status: valid/unmigrated Version: rel:R25-11#8543358e 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_50153@rel:R25-11#8543358e
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

функция Update [SWS_CRYPT_21113] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Update (ReadOnlyMemRegion data) noexcept=0;

Update the digest calculation context by a new part of the message.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fe6681ce0628 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный метод Update служит в [SWS_CRYPT_21113] для инкрементного обновления текущего контекста вычисления хеша (ara::crypto::cryp::HashFunctionCtx). Через параметр data (ReadOnlyMemRegion) передаётся часть обрабатываемого входного сообщения. Функция возвращает ara::core::Result<void>, который в случае успеха пуст или инкапсулирует соответствующий код ошибки.

Что касается обработки ошибок, метод обеспечивает семантику отката при двух специфических состояниях ошибки:

  • ara::crypto::CryptoErrc::kProcessingNotStarted: вычисление ранее не было инициировано вызовом метода Start() [SWS_CRYPT_21113].
  • ara::crypto::CryptoErrc::kInvalidInputSize: размер переданных данных не поддерживается контекстом [SWS_CRYPT_21113].

Для контекста вызова действуют чёткие условия порядка и размера: перед передачей данных операция хеширования должна быть инициализирована [SWS_CRYPT_21113]. Чтобы избежать kInvalidInputSize, максимально допустимый размер блока для одного вызова Update может быть предварительно определён через GetMaximumChunkSize [SWS_CRYPT_50062]. Согласно спецификации функция объявлена как безопасная относительно исключений (exception safe) и потокобезопасная (thread-safe) [SWS_CRYPT_21113].

Во взаимодействии с другими интерфейсами внутри HashFunctionCtx существует перегрузка для передачи объектов ключей через Update(CryptoObject::Sptr) [SWS_CRYPT_50057]. После передачи всех блоков данных финализация контрольной суммы, предположительно, выполняется через Finish() [SWS_CRYPT_50062]. Вопрос Q-dcac20f353ca55f4 (открытый)

Это указание по использованию было сгенерировано автоматически на основе спецификации.

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

Parameter (in)

ParameterBeschreibung
dataa part of the input message that should be processed

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotStartedrollback_semantics if the digest calculation was not initiated by a call of the Start() method
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics if the size of provided data is not supported

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21113
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21113@rel:R25-11#c4b48190
Content hash
c4b48190
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21113
Status: valid/unmigrated Version: rel:R25-11#1061ad76 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_21113@rel:R25-11#1061ad76
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#a256303e2026-09-30
  • R20-11rel:R20-11#c42a6b602026-10-14
  • R21-11rel:R21-11#8395b3922026-10-14
  • R22-11rel:R22-11#c133132e2026-10-14
  • R23-11rel:R23-11#68132f692026-10-14
  • R24-11rel:R24-11#0809f9622026-10-14
  • R25-11rel:R25-11#1061ad762026-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

функция Update [SWS_CRYPT_50057] Upstream: RS_CRYPTO_02302

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

Update the digest calculation context by a new part of the message.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 87fb2c080f4a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный метод Update служит в [SWS_CRYPT_50057] для пошагового расширения контекста вычисления хэш-значения в ara::crypto::cryp::HashFunctionCtx новым фрагментом сообщения в виде объекта ключа. В качестве параметра передается умный указатель на объект ключа (CryptoObject::Sptr key). В качестве возвращаемого значения вызов возвращает ara::core::Result<void>, который пуст при успешной обработке или инкапсулирует соответствующий код ошибки в случае сбоя [SWS_CRYPT_50057].

В качестве условия очередности действует требование, согласно которому вычисление обязательно должно быть предварительно инициировано вызовом Start(); в противном случае сообщается об ошибке ProcessingNotStarted [SWS_CRYPT_50057]. Другие специфические случаи ошибок включают (каждый с семантикой отката) [SWS_CRYPT_50057]:

  • ara::crypto::CryptoErrc::kUnsupported, если контекст хэширования вообще не поддерживает хэширование ключей,
  • ara::crypto::CryptoErrc::kIncompatibleObject, если переданный объект ключа несовместим с контекстом,
  • ara::crypto::CryptoErrc::kUsageViolation, если разрешенное использование ключа не включает kAllowHash Calculation,
  • ara::crypto::CryptoErrc::kInvalidInputSize, если размер данных переданного ключа не поддерживается.

Метод объявлен как thread-safe, а также exception safe (noexcept) [SWS_CRYPT_50057]. Во взаимодействии с другими интерфейсами модуля максимально допустимый размер буфера для отдельных вызовов Update может быть определен через GetMaximumChunkSize() [SWS_CRYPT_50062]. Для регулярных частей сообщения без объекта ключа в HashFunctionCtx параллельно существует перегрузка Update(ReadOnlyMemRegion data) [SWS_CRYPT_21113].

Это указание по использованию создано автоматически на основе спецификации.

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

Parameter (in)

ParameterBeschreibung
keya part of the input message that should be processed

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ProcessingNotStartedif the digest calculation was not initiated by a call of the Start() method
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics if the size of provided data is not supported
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support hashing of keys
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided key is incompatible with this context
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowHash Calculation

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50057
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50057@rel:R25-11#dcc0e55a
Content hash
dcc0e55a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50057
Status: valid/unmigrated Version: rel:R25-11#6d3cf021 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_50057@rel:R25-11#6d3cf021
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

Документация псевдонимов типов

псевдоним типа Sptr [SWS_CRYPT_21101] Upstream: RS_CRYPTO_02205

using Sptr = std::shared_ptr<HashFunctionCtx>;

Smart pointer of the interface.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
SymbolSptr

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21101
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21101@rel:R25-11#54606c58
Content hash
54606c58
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21101
Status: valid/unmigrated Version: rel:R25-11#6b0a2315 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_21101@rel:R25-11#6b0a2315
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#806f0f392026-09-30
  • R19-11rel:R19-11#d559cb4a2026-10-14
  • R20-11rel:R20-11#6ba26a492026-10-14
  • R21-11rel:R21-11#6ba26a492026-10-14
  • R22-11rel:R22-11#49c7b6f72026-10-14
  • R23-11rel:R23-11#cfd4adfd2026-10-14
  • R24-11rel:R24-11#cfd4adfd2026-10-14
  • R25-11rel:R25-11#6b0a23152026-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