DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

ModulCrypto (Crypto Driver)
BSW-Modul-ID114
Standard-Header#include "Crypto.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoDriver.pdf
ClusterCrypto Services

Руководство по модулюСОЗДАНО ИИ

Предоставляет криптографические примитивы и управление ключами для низкоуровневого криптографического стека AUTOSAR Classic.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 79b1b64c6bf7 Происхождение Открытые вопросы (2)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Предоставляет криптографические примитивы и управление ключами для низкоуровневого криптографического стека AUTOSAR Classic.

Crypto Driver в качестве модуля MCAL предоставляет низкоуровневые криптографические вычисления, а также управление ключами для криптографического стека AUTOSAR Classic (EXP_UtilizationOfCryptoServices с. 8). Он инкапсулирует аппаратные модули безопасности (HSM) или программные библиотеки в объектах драйвера (Driver Objects) и обрабатывает как синхронные, так и асинхронные задания через центральный интерфейс Crypto_ProcessJob ([SWS_Crypto_91003]). Доступ к ключам подчиняется конфигурируемым правам, а долговременное сохранение в NVM инициируется только при успешной валидации ключа (SWS_CryptoDriver с. 37).

Crypto Driver (модуль Crypto) в качестве драйвера MCAL образует самый нижний фундамент криптографического стека AUTOSAR Classic и напрямую подключает аппаратные модули безопасности (HSM), криптографические ускорители и программные подпрограммы к криптографическому интерфейсу (CryIf) (EXP_UtilizationOfCryptoServices с. 8, SWS_CryptoDriver с. 15). При множественных реализациях экземпляры именуются специфичным для производителя образом по схеме Crypto_<vi>_<ai> ([SWS_Crypto_00012]). Инициализация выполняется синхронно через [SWS_Crypto_91000] с обязательным нулевым указателем для [SWS_Crypto_91016] ([SWS_Crypto_00215]). Внутри модуль инкапсулирует автономные вычислительные блоки в Crypto Driver Objects, каждый из которых может одновременно выполнять ровно одно задание ([SWS_Crypto_00014]), тогда как n объектов обеспечивают параллельные вычисления ([SWS_Crypto_00117]). Driver Object 0 при этом функционирует как центральный генератор случайных чисел для внутренних потребностей всех остальных объектов драйвера того же экземпляра ([SWS_Crypto_00224], [SWS_Crypto_00225]).

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

Контекстная диаграмма: встраивание Crypto Driver в криптографический стек AUTOSAR с Driver Objects и интерфейсами к NvM и DET. Источники: SWS_CryptoDriver с. 15, SWS_Crypto_00012, SWS_Crypto_91017

Криптографические задания обрабатываются через [SWS_Crypto_91003] (Crypto_ProcessJob), причем битовое поле режима (START, UPDATE, FINISH) унифицирует потоковую передачу и полные вызовы (SWS_CryptoDriver с. 25, [SWS_Crypto_00017]). Асинхронные задания вычисляются через циклическую функцию [SWS_Crypto_91012] (Crypto_MainFunction) и после завершения передаются в CryIf посредством CRYIF_CallbackNotification ([SWS_Crypto_00027], [SWS_Crypto_00028]). Выполняющиеся задания можно синхронно отменить с помощью [SWS_Crypto_00122] ([SWS_Crypto_00183], [SWS_Crypto_00214]), тогда как прямое перенаправление буфера на ключевые элементы сокращает операции копирования ([SWS_Crypto_00203], [SWS_Crypto_00221]).

Асинхронная обработка задания через Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Проверить параметры и дескрипторы ключейE_OK (Auftrag angenommen)Crypto_MainFunction()Запустить вычисление (START/UPDATE/FINISH)Выполнить криптографическое вычислениеErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Возврат

Диаграмма последовательности: асинхронный процесс обработки через Crypto_ProcessJob, цикл в Crypto_MainFunction и обратное уведомление через CRYIF_CallbackNotification. Источники: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Управление ключами включает установку ([SWS_Crypto_91004]), чтение ([SWS_Crypto_91006]), копирование ([SWS_Crypto_00155], [SWS_Crypto_91015]), генерацию ([SWS_Crypto_91007]) и деривацию ([SWS_Crypto_91008]) ключевых элементов в условиях строгого контроля прав доступа ([SWS_Crypto_00219], [SWS_Crypto_00220]). Персистирование в Non-Volatile RAM Manager (NvM) из соображений согласованности никогда не инициируется при единичной записи, а исключительно при валидации ключа через [SWS_Crypto_91014] (Crypto_KeySetValid) (SWS_CryptoDriver с. 37, [SWS_Crypto_91025]). В многоядерных средах модуль действует изолированно в каждом разделе ([SWS_Crypto_CONSTR_00001]), при этом объекты HSM разрешается назначать максимум одному разделу ([SWS_Crypto_CONSTR_00003]).

Роль и системные границы Crypto Driver в криптографическом стеке Classic

Crypto Driver (сокращение модуля Crypto) располагается на самом нижнем уровне базового программного обеспечения AUTOSAR Classic в Microcontroller Abstraction Layer (MCAL) (EXP_UtilizationOfCryptoServices с. 8). Он находится непосредственно под криптографическим интерфейсом (Crypto Interface, CryIf) и через него обслуживает Crypto Service Manager (CSM) (SWS_CryptoDriver с. 15). Его главная задача состоит в инкапсуляции конкретных криптографических вычислительных блоков — будь то аппаратные модули безопасности (Hardware Security Modules, HSM), выделенные криптографические ускорители, такие как механизмы AES, или чисто программные библиотеки (SWS_CryptoDriver с. 15). Помимо фактического вычисления криптографических примитивов, объем функций включает хранение, конфигурирование и управление криптографическими ключами (SWS_CryptoDriver с. 24).

В одном электронном блоке управления (ECU) могут параллельно существовать несколько экземпляров драйверов от разных производителей; в этом случае идентификаторы файлов, API и конфигураций однозначно дифференцируются специфичным для производителя инфиксом по схеме Crypto_<vi>_<ai> ([SWS_Crypto_00012]). Инициализация модуля выполняется через функцию [SWS_Crypto_91000] (Crypto_Init). В качестве особенности для указателя конфигурации типа [SWS_Crypto_91016] (Crypto_ConfigType) действует правило, согласно которому он всегда должен передаваться как нулевой указатель ([SWS_Crypto_00215]). Информация о версии может быть запрошена синхронно через [SWS_Crypto_91001] (Crypto_GetVersionInfo), при этом передача нулевого указателя при активном обнаружении ошибок разработки сообщается в DET с ошибкой CRYPTO_E_PARAM_POINTER (SWS_CryptoDriver с. 56).

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

Контекстная диаграмма: встраивание Crypto Driver в криптографический стек AUTOSAR с Driver Objects и интерфейсами к NvM и DET. Источники: SWS_CryptoDriver с. 15, SWS_Crypto_00012, SWS_Crypto_91017

Управление объектами Crypto Driver Objects и аппаратная абстракция

Каждый экземпляр Crypto Driver внутренне подразделяется на один или несколько логических объектов драйвера (Crypto Driver Objects) (SWS_CryptoDriver с. 15). Crypto Driver Object образует функциональную оконечную точку криптографического канала и представляет собой автономный аппаратный вычислительный блок или программную реализацию (SWS_CryptoDriver с. 15). Отдельный Driver Object в силу своего принципа действия в заданный момент времени всегда может активно выполнять ровно одно задание (Job) ([SWS_Crypto_00014]). Таким образом, Crypto Driver с n объектами Driver Objects обладает пропускной способностью для параллельного вычисления n криптографических заданий ([SWS_Crypto_00117]). То, какие математические и связанные с безопасностью примитивы поддерживаются, определяется производительностью назначенного объекта ([SWS_Crypto_00013]).

Если объекту драйвера требуются внутренние случайные числа (например, для вычисления открытых значений в рамках обмена ключами через [SWS_Crypto_91009]) и он не имеет собственного генератора случайных чисел, он обязательно обращается к Crypto Driver Object 0 того же драйвера ([SWS_Crypto_00224], [SWS_Crypto_00225]). При этом объектам драйвера ни при каких обстоятельствах не разрешается адресовать генераторы случайных чисел сторонних экземпляров криптографических драйверов ([SWS_Crypto_00226]). Интерпретация: Driver Object 0, таким образом, функционирует как центральный внутренний эталонный генератор случайных чисел для всех остальных объектов драйвера того же раздела. Вопрос Q-4e8e30714cbc9c80 (открытый)

Обработка заданий между синхронным прямым вызовом и асинхронной потоковой передачей

Криптографические процессы обработки передаются модулю в виде структур заданий типа Crypto_JobType через центральный интерфейс [SWS_Crypto_91003] (Crypto_ProcessJob) ([SWS_Crypto_00042], AUTOSAR_CP_SWS_CryptoServiceManager с. 21). Интерфейс объединяет блочные полные вызовы и непрерывную потоковую передачу данных через специфичное для режима битовое поле: операции START, UPDATE и FINISH могут передаваться по отдельности или в комбинации (SWS_CryptoDriver с. 25). Установка флага START обозначает новое задание и прерывает все предшествующие экземпляры того же задания ([SWS_Crypto_00017]). При комбинированной передаче шаги всегда выполняются в строго фиксированном порядке: START, UPDATE и в завершение FINISH (SWS_CryptoDriver с. 25).

Обрабатывается ли задание синхронно или асинхронно, определяется конфигурацией метаданных в Crypto_JobType (SWS_CryptoDriver с. 26). В асинхронном режиме [SWS_Crypto_91003] лишь принимает данные задания; фактическое выполнение инициируется или обрабатывается циклической главной функцией [SWS_Crypto_91012] (Crypto_MainFunction) ([SWS_Crypto_00027], [SWS_Crypto_91012]). После завершения асинхронного вычисления Crypto Driver в обязательном порядке уведомляет вышележащий уровень CryIf посредством вызова callback-функции CRYIF_CallbackNotification с возвратом статуса и указателей на результат ([SWS_Crypto_00028]). Интерпретация: синхронные вызовы, напротив, выполняют криптографическую операцию блокирующим образом в контексте вызывающей стороны, не развязываясь через главную функцию. Вопрос Q-0447ed9db11aa30b (открытый)

Асинхронная обработка задания через Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)Проверить параметры и дескрипторы ключейE_OK (Auftrag angenommen)Crypto_MainFunction()Запустить вычисление (START/UPDATE/FINISH)Выполнить криптографическое вычислениеErgebnis bereitstellenCRYIF_CallbackNotification(job, result)Возврат

Диаграмма последовательности: асинхронный процесс обработки через Crypto_ProcessJob, цикл в Crypto_MainFunction и обратное уведомление через CRYIF_CallbackNotification. Источники: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

Текущие или ожидающие криптографические задания могут быть отменены с помощью функции [SWS_Crypto_00122] (Crypto_CancelJob). Если запрошенное задание не находится в активной обработке объектом драйвера, оно немедленно удаляется, и вызов возвращает E_OK ([SWS_Crypto_00214]). Однако если аппаратное обеспечение не может немедленно прервать активный процесс вычисления, API подтверждает попытку значением CRYPTO_E_JOB_CANCELED, и отмена завершается на следующем достижимом шаге ([SWS_Crypto_00183]).

Отмена задания через Crypto_CancelJobCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altЗадание не находится в активной обработкеУдалить задание из очереди драйвераE_OK (Job sofort entfernt)Задание активно, и аппаратное обеспечение не может немедленно прерватьHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

Диаграмма последовательности: синхронная отмена криптографических заданий через Crypto_CancelJob с разделением случаев при активном аппаратном выполнении. Источники: SWS_Crypto_00122, SWS_Crypto_00183, SWS_Crypto_00214

Для предотвращения ненужных операций копирования между памятью приложений и аппаратной памятью Crypto Driver поддерживает прямое перенаправление буферов (Job Redirection): входные и выходные данные могут напрямую ссылаться на внутренние ключевые элементы через jobRedirectionInfoRef ([SWS_Crypto_00203], [SWS_Crypto_00204]). Для предотвращения утечек данных при этом действуют строгие проверки прав: при входных перенаправлениях для служб шифрования и дешифрования ключевой элемент должен иметь как минимум право CRYPTO_RA_ENCRYPTED, для перенаправлений только для чтения требуется как минимум CRYPTO_RA_INTERNAL_COPY ([SWS_Crypto_00221]).

Управление ключами, права доступа и криптографические операции с ключами

Логический ключ (Key) в Crypto Driver состоит из одного или нескольких ключевых элементов (Key Elements), которые содержат фактический ключевой материал, векторы инициализации (IV), случайные затравки (Seeds) или SHE-доказательства (Proof) (SWS_CryptoDriver с. 28). Доступ к каждому отдельному элементу строго регламентирован: операции чтения и записи контролируются на основе сконфигурированных иерархий прав (например, CRYPTO_RA_ALLOWED, CRYPTO_RA_ENCRYPTED, CRYPTO_RA_INTERNAL_COPY), причем меньшее значение перечисления представляет более высокий уровень права доступа (SWS_CryptoDriver с. 28, [SWS_Crypto_00219]). Прямые операции чтения разрешены только при CRYPTO_RA_ALLOWED или CRYPTO_RA_ENCRYPTED ([SWS_Crypto_00222]); операции записи требуют как минимум CRYPTO_WA_ALLOWED или CRYPTO_WA_ENCRYPTED ([SWS_Crypto_00223]). При копировании исходный элемент должен иметь как минимум CRYPTO_RA_INTERNAL_COPY и не может обладать меньшими правами, чем целевой элемент ([SWS_Crypto_00220]).

Для прямого манипулирования ключами и их элементами Crypto Driver предоставляет ряд синхронных API: установка и чтение данных осуществляются через [SWS_Crypto_91004] (Crypto_KeyElementSet) и [SWS_Crypto_91006] (Crypto_KeyElementGet) соответственно. Существующие идентификаторы элементов ключа могут быть получены через [SWS_Crypto_00160] (Crypto_KeyElementIdsGet). Полные ключи или отдельные элементы дублируются с помощью [SWS_Crypto_00155] (Crypto_KeyCopy) или [SWS_Crypto_00148] (Crypto_KeyElementCopy). Для частичного копирования существует [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial), которая обеспечивает точные проверки длины и смещения в исходном и целевом буферах ([SWS_Crypto_00207], [SWS_Crypto_00208], [SWS_Crypto_00209]) и динамически корректирует целевую длину ([SWS_Crypto_00210], [SWS_Crypto_00211]).

Кроме того, модуль поддерживает сложные операции с ключами: генерация ключей осуществляется через [SWS_Crypto_91007] (Crypto_KeyGenerate) на основе данных энтропии, предварительно инициализированных с помощью [SWS_Crypto_91013] (Crypto_RandomSeed). Формирование новых ключевых материалов выполняет [SWS_Crypto_91008] (Crypto_KeyDerive). Для протоколов обмена ключами Диффи — Хеллмана доступны функции [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) для генерации открытого значения, а также [SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) для вычисления общего секрета (SWS_CryptoServiceManager с. 70).

Каждый логический ключ имеет статус, который можно запросить через [SWS_Crypto_91019] (Crypto_KeyGetStatus). Вновь записанные ключи изначально находятся в состоянии invalid и переводятся в состояние valid только после успешной валидации с помощью [SWS_Crypto_91014] (Crypto_KeySetValid), тогда как [SWS_Crypto_91020] (Crypto_KeySetInvalid) явно блокирует ключ. Что касается форматов данных, драйвер обрабатывает асимметричные ключи согласно RFC 5958 в кодировке ASN.1-PKCS#8 ([SWS_Crypto_00184]), структуры ключей RSA согласно RFC 8017 с фиксированным OID алгоритма 1.2.840.113549.1.1.1 ([SWS_Crypto_00185], [SWS_Crypto_00186], [SWS_Crypto_00187], [SWS_Crypto_00188]), а также данные кривых ECC (NIST, Brainpool, ED25519) в координатах точек в формате little-endian ([SWS_Crypto_00189], [SWS_Crypto_00190], [SWS_Crypto_00191], [SWS_Crypto_00192], [SWS_Crypto_00193]). Аппаратно-ориентированные ключи SHE передаются в формате M1M2M3; их подтверждение верификации M4M5 временно доступно для считывания в ключевом элементе 2 сразу после валидации ([SWS_Crypto_00255]).

diag_schluessel_lebenszyklus UNINITIALIZED UNINITIALIZED INVALID INVALID UNINITIALIZED->INVALID Crypto_Init / NVM-Ladefehler INVALID->INVALID Crypto_KeyElementSet / Crypto_KeyGenerate VALID VALID INVALID->VALID Crypto_KeySetValid (проверка OK) VALID->INVALID Crypto_KeySetInvalid VALID->VALID Crypto_KeyElementSet (Re-Validierung ausstehend) NVM_SYNC NVM_SYNC VALID->NVM_SYNC NVM-Schreibanforderung NVM_SYNC->VALID Persistierung erfolgreich

Диаграмма состояний: переходы состояний ключа от заполнения через валидацию до сохранения и обработки ошибок. Источники: SWS_Crypto_00198, SWS_Crypto_00242, SWS_Crypto_91014, SWS_Crypto_91019, SWS_Crypto_91020

Сохранение ключевых элементов через Non-Volatile RAM Manager

Если ключи должны сохраняться энергонезависимо между циклами подачи питания, Crypto Driver подключается к Non-Volatile RAM Manager (NvM) (SWS_CryptoDriver с. 35, AUTOSAR_CP_SWS_CryptoDriver с. 37). Центральный архитектурный принцип гласит, что операции записи в NvM никогда не инициируются непосредственно при заполнении отдельного элемента через Crypto_KeyElementSet (SWS_CryptoDriver с. 37). Вместо этого сохранение инициируется исключительно валидацией статуса KEYSETVALID через [SWS_Crypto_91014] (Crypto_KeySetValid) или эквивалентным криптографическим заданием (SWS_CryptoDriver с. 37). Это гарантирует, что взаимозависимые ключевые элементы проверяются согласованно и сохраняются за одну операцию записи NvM, что экономит циклы флэш-памяти (SWS_CryptoDriver с. 37).

Взаимодействие с NvM осуществляется через выделенные callback-интерфейсы: во время запуска электронного блока управления NvM предоставляет блок инициализации через [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>). Загрузка сохраненных данных из RAM-зеркала NvM выполняется через [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>). Перед записью NvM вызывает [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>), чтобы криптографический драйвер скопировал свои внутренние данные ключей в буфер NvM; о завершении асинхронной передачи блока сообщается через [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>). Для управления драйвер использует службы NvM NvM_SetRamBlockStatus и NvM_WriteBlock ([SWS_Crypto_91017]). Если загрузка персистентного ключа при запуске завершается сбоем, драйвер в обязательном порядке помечает этот ключ как invalid ([SWS_Crypto_00198]).

Сохранение ключей в NVM при валидацииCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)Проверить целостность и зависимости элементовNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)Передать данные ключа в зеркало RAM модуля NvME_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)Установить статус ключа в VALIDE_OKE_OK

Диаграмма последовательности: сохранение ключевых элементов в NVM при валидации через NvM_WriteBlock и специфичные для драйвера callback-функции. Источники: SWS_Crypto_00242, SWS_Crypto_91017, SWS_Crypto_91025, SWS_Crypto_91026

Партиционирование и правила многоядерной работы

Для эффективного распределения криптографических операций в многоядерных системах криптографический стек может быть распределен по нескольким программным разделам (BSWDistributionGuide с. 59). Модуль Crypto функционирует в каждом разделе как полностью независимый экземпляр: каждый вызов API обрабатывает данные исключительно внутри того раздела, в котором он был инициирован ([SWS_Crypto_CONSTR_00001]). Партиционирование объектов драйвера подчиняется строгим правилам конфигурации: разделы, на которые ссылается CryptoDriverObjectEcucPartitionRef, обязательно должны составлять строгое подмножество разделов, назначенных модулю (CryptoEcucPartitionRef) ([SWS_Crypto_CONSTR_00002]). Если Crypto Driver Object привязан к аппаратному модулю безопасности (HSM), из соображений аппаратной изоляции он может быть назначен ровно 0 или 1 разделу ([SWS_Crypto_CONSTR_00003]).

Поведение при ошибке

Crypto Driver реализует двухуровневый мониторинг ошибок, состоящий из обнаружения ошибок разработки (Development Errors) и ошибок времени выполнения (Runtime Errors). При активированном режиме безопасности разработки (DET) формальные нарушения интерфейса передаются в Det_ReportError ([SWS_Crypto_91017]). К ним относятся вызовы до инициализации драйвера (CRYPTO_E_UNINIT, 0x00) ([SWS_Crypto_00040], [SWS_Crypto_00196], [SWS_Crypto_00205]), недействительные данные инициализации (CRYPTO_E_INIT_FAILED, 0x01), а также недопустимые нулевые указатели (CRYPTO_E_PARAM_POINTER, 0x02) ([SWS_Crypto_00040]). Если идентификаторы ключей или дескрипторы целевых ключей находятся вне допустимого диапазона значений, драйвер прерывает вызов с E_NOT_OK и сообщает об CRYPTO_E_PARAM_HANDLE (0x04) ([SWS_Crypto_00040], [SWS_Crypto_00180], [SWS_Crypto_00197], [SWS_Crypto_00202], [SWS_Crypto_00217]).

Если переданных входных или выходных буферов недостаточно для операции, в выполнении отказывается, и при активном DET сообщается об ошибке CRYPTO_E_SMALL_BUFFER ([SWS_Crypto_00195], SWS_CryptoDriver с. 49). Нормативное исключение действует для служб CRYPTO_HASH и CRYPTO_MACGENERATE: если выходной буфер здесь меньше собственной длины хеша или MAC, результат не отбрасывается, а усекается и записывается в буфер в виде старших значащих битов (MSB) ([SWS_Crypto_00065]). В процессе штатной работы драйвер сообщает о специфических ошибках времени выполнения через возвращаемое значение: исчерпание энтропии случайных чисел квитируется [SWS_Crypto_91003] с кодом возврата CRYPTO_E_ENTROPY_EXHAUSTED и уведомлением об ошибке времени выполнения CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) ([SWS_Crypto_00141], [SWS_Crypto_00194], [SWS_Crypto_91018]). При сбоях операций чтения или записи в NVM сигнализируется CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) ([SWS_Crypto_00194]). Другими стандартизированными возвращаемыми значениями API являются CRYPTO_E_BUSY, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH и CRYPTO_E_KEY_EMPTY ([SWS_Crypto_00155], [SWS_Crypto_00207], [SWS_Crypto_91018]).

Дальнейшие подробные доказательства

Основные свойства Crypto Driver опираются на следующие функциональные требования спецификации и архитектурные положения:

Тематическая областьОсновные элементы спецификацииСсылка на документ
Структура модуля & инстанцирование[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
Обработка заданий & отмена[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
Управление ключами & правами[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
Криптографические операции & обмен[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
Сохранение в NvM & callback-функции[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
Многоядерность & партиционирование[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

Настоящее руководство основано исключительно на нормативных положениях спецификации AUTOSAR Classic R20-11.

Crypto Driver (Crypto)

Low-level driver executing cryptographic primitives on hardware security modules (HSM) or software libraries.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

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

Функция Crypto_Init служит для инициализации Crypto Driver согласно [SWS_Crypto_91000]. Интерфейс объявлен в заголовочном файле Crypto.h и имеет идентификатор службы 0x00 [SWS_Crypto_91000].

Для вызова и параметров интерфейса специфицированы следующие свойства:

  • Указатель конфигурации: Через входной параметр configPtr типа const Crypto_ConfigType* передается указатель на выбранную структуру конфигурации [SWS_Crypto_91000].
  • Возвращаемое значение: Функция не имеет возвращаемого значения (void); не существует ни входно-выходных параметров, ни отдельных выходных параметров [SWS_Crypto_91000].
  • Поведение при выполнении: Подпрограмма инициализации выполняется синхронно (Synchronous) [SWS_Crypto_91000].
  • Реентерабельность: Функция определена как нереентерабельная (Non Reentrant) [SWS_Crypto_91000]. Параллельные или перекрывающиеся вызовы недопустимы.

Из-за классификации как нереентерабельной и поскольку спецификация не возвращает конкретных кодов ошибок, вызов, вероятно, обычно выполняется централизованно на этапе запуска электронного блока управления перед всеми другими обращениями к драйверу (интерпретация). Вопрос Q-008bb5a45b823891 (открытый) Вызывающая сторона также, вероятно, отвечает за то, чтобы адресуемая структура конфигурации оставалась постоянно валидной в памяти (интерпретация). Вопрос Q-6271a86fad440121 (открытый)

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

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

функция Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

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

Функция Crypto_ProcessJob выполняет криптографический примитив, настроенный в параметре job, на Crypto Driver Object, на который ссылается objectId [SWS_Crypto_91003]. Вызов является реентерабельным и работает синхронно или асинхронно в зависимости от конфигурации задания [SWS_Crypto_91003]. Через указатель на Crypto_JobType передаются как данные конфигурации для примитива, так и буферы для результирующих данных [SWS_Crypto_91003].

Перед фактическим выполнением задания драйвер проверяет идентификаторы ключей на валидность: если job->cryptoKeyId или, при необходимости, job->targetCryptoKeyId находятся вне допустимого диапазона, функция сообщает об ошибке CRYPTO_E_PARAM_HANDLE в DET и возвращает E_NOT_OK [SWS_Crypto_00217]. Это также применимо к службе CRYPTO_KEYDERIVE (job->jobPrimitiveInfo->primitiveInfo->service), если job->targetCryptoKeyId недействителен [SWS_Crypto_00202].

Помимо E_OK и E_NOT_OK, конкретные коды ошибок сигнализируют о сбое запроса [SWS_Crypto_91003]:

  • CRYPTO_E_BUSY, если объект драйвера занят или его очередь заполнена [SWS_Crypto_91003],
  • связанные с ключами ошибки, такие как CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE или CRYPTO_E_KEY_EMPTY [SWS_Crypto_91003],
  • CRYPTO_E_JOB_CANCELED при отмене синхронного задания [SWS_Crypto_91003], а также
  • CRYPTO_E_ENTROPY_EXHAUSTED при недостаточной энтропии генератора случайных чисел; при этом функция дополнительно сообщает об ошибке времени выполнения CRYPTO_E_RE_ENTROPY_EXHAUSTED [SWS_Crypto_00141], [SWS_Crypto_91003].

Этот текст был создан ИИ на основе данных спецификации AUTOSAR R20-11.

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

функция Crypto_CancelJob [SWS_Crypto_00122] 📄 PDF

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

This interface removes the provided job from the queue and cancels the processing of the job if possible.

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

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

Синхронная функция Crypto_CancelJob удаляет переданное задание из очереди и по возможности прерывает его обработку [SWS_Crypto_00122]. При вызове передаются идентификатор Crypto Driver Object (objectId), а также указатель на конфигурацию задания (job) [SWS_Crypto_00122].

Возвращаемые значения сигнализируют о результате попытки отмены:

  • E_OK: Запрос выполнен успешно, и задание удалено [SWS_Crypto_00122]. Если в драйвере нет ошибок и задание в данный момент не обрабатывается, служба также возвращает E_OK без дальнейших действий [SWS_Crypto_00214].
  • E_NOT_OK: запрос завершился неудачно, так как задание не удалось удалить [SWS_Crypto_00122].
  • CRYPTO_E_JOB_CANCELED: Задание отменено, однако продолжает выполняться; результаты приложению не возвращаются [SWS_Crypto_00122]. Это применимо, если драйвер работает безошибочно, но не может отменить задание (например, из-за аппаратных ограничений) [SWS_Crypto_00183].

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

Интерфейс реентерабелен для различных экземпляров, но не должен вызываться одновременно для одного и того же Crypto Driver Object [SWS_Crypto_00122].

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

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

функция Crypto_KeyElementSet [SWS_Crypto_91004] 📄 PDF

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Sets the given key element bytes to the key identified by crypto Key Id.

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

Синхронная функция Crypto_KeyElementSet служит для установки необработанных данных определенного ключевого элемента для ключа, идентифицированного через cryptoKeyId, в криптодрайвере [SWS_Crypto_91004].

Параметры и возвращаемые значения

Через keyElementId адресуется целевой ключевой элемент, тогда как keyPtr указывает на буфер данных, а keyLength — на его размер в байтах [SWS_Crypto_91004]. При успешном присвоении интерфейс возвращает E_OK [SWS_Crypto_91004].

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

При возникновении ошибки во время обработки функция возвращает определенные возвращаемые значения [SWS_Crypto_91004]:

  • CRYPTO_E_BUSY: Соответствующий объект криптодрайвера занят.
  • CRYPTO_E_KEY_WRITE_FAIL: доступ на запись к элементу ключа отклонен.
  • CRYPTO_E_KEY_NOT_AVAILABLE: Запрошенный ключевой элемент или ключ недоступен.
  • CRYPTO_E_KEY_SIZE_MISMATCH: Переданная длина данных не совпадает с размером ключевого элемента.
  • E_NOT_OK: Запрос завершился неудачей по иным причинам.

Параллелизм

Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Crypto_91004]. Интерпретация: вызывающие стороны, вероятно, должны синхронизировать параллельные вызовы между собой, чтобы предотвратить несогласованность данных в драйвере. Вопрос Q-d7ef7a774052a212 (открытый)

Данное указание по использованию было создано автоматически на основе спецификации SWS_Crypto_91004 (R20-11).

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

функция Crypto_KeySetValid [SWS_Crypto_91014] 📄 PDF

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Sets the key state of the key identified by crypto Key Id to valid.

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

Синхронная функция Crypto_KeySetValid служит для того, чтобы установить состояние ключа, специфицированного через идентификатор cryptoKeyId, в значение «действителен» ([SWS_Crypto_91014]). Интерфейс доступен через заголовочный файл Crypto.h и имеет Service-ID 0x05 ([SWS_Crypto_91014]).

При использовании определены следующие параметры и возвращаемые значения ([SWS_Crypto_91014]):

  • Входной параметр: через cryptoKeyId (тип uint32) передается идентификатор ключа, состояние которого должно быть установлено в значение «действителен» ([SWS_Crypto_91014]). Дополнительные входные или выходные параметры отсутствуют ([SWS_Crypto_91014]).
  • Возвращаемое значение: код состояния типа Std_ReturnType информирует о результате запроса ([SWS_Crypto_91014]):
    • E_OK: запрос был успешен ([SWS_Crypto_91014]).
    • E_NOT_OK: запрос завершился сбоем ([SWS_Crypto_91014]).
    • CRYPTO_E_BUSY: выполнение не удалось, так как ответственный Crypto-Driver-объект занят ([SWS_Crypto_91014]).

Что касается параллельности, функция специфицирована как неревходабельная («Non Reentrant») ([SWS_Crypto_91014]). Интерпретация: вызывающим сторонам, вероятно, придется координировать параллельные вызовы между задачами извне во избежание конфликтов, а при получении CRYPTO_E_BUSY предусмотреть повторение вызова в более поздний момент времени. Вопрос Q-32d775a9e61e5731 (открытый)

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

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

функция Crypto_KeySetInvalid [SWS_Crypto_91020] 📄 PDF

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

Sets invalid for the status of the key identifi ed by crypto Key Id.

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

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

Синхронная функция Crypto_KeySetInvalid устанавливает статус ключа, идентифицированного через cryptoKeyId, в недействительный [SWS_Crypto_91020]. Функция определена в заголовочном файле Crypto.h и вызывается через Service-ID 0x15 [SWS_Crypto_91020]. Единственным передаваемым параметром служит входное значение cryptoKeyId (тип uint32), содержащее однозначный идентификатор целевого ключа; входные/выходные, а также выходные параметры отсутствуют [SWS_Crypto_91020].

Обработка ошибок и возвращаемые значения

Результат выполнения функции сигнализируется через возвращаемое значение типа Std_ReturnType [SWS_Crypto_91020]:

  • E_OK: запрос был успешным, и статус ключа был установлен в недействительный [SWS_Crypto_91020].
  • E_NOT_OK: выполнение запроса завершилось неудачей [SWS_Crypto_91020].
  • CRYPTO_E_BUSY: запрос завершился неудачей, так как ответственный объект криптографического драйвера (Crypto Driver Object) в настоящее время занят [SWS_Crypto_91020].

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

Интерфейс специфицирован как неревходабельный (Non Reentrant) [SWS_Crypto_91020]. Параллельный или прерывающий вызов поэтому недопустим. Так как функция выполняется синхронно, она возвращает управление вызывающей стороне только после завершения изменения статуса либо после обнаружения ошибки [SWS_Crypto_91020].

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

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

функция Crypto_KeyElementGet [SWS_Crypto_91006] 📄 PDF

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This interface shall be used to get a key element of the key identified by the crypto

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

Синхронная и реентерабельная функция Crypto_KeyElementGet служит для считывания ключевого элемента, идентифицированного через keyElementId, из ключа cryptoKeyId и его сохранения в области памяти resultPtr [SWS_Crypto_91006]. Интерфейс предоставляется через заголовочный файл Crypto.h и имеет идентификатор службы 0x06 [SWS_Crypto_91006]. При вызове вызывающая сторона передает через входно-выходной параметр resultLengthPtr размер буфера или, при настроенном частичном доступе, желаемый размер чтения; после завершения выполнения драйвер сохраняет там фактически скопированный объем данных [SWS_Crypto_91006].

В случае успеха функция возвращает E_OK [SWS_Crypto_91006]. В случае сбоя операции она сигнализирует об этом через определенные коды ошибок: CRYPTO_E_BUSY при занятом объекте криптодрайвера, CRYPTO_E_KEY_NOT_AVAILABLE если ключевой элемент недоступен, CRYPTO_E_KEY_READ_FAIL при отказе в доступе на чтение, CRYPTO_E_KEY_EMPTY при неинициализированном исходном элементе, а также в общем виде E_NOT_OK [SWS_Crypto_91006].

Хотя интерфейс специфицирован как реентерабельный, в спецификации отмечается, что при прямом отображении ключевого элемента во флэш-память могут возникать ощутимые задержки во время синхронного выполнения [SWS_Crypto_91006]. Интерпретация: из-за этих потенциальных задержек вызов, вероятно, целесообразен преимущественно в контексте задач, а не внутри критичных ко времени подпрограмм обработки прерываний. Вопрос Q-ff4e2843b9aad46d (открытый)

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

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

функция Crypto_KeyGetStatus [SWS_Crypto_91019] 📄 PDF

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by crypto Key Id.

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

Синхронная функция Crypto_KeyGetStatus служит для запроса текущего состояния определенного ключа внутри криптодрайвера [SWS_Crypto_91019]. Она предоставляется через заголовочный файл Crypto.h и имеет идентификатор службы 0x14 [SWS_Crypto_91019].

Использование и параметры

Вызов выполняется синхронно и ожидает два параметра [SWS_Crypto_91019]:

  • cryptoKeyId: Идентификатор ключа, статус которого необходимо определить.
  • keyStatusPtr: Указатель на область памяти типа Crypto_KeyStatusType, в которую возвращается состояние.

В качестве возвращаемого значения интерфейс возвращает Std_ReturnType. При успешном выполнении сообщается E_OK, тогда как в случае ошибки возвращается E_NOT_OK [SWS_Crypto_91019].

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

Функция объявлена как нереентерабельная (Non Reentrant) [SWS_Crypto_91019]. Поэтому вызывающие стороны должны гарантировать, что параллельные вызовы предотвращаются с помощью вышестоящих механизмов синхронизации. Конкретные сообщения об ошибках DET не приведены; предположительно, некорректный вызов, такой как недействительный указатель или недействительный ID, напрямую приводит к возврату E_NOT_OK [SWS_Crypto_91019]. Вопрос Q-5703fab02905e91a (открытый)

Этот текст был создан ИИ и основан на спецификации AUTOSAR R20-11.

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

функция Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopy.

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

Синхронная функция Crypto_KeyElementCopy служит для копирования ключевого элемента в другой ключевой элемент внутри того же криптодрайвера [SWS_Crypto_00148]. Передаются идентификаторы исходного ключа (cryptoKeyId) и исходного ключевого элемента (keyElementId), а также целевого ключа (targetCryptoKeyId) и целевого ключевого элемента (targetKeyElementId) [SWS_Crypto_00148].

Что касается временных характеристик, следует учитывать, что для ключевых элементов, отображенных непосредственно во флэш-памяти, из-за синхронного выполнения могут возникать значительные задержки при вызове функции [SWS_Crypto_00148]. Поэтому поведение во время выполнения необходимо учитывать особенно в критичных ко времени контекстах.

Функция разработана как реентерабельная, однако явно не для одной и той же cryptoKeyId [SWS_Crypto_00148]. Следовательно, одновременные вызовы с идентичным исходным ключом должны синхронизироваться или исключаться вызывающей стороной.

В случае успеха функция возвращает E_OK [SWS_Crypto_00148]. При ошибках возвращаемое значение указывает на конкретную причину [SWS_Crypto_00148]:

  • CRYPTO_E_BUSY: Объект криптодрайвера занят [SWS_Crypto_00148].
  • CRYPTO_E_KEY_NOT_AVAILABLE: Запрошенный ключевой элемент по меньшей мере одного ключа недоступен [SWS_Crypto_00148].
  • CRYPTO_E_KEY_READ_FAIL или CRYPTO_E_KEY_WRITE_FAIL: Чтение исходного или запись целевого элемента не разрешены [SWS_Crypto_00148].
  • CRYPTO_E_KEY_SIZE_MISMATCH: Размеры ключевых элементов несовместимы друг с другом [SWS_Crypto_00148].
  • CRYPTO_E_KEY_EMPTY: исходный ключевой элемент не инициализирован [SWS_Crypto_00148].
  • E_NOT_OK: общий сбой запроса [SWS_Crypto_00148].

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

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

функция Crypto_KeyElementCopyPartial [SWS_Crypto_91015] 📄 PDF

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

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

Синхронная функция Crypto_KeyElementCopyPartial служит для частичного копирования данных из исходного элемента ключа в целевой элемент ключа внутри того же криптографического драйвера [SWS_Crypto_91015]. Через параметры keyElementSourceOffset и keyElementCopyLength определяется копируемый фрагмент исходного элемента (cryptoKeyId, keyElementId), в то время как keyElementTargetOffset задает начальную позицию в целевом элементе (targetCryptoKeyId, targetKeyElementId). При безошибочной проверке драйвер выполняет операцию копирования синхронно и возвращает E_OK [SWS_Crypto_00209].

Перед выполнением драйвер валидирует состояния буфера и драйвера:

  • Если криптографический драйвер не инициализирован и контроль разработки включен, функция сообщает CRYPTO_E_UNINIT в DET и возвращает E_NOT_OK [SWS_Crypto_00205].
  • Если общая длина исходного элемента ключа меньше keyElementSourceOffset + keyElementCopyLength, вызов завершается неудачей с CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00207].
  • Если максимальный буфер целевого элемента ключа предоставляет меньше места, чем keyElementTargetOffset + keyElementCopyLength, также возвращается CRYPTO_E_KEY_SIZE_MISMATCH [SWS_Crypto_00208].
  • Другими специфицированными значениями ошибок являются, среди прочего, CRYPTO_E_BUSY (объект драйвера занят), CRYPTO_E_KEY_EMPTY (неинициализированный исходный элемент), CRYPTO_E_KEY_NOT_AVAILABLE, а также ошибки доступа на чтение или запись (CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL) [SWS_Crypto_91015].

Функция является ревходабельной, однако не должна вызываться одновременно для одного и того же ID ключа cryptoKeyId [SWS_Crypto_91015]. Если элемент ключа расположен непосредственно во флеш-памяти, синхронное выполнение может приводить к ощутимым задержкам по времени [SWS_Crypto_91015].

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

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

функция Crypto_KeyCopy [SWS_Crypto_00155] 📄 PDF

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

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

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

Синхронная функция Crypto_KeyCopy копирует ключ вместе со всеми его элементами ключа в целевой ключ внутри того же криптографического драйвера [SWS_Crypto_00155]. Сопоставление выполняется через входные параметры cryptoKeyId для исходного ключа и targetCryptoKeyId для целевого ключа [SWS_Crypto_00155]. Успешная операция копирования подтверждается значением E_OK [SWS_Crypto_00155].

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

Интерфейс спроектирован как ревходабельный, однако не должен выполняться одновременно для одного и того же cryptoKeyId [SWS_Crypto_00155]. Поскольку выполнение происходит синхронно, для элементов ключа, расположенных непосредственно во флеш-памяти, во время вызова могут возникать заметные задержки по времени [SWS_Crypto_00155].

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

В случае ошибки функция возвращает специфические возвращаемые значения типа Std_ReturnType [SWS_Crypto_00155]:

  • CRYPTO_E_BUSY: соответствующий Crypto Driver Object занят [SWS_Crypto_00155].
  • CRYPTO_E_KEY_NOT_AVAILABLE: по меньшей мере один из запрошенных ключей недоступен [SWS_Crypto_00155].
  • CRYPTO_E_KEY_READ_FAIL: считывание исходного элемента ключа запрещено [SWS_Crypto_00155].
  • CRYPTO_E_KEY_WRITE_FAIL: запись в целевой элемент ключа запрещена [SWS_Crypto_00155].
  • CRYPTO_E_KEY_SIZE_MISMATCH: размеры элементов ключей несовместимы друг с другом [SWS_Crypto_00155].
  • CRYPTO_E_KEY_EMPTY: элемент ключа исходного ключа не инициализирован [SWS_Crypto_00155].
  • E_NOT_OK: выполнение запроса завершилось неудачей [SWS_Crypto_00155].

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

функция Crypto_KeyElementIdsGet [SWS_Crypto_00160] 📄 PDF

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);

Used to retrieve information which key elements are available in a given key.

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

Синхронная функция Crypto_KeyElementIdsGet служит для запроса информации о том, какие ключевые элементы доступны в данном ключе [SWS_Crypto_00160]. Через входной параметр cryptoKeyId передается идентификатор ключа, доступные ID элементов которого должны быть экспортированы [SWS_Crypto_00160]. Определенные идентификаторы сохраняются в массиве, на который ссылается указатель keyElementIdsPtr [SWS_Crypto_00160].

Управление размером буфера осуществляется через входно-выходной параметр keyElementIdsLengthPtr: при вызове этот параметр должен содержать предоставленный размер буфера keyElementIdsPtr [SWS_Crypto_00160]. После завершения операции в нем сохраняется фактическое количество имеющихся ключевых элементов [SWS_Crypto_00160].

В качестве возвращаемого значения служба возвращает E_OK при успешном запросе или E_NOT_OK, если запрос завершился неудачей [SWS_Crypto_00160]. Если соответствующий объект криптодрайвера занят в момент вызова, возвращается код ошибки CRYPTO_E_BUSY [SWS_Crypto_00160].

С точки зрения параллелизма функция является реентерабельной, однако не должна вызываться одновременно для одной и той же cryptoKeyId [SWS_Crypto_00160]. Объявление доступно через заголовочный файл Crypto.h [SWS_Crypto_00160].

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

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

функция Crypto_RandomSeed [SWS_Crypto_91013] 📄 PDF

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

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

Синхронная функция Crypto_RandomSeed (идентификатор службы 0x0d) служит согласно [SWS_Crypto_91013] для генерации, а также обновления внутреннего состояния seed ключа с использованием предоставленного источника энтропии. Объявление функции содержится в заголовочном файле Crypto.h.

Использование и параметры вызова

Помимо начальной генерации, функция согласно [SWS_Crypto_91013] также может использоваться для обновления состояния seed новой энтропией. При этом для синхронного вызова требуются три входных параметра:

  • cryptoKeyId: Передает идентификатор ключа, для которого должен быть сгенерирован новый seed.
  • seedPtr: Содержит указатель на область памяти с данными для заполнения seed.
  • seedLength: Определяет длину переданных данных seed в байтах.

Возвращаемые значения и обработка ошибок

В качестве возвращаемого значения Crypto_RandomSeed сообщает статус типа Std_ReturnType согласно [SWS_Crypto_91013]:

  • E_OK: запрос успешно выполнен.
  • E_NOT_OK: запрос завершился сбоем.
  • CRYPTO_E_KEY_NOT_VALID: Выполнение завершается неудачей, так как состояние ключа, идентифицированного через cryptoKeyId, находится в статусе «invalid».

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

Согласно [SWS_Crypto_91013] функция специфицирована как реентерабельная, однако явно не для одной и той же cryptoKeyId. Поэтому параллельные вызовы для одного и того же ключа должны предотвращаться на стороне вызывающего объекта.

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

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

функция Crypto_KeyGenerate [SWS_Crypto_91007] 📄 PDF

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

Generates new key material store it in the key identified by crypto Key Id.

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

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

Функция Crypto_KeyGenerate, предоставляемая через заголовочный файл Crypto.h, генерирует новый ключевой материал и обновляет ключ, адресуемый через идентификатор cryptoKeyId [SWS_Crypto_91007]. Функция работает полностью синхронно и определена под идентификатором службы 0x07 [SWS_Crypto_91007]. Другие параметры, помимо идентификатора ключа, отсутствуют [SWS_Crypto_91007].

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

Что касается параллелизма, Crypto_KeyGenerate специфицирована как реентерабельная, однако явно с ограничением, что это не относится к одной и той же cryptoKeyId [SWS_Crypto_91007]. Если отправляется несколько запросов для одного и того же ключа, они должны синхронизироваться на стороне вызывающего объекта во избежание конфликтов драйвера.

Возвращаемые значения и обработка ошибок

Через возвращаемое значение базового типа Std_ReturnType вызывающая сторона получает подробную обратную связь об успехе или конкретных причинах ошибок операции [SWS_Crypto_91007]:

  • E_OK: Генерация ключа выполнена успешно [SWS_Crypto_91007].
  • CRYPTO_E_BUSY: Запрос завершился неудачей, так как соответствующий Crypto Driver Object в данный момент занят [SWS_Crypto_91007].
  • CRYPTO_E_KEY_EMPTY: Генерация не удалась, поскольку требуемый исходный ключевой элемент не инициализирован [SWS_Crypto_91007].
  • CRYPTO_E_KEY_NOT_VALID: Операция завершилась сбоем, так как состояние ключа, на который ссылается cryptoKeyId, помечено как недействительное [SWS_Crypto_91007].
  • E_NOT_OK: Запрос на генерацию ключа завершился неудачей по иным причинам [SWS_Crypto_91007].

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

функция Crypto_KeyDerive [SWS_Crypto_91008] 📄 PDF

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

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

Синхронная функция Crypto_KeyDerive формирует из ключевых элементов исходного ключа (cryptoKeyId) новый криптографический ключ и сохраняет его в ключевом элементе с ID 1 целевого ключа (targetCryptoKeyId) [SWS_Crypto_91008]. Исходный ключ должен содержать необходимые ключевые элементы для пароля и соли; количество итераций задается через ключевой элемент CRYPTO_KE_KEYDERIVATION_ITERATIONS [SWS_Crypto_91008].

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

Интерфейс является реентерабельным, однако не должен вызываться одновременно для одной и той же cryptoKeyId [SWS_Crypto_91008]. Поэтому вызывающие стороны должны обеспечивать, чтобы параллельные процессы формирования выполнялись на разных исходных ключах.

Возвращаемые значения и обработка ошибок

Функция сигнализирует о результате через определенные возвращаемые значения типа Std_ReturnType [SWS_Crypto_91008]:

  • E_OK: Формирование ключа выполнено успешно.
  • E_NOT_OK: Формирование завершилось неудачей. Если параметр targetCryptoKeyId выходит за пределы допустимого диапазона, функция при активном обнаружении ошибок разработки также сообщает CRYPTO_E_PARAM_HANDLE в DET [SWS_Crypto_00180].
  • CRYPTO_E_BUSY: ответственный Crypto Driver Object занят [SWS_Crypto_91008].
  • CRYPTO_E_KEY_EMPTY: Необходимый исходный ключевой элемент не инициализирован [SWS_Crypto_91008].
  • CRYPTO_E_KEY_NOT_VALID: Состояние ключа, на который ссылается cryptoKeyId, недействительно [SWS_Crypto_91008].

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

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

функция Crypto_KeyExchangeCalcPubVal [SWS_Crypto_91009] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

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

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

Синхронная функция Crypto_KeyExchangeCalcPubVal вычисляет открытое значение для протокола обмена ключами и сохраняет его в области памяти publicValuePtr ([SWS_Crypto_91009]). Вызывающая сторона через cryptoKeyId передает идентификатор ключа, который должен использоваться для протокола. Через входно-выходной параметр publicValueLengthPtr при вызове должен передаваться размер буфера предоставленной памяти; после завершения выполнения там сохраняется фактическая длина вычисленного открытого значения ([SWS_Crypto_91009]).

Обработка ошибок и возвращаемые значения

Функция возвращает E_OK при успешном выполнении. При возникновении ошибки возвращается E_NOT_OK или определенный код ошибки ([SWS_Crypto_91009]):

  • CRYPTO_E_BUSY: Запрос завершается неудачей, так как Crypto Driver Object занят.
  • CRYPTO_E_KEY_EMPTY: Запрос завершается неудачей, поскольку исходный ключевой элемент не инициализирован.
  • CRYPTO_E_KEY_NOT_VALID: Запрос завершается неудачей, так как статус ключа, на который ссылается cryptoKeyId, недействителен.

Параллелизм и системная интеграция

Согласно [SWS_Crypto_91009] функция является реентерабельной, однако не для одной и той же cryptoKeyId. Если криптодрайверу для внутренних целей, таких как Crypto_KeyExchangeCalcPubVal, требуются службы генератора случайных чисел (RNG), первый Crypto Driver Object (номер объекта 0) должен быть настроен для этой цели ([SWS_Crypto_00224]).

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

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

функция Crypto_KeyExchangeCalcSecret [SWS_Crypto_91010] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

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

Синхронная функция Crypto_KeyExchangeCalcSecret служит для вычисления общего секрета (Shared Secret Key) для протокола обмена ключами [SWS_Crypto_91010]. Она обрабатывает ключевой материал ключа, специфицированного через cryptoKeyId, вместе с переданным через partnerPublicValuePtr открытым значением партнера, количество байт которого указывается через partnerPublicValueLength [SWS_Crypto_91010]. Вычисленный общий секрет сохраняется непосредственно в качестве ключевого элемента внутри того же ключа [SWS_Crypto_91010].

В качестве возвращаемого значения функция передает статус через Std_ReturnType [SWS_Crypto_91010]:

  • E_OK: Вычисление и сохранение секрета успешно завершены [SWS_Crypto_91010].
  • E_NOT_OK: запрос завершился сбоем [SWS_Crypto_91010].
  • CRYPTO_E_BUSY: Выполнение не удалось, так как соответствующий Crypto Driver Object занят [SWS_Crypto_91010].
  • CRYPTO_E_KEY_EMPTY: исходный элемент ключа не инициализирован [SWS_Crypto_91010].
  • CRYPTO_E_KEY_NOT_VALID: Состояние ключа, на который ссылается cryptoKeyId, недействительно [SWS_Crypto_91010].

Интерфейс реализован как реентерабельный, однако не должен вызываться параллельно для одной и той же cryptoKeyId [SWS_Crypto_91010]. Вызывающие стороны должны гарантировать, что одновременные вызовы с идентичным ID ключа исключены, а адресуемый ключевой материал предварительно инициализирован и находится в валидном состоянии во избежание ошибочных состояний [SWS_Crypto_91010].

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

функция Crypto_MainFunction [SWS_Crypto_91012] 📄 PDF

void Crypto_MainFunction (void);

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

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

Функция Crypto_MainFunction служит для циклической обработки поставленных в очередь криптографических заданий в очередях заданий криптодрайвера [SWS_Crypto_91012]. Условием ее применения является то, что в модуле настроена асинхронная обработка заданий и присутствуют соответствующие очереди заданий [SWS_Crypto_91012].

Вызов и семантика

Функция имеет сигнатуру void Crypto_MainFunction(void) и специфицирована с идентификатором службы 0x0c [SWS_Crypto_91012]. Она не принимает входных параметров и не возвращает значения. Интерфейс предоставляется через заголовочный файл SchM_Crypto.h [SWS_Crypto_91012]. Это допускает интерпретацию, что циклический вызов штатно инициируется планировщиком BSW (Schedule Manager) в контексте периодической задачи операционной системы.

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

Вызов строго привязан к конфигурации асинхронных очередей заданий [SWS_Crypto_91012]. Поскольку в спецификации не указана реентерабельность для Crypto_MainFunction, функцию, вероятно, следует рассматривать как нереентерабельную; поэтому параллельных вызовов из нескольких потоков или задач следует избегать. Вопрос Q-038d384305c8c5c3 (открытый)

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

В спецификации для этой функции не зафиксированы конкретные коды ошибок или записи DET [SWS_Crypto_91012]. Поскольку функция не предоставляет возвращаемых значений, возможные ошибки во время асинхронной обработки, предположительно, передаются на вышестоящие уровни через опросы статуса или каналы обратной связи соответствующих заданий. Вопрос (открытый)

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

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

Record
AUTOSAR/AP/record/CP_MOD_Crypto
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Crypto@rel:R20-11#d4e858bf
Content hash
d4e858bf
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

Карта тем

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

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

Инициализация и состояние

Crypto_GetVersionInfo функция

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init функция

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

Сервисы · KeyElement…

Crypto_KeyElementCopy функция

Service Crypto_KeyElementCopy.

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);
Crypto_KeyElementGet функция

This interface shall be used to get a key element of the key identified by the crypto

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

Used to retrieve information which key elements are available in a given key.

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);
Crypto_KeyElementSet функция

Sets the given key element bytes to the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Сервисы · Key…

Crypto_KeyCopy функция

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);
Crypto_KeyDerive функция

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
Crypto_KeyGenerate функция

Generates new key material store it in the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);
Crypto_KeyGetStatus функция

Returns the key state of the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);
Crypto_KeySetInvalid функция

Sets invalid for the status of the key identifi ed by crypto Key Id.

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);
Crypto_KeySetValid функция

Sets the key state of the key identified by crypto Key Id to valid.

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Сервисы · Прочее

Crypto_CancelJob функция

This interface removes the provided job from the queue and cancels the processing of the job if possible.

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);
Crypto_ProcessJob функция

Service Crypto_ProcessJob.

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);
Crypto_RandomSeed функция

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

Циклические

Crypto_MainFunction функция

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

void Crypto_MainFunction (void);

Типы

Configuration data structure of Cry If module