Служит центральной фабрикой для создания и управления криптографическими контекстами, алгоритмами и объектами ключей.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0bf253450f85Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит центральной фабрикой для создания и управления криптографическими контекстами, алгоритмами и объектами ключей.
Класс служит центральной фабрикой для предоставления криптографических примитивов, а также для создания и управления криптографическими ключами и контекстами ([SWS_CRYPT_20742], [SWS_CRYPT_20721]). Экземпляры не подлежат ни копированию, ни перемещению и управляются через разделяемые указатели ([SWS_CRYPT_20701], [SWS_CRYPT_41005]). Ошибки, такие как несовместимые алгоритмы или исчерпанные ресурсы, типобезопасно возвращаются через ara::core::Result ([SWS_CRYPT_30098]).
Контекст
Класс ara::crypto::cryp::CryptoProvider образует центральный интерфейс для предоставления криптографических операций и алгоритмов в стеке AUTOSAR Adaptive. Выступая в качестве уровня абстракции, он объединяет конкретные реализации криптографических примитивов, а также доступ к ключам и структурам хранения. В типичной системной архитектуре CryptoProvider функционирует как посредник и фабрика между логикой приложения, постоянными хранилищами ключей и специализированными контекстами обработки. Приложения запрашивают через провайдер специализированные контексты для симметричного шифрования ([SWS_CRYPT_20742]), асимметричного шифрования ([SWS_CRYPT_20750], [SWS_CRYPT_20751]), цифровых подписей ([SWS_CRYPT_20756], [SWS_CRYPT_20757]), хеш-функций ([SWS_CRYPT_20747]), аутентификации сообщений ([SWS_CRYPT_20746]) или процедур обмена ключами ([SWS_CRYPT_20758], [SWS_CRYPT_20752]). В то же время провайдер взаимодействует с базовыми KeySlot для инстанцирования сохраненных ключей ([SWS_CRYPT_20762], [SWS_CRYPT_20764]).
Экземпляры CryptoProvider обладают строгой семантикой относительно операций копирования и перемещения: как конструктор копирования ([SWS_CRYPT_41005]) и конструктор перемещения ([SWS_CRYPT_41006]), так и соответствующие операторы присваивания ([SWS_CRYPT_30216], [SWS_CRYPT_30217]) явно удалены (delete). Поэтому жизненный цикл экземпляра обычно управляется через ссылки или разделяемое владение, для чего на базе std::shared_ptr определен псевдоним типа CryptoProvider::Sptr ([SWS_CRYPT_20701]). Очистка выполняется через виртуальный деструктор по умолчанию ([SWS_CRYPT_20710]). Все интерфейсные методы провайдера специфицированы как безопасные относительно исключений (exception safe) и потокобезопасные (thread-safe), благодаря чему одновременный доступ из нескольких потоков без внешней синхронизации допустим на уровне провайдера.
Путь использования
Типичный сценарий использования включает предоставление ключей, инстанцирование подходящего криптоконтекста и последующее выполнение преобразований. Сначала приложение создает или импортирует необходимый ключевой материал. Для этого CryptoProvider предлагает такие методы, как GenerateSymmetricKey ([SWS_CRYPT_20721]), GeneratePrivateKey ([SWS_CRYPT_20722]), ImportPublicKey ([SWS_CRYPT_20732]) или загрузку из существующего KeySlot ([SWS_CRYPT_20762], [SWS_CRYPT_20763]). На основе алгоритма стандартные разрешения могут быть определены через GetDefaultAllowedUsage ([SWS_CRYPT_20955]). На следующем шаге приложение создает соответствующий контекст через фабричные методы, например AuthCipherCtx ([SWS_CRYPT_20745]) или SignerPrivateCtx ([SWS_CRYPT_20756]). Дополнительно провайдер предоставляет случайные данные через GenerateRandomData ([SWS_CRYPT_30098]) или монотонно возрастающее значение счетчика через GetSecureCounter ([SWS_CRYPT_20098]). Для защищенного обмена ключевой материал может быть экспортирован с защитой посредством ExportSecuredKey ([SWS_CRYPT_20728]).
Диаграмма последовательности: процесс генерации ключа и создания контекста аутентифицированного шифрования. Источники: [SWS_CRYPT_20721], [SWS_CRYPT_20745].
Сценарии ошибок
Методы CryptoProvider сообщают об ошибках через возвращаемый тип ara::core::Result со значениями из ara::crypto::CryptoErrc. При сбойных операциях действует семантика отката (rollback). К основным сценариям ошибок относятся:
Недопустимые или несовместимые параметры: если передается неподдерживаемый идентификатор алгоритма, методы создания контекста и ключей возвращают CryptoErrc::kUnknownIdentifier ([SWS_CRYPT_20741], [SWS_CRYPT_20742], [SWS_CRYPT_20721]). Если алгоритм не соответствует ожидаемому примитиву (например, асимметричный алгоритм при запросе хеш-функции) или флаги использования не соответствуют конфигурации, возникает CryptoErrc::kInvalidArgument или CryptoErrc::kIncompatibleArguments соответственно ([SWS_CRYPT_20747], [SWS_CRYPT_20722], [SWS_CRYPT_50132]).
Ошибки хранилища ключей и формата: при загрузке через KeySlot незаполненный слот приводит к CryptoErrc::kEmptyKeySlot, тогда как чужие или неверные типы ключей вызывают CryptoErrc::kIncompatibleObject ([SWS_CRYPT_20762], [SWS_CRYPT_20764]). Некорректные форматы сериализации приводят к CryptoErrc::kUnsupportedFormat ([SWS_CRYPT_50014], [SWS_CRYPT_20732]).
Дефицит ресурсов и пропускной способности: если генератор случайных чисел временно исчерпан или аппаратный ресурс заблокирован, возвращается CryptoErrc::kBusyResource ([SWS_CRYPT_30098], [SWS_CRYPT_20721], [SWS_CRYPT_20098]). При недостаточном размере целевых буферов для идентификационных данных или экспорта ключей интерфейс возвращает CryptoErrc::kInsufficientCapacity ([SWS_CRYPT_50015], [SWS_CRYPT_20728]).
Неподдерживаемые функции: если опциональные функции, такие как идентификация провайдера, защищенный счетчик (Secure Counter) или стандартный RNG, не поддерживаются конкретной реализацией провайдера, возвращается ошибка CryptoErrc::kUnsupported ([SWS_CRYPT_50015], [SWS_CRYPT_20098], [SWS_CRYPT_30098]).
Настоящее руководство основано исключительно на определении интерфейса ara::crypto::cryp::CryptoProvider для AUTOSAR R25-11.
The interface shall format the data referenced by the specified key, securely wrap this payload and serialize the secured payload into the provided output buffer. The format shall be specified implicitly by the AlgId. The formatted payload shall be wrapped according to the specified algId using the kek; if kek is not provided, ExportSecuredKey shall apply a key-encryption-key implictly defined by the algId or the default key-encryption-key of the CryptoProvider.
Generate a new public/private key pair and return the private key. The public key can be retrieved via the function PrivateKey::GetPublicKey() The allowed usage flags of the Public Key are set based on the allowed usage of the PrivateKey: • kAllowDataDecryption --> kAllowDataEncryption • kAllowSigGeneration --> kAllowSigVerification • kAllowKeyAgreement --> kAllowKeyAgreement • kAllowKeyUnwrapping --> kAllowKeyWrapping Additionally, the allowed usage: • kAllowPlaintextExport • kAllowPersist are set for the public key.
Get a CryptoProvider specific default set of allowedUsages for the provided AlgId. The returned allowedUsages shall not contain kAllowPlaintextExport, kAllowPersist and kAllowSecuredExport.
Get the current value of the secure counter of this CryptoProvider. The current counter value is guaranteed to be stricly larger than any previously returned counter value.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 11ce33c6da44Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод CreateAuthCipherCtx служит для создания контекста для симметричного аутентифицированного шифрования ([SWS_CRYPT_20745]). Он определён как чисто виртуальный интерфейс в классе ara::crypto::cryp::CryptoProvider и подключается через заголовочный файл ara/crypto/cryp/crypto_provider.h ([SWS_CRYPT_20745]).
Использование и семантика
В качестве входного параметра передаётся algId, идентифицирующий целевой криптографический алгоритм ([SWS_CRYPT_20745]). Функция работает синхронно и не генерирует исключений (noexcept) ([SWS_CRYPT_20745]). При успешном выполнении она возвращает ara::core::Result со smart pointer на созданный экземпляр AuthCipherCtx::Sptr ([SWS_CRYPT_20745]).
Обработка ошибок
В случае ошибки в ara::core::Result возвращается соответствующий код ошибки с семантикой отката ([SWS_CRYPT_20745]):
ara::crypto::CryptoErrc::kInvalidArgument: если algId не специфицирует алгоритм для симметричного аутентифицированного потокового шифра ([SWS_CRYPT_20745]).
ara::crypto::CryptoErrc::kUnknownIdentifier: если для algId передано неподдерживаемое значение ([SWS_CRYPT_20745]).
Параллелизм
Вызов CreateAuthCipherCtx является потокобезопасным (thread-safe) и специфицирован как исключениебезопасный (exception safe) ([SWS_CRYPT_20745]).
Этот текст был сгенерирован автоматически. Все технические утверждения подтверждены данными спецификации.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7d14bb93ecbaПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод CreateDecryptorPrivateCtx интерфейса ara::crypto::cryp::CryptoProvider служит для создания контекста асимметричного расшифрования с использованием закрытого ключа согласно [SWS_CRYPT_20751]. В качестве входного параметра функция ожидает algId, который задает идентификатор нужного алгоритма асимметричного шифрования или расшифрования. Интерпретация: вызов, вероятно, выполняется синхронно, поскольку сигнатура напрямую возвращает ara::core::Result, содержащий в случае успеха смарт-указатель на созданный контекст (DecryptorPrivateCtx::Sptr) [SWS_CRYPT_20751]. Вопрос Q-45d1c4a1b2133f4c (открытый)
Обработка ошибок
Если контекст создать невозможно, ошибка передается в возвращаемом ara::core::Result. Если для параметра algId было передано неподдерживаемое значение, это приводит конкретно к коду ошибки ara::crypto::CryptoErrc::kUnknownIdentifier с семантикой отката (rollback) [SWS_CRYPT_20751].
Параллелизм и ограничения
Функция определена как noexcept и гарантирует безопасность исключений (exception safe) [SWS_CRYPT_20751]. Для одновременного доступа из нескольких потоков метод специфицирован как потокобезопасный (thread-safe) [SWS_CRYPT_20751]. Поскольку сигнатура в заголовке ara/crypto/cryp/crypto_provider.h объявлена как чисто виртуальный метод, конкретная реализация возлагается на соответствующего провайдера [SWS_CRYPT_20751].
Данное указание по использованию было сгенерировано автоматически и основано исключительно на данных спецификации релиза AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f47db9d84d9aПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Чисто виртуальный метод интерфейса CreateEncryptorPublicCtx принадлежит классу ara::crypto::cryp::CryptoProvider и объявляется через заголовочный файл ara/crypto/cryp/crypto_provider.h[SWS_CRYPT_20750]. Его задача заключается в создании нового контекста для операций асимметричного шифрования с открытым ключом [SWS_CRYPT_20750].
Использование: вызов выполняется синхронно с указанием параметра algId типа AlgId, определяющего идентификатор требуемого алгоритма асимметричного шифрования или расшифрования [SWS_CRYPT_20750]. Метод возвращает результат в ara::core::Result, который в случае успеха предоставляет smart pointer типа EncryptorPublicCtx::Sptr на созданный контекст [SWS_CRYPT_20750].
Обработка ошибок: если аргумент algId содержит неподдерживаемое значение алгоритма, вызов завершается ошибкой и возвращает в ara::core::Result код ошибки ara::crypto::CryptoErrc::kUnknownIdentifier[SWS_CRYPT_20750]. Для этого случая ошибки специфицирована явная семантика отката [SWS_CRYPT_20750].
Параллелизм и исключениебезопасность: интерфейс объявлен как noexcept, считается исключениебезопасным (exception safe) и явно специфицирован как потокобезопасный (thread-safe) [SWS_CRYPT_20750].
Этот текст был создан ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d5d380ddf0c0Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод CreateHashFunctionCtx служит для создания экземпляра криптографического хеш-контекста ([SWS_CRYPT_20747]). Он предоставляется как чисто виртуальный интерфейс класса ara::crypto::cryp::CryptoProvider через заголовочный файл ara/crypto/cryp/crypto_provider.h.
Использование и параметры
Вызов выполняется синхронно и ожидает в качестве входного параметра algId (типа AlgId), который идентифицирует требуемый криптографический алгоритм ([SWS_CRYPT_20747]). В качестве возвращаемого значения функция возвращает ara::core::Result<HashFunctionCtx::Sptr>, который в случае успеха содержит smart pointer на созданный контекст.
Обработка ошибок
Если создание завершается сбоем, ara::core::Result содержит соответствующий код ошибки с семантикой отката ([SWS_CRYPT_20747]):
ara::crypto::CryptoErrc::kInvalidArgument: возвращается, если переданный algId специфицирован для типа алгоритма, отличного от хеш-функции ([SWS_CRYPT_20747]).
ara::crypto::CryptoErrc::kUnknownIdentifier: возникает, если для algId передан неподдерживаемый идентификатор ([SWS_CRYPT_20747]).
Параллелизм и ограничения
Функция объявлена как noexcept и специфицирована как исключениебезопасная («exception safe») ([SWS_CRYPT_20747]). Кроме того, вызов является потокобезопасным («thread-safe»), поэтому одновременные вызовы из нескольких потоков для одного и того же экземпляра CryptoProvider допустимы ([SWS_CRYPT_20747]).
Этот текст был сгенерирован ИИ на основе спецификации R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f0aaacbed75dПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод CreateKeyAgreementPrivateCtx класса ara::crypto::cryp::CryptoProvider служит для создания контекста закрытого ключа для согласования ключей (KeyAgreementPrivateCtx) согласно [SWS_CRYPT_20758]. Объявление предоставляется через заголовочный файл #include "ara/crypto/cryp/crypto_provider.h".
Использование и вызов
В качестве входного параметра синхронный метод ожидает идентификатор algId типа AlgId, который задает требуемый криптоалгоритм для согласования ключей (Key-Agreement). В качестве возвращаемого значения функция возвращает ara::core::Result<KeyAgreementPrivateCtx::Sptr>, инкапсулирующий в случае успеха смарт-указатель на вновь созданный экземпляр контекста [SWS_CRYPT_20758].
Обработка ошибок
Если создание экземпляра завершается сбоем, возвращенный ara::core::Result содержит код ошибки с семантикой отката [SWS_CRYPT_20758]:
ara::crypto::CryptoErrc::kInvalidArgument: возникает, если аргумент algId указывает криптоалгоритм, отличный от процедур согласования ключей.
ara::crypto::CryptoErrc::kUnknownIdentifier: возвращается, если идентификатор algId имеет неподдерживаемое значение.
Параллелизм и безопасность
Интерфейс объявлен как noexcept и определен как исключениебезопасный (exception safe). Кроме того, вызов специфицирован как потокобезопасный (thread-safe), так что одновременные вызовы на одном и том же экземпляре CryptoProvider допустимы [SWS_CRYPT_20758].
Данное указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR R25-11.
Create a key-decapsulator private context of a Key Encapsulation Mechanism (KEM).
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 29715a46f6b0Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод CreateKeyDecapsulatorPrivateCtx интерфейса ara::crypto::cryp::CryptoProvider служит для создания приватного контекста для декапсуляции ключа для Key Encapsulation Mechanism (KEM) [SWS_CRYPT_20753]. В качестве входного параметра он ожидает algId типа AlgId, который идентифицирует требуемый криптографический алгоритм KEM [SWS_CRYPT_20753]. Функция работает синхронно и возвращает результат в ara::core::Result<KeyDecapsulatorPrivateCtx::Sptr>, которое в случае успеха инкапсулирует смарт-указатель на вновь инстанцированный контекст [SWS_CRYPT_20753].
Обработка ошибок
Если при создании контекста возникает ошибка, о ней сообщается через ara::core::Result с семантикой отката [SWS_CRYPT_20753]:
ara::crypto::CryptoErrc::kInvalidArgument: аргумент algId определяет криптографический алгоритм, который не является асимметричным механизмом KEM [SWS_CRYPT_20753].
ara::crypto::CryptoErrc::kUnknownIdentifier: аргумент algId имеет неподдерживаемое значение [SWS_CRYPT_20753].
Параллелизм и надёжность выполнения
Интерфейс объявлен как noexcept и специфицирован как безопасный относительно исключений (exception safe) [SWS_CRYPT_20753]. Кроме того, выполнение спроектировано как потокобезопасное (thread-safe) [SWS_CRYPT_20753].
Данное указание по использованию основано на спецификации AUTOSAR Adaptive R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a0b8a7f1dfa2Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод CreateKeyDerivationFunctionCtx класса ara::crypto::cryp::CryptoProvider служит для создания контекста выполнения для функций деривации ключей ([SWS_CRYPT_20748]). В качестве входного параметра передается идентификатор algId типа AlgId, который определяет требуемый целевой криптографический алгоритм. Синхронный вызов возвращает ara::core::Result, которое при успешном выполнении предоставляет смарт-указатель на созданный контекст (KeyDerivationFunctionCtx::Sptr) ([SWS_CRYPT_20748]).
Если при инстанцировании возникает ошибка, результат возвращается с соответствующим кодом ошибки с семантикой отката ([SWS_CRYPT_20748]):
ara::crypto::CryptoErrc::kInvalidArgument: аргумент algId определяет криптографический алгоритм, который не является функцией деривации ключей ([SWS_CRYPT_20748]).
ara::crypto::CryptoErrc::kUnknownIdentifier: переданный идентификатор algId имеет неподдерживаемое значение ([SWS_CRYPT_20748]).
Интерфейс объявлен как чисто виртуальная функция, обозначен как noexcept и обязательно классифицирован как thread-safe, а также exception safe ([SWS_CRYPT_20748]). Подключение осуществляется через заголовочный файл #include "ara/crypto/cryp/crypto_provider.h". Функция адресует вышестоящие требования [RS_CRYPTO_02103] и [RS_AP_00144].
Это указание по использованию было сгенерировано автоматически ИИ и основано на спецификациях платформы AUTOSAR Adaptive R25-11.
Create a key-encapsulator public context of a Key Encapsulation Mechanism (KEM).
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: efe36f596de1Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод CreateKeyEncapsulatorPublicCtx интерфейса ara::crypto::cryp::CryptoProvider служит для создания открытого контекста для Key Encapsulation Mechanism (KEM) [SWS_CRYPT_20752]. Для этого необходимо подключить заголовочный файл #include "ara/crypto/cryp/crypto_provider.h"[SWS_CRYPT_20752]. Вызов выполняется синхронно: в качестве входного параметра передается algId, который определяет целевой криптографический алгоритм KEM. При успешном выполнении метод возвращает смарт-указатель на созданный контекст (KeyEncapsulatorPublicCtx::Sptr), инкапсулированный в ara::core::Result[SWS_CRYPT_20752].
Обработка ошибок
Если во время создания возникает ошибка, применяется семантика отката и ara::core::Result содержит специфический код ошибки из ara::crypto::CryptoErrc[SWS_CRYPT_20752]:
ara::crypto::CryptoErrc::kInvalidArgument: возвращается, если аргумент algId указывает криптографический алгоритм, не являющийся асимметричным KEM [SWS_CRYPT_20752].
ara::crypto::CryptoErrc::kUnknownIdentifier: возвращается, если аргумент algId содержит неподдерживаемое значение [SWS_CRYPT_20752].
Параллелизм и безопасность
Функция интерфейса объявлена с noexcept и классифицирована как исключениебезопасная (exception safe), а также потокобезопасная (thread-safe) [SWS_CRYPT_20752]. Таким образом, ее можно безопасно вызывать из параллельных контекстов без внешней синхронизации [SWS_CRYPT_20752].
Данное указание по использованию основано на спецификации AUTOSAR Adaptive R25-11.
Create a symmetric message authentication code context.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9f61171ea583Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Чисто виртуальный метод CreateMessageAuthnCodeCtx интерфейса ara::crypto::cryp::CryptoProvider требует заголовочного файла ara/crypto/cryp/crypto_provider.h и служит для синхронного создания контекста для симметричных кодов аутентификации сообщений [SWS_CRYPT_20746]. В качестве входного значения функция принимает параметр algId типа AlgId, определяющий целевой криптографический алгоритм [SWS_CRYPT_20746]. При успешном выполнении метод возвращает ara::core::Result<MessageAuthnCodeCtx::Sptr>, инкапсулирующий smart pointer на вновь созданный экземпляр контекста [SWS_CRYPT_20746].
Обработка ошибок
В случае ошибки возвращаемый объект Result предоставляет специфические коды ошибок с семантикой отката [SWS_CRYPT_20746]:
ara::crypto::CryptoErrc::kInvalidArgument: аргумент algId указывает криптографический алгоритм, не являющийся симметричным кодом аутентификации сообщений [SWS_CRYPT_20746].
ara::crypto::CryptoErrc::kUnknownIdentifier: для аргумента algId передан неизвестный или неподдерживаемый идентификатор [SWS_CRYPT_20746].
Параллелизм и надёжность выполнения
Интерфейс снабжён спецификатором noexcept и гарантирует полную исключениебезопасность (exception safe) [SWS_CRYPT_20746]. Кроме того, функция явно специфицирована как потокобезопасная (thread-safe), что позволяет выполнять вызовы параллельно и без внешней синхронизации из параллельных потоков [SWS_CRYPT_20746].
Это указание по использованию было сгенерировано автоматически на основе спецификации.
The interface shall create a protected key import context.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cc2e3e31c614Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Интерфейс CreateProtectedKeyImportCtx класса ara::crypto::cryp::CryptoProvider (определенный в ara/crypto/cryp/crypto_provider.h) служит для синхронного создания контекста для защищенного импорта ключей ([SWS_CRYPT_50017]). Через входной параметр algId передается идентификатор требуемого алгоритма упаковки ([SWS_CRYPT_50017]). При успешной инстанциации метод возвращает ara::core::Result, предоставляющий смарт-указатель ProtectedKeyImportCtx::Sptr на созданный контекст ([SWS_CRYPT_50017]).
Обработка ошибок
Если создание завершается сбоем, метод возвращает в ara::core::Result код ошибки с семантикой отката ([SWS_CRYPT_50017]):
ara::crypto::CryptoErrc::kInvalidArgument: возникает, если криптографический алгоритм, указанный параметром algId, не поддерживается CryptoProvider для операции упаковки ([SWS_CRYPT_50017]).
ara::crypto::CryptoErrc::kUnknownIdentifier: выдается, если аргумент algId содержит неизвестное или неподдерживаемое значение идентификатора ([SWS_CRYPT_50017]).
Параллелизм и ограничения
Чисто виртуальный метод объявлен как noexcept, обеспечивает безопасность исключений и явно специфицирован как потокобезопасный (thread-safe) ([SWS_CRYPT_50017]). Таким образом, его можно вызывать параллельно из нескольких потоков без внешней синхронизации ([SWS_CRYPT_50017]).
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Adaptive R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 64bbceaa10dfПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод CreateRandomGeneratorCtx служит для создания контекста для генераторов случайных чисел (Random Number Generator, RNG) внутри класса ara::crypto::cryp::CryptoProvider[SWS_CRYPT_20741].
Использование и контекст вызова
Функция вызывается синхронно и требует заголовочного файла ara/crypto/cryp/crypto_provider.h[SWS_CRYPT_20741]:
Параметры: передаётся algId типа AlgId, который идентифицирует требуемый алгоритм RNG. Если конкретный algId не указан, метод возвращает стандартный RNG [SWS_CRYPT_20741].
Возвращаемое значение:ara::core::Result<RandomGeneratorCtx::Sptr>, которое в случае успеха содержит shared pointer на созданный экземпляр RandomGeneratorCtx[SWS_CRYPT_20741].
Обработка ошибок
Метод не генерирует исключений (noexcept) и специфицирован как исключениебезопасный [SWS_CRYPT_20741]. В случае сбоя операции ara::core::Result возвращает код ошибки:
ara::crypto::CryptoErrc::kUnknownIdentifier: возникает, если аргумент algId содержит неподдерживаемое значение (с семантикой отката) [SWS_CRYPT_20741].
Параллелизм и ограничения
Метод классифицирован как потокобезопасный (thread-safe), поэтому параллельные вызовы через один и тот же экземпляр CryptoProvider допустимы [SWS_CRYPT_20741].
Это указание по использованию было создано автоматически и основано исключительно на данных спецификации AUTOSAR Adaptive R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b425000c991dПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод CreateSignerPrivateCtx класса ara::crypto::cryp::CryptoProvider служит для создания контекста для операций подписи с использованием закрытого ключа ([SWS_CRYPT_20756]).
Использование и параметры: вызов требует подключения заголовочного файла ara/crypto/cryp/crypto_provider.h. Через входной параметр algId задается целевой криптографический алгоритм подписи. В случае успеха функция через возвращаемый тип ara::core::Result<SignerPrivateCtx::Sptr> возвращает смарт-указатель на созданный экземпляр контекста ([SWS_CRYPT_20756]). Интерпретация: поскольку метод напрямую возвращает ara::core::Result, вызов, вероятно, выполняется синхронно. Вопрос Q-8480f3cf5cef5f49 (открытый)
Параллелизм и безопасность: метод специфицирован как потокобезопасный (thread-safe) и исключениебезопасный (exception safe), а также объявлен с noexcept ([SWS_CRYPT_20756]). Таким образом, его можно вызывать из параллельных контекстов без дополнительной синхронизации.
Обработка ошибок: в случае ошибки результат возвращает код ошибки типа ara::crypto::CryptoErrc с семантикой отката ([SWS_CRYPT_20756]):
ara::crypto::CryptoErrc::kInvalidArgument: возникает, если аргумент algId указывает криптографический алгоритм, отличный от формирования подписи с использованием закрытого ключа ([SWS_CRYPT_20756]).
ara::crypto::CryptoErrc::kUnknownIdentifier: возникает, если algId содержит неизвестное или неподдерживаемое значение ([SWS_CRYPT_20756]).
Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Определяющей является спецификация AUTOSAR.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e2de1e3ea197Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Виртуальный метод CreateSymmetricCipherCtx интерфейса ara::crypto::cryp::CryptoProvider служит для создания контекста для операций симметричного шифрования ([SWS_CRYPT_20742]). Он подключается через заголовочный файл #include "ara/crypto/cryp/crypto_provider.h" ([SWS_CRYPT_20742]).
В качестве входного параметра функция ожидает algId типа AlgId, указывающий идентификатор целевого криптографического алгоритма ([SWS_CRYPT_20742]). Вызов выполняется синхронно и возвращает в качестве результата ara::core::Result<SymmetricCipherCtx::Sptr>, который в случае успеха предоставляет smart pointer на вновь созданный экземпляр контекста ([SWS_CRYPT_20742]).
Обработка ошибок
Если создание завершается сбоем, возвращаемый ara::core::Result содержит соответствующий код ошибки ([SWS_CRYPT_20742]):
ara::crypto::CryptoErrc::kUnknownIdentifier: сообщается с семантикой отката, если переданное значение для algId ссылается на неподдерживаемый алгоритм ([SWS_CRYPT_20742]).
Параллелизм и ограничения
Функция объявлена как noexcept и явно специфицирована как исключениебезопасная (exception safe) ([SWS_CRYPT_20742]). Кроме того, вызов является потокобезопасным (thread-safe), поэтому параллельное создание контекстов через один и тот же экземпляр CryptoProvider допустимо ([SWS_CRYPT_20742]).
Это указание по использованию было создано автоматически. Все данные основаны исключительно на версии спецификации AUTOSAR R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 81927eb57ee6Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод CreateSymmetricKeyWrapperCtx класса ara::crypto::cryp::CryptoProvider служит для создания контекста для симметричных алгоритмов Key-Wrap ([SWS_CRYPT_20743]). В качестве входного параметра передается algId, который однозначно идентифицирует целевой криптографический алгоритм ([SWS_CRYPT_20743]). Вызов является синхронным и в случае успеха возвращает ara::core::Result, инкапсулирующий смарт-указатель на созданный контекст (SymmetricKeyWrapperCtx::Sptr) ([SWS_CRYPT_20743]).
Обработка ошибок
Если создание завершается сбоем, функция возвращает объект ошибки внутри ara::core::Result ([SWS_CRYPT_20743]):
ara::crypto::CryptoErrc::kUnknownIdentifier: выдается, если аргумент algId содержит неподдерживаемое значение; при этом действует семантика отката ([SWS_CRYPT_20743]).
Параллелизм и ограничения
Интерфейс объявлен как noexcept, считается безопасным в отношении исключений (exception safe) и является потокобезопасным ([SWS_CRYPT_20743]). Таким образом, его можно безопасно вызывать из параллельных контекстов при условии, что предоставленный algId поддерживается базовым CryptoProvider ([SWS_CRYPT_20743]).
Это указание по использованию было сгенерировано автоматически и основано исключительно на данных спецификации из AUTOSAR R25-11.
Create a signature verification public key context.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6459db29afbfПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование и контекст вызова
Чисто виртуальный метод CreateVerifierPublicCtx класса ara::crypto::cryp::CryptoProvider объявляется через заголовочный файл ara/crypto/cryp/crypto_provider.h[SWS_CRYPT_20757]. Он служит для синхронного создания контекста проверки подписи с использованием открытых ключей (верификация подписи открытым ключом) [SWS_CRYPT_20757].
Вызывающая сторона передает через параметр algId (тип AlgId) идентификатор требуемого криптографического алгоритма подписи [SWS_CRYPT_20757]. В случае успеха функция возвращает ara::core::Result, содержащий смарт-указатель на созданный контекст проверки (VerifierPublicCtx::Sptr) [SWS_CRYPT_20757].
Обработка ошибок
В случае ошибки вступает в силу семантика отката, и результирующий ara::core::Result передает соответствующий код ошибки [SWS_CRYPT_20757]:
ara::crypto::CryptoErrc::kInvalidArgument: возвращается, если аргумент algId указывает криптографический алгоритм, не предназначенный для проверки подписи с использованием открытых ключей [SWS_CRYPT_20757].
ara::crypto::CryptoErrc::kUnknownIdentifier: возвращается, если для algId был передан неизвестный или неподдерживаемый идентификатор [SWS_CRYPT_20757].
Параллелизм и ограничения
Метод объявлен как noexcept, полностью исключениебезопасен (exception safe) и явно специфицирован как потокобезопасный (thread-safe) [SWS_CRYPT_20757]. Таким образом, параллельные вызовы из нескольких контекстов выполнения допустимы без внешней синхронизации.
Данное указание по использованию основано на спецификации релиза AUTOSAR Adaptive R25-11.
The interface shall format the data referenced by the specified key, securely wrap this payload and serialize the secured payload into the provided output buffer. The format shall be specified implicitly by the AlgId. The formatted payload shall be wrapped according to the specified algId using the kek; if kek is not provided, ExportSecuredKey shall apply a key-encryption-key implictly defined by the algId or the default key-encryption-key of the CryptoProvider.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7d1aacdfd90aПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод ExportSecuredKey интерфейса ara::crypto::cryp::CryptoProvider экспортирует криптографический объект ключа в защищённый сериализованный формат [SWS_CRYPT_20728]. Переданный объект ключа key подготавливается в соответствии с форматом, неявно определённым algId, криптографически упаковывается («wrapped») и сериализуется в выходной буфер resultBuffer[SWS_CRYPT_20728]. Для упаковки можно опционально передать ключ шифрования ключей (kek); если kek не предоставлен, метод обращается к KEK, неявно определённому через algId, либо к стандартному KEK провайдера CryptoProvider [SWS_CRYPT_20728].
Функция классифицирована как thread-safe и exception safe, а также аннотирована с noexcept[SWS_CRYPT_20728]. Интерпретация: поскольку сигнатура напрямую возвращает ara::core::Result без таких асинхронных типов возвращаемого значения, как фьючерсы, весь процесс упаковки и сериализации, предположительно, выполняется синхронно в контексте вызывающей стороны. Вопрос Q-3fb89afcc9300695 (открытый)
При успешном завершении возвращаемый ara::core::Result<std::size_t> содержит количество байтов, записанных в resultBuffer[SWS_CRYPT_20728]. Если операция завершается сбоем, применяется семантика отката и возвращается одна из следующих ошибок [SWS_CRYPT_20728]:
UnknownIdentifier: переданное значение algId не поддерживается [SWS_CRYPT_20728].
ara::crypto::CryptoErrc::kInvalidArgument: объект ключа не может быть упакован (например, недопустимый размер или неподходящий тип), либо не был передан обязательно ожидаемый kek[SWS_CRYPT_20728].
ara::crypto::CryptoErrc::kUsageViolation: допустимое использование key или kek несовместимо с выбранным алгоритмом [SWS_CRYPT_20728].
ara::crypto::CryptoErrc::kIncompatibleArguments: переданный kek несовместим с алгоритмом экспорта [SWS_CRYPT_20728].
ara::crypto::CryptoErrc::kInsufficientCapacity: выходной буфер resultBuffer слишком мал для результата [SWS_CRYPT_20728].
ara::crypto::CryptoErrc::kBusyResource: ресурс, необходимый для экспорта, занят [SWS_CRYPT_20728].
Этот текст был создан ИИ и основан на версии спецификации AUTOSAR R25-11.
an output buffer the securely exported key is written to
kek
an optional key-encryption-key to be be used for wrapping the secured payload. Only used if the used algorithm does not determine the used key (e.g., based on configuration).
Generate a new public/private key pair and return the private key. The public key can be retrieved via the function PrivateKey::GetPublicKey() The allowed usage flags of the Public Key are set based on the allowed usage of the PrivateKey: • kAllowDataDecryption --> kAllowDataEncryption • kAllowSigGeneration --> kAllowSigVerification • kAllowKeyAgreement --> kAllowKeyAgreement • kAllowKeyUnwrapping --> kAllowKeyWrapping Additionally, the allowed usage: • kAllowPlaintextExport • kAllowPersist are set for the public key.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c90dae237830Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод GeneratePrivateKey класса ara::crypto::cryp::CryptoProvider (объявленный в ara/crypto/cryp/crypto_provider.h) синхронно создаёт новую асимметричную пару ключей и возвращает созданный закрытый ключ как PrivateKey::Sptr внутри ara::core::Result[SWS_CRYPT_20722]. Соответствующий открытый ключ не возвращается напрямую, а может быть запрошен позже через метод PrivateKey::GetPublicKey() результирующего ключа [SWS_CRYPT_20722].
При вызове параметр algId указывает криптографический алгоритм, тогда как privateKeyAllowedUsage определяет допустимые типы трансформации для закрытого ключа [SWS_CRYPT_20722]. При этом допустимые флаги использования открытого ключа отображаются на основе прав закрытого ключа следующим образом [SWS_CRYPT_20722]:
kAllowDataDecryption приводит к kAllowDataEncryption
kAllowSigGeneration приводит к kAllowSigVerification
kAllowKeyAgreement приводит к kAllowKeyAgreement
kAllowKeyUnwrapping приводит к kAllowKeyWrapping
Дополнительно открытому ключу автоматически назначаются флаги использования kAllowPlaintextExport, а также kAllowPersist[SWS_CRYPT_20722].
В отношении параллелизма и выполнения функция специфицирована как thread-safe и exception-safe [SWS_CRYPT_20722]. Если во время генерации ключа возникает ошибка, результат обрабатывается с семантикой отката [SWS_CRYPT_20722]. Могут возвращаться следующие коды ошибок:
ara::crypto::CryptoErrc::kUnknownIdentifier, если для algId передан неподдерживаемый алгоритм,
ara::crypto::CryptoErrc::kIncompatibleArguments, если указанные флаги privateKeyAllowedUsage несовместимы с выбранным алгоритмом или типом ключа,
ara::crypto::CryptoErrc::kBusyResource, если генерация временно невозможна из-за временно занятых ресурсов [SWS_CRYPT_20722].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Adaptive R25-11.
virtual ara::core::Result< void > GenerateRandomData (ReadWriteMem Region randomData) noexcept=0;
Fill the provided output data buffer randomData with random data.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 405a308cad1eПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Чисто виртуальный метод GenerateRandomData интерфейса ara::crypto::cryp::CryptoProvider служит для заполнения криптографическими случайными данными области памяти, предоставленной вызывающей стороной [SWS_CRYPT_30098]. Объявление находится в заголовочном файле ara/crypto/cryp/crypto_provider.h.
В качестве выходного параметра передается randomData типа ReadWriteMem Region, который представляет заполняемый буфер и размер которого определяет количество генерируемых случайных байтов [SWS_CRYPT_30098]. Интерпретация: поскольку функция в качестве типа возвращаемого значения непосредственно использует ara::core::Result<void>, а не объект Future, генерация данных, вероятно, выполняется синхронно и с блокировкой [SWS_CRYPT_30098]. Вопрос Q-315c0492dcf7f37d (открытый) Возвращаемое значение в случае успеха пусто или в случае ошибки содержит соответствующий код ошибки [SWS_CRYPT_30098].
При возникновении проблемы во время выполнения применяется семантика отката, так что не остается никаких частичных или недопустимых состояний [SWS_CRYPT_30098]. Специфицированы следующие состояния ошибок:
ara::crypto::CryptoErrc::kBusyResource: базовый генератор случайных чисел (RNG) в данный момент обладает недостаточной энтропией и не может предоставить запрошенное количество случайных байтов [SWS_CRYPT_30098].
ara::crypto::CryptoErrc::kUnsupported: конкретная реализация CryptoProvider не поддерживает стандартный генератор случайных чисел [SWS_CRYPT_30098].
В отношении параллелизма и устойчивости метод специфицирован как thread-safe и exception safe[SWS_CRYPT_30098]. Таким образом, несколько потоков могут вызывать функцию параллельно, а спецификация noexcept гарантирует, что исключения C++ не будут выбрасываться за пределы интерфейса.
Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 202931831493Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Чисто виртуальный метод GenerateSymmetricKey предоставляется через интерфейс ara::crypto::cryp::CryptoProvider (заголовочный файл #include "ara/crypto/cryp/crypto_provider.h") и служит для генерации нового симметричного ключа [SWS_CRYPT_20721]. Синхронный вызов ожидает в качестве параметра algId идентификатор целевого симметричного криптографического алгоритма, а в качестве allowedUsage — битовые флаги, определяющие допустимые типы преобразований для сгенерированного ключа [SWS_CRYPT_20721]. При успешном выполнении метод возвращает ara::core::Result с SymmetricKey::Sptr, то есть shared pointer на вновь созданный объект симметричного ключа [SWS_CRYPT_20721].
Обработка ошибок
Если во время генерации ключа возникает ошибка, она передается в ara::core::Result. Для всех специфицированных случаев ошибок действует семантика отката (rollback) [SWS_CRYPT_20721]:
ara::crypto::CryptoErrc::kUnknownIdentifier: сообщается, если для algId было передано неподдерживаемое значение [SWS_CRYPT_20721].
ara::crypto::CryptoErrc::kIncompatibleArguments: возникает, если указанные флаги allowedUsage несовместимы с выбранным алгоритмом algId или типом ключа [SWS_CRYPT_20721].
ara::crypto::CryptoErrc::kBusyResource: указывает на то, что операция временно не может быть выполнена из-за занятых ресурсов [SWS_CRYPT_20721].
Параллелизм и ограничения
Операция объявлена как noexcept и обладает свойствами безопасности исключений (exception safe) и потокобезопасности (thread-safe) [SWS_CRYPT_20721]. Поэтому она может вызываться параллельно из нескольких потоков, причем при высокой нагрузке на систему может возникнуть ошибка kBusyResource для сигнализации о временной нехватке ресурсов [SWS_CRYPT_20721].
Это указание по использованию было сгенерировано автоматически на основе спецификации.
Get a CryptoProvider specific default set of allowedUsages for the provided AlgId. The returned allowedUsages shall not contain kAllowPlaintextExport, kAllowPersist and kAllowSecuredExport.
Get the current value of the secure counter of this CryptoProvider. The current counter value is guaranteed to be stricly larger than any previously returned counter value.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cd7a957c648fПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Метод GetSecureCounter() класса ara::crypto::cryp::CryptoProvider (объявленный в #include "ara/crypto/cryp/crypto_provider.h") запрашивает текущее значение защищённого счётчика экземпляра провайдера [SWS_CRYPT_20098]. Функция работает синхронно и не требует входных параметров [SWS_CRYPT_20098]. В случае успеха она возвращает через ara::core::Result<SecureCounter> структуру SecureCounter, состоящую из двух 64-битных значений без знака (LSQW для младшего четырехсловного значения (Least Significant Quad Word) и MSQW для старшего четырехсловного значения (Most Significant Quad Word)) [SWS_CRYPT_20098]. Гарантируется, что каждое возвращаемое значение счётчика строго больше всех значений, ранее предоставленных через этот экземпляр [SWS_CRYPT_20098].
Если значение счётчика не удаётся определить, вызов завершается с ошибкой и возвращает код ошибки с семантикой отката (rollback) в объекте Result [SWS_CRYPT_20098]:
ara::crypto::CryptoErrc::kUnsupported: конкретный CryptoProvider не поддерживает защищённый счётчик [SWS_CRYPT_20098].
ara::crypto::CryptoErrc::kBusyResource: ресурс, требуемый для доступа к счётчику или его обновления, в настоящее время занят [SWS_CRYPT_20098].
С точки зрения параллелизма и надёжности функция специфицирована как потокобезопасная (thread-safe) и объявлена как исключениебезопасная (exception safe) с noexcept[SWS_CRYPT_20098]. Таким образом, параллельные вызовы из нескольких потоков допустимы без внешней синхронизации, при этом сохраняется строгая монотонность возвращаемых значений счётчика [SWS_CRYPT_20098].
Этот текст был сгенерирован ИИ и служит в качестве ориентира. Обязательную силу имеет исключительно официальная спецификация.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 56f03864743dПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод ImportPrivateKey класса ara::crypto::cryp::CryptoProvider служит для синхронного импорта сериализованного закрытого ключа [SWS_CRYPT_50132]. При вызове полезные данные передаются через область памяти serialized (ReadOnlyMemRegion), дополненные требуемыми ограничениями использования (allowedUsage) и форматом сериализации (formatId). Параметр algId является опциональным (ara::core::Optional<AlgId>) и должен задаваться только в том случае, если выбранный формат еще сам по себе однозначно не определяет необходимые свойства ключа [SWS_CRYPT_50132]. В качестве возвращаемого значения функция предоставляет ara::core::Result<PrivateKey::Sptr>, который в случае успеха содержит shared pointer на созданный объект ключа.
Обработка ошибок
В случае ошибки метод гарантирует применение семантики отката (rollback) [SWS_CRYPT_50132]. Через Result могут возвращаться следующие коды ошибок:
InvalidArgument: сериализованные данные в serialized не соответствуют указанному формату [SWS_CRYPT_50132].
ara::crypto::CryptoErrc::kIncompatibleArguments: переданные allowedUsage несовместимы с algId[SWS_CRYPT_50132].
ara::crypto::CryptoErrc::kUnsupported: функция не поддерживается конкретным провайдером [SWS_CRYPT_50132].
ara::crypto::CryptoErrc::kBusyResource: операция временно не может быть выполнена из-за занятых ресурсов [SWS_CRYPT_50132].
ara::crypto::CryptoErrc::kUnsupportedFormat: formatId не поддерживается для этого типа объектов [SWS_CRYPT_50132].
Параллелизм и ограничения
Интерфейс объявлен как noexcept и обеспечивает безопасность исключений (exception safe), а также потокобезопасность (thread-safe) [SWS_CRYPT_50132]. Таким образом, вызовы могут выполняться параллельно из разных потоков.
Этот текст был сгенерирован системой ИИ на основе спецификации AUTOSAR.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2c89087292ccПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод ImportPublicKey служит для импорта сериализованного открытого ключа в соответствующий ara::crypto::cryp::CryptoProvider[SWS_CRYPT_20732]. Вызов выполняется синхронно и возвращает ara::core::Result<PublicKey::Sptr>, который в случае успеха содержит smart pointer на созданный объект ключа [SWS_CRYPT_20732].
serialized: область памяти ReadOnlyMemRegion, предоставляющая необработанные данные сериализованного ключа.
allowedUsage: допустимые флаги использования (AllowedUsageFlags) для импортированного ключа.
formatId: идентификатор формата сериализации (FormatId).
algId: опциональный ID алгоритма (ara::core::Optional<AlgId>). Он не требуется, если формат сериализации уже однозначно определяет свойства ключа.
Обработка ошибок
Если при обработке возникает ошибка, она инкапсулируется в возвращаемом ara::core::Result. Специфицированы следующие коды ошибок [SWS_CRYPT_20732]:
InvalidArgument: переданные данные в serialized не соответствуют указанному формату.
ara::crypto::CryptoErrc::kIncompatibleArguments: флаги использования allowedUsage несовместимы с algId.
ara::crypto::CryptoErrc::kUnsupportedFormat: указанный formatId не поддерживается для данного типа объекта.
ara::crypto::CryptoErrc::kUnsupported: запрошенная функция не поддерживается CryptoProvider.
ara::crypto::CryptoErrc::kBusyResource: выполнение операции временно невозможно.
Параллелизм и безопасность
Метод объявлен как noexcept, считается Exception-safe и в соответствии со спецификацией специфицирован как Thread-safe [SWS_CRYPT_20732]. Случаи ошибок следуют определённой семантике отката [SWS_CRYPT_20732].
Этот текст был сгенерирован системой ИИ и основан исключительно на данных спецификации из релиза R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 46a4ead0d7caПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод ImportSymmetricKey интерфейса ara::crypto::cryp::CryptoProvider служит для импорта сериализованного симметричного ключа [SWS_CRYPT_50014]. В качестве возвращаемого значения он предоставляет ara::core::Result<SymmetricKey::Sptr>, который в случае успеха предоставляет смарт-указатель на вновь инстанциированный объект ключа [SWS_CRYPT_50014]. Поскольку асинхронный тип возвращаемого значения, такой как фьючер (future), не используется, выполнение, вероятно, происходит синхронно. Вопрос Q-720a495b07c4f31d (открытый)
При вызове должны быть переданы следующие параметры [SWS_CRYPT_50014]:
serialized (ReadOnlyMemRegion): область памяти, содержащая сериализованные данные ключа.
allowedUsage (AllowedUsageFlags): битовая маска операций и вариантов использования, допустимых для этого ключа.
formatId (FormatId): идентификатор формата сериализации данных ключа.
algId (ara::core::Optional<AlgId>): опциональный идентификатор алгоритма; он не требуется, если указанный формат сериализации уже однозначно определяет все необходимые свойства ключа.
Обработка ошибок и граничные условия
Метод специфицирован как thread-safe и exception safe[SWS_CRYPT_50014]. В случае ошибки реализация гарантирует семантику отката и возвращает соответствующий код ошибки в ara::core::Result[SWS_CRYPT_50014]:
InvalidArgument: переданные двоичные данные в serialized не соответствуют указанному формату.
ara::crypto::CryptoErrc::kIncompatibleArguments: заданные флаги allowedUsage несовместимы с указанной algId.
ara::crypto::CryptoErrc::kUnsupported: функция не поддерживается конкретным экземпляром CryptoProvider.
ara::crypto::CryptoErrc::kUnsupportedFormat: указанный формат не поддерживается для данного типа ключа.
ara::crypto::CryptoErrc::kBusyResource: операция в настоящее время не может быть выполнена из-за временно занятых ресурсов.
Это указание по использованию было создано автоматически на основе спецификации AUTOSAR R25-11.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 933cf21dc7b3Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод LoadPrivateKey интерфейса ara::crypto::cryp::CryptoProvider загружает закрытый ключ из предоставленного слота для ключей ([SWS_CRYPT_20764]). Вызов выполняется синхронно и принимает в качестве параметра shared-указатель на исходный ресурс (keySlot). В случае успеха функция предоставляет shared-указатель на загруженный объект ключа (PrivateKey::Sptr), который возвращается внутри ara::core::Result ([SWS_CRYPT_20764]).
Обработка ошибок
Если во время операции возникает ошибка, действует семантика отката и ara::core::Result содержит определенный код ошибки ([SWS_CRYPT_20764]):
ara::crypto::CryptoErrc::kEmptyKeySlot: переданный слот для ключей пуст ([SWS_CRYPT_20764]).
ara::crypto::CryptoErrc::kIncompatibleObject: базовый ресурс принадлежит другому, несовместимому CryptoProvider или содержит иной тип ключа ([SWS_CRYPT_20764]).
ara::crypto::CryptoErrc::kBusyResource: операция временно не может быть выполнена ([SWS_CRYPT_20764]).
Параллелизм и безопасность
Спецификация классифицирует функцию как thread-safe и exception safe; сигнатура объявлена как noexcept ([SWS_CRYPT_20764]). Несколько потоков могут обращаться к методу параллельно, однако в случае временных конфликтов ресурсов они должны обрабатывать возможный возврат kBusyResource.
Это указание по использованию было сгенерировано автоматически на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bd65058963fbПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод LoadPublicKey интерфейса ara::crypto::cryp::CryptoProvider загружает открытый ключ из предоставленного места хранения ключей [SWS_CRYPT_20763]. В качестве параметра keySlot он ожидает KeySlot::Sptr, ссылающийся на место хранения с загружаемым ключом [SWS_CRYPT_20763]. В качестве возвращаемого значения функция возвращает ara::core::Result<PublicKey::Sptr>, которое в случае успеха содержит shared-указатель на загруженный объект открытого ключа [SWS_CRYPT_20763]. Непосредственное предоставление значения Result, по всей видимости, указывает на синхронный характер вызова. Вопрос Q-e0d2480909b1398a (открытый)
Обработка ошибок
Если операция загрузки завершается сбоем, ara::core::Result содержит соответствующий код ошибки домена ara::crypto::CryptoErrc, причем для всех специфицированных случаев ошибок определена семантика отката [SWS_CRYPT_20763]:
ara::crypto::CryptoErrc::kEmptyKeySlot: возникает, если переданный KeySlot пуст [SWS_CRYPT_20763].
ara::crypto::CryptoErrc::kIncompatibleObject: возвращается, если базовый ресурс принадлежит другому, несовместимому CryptoProvider или содержит иной тип ключа [SWS_CRYPT_20763].
ara::crypto::CryptoErrc::kBusyResource: возникает, если операция временно не может быть выполнена из-за занятости ресурса другими задачами [SWS_CRYPT_20763].
Параллелизм и безопасность
Метод объявлен с noexcept и специфицирован как Exception-safe [SWS_CRYPT_20763]. Что касается параллелизма, операция явно классифицирована как Thread-safe, благодаря чему параллельные вызовы из нескольких потоков допустимы [SWS_CRYPT_20763].
Данное указание по использованию было сгенерировано ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fa5c0e3150ceПроисхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Чисто виртуальный метод LoadSymmetricKey класса ara::crypto::cryp::CryptoProvider служит для загрузки симметричного ключа из предоставленного места хранения ключей [SWS_CRYPT_20762]. В качестве параметра функция принимает shared-указатель на соответствующее место хранения (keySlot) и синхронно возвращает ara::core::Result<SymmetricKey::Sptr>, которое при успешном выполнении предоставляет shared-указатель на загруженный объект ключа [SWS_CRYPT_20762].
Что касается параллелизма и безопасности выполнения, метод специфицирован как thread-safe, а также exception safe и объявлен с noexcept[SWS_CRYPT_20762].
Если при загрузке возникает ошибка, метод возвращает через объект Result специфические коды ошибок из домена ara::crypto::CryptoErrc с определенной семантикой отката [SWS_CRYPT_20762]:
ara::crypto::CryptoErrc::kEmptyKeySlot: возникает, если переданный KeySlot пуст [SWS_CRYPT_20762].
ara::crypto::CryptoErrc::kIncompatibleObject: возвращается, если базовый ресурс принадлежит другому, несовместимому криптопровайдеру или содержит другой тип ключа [SWS_CRYPT_20762].
ara::crypto::CryptoErrc::kBusyResource: сигнализирует о том, что операция временно не может быть выполнена [SWS_CRYPT_20762].
Этот текст был сгенерирован системой ИИ и опирается исключительно на спецификацию.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал