DEENESPTFRRUARHIKOZHNL

Crypto Interface (CryIf)

ModulCryIf (Crypto Interface)
BSW-Modul-ID112
Standard-Header#include "CryIf.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoInterface.pdf
ClusterCrypto Services

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

Перенаправляет криптографические задания и вызовы ключей CSM через сконфигурированные каналы в соответствующие криптодрайверы.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 6b37c73ee677 Происхождение Открытые вопросы (4)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перенаправляет криптографические задания и вызовы ключей CSM через сконфигурированные каналы в соответствующие криптодрайверы.

CryIf выступает посредником в Classic-стеке криптографии между CSM и Crypto Driver и перенаправляет задания и вызовы ключей через сконфигурированные каналы в соответствующий Crypto Driver Object SWS CSM с. 26. Центральным интерфейсом является CryIf_ProcessJob, который в зависимости от конфигурации работает синхронно или асинхронно [SWS_CryIf_91003]. Асинхронные результаты драйвер передает через callback в CryIf, который передает их дальше в CSM. Перед перенаправлением CryIf отображает свои собственные идентификаторы ключей на идентификаторы драйвера и проверяет их диапазон. Для R20-11 следует учесть, что в более поздних релизах коды ошибок и правила синхронности были изменены.

CryIf выступает посредником в Classic-стеке криптографии между CSM на Service Layer и Crypto Driver в MCAL. Запросы приложений проходят через логические каналы вплоть до аппаратных движков HSM SWS CSM Рис. 7.4 с. 27. Канал представляет собой путь от очереди CSM через CryIf к Crypto Driver Object; каждая очередь CSM назначена ровно одному каналу SWS CSM с. 26. Каналы конфигурируются в контейнере CryIfChannel с CryIfChannelId и CryIfDriverObjectRef SWS CryIf с. 51. Перед каждым использованием CryIf_Init инициализирует модуль конфигурацией, зависящей от реализации [SWS_CryIf_91000].

kontext cluster_app Application Layer cluster_srv Service Layer cluster_ecu ECU Abstraction Layer cluster_mcal MCAL cluster_hw Microcontroller (HSM) app1 App1 (AES) rte RTE app1->rte app2 App2 (AES) app2->rte app3 App3 (RSA) app3->rte csm CSM Queue je Kanal rte->csm Krypto-Dienste cryif CryIf CryIfChannel csm->cryif CryIf_ProcessJob, CryIf_CancelJob, CryIf_Key… cryif->csm Csm_CallbackNotification crypto Crypto Driver Crypto Driver Objects cryif->crypto Weiterleitung je Kanal an Crypto Driver Object det DET cryif->det Det_ReportError, Det_ReportRuntimeError crypto->cryif CryIf_CallbackNotification hwaes HW-AES crypto->hwaes Kanal AES hwrsa HW-RSA crypto->hwrsa Kanal RSA

Контекстная диаграмма: CryIf по каналам перенаправляет задания CSM в Crypto Driver Objects и возвращает результаты обратно в CSM. Источники: SWS CSM Рис. 7.4 с. 27, [SWS_CryIf_91100]

Центральным интерфейсом является CryIf_ProcessJob. Функция является реентерабельной и работает в зависимости от конфигурации синхронно или асинхронно [SWS_CryIf_91003]. Режимы работы START, UPDATE и FINISH можно комбинировать, благодаря чему одна и та же функция покрывает одиночные вызовы и потоковую обработку SWS CryIf с. 22. Асинхронные результаты драйвер сообщает через CryIf_CallbackNotification [SWS_CryIf_91013]. CryIf передает их в CSM через Csm_CallbackNotification [SWS_CryIf_91100]. Выполняемые задания CryIf_CancelJob прерывает на стороне драйвера [SWS_CryIf_91014].

Обработка задания через CryIf_ProcessJobCSMCryIfCrypto Driver ObjectDETCryIf_ProcessJob(channelId, job)Проверить ID ключейи сопоставить с ID драйвераoptID ключа вне диапазонаCRYPTO_E_PARAM_HANDLE meldenE_NOT_OKCrypto_ProcessJob(…, job)altsynchron konfiguriertBerechnungErgebnis (E_OK / CRYPTO_E_…)передать возвращаемое значениеasynchron konfiguriertВозвращаемое значение передачипередать возвращаемое значениеBerechnung,напр., из главной функцииCryIf_CallbackNotification(job, result)Csm_CallbackNotification(job, result)

Диаграмма последовательности: CryIf проверяет идентификаторы ключей и затем передает задание дальше. Результат возвращается синхронно в виде возвращаемого значения или асинхронно через два этапа callback-вызовов. Источники: [SWS_CryIf_91003], [SWS_CryIf_91013], SWS Crypto с. 27

Перед передачей CryIf отображает свои собственные идентификаторы ключей на идентификаторы драйвера. Если они находятся вне диапазона, он сообщает CRYPTO_E_PARAM_HANDLE в DET и возвращает E_NOT_OK [SWS_CryIf_00133] [SWS_CryIf_00134]. Кроме того, CryIf предоставляет синхронные функции для установки, признания действительными и недействительными, чтения, генерации, деривации, обмена и копирования ключей. Если при частичном копировании источник и назначение находятся в разных драйверах, CryIf считывает элемент и сам записывает его в назначение [SWS_CryIf_00140].

Ошибки разработки, такие как CRYIF_E_UNINIT или CRYIF_E_PARAM_POINTER, передаются в DET [SWS_CryIf_00009]. Ошибки времени выполнения, такие как CRYPTO_E_BUSY или CRYPTO_E_KEY_NOT_VALID, возвращаются в качестве возвращаемых значений [SWS_CryIf_91020]. Более поздние релизы отличаются от R20-11: они унифицируют CRYIF_E_PARAM_HANDLE и задают CryIf_RandomSeed, а также CryIf_KeyGenerate как синхронные SWS CryIf с. 1.

Роль CryIf между Crypto Service Manager и Crypto Driver

Crypto Interface (CryIf) располагается в Classic-стеке криптографии на уровне ECU Abstraction Layer. Приложения запрашивают криптографические сервисы через RTE и CSM. Эти запросы проходят через логические каналы через CryIf к Crypto Driver в MCAL и далее к его аппаратным движкам, например HW-AES и HW-RSA в HSM SWS CSM Рис. 7.4 с. 27. Crypto Driver Object представляет собой независимое криптографическое «устройство» в аппаратном или программном обеспечении, например ускоритель AES или реализацию RSA в ПО SWS CSM с. 26. Сам CryIf вычислений не производит. Его функции перенаправляют соответствующий вызов в сконфигурированный Crypto Driver Object, как, например, [SWS_CryIf_91005], [SWS_CryIf_91007], [SWS_CryIf_91009] и [SWS_CryIf_91014].

В сторону верхнего уровня CryIf предоставляет три группы интерфейсов:

Для задания в состоянии «ACTIVE» CSM вызывает CryIf_ProcessJob и передает его возвращаемое значение без изменений SWS CSM с. 22. С нижнего уровня CryIf принимает через CryIf_CallbackNotification [SWS_CryIf_91013] сообщения о завершении от драйвера SWS Crypto с. 27. От других модулей ему требуются Csm_CallbackNotification и Det_ReportRuntimeError [SWS_CryIf_91100], опционально также Det_ReportError [SWS_CryIf_91101].

kontext cluster_app Application Layer cluster_srv Service Layer cluster_ecu ECU Abstraction Layer cluster_mcal MCAL cluster_hw Microcontroller (HSM) app1 App1 (AES) rte RTE app1->rte app2 App2 (AES) app2->rte app3 App3 (RSA) app3->rte csm CSM Queue je Kanal rte->csm Krypto-Dienste cryif CryIf CryIfChannel csm->cryif CryIf_ProcessJob, CryIf_CancelJob, CryIf_Key… cryif->csm Csm_CallbackNotification crypto Crypto Driver Crypto Driver Objects cryif->crypto Weiterleitung je Kanal an Crypto Driver Object det DET cryif->det Det_ReportError, Det_ReportRuntimeError crypto->cryif CryIf_CallbackNotification hwaes HW-AES crypto->hwaes Kanal AES hwrsa HW-RSA crypto->hwrsa Kanal RSA

Контекстная диаграмма: CryIf по каналам связывает очереди CSM с Crypto Driver Objects и возвращает результаты обратно в CSM. Источники: SWS CSM Рис. 7.4 с. 27, [SWS_CryIf_91100], [SWS_CryIf_91013]

Каналы, конфигурация и инициализация

Канал представляет собой путь от очереди CSM через CryIf к Crypto Driver Object. Каждая очередь CSM назначена ровно одному каналу; опционально собственный очередей пул есть и у Crypto Driver SWS CSM с. 26. Каналы конфигурируются в контейнере CryIfChannel с кратностью 0..* и прекомпиляционной конфигурацией во всех вариантах. Контейнер содержит параметры CryIfChannelId и CryIfDriverObjectRef SWS CryIf с. 51. CryIfChannelId определяет, с каким каналом связана очередь CSM. Во время выполнения параметр channelId функций [SWS_CryIf_91003] и [SWS_CryIf_91014] также обозначает криптографический канал. Интерпретация: CryIfDriverObjectRef, по-видимому, привязывает канал к Crypto Driver Object, который выполняет задания этого канала. Вопрос Q-5f8f778dc8552b7f (открытый)

Перед каждым использованием необходимо вызывать CryIf_Init [SWS_CryIf_91000]. Функция является синхронной и нереентерабельной. Она принимает указатель на выбранную конфигурацию типа CryIf_ConfigType, содержимое которой зависит от реализации [SWS_CryIf_91118] SWS CryIf с. 20. Для случая неудавшейся инициализации перечень ошибок предусматривает CRYIF_E_INIT_FAILED (0x01) [SWS_CryIf_00009]. Функция CryIf_GetVersionInfo является реентерабельной и возвращает информацию о версии модуля [SWS_CryIf_91001].

Помимо каналов, CryIf ведет собственные идентификаторы ключей (cryIfKeyId). Он отображает их на идентификаторы ключей соответствующего драйвера [SWS_CryIf_00133]. Если задание использует перенаправление обработки (job processing redirection), CryIf дополнительно адаптирует входящие ссылки на ключи и элементы ключей к ссылкам драйвера [SWS_CryIf_00136]. Ключ состоит из одного или нескольких элементов ключа, таких как материал ключа, вектор инициализации или seed SWS CSM с. 30.

Обработка заданий: от CryIf_ProcessJob до обратного уведомления

Одиночный вызов и потоковая передача осуществляются через одну и ту же функцию CryIf_ProcessJob. Поле job->jobPrimitiveInputOutput.mode содержит режимы работы «START», «UPDATE» и «FINISH», которые можно комбинировать. Полный сервис в одном вызове соответствует комбинации всех трех режимов SWS CryIf с. 22. Функция является реентерабельной и работает в зависимости от конфигурации синхронно или асинхронно [SWS_CryIf_91003]. Переходы состояний задания выполняет Crypto Driver, а не CSM SWS CSM с. 22.

В асинхронном случае драйвер передает примитиву только необходимую информацию. Расчет затем может быть запущен из Main-функции. После завершения драйвер сообщает CryIf о задании и результате через CryIf_CallbackNotification SWS Crypto с. 27. Эта функция синхронна и нереентерабельна; переданное задание содержит идентификатор callback, который его идентифицирует [SWS_CryIf_91013]. Затем CryIf сообщает о завершении через Csm_CallbackNotification в CSM; эта функция прямо предназначена для нижележащего уровня CRYIF [SWS_CryIf_91100]. Если установлен бит FINISH, CSM вызывает сконфигурированный callback SWS CSM с. 82.

Обработка задания через CryIf_ProcessJobCSMCryIfCrypto Driver ObjectDETCryIf_ProcessJob(channelId, job)Проверить ID ключейи сопоставить с ID драйвераoptID ключа вне диапазонаCRYPTO_E_PARAM_HANDLE meldenE_NOT_OKCrypto_ProcessJob(…, job)altsynchron konfiguriertBerechnungErgebnis (E_OK / CRYPTO_E_…)передать возвращаемое значениеasynchron konfiguriertВозвращаемое значение передачипередать возвращаемое значениеBerechnung,напр., из главной функцииCryIf_CallbackNotification(job, result)Csm_CallbackNotification(job, result)

Диаграмма последовательности: CryIf сначала проверяет идентификаторы ключей и затем передает задание дальше. Результат возвращается либо синхронно в виде возвращаемого значения, либо асинхронно через два этапа callback-вызовов. Источники: [SWS_CryIf_91003], [SWS_CryIf_00134], [SWS_CryIf_91013], [SWS_CryIf_91100], SWS Crypto с. 27

Выполняемые асинхронные задания и задания потоковой обработки можно отменить. Для этого CSM удаляет задание из собственной очереди или вызывает CryIf_CancelJob SWS CSM с. 80. Функция CryIf_CancelJob синхронна и реентерабельна и передает отмену в сконфигурированный Crypto Driver Object. E_OK означает, что задание было удалено; E_NOT_OK означает, что это было невозможно [SWS_CryIf_91014] SWS CryIf с. 24. Места в документации более поздних релизов (R24-11/R25-11) дополнительно указывают CRYPTO_E_JOB_CANCELED. В этом случае отмена происходит только на следующем подходящем шаге обработки и подтверждается отрицательным callback-вызовом завершения SWS CSM с. 80.

Отмена заданияПриложениеCSMCryIfCrypto Driver ObjectCsm_CancelJob(job, mode)altЗадание еще в очереди CSMУдалить задание из собственной очередиЗадание уже передано драйверуCryIf_CancelJob(channelId, job)Abbruch weiterleiten(Crypto_CancelJob)E_OK / E_NOT_OK(позже также CRYPTO_E_JOB_CANCELED)Возвращаемое значениеE_OK: CSM вызывает callback завершения заданияCRYPTO_E_JOB_CANCELED: отмена при следующемgeeigneten Schritt, negativer Abschluss-CallbackВозвращаемое значение

Диаграмма последовательности: отмена завершается либо уже в очереди CSM, либо передается через CryIf в Crypto Driver Object. Источники: [SWS_CryIf_91014], SWS CSM с. 80, SWS CryIf с. 45

Отображение и проверка идентификаторов ключей в задании

Некоторые задания содержат сервис управления ключами: CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL или CRYPTO_KEYEXCHANGECALCSECRET. Для них CryIf проверяет, находятся ли job->jobPrimitiveInputOutput->cryIfKeyId и при необходимости targetCryIfKeyId в допустимом диапазоне. Если это так, он устанавливает job->cryptoKeyId или job->targetCryptoKeyId в идентификаторы ключей драйвера [SWS_CryIf_00133] [SWS_CryIf_00141]. Если исходный идентификатор находится вне диапазона, CryIf_ProcessJob сообщает CRYPTO_E_PARAM_HANDLE в DET и возвращает E_NOT_OK [SWS_CryIf_00134]. Для CRYPTO_KEYDERIVE то же самое справедливо и для целевого идентификатора [SWS_CryIf_00135].

Примитивы, связанные с ключами, также проверяются. При CRYPTO_MACGENERATE, CRYPTO_MACVERIFY, CRYPTO_ENCRYPT, CRYPTO_DECRYPT, CRYPTO_AEADENCRYPT, CRYPTO_AEADDECRYPT, CRYPTO_RANDOMGENERATE, CRYPTO_SIGNATUREGENERATE и CRYPTO_SIGNATUREVERIFY параметр job->jobPrimitiveInfo->cryIfKeyId проверяется на допустимый диапазон [SWS_CryIf_00143].

keyid start CryIf_ProcessJob(channelId, job) d1 Служба управления ключами? KEYSETVALID, KEYSETINVALID, RANDOMSEED, KEYGENERATE, KEYDERIVE, KEYEXCHANGECALCPUBVAL, KEYEXCHANGECALCSECRET start->d1 c1 jobPrimitiveInputOutput->cryIfKeyId в допустимом диапазоне? d1->c1 да d3 Примитив с ключом? MACGENERATE/-VERIFY, (AEAD)ENCRYPT/DECRYPT, RANDOMGENERATE, SIGNATUREGENERATE/-VERIFY d1->d3 нет d2 Dienst = CRYPTO_KEYDERIVE? c1->d2 да err CRYPTO_E_PARAM_HANDLE в DET возврат E_NOT_OK c1->err нет c2 targetCryIfKeyId в допустимом диапазоне? d2->c2 да map Установить job->cryptoKeyId (при необходимости job->targetCryptoKeyId) в ID ключей драйвера d2->map нет c2->map да c2->err нет fwd Переслать в Crypto Driver Object канала map->fwd c3 jobPrimitiveInfo->cryIfKeyId в допустимом диапазоне? d3->c3 да d3->fwd нет c3->err нет c3->fwd да

Диаграмма деятельности: CryIf проверяет идентификаторы ключей в зависимости от типа сервиса и отображает их на идентификаторы драйвера перед дальнейшей передачей задания. Источники: [SWS_CryIf_00133], [SWS_CryIf_00134], [SWS_CryIf_00135], [SWS_CryIf_00143]

Эта область претерпела изменения между релизами. В R20-11 при проверках упоминается CRYPTO_E_PARAM_HANDLE, тогда как перечень ошибок модуля определяет CRYIF_E_PARAM_HANDLE (0x03) [SWS_CryIf_00009]. Согласно истории изменений, это было унифицировано до CRYIF_E_PARAM_HANDLE только в R22-11 SWS CryIf с. 1. Тем же изменением были упразднены возвращаемые значения после сообщений в DET. Кроме того, добавился сервис CRYPTO_CUSTOM, который в более позднем фрагменте документации уже присутствует в списке SWS CryIf с. 23. Для R20-11 требования действуют в цитируемой здесь формулировке.

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

Прямые API ключей являются синхронными. Нереентерабельными являются CryIf_KeyElementSet [SWS_CryIf_91004], CryIf_KeySetValid [SWS_CryIf_91005], CryIf_KeySetInvalid [SWS_CryIf_91021] и CryIf_KeyGetStatus [SWS_CryIf_91012]. Функциональность статуса ключа, согласно истории изменений, добавилась в R20-11 SWS CryIf с. 1. Если установка элемента завершается сбоем, его статус согласно спецификации CSM считается неизвестным SWS CSM с. 62. Его можно проверить с помощью Csm_KeyGetStatus, которая, в свою очередь, вызывает CryIf_KeyGetStatus SWS CSM с. 63.

CryIf_KeyElementGet реверсивна (reentrant) [SWS_CryIf_91006]. Параметр resultLengthPtr служит входным и выходным параметром. При вызове он содержит размер буфера; для элементов с частичным доступом — объём данных, который требуется прочитать. По завершении он содержит фактически сохранённый объём данных SWS CryIf с. 30.

schluesselstatus start Start gesetzt Элементы установлены (еще не объявлены действительными, интерпретация) start->gesetzt CryIf_KeyElementSet valid действителен (valid) gesetzt->valid CryIf_KeySetValid valid->valid Nutzung in Jobs, CryIf_KeyGetStatus invalid недействителен (invalid) valid->invalid CryIf_KeySetInvalid invalid->valid CryIf_KeySetValid invalid->invalid Nutzung scheitert: CRYPTO_E_KEY_NOT_VALID

Диаграмма состояний: ключ объявляется действительным после установки его элементов и может быть снова сделан недействительным. Если ключ недействителен, операции завершаются сбоем с CRYPTO_E_KEY_NOT_VALID. Исходное состояние до CryIf_KeySetValid представляет собой интерпретацию. Источники: [SWS_CryIf_91004], [SWS_CryIf_91005], [SWS_CryIf_91021], [SWS_CryIf_91012], SWS CSM с. 70

Для генерации ключа CryIf_RandomSeed [SWS_CryIf_91007] возвращает начальные значения, а CryIf_KeyGenerate [SWS_CryIf_91008] генерирует ключ. Согласно спецификации CSM, ключ создаётся в элементе CRYPTO_KE_KEYGENERATE_KEY. Основой служат seed в CRYPTO_KE_KEYGENERATE_SEED и алгоритм в CRYPTO_KE_KEYGENERATE_ALGORITHM SWS CSM с. 67. В R20-11 обе функции работают синхронно или асинхронно в зависимости от конфигурации [SWS_CryIf_91007] [SWS_CryIf_91008]. Лишь в R21-11 они строго определены как синхронные SWS CryIf с. 1. Функция CryIf_KeyDerive является синхронной и реверсивной; она формирует производный ключ из исходного ключа и сохраняет его в целевом ключе [SWS_CryIf_91009] SWS CryIf с. 42.

Для обмена ключами по схеме Диффи — Хеллмана предусмотрены две функции. CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] вычисляет собственное открытое значение. CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] вычисляет общий секрет на основе значения партнёра. Ключевой материал содержится в элементах CRYPTO_KE_KEYEXCHANGE_BASE, CRYPTO_KE_KEYEXCHANGE_PRIVKEY и CRYPTO_KE_KEYEXCHANGE_OWNPUBKEY SWS CSM с. 70. Драйвер сохраняет секрет как элемент в том же ключе SWS Crypto с. 84. Интерпретация: даже в случае прямых API для работы с ключами CryIf, вероятно, отображает cryIfKeyId на ID ключа драйвера точно так же, как и в пути обработки заданий (Job) [SWS_CryIf_00133]. Вопрос Q-f146ad33e972fa97 (открытый)

Обмен ключами через CryIfAnwendung / CSMCryIfCrypto Driver ObjectKommunikationspartnerUse Case: Вычислить собственное открытое значениеCryIf_KeyExchangeCalcPubVal(cryIfKeyId,publicValuePtr, publicValueLengthPtr)an konfiguriertes Crypto Driver Object weiterleitenоткрытое значение, возвращаемое значениеоткрытое значение, возвращаемое значениеUse Case: Обмен вне CryIfотправить собственное открытое значениеотправить открытое значение партнераUse Case: Gemeinsames Geheimnis berechnenCryIf_KeyExchangeCalcSecret(cryIfKeyId,partnerPublicValuePtr, partnerPublicValueLength)Crypto_KeyExchangeCalcSecret(…)Секрет как элемент ключасохранить в том же ключеВозвращаемое значениеВозвращаемое значение

Диаграмма последовательности: обмен ключами выполняется за два вызова CryIf. Между ними приложение обменивается открытыми значениями с партнёром вне CryIf. Источники: [SWS_CryIf_91010], [SWS_CryIf_91011], SWS CSM с. 70, SWS Crypto с. 84

Копирование ключей внутри одного и между несколькими Crypto Driver

Для копирования предусмотрены CryIf_KeyElementCopy [SWS_CryIf_91015], CryIf_KeyCopy [SWS_CryIf_91016] и CryIf_KeyElementCopyPartial [SWS_CryIf_91018]. Все три функции являются синхронными и реверсивными, но не для одной и той же cryIfKeyId. Помимо E_OK и E_NOT_OK, они могут, среди прочего, возвращать CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_SIZE_MISMATCH и CRYPTO_E_KEY_EMPTY SWS CryIf с. 35.

При частичном копировании спецификация различает два случая:

  • Исходный и целевой ключи находятся в одном и том же Crypto Driver: CryIf вызывает Crypto_<vi>_<ai>_KeyElementCopyPartial() назначенного драйвера и передаёт дальше его возвращаемое значение [SWS_CryIf_00139].
  • Ключи находятся в разных драйверах: CryIf считывает элемент с помощью Crypto_<vi>_<ai>_KeyElementGet(), копирует часть данных в место назначения и записывает целевой элемент с помощью Crypto_<vi>_<ai>_KeyElementSet() [SWS_CryIf_00140].

Функции копирования драйверов являются опциональными интерфейсами. Если элемент расположен непосредственно во flash-памяти, выполнение вызова может занять значительно больше времени SWS CryIf с. 45.

copypartial start CryIf_KeyElementCopyPartial(…) fehler Fehler durch CryIf erkannt? start->fehler abbruch Без пересылки (см. поведение при ошибке) fehler->abbruch да gleich cryIfKeyId и targetCryIfKeyId в одном Crypto Driver? fehler->gleich нет ende Ende abbruch->ende partial Вызвать Crypto_<vi>_<ai>_KeyElementCopyPartial(), передать возвращаемое значение дальше gleich->partial да lesen Считать исходный элемент с помощью Crypto_<vi>_<ai>_KeyElementGet() gleich->lesen нет partial->ende kopieren Teildaten an Zielposition kopieren lesen->kopieren schreiben Записать целевой элемент с помощью Crypto_<vi>_<ai>_KeyElementSet() kopieren->schreiben schreiben->ende

Диаграмма деятельности: делегирует ли CryIf операцию напрямую драйверу или выполняет копирование самостоятельно через чтение и запись, зависит от того, находятся ли ключи в одном и том же драйвере. Источники: [SWS_CryIf_00139], [SWS_CryIf_00140]

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

Об ошибках разработки CryIf сообщает в DET. Список ошибок модуля включает в себя [SWS_CryIf_00009]:

Код ошибкиЗначениеПричина
CRYIF_E_UNINIT0x00вызов API до инициализации
CRYIF_E_INIT_FAILED0x01сбой инициализации
CRYIF_E_PARAM_POINTER0x02нулевой указатель в качестве параметра
CRYIF_E_PARAM_HANDLE0x03параметр вне допустимого диапазона
CRYIF_E_PARAM_VALUE0x04недопустимое значение параметра
CRYIF_E_KEY_SIZE_MISMATCH0x05размер исходного и целевого элементов не совпадает

Сообщение об ошибке CRYIF_E_UNINIT до инициализации подтверждено для нескольких функций: CryIf_KeyDerive SWS CryIf с. 42, CryIf_RandomSeed SWS CryIf с. 37, CryIf_CancelJob SWS CryIf с. 24, CryIf_KeyGetStatus SWS CryIf с. 29 и CryIf_CallbackNotification SWS CryIf с. 44. Для остальных служб, вероятно, действует то же самое. Вопрос (открытый) Другие проверки также подтверждены. CryIf_CancelJob сообщает о CRYIF_E_PARAM_HANDLE при недопустимом channelId, а CryIf_KeyGetStatus — при недопустимом cryIfKeyId. CryIf_CallbackNotification проверяет свой указатель и при необходимости сообщает о CRYIF_E_PARAM_POINTER SWS CryIf с. 44.

Ошибки времени выполнения поступают из драйвера в виде возвращаемых значений. CryIf передаёт их дальше, как это, например, определено в [SWS_CryIf_00139] для частичного копирования. CSM, со своей стороны, передаёт возвращаемое значение CryIf_ProcessJob дальше SWS CSM с. 22. Диапазон значений включает в себя, среди прочего, [SWS_CryIf_91020]:

  • CRYPTO_E_BUSY (0x02): служба всё ещё занята
  • CRYPTO_E_ENTROPY_EXHAUSTED (0x04)
  • CRYPTO_E_KEY_READ_FAIL (0x06)
  • CRYPTO_E_KEY_WRITE_FAIL (0x07)
  • CRYPTO_E_KEY_NOT_AVAILABLE (0x08)
  • CRYPTO_E_KEY_NOT_VALID (0x09)

Если очередь CSM заполнена, CSM отклоняет задание сразу с CRYPTO_E_BUSY SWS CSM с. 22.

Что касается возвращаемых значений, полезно взглянуть на историю релизов. Значение CRYPTO_E_QUEUE_FULL было удалено из [SWS_CryIf_91003] только в R23-11. Значение CRYPTO_E_KEY_EMPTY было добавлено для CryIf_RandomSeed лишь в R24-11 SWS CryIf с. 1. Поэтому для R20-11 определяющими являются требования к API этого релиза, а не фрагменты документов, датированные более поздним временем.

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

Сгенерированное ИИ руководство на основе требований из R20-11 и соответствующих фрагментов документации, часть из которых взята из более поздних релизов. Определяющей является спецификация AUTOSAR.

Crypto Interface (CryIf)

Abstracts cryptographic hardware and software acceleration engines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция CryIf_Init [SWS_CryIf_91000] 📄 PDF

void CryIf_Init (const CryIf_ConfigType* configPtr);

Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface

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

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

Синхронная функция CryIf_Init служит для полной инициализации модуля Crypto Interface (CryIf) в соответствии с AUTOSAR Classic Platform [SWS_CryIf_91000]. Функция объявлена в заголовочном файле CryIf.h и имеет Service-ID 0x00 [SWS_CryIf_91000]. В качестве единственного входного параметра интерфейс ожидает configPtr, указатель на выбранную структуру конфигурации типа CryIf_ConfigType [SWS_CryIf_91000]. Функция не возвращает значения (void) и не имеет параметров типа inout или out [SWS_CryIf_91000].

Семантика и параллелизм

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

Ограничения и интеграция

Интерпретация: вызов CryIf_Init, как правило, должен выполняться централизованно во время запуска системы в рамках фазы инициализации базового программного обеспечения, прежде чем будет разрешено вызывать последующие сервисы криптографического интерфейса. Вопрос Q-31b82ca9b144c843 (открытый) Поскольку payload не содержит сведений о конкретных обработках ошибок, сообщениях DET или событиях DEM, вызывающая сторона должна заранее обеспечить действительный указатель на конфигурацию. Связанные требования (Requirements) в payload не определены.

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

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

функция CryIf_ProcessJob [SWS_CryIf_91003] 📄 PDF

Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);

Service CryIf_ProcessJob.

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

Предоставляемая через заголовочный файл CryIf.h функция CryIf_ProcessJob (Service-ID 0x03) перенаправляет задания на криптографическую обработку соответствующему сконфигурированному объекту криптодрайвера [SWS_CryIf_91003]. В качестве параметров она принимает идентификатор криптоканала (channelId), а также указатель на конфигурацию задания (job) [SWS_CryIf_91003]. При этом структура job содержит всю информацию, релевантную как для пользователя, так и для конкретного криптографического примитива [SWS_CryIf_91003]. Обработка задания выполняется в зависимости от конфигурации синхронно или асинхронно; кроме того, интерфейс реализован как реентерабельный [SWS_CryIf_91003].

При безошибочном принятии функция возвращает E_OK [SWS_CryIf_91003]. В случае сбоя запроса возвращаемое значение сигнализирует либо E_NOT_OK, либо специфическое состояние ошибки драйвера: CRYPTO_E_BUSY (объект драйвера занят), CRYPTO_E_QUEUE_FULL (очередь заполнена), ошибки, касающиеся состояний ключей, такие как CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_EMPTY, CRYPTO_E_KEY_READ_FAIL или CRYPTO_E_KEY_WRITE_FAIL, а также CRYPTO_E_JOB_CANCELED при отмене синхронного задания и CRYPTO_E_ENTROPY_EXHAUSTED [SWS_CryIf_91003].

Кроме того, интерфейс выполняет предварительные проверки идентификаторов ключей:

  • Если job->jobPrimitiveInfo->primitiveInfo->service установлено в CRYPTO_KEYSETVALID, CRYPTO_KEYSETINVALID, CRYPTO_RANDOMSEED, CRYPTO_KEYGENERATE, CRYPTO_KEYDERIVE, CRYPTO_KEYEXCHANGECALCPUBVAL или CRYPTO_KEYEXCHANGECALCSECRET, то job->cryIfKeyId должен находиться в допустимом диапазоне значений [SWS_CryIf_00134]. В противном случае функция сообщает об ошибке CRYPTO_E_PARAM_HANDLE в DET и прерывает работу с E_NOT_OK [SWS_CryIf_00134].
  • Если запрашивается служба CRYPTO_KEYDERIVE, то идентификатор целевого ключа job->cryIfTargetKeyId дополнительно должен находиться в допустимом диапазоне; в противном случае в DET также сообщается CRYPTO_E_PARAM_HANDLE и возвращается E_NOT_OK [SWS_CryIf_00135].

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

функция CryIf_CancelJob [SWS_CryIf_91014] 📄 PDF

Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);

This interface dispatches the job cancellation function to the configured crypto driver object.

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

Функция CryIf_CancelJob служит для перенаправления запроса на отмену криптозадания сконфигурированному объекту криптодрайвера [SWS_CryIf_91014]. Она предоставляет стандартизированный интерфейс Crypto Interface, объявлена через заголовочный файл CryIf.h и имеет Service-ID 0x0e [SWS_CryIf_91014].

Для вызова необходимо передать идентификатор целевого канала, а также конфигурацию задания [SWS_CryIf_91014]:

  • channelId (входной, uint32): содержит идентификатор соответствующего криптоканала [SWS_CryIf_91014].
  • job (входной/выходной, Crypto_JobType*): указатель на конфигурацию задания, включающую структуры с информацией, относящейся к пользователю и примитиву [SWS_CryIf_91014].

Выполнение происходит синхронно и возвращает статус типа Std_ReturnType вызывающей стороне [SWS_CryIf_91014]:

  • E_OK: запрос был успешным, и задание было удалено из драйвера [SWS_CryIf_91014].
  • E_NOT_OK: запрос завершился неудачно, так как задание не удалось удалить [SWS_CryIf_91014].
  • CRYPTO_E_JOB_CANCELED: специфицированное криптографическое возвращаемое значение для подтверждения отмены задания [SWS_CryIf_91014].

В отношении поведения при конкурентности CryIf_CancelJob специфицирована как реентерабельная [SWS_CryIf_91014]. Это допускает параллельные вызовы для отмены заданий, при этом обработка с блокировкой делегируется базовому объекту драйвера [SWS_CryIf_91014].

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

функция CryIf_KeyElementSet [SWS_CryIf_91004] 📄 PDF

Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

This function shall dispatch the set key element function to the configured crypto driver object.

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

Синхронная функция CryIf_KeyElementSet (Service-ID 0x04) перенаправляет запрос на установку элемента ключа сконфигурированному объекту криптодрайвера [SWS_CryIf_91004]. Объявление функции предоставляется через заголовочный файл CryIf.h [SWS_CryIf_91004].

Вызов осуществляется с четырьмя входными параметрами [SWS_CryIf_91004]:

  • cryIfKeyId: обозначает идентификатор ключа, элемент ключа которого должен быть обновлен.
  • keyElementId: обозначает идентификатор конкретного элемента ключа, который должен быть установлен.
  • keyPtr: указатель на буфер с данными ключа, которые должны быть приняты в качестве элемента.
  • keyLength: указывает длину устанавливаемого элемента ключа в байтах.

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

Возвращаемое значение типа Std_ReturnType сигнализирует о результате перенаправления или выполнения [SWS_CryIf_91004]:

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

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

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

функция CryIf_KeySetValid [SWS_CryIf_91005] 📄 PDF

Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);

This function shall dispatch the set key valid function to the configured crypto driver object.

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

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

Синхронный интерфейс CryIf_KeySetValid (Service-ID 0x05) предоставляется через заголовочный файл CryIf.h и перенаправляет запрос на признание ключа действительным соответствующему сконфигурированному объекту криптодрайвера [SWS_CryIf_91005]. В качестве единственного параметра передается идентификатор cryIfKeyId, определяющий целевой ключ, элементы которого должны быть помечены как действительные [SWS_CryIf_91005]. Дополнительные входные/выходные или выходные параметры для этой функции отсутствуют [SWS_CryIf_91005].

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

Возвращаемое значение типа Std_ReturnType информирует вызывающую сторону о результате перенаправления и обработки в драйвере [SWS_CryIf_91005]:

  • E_OK: операция была успешно перенаправлена объекту криптодрайвера и успешно завершена [SWS_CryIf_91005].
  • E_NOT_OK: перенаправление или выполнение запроса завершилось сбоем [SWS_CryIf_91005].
  • CRYPTO_E_BUSY: запрос не удалось выполнить, так как ответственный объект криптодрайвера в настоящее время занят [SWS_CryIf_91005].

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

Функция явно указана в спецификации как нереентерабельная (Non Reentrant) [SWS_CryIf_91005]. Поэтому вызывающие экземпляры должны гарантировать, что вызовы CryIf_KeySetValid никогда не выполняются параллельно или с прерыванием, чтобы надежно предотвратить конфликты при перенаправлении объекту драйвера.

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

функция CryIf_KeySetInvalid [SWS_CryIf_91021] 📄 PDF

Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);

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

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

Синхронный интерфейс CryIf_KeySetInvalid (Service-ID 0x14) устанавливает статус ключа, идентифицированного через параметр cryIfKeyId, в недействительный [SWS_CryIf_91021]. Объявление функции предоставляется через заголовочный файл CryIf.h [SWS_CryIf_91021].

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

  • Входные параметры: Через входной параметр cryIfKeyId типа uint32 передается идентификатор ключа, действие которого требуется аннулировать. Входно-выходные и выходные параметры отсутствуют.
  • Возвращаемое значение (Std_ReturnType):
    • E_OK: Запрос на изменение статуса выполнен успешно.
    • E_NOT_OK: запрос завершился сбоем.
    • CRYPTO_E_BUSY: Выполнение не удалось, так как соответствующий Crypto Driver Object занят.

Что касается параллелизма и контекста выполнения, CryIf_KeySetInvalid специфицирована как нереентерабельная (Non Reentrant) [SWS_CryIf_91021]. Поэтому вызывающие сущности должны гарантировать, что вызовы выполняются последовательно и не перекрывают друг друга. При возврате значения CRYPTO_E_BUSY Crypto Driver Object временно заблокирован [SWS_CryIf_91021]; в этом случае вызывающая сторона, вероятно, отвечает за повторную попытку инвалидации статуса позже. Вопрос Q-4377065d4d4eecab (открытый)

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

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

функция CryIf_KeyGetStatus [SWS_CryIf_91012] 📄 PDF

Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by cry If Key Id.

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

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

Функция CryIf_KeyGetStatus служит для синхронного запроса статуса криптографического ключа в пределах Crypto Interface [SWS_CryIf_91012]. Она доступна через заголовочный файл CryIf.h с Service-ID 0x13 [SWS_CryIf_91012]. При вызове передаются следующие параметры:

  • cryIfKeyId (входной): уникальный идентификатор ключа, статус которого необходимо определить [SWS_CryIf_91012].
  • keyStatusPtr (выходной): указатель на переменную типа Crypto_KeyStatusType, в которую записывается статус ключа [SWS_CryIf_91012].

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

Возвращаемое значение типа Std_ReturnType сигнализирует о результате выполнения [SWS_CryIf_91012]:

  • E_OK: запрос статуса прошел успешно, и статус был сохранен в целевой памяти [SWS_CryIf_91012].
  • E_NOT_OK: запрос завершился сбоем [SWS_CryIf_91012].

Специфические коды ошибок, сообщения DET или события DEM в спецификации элемента не указаны; обработка ошибок на стороне вызывающего компонента опирается в первую очередь на анализ возвращаемого значения.

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

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

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

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

функция CryIf_KeyElementGet [SWS_CryIf_91006] 📄 PDF

Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This function shall dispatch the get key ele ment function to the configured crypto driver object.

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

Синхронная функция CryIf_KeyElementGet перенаправляет запрос элемента ключа сконфигурированному Crypto Driver Object [SWS_CryIf_91006]. Она объявлена в заголовочном файле CryIf.h и специфицирована как реентерабельная [SWS_CryIf_91006].

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

При вызове cryIfKeyId идентифицирует затрагиваемый ключ, а keyElementId — запрашиваемый элемент ключа [SWS_CryIf_91006]. Полезные данные сохраняются в буфере resultPtr [SWS_CryIf_91006]. Указатель resultLengthPtr служит комбинированным входным и выходным параметром для управления длиной [SWS_CryIf_91006]:

  • Перед выполнением вызывающая сторона передает в нем доступный размер буфера resultPtr [SWS_CryIf_91006].
  • Если элемент ключа разрешает частичный доступ, значение вместо этого определяет объем извлекаемых данных, который не обязательно должен совпадать с размером буфера [SWS_CryIf_91006].
  • После завершения операции функция сохраняет фактически записанный объем данных по этому адресу памяти [SWS_CryIf_91006].

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

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

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

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

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

функция CryIf_KeyElementCopy [SWS_CryIf_91015] 📄 PDF

Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopy.

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

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

Для вызова через входные параметры передаются исходный ключ (cryIfKeyId), копируемый исходный элемент (keyElementId), а также целевой ключ (targetCryIfKeyId) и целевой элемент (targetKeyElementId) [SWS_CryIf_91015]. Функция спроектирована как реентерабельная, однако явно не для одного и того же cryIfKeyId [SWS_CryIf_91015]. В качестве интерпретации логично предположить, что во избежание конфликтов данных одновременные операции записи в один и тот же целевой ключ (targetCryIfKeyId) также должны синхронизироваться вызывающей стороной. Вопрос Q-cba3554c537dd498 (открытый)

Возвращаемое значение типа Std_ReturnType сигнализирует о результате операции [SWS_CryIf_91015]:

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

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

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

функция CryIf_KeyElementCopyPartial [SWS_CryIf_91018] 📄 PDF

Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopyPartial.

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

Синхронная функция CryIf_KeyElementCopyPartial, предоставляемая через заголовочный файл CryIf.h, копирует поддиапазоны элемента ключа в другой элемент ключа [SWS_CryIf_91018]. Исходный и целевой ключи, а также соответствующие элементы специфицируются через параметры cryIfKeyId, keyElementId, targetCryIfKeyId и targetKeyElementId [SWS_CryIf_91018]. Начальные позиции внутри обоих элементов определяются с помощью keyElementSourceOffset и keyElementTargetOffset, в то время как keyElementCopyLength задает точное количество передаваемых байтов [SWS_CryIf_91018].

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

Возвращаемое значение сообщает подробный статус выполнения синхронного запроса [SWS_CryIf_91018]:

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

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

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

функция CryIf_KeyCopy [SWS_CryIf_91016] 📄 PDF

Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall co py all key elements from the source key to a target key.

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

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

Синхронная функция CryIf_KeyCopy копирует все элементы ключа из исходного ключа в указанный целевой ключ ([SWS_CryIf_91016]). Она предоставляется через заголовочный файл CryIf.h и имеет Service-ID 0x10 ([SWS_CryIf_91016]).

Функция ожидает два входных параметра ([SWS_CryIf_91016]):

  • cryIfKeyId: идентификатор ключа, элементы которого служат источником.
  • targetCryIfKeyId: идентификатор ключа, который принимает элементы ключа в качестве цели.

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

Интерфейс специфицирован как реентерабельный, однако не должен вызываться одновременно для одного и того же идентификатора исходного ключа (cryIfKeyId) ([SWS_CryIf_91016]).

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

Возвращаемое значение типа Std_ReturnType сигнализирует о результате операции ([SWS_CryIf_91016]):

  • E_OK: процесс копирования успешно завершен.
  • E_NOT_OK: запрос завершился сбоем.
  • CRYPTO_E_BUSY: сбой, так как базовый объект Crypto-Driver занят.
  • CRYPTO_E_KEY_NOT_AVAILABLE: запрошенный элемент ключа недоступен.
  • CRYPTO_E_KEY_READ_FAIL: считывание элемента ключа недопустимо.
  • CRYPTO_E_KEY_WRITE_FAIL: запись целевого элемента ключа недопустима.
  • CRYPTO_E_KEY_SIZE_MISMATCH: размеры элементов ключей несовместимы друг с другом.
  • CRYPTO_E_KEY_EMPTY: исходный элемент ключа не инициализирован.

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

функция CryIf_RandomSeed [SWS_CryIf_91007] 📄 PDF

Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);

This function shall dispatch the random seed function to the configured crypto driver object.

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

Функция CryIf_RandomSeed служит для перенаправления генерации или ввода начального случайного значения (Random Seed) сконфигурированному объекту криптографического драйвера [SWS_CryIf_91007]. Она доступна через заголовочный файл CryIf.h и имеет Service-ID 0x07 [SWS_CryIf_91007].

Интерфейс ожидает три входных параметра [SWS_CryIf_91007]:

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

Поведение выполнения (синхронное или асинхронное) жестко не задано, а зависит от соответствующей конфигурации [SWS_CryIf_91007]. С точки зрения параллельности функция специфицирована как ревходабельная [SWS_CryIf_91007].

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

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

Интерпретация: при возврате CRYPTO_E_KEY_NOT_VALID проверка, вероятно, относится к переданному ключу cryIfKeyId, хотя в тексте спецификации в отличие от этого говорится о cryptoKeyId [SWS_CryIf_91007]. Вопрос Q-22b20256f21f131b (открытый)

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

функция CryIf_KeyGenerate [SWS_CryIf_91008] 📄 PDF

Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);

This function shall dispatch the key generate function to the configured crypto driver object.

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

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

Функция CryIf_KeyGenerate перенаправляет вызов функции для генерации ключа сконфигурированному объекту Crypto-Driver [SWS_CryIf_91008]. Через входной параметр cryIfKeyId передается уникальный идентификатор ключа, который должен быть обновлен сгенерированным значением ключа [SWS_CryIf_91008]. Объявление этого интерфейса предоставляется через заголовочный файл CryIf.h [SWS_CryIf_91008].

Поведение синхронизации и параллелизм

Выполнение происходит в зависимости от базовой конфигурации либо синхронно, либо асинхронно [SWS_CryIf_91008]. В отношении контекста вызова и параллелизма функция специфицирована как реентерабельная [SWS_CryIf_91008].

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

Вызов возвращает значение состояния типа Std_ReturnType [SWS_CryIf_91008]:

  • E_OK: запрос на генерацию ключа успешно выполнен [SWS_CryIf_91008].
  • E_NOT_OK: запрос завершился ошибкой [SWS_CryIf_91008].
  • CRYPTO_E_BUSY: запрос завершился ошибкой, так как опрашиваемый объект Crypto-Driver в данный момент занят [SWS_CryIf_91008].
  • CRYPTO_E_KEY_EMPTY: запрос завершился ошибкой, так как требуемый исходный элемент ключа не инициализирован [SWS_CryIf_91008].
  • CRYPTO_E_KEY_NOT_VALID: запрос завершился ошибкой, так как статус ключа, на который указывает идентификатор ключа, недействителен [SWS_CryIf_91008].

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

функция CryIf_KeyDerive [SWS_CryIf_91009] 📄 PDF

Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch th e key derive function to the configured crypto driver object.

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

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

Функция CryIf_KeyDerive служит для того, чтобы синхронно перенаправлять запрос на деривацию ключа соответствующему сконфигурированному Crypto Driver Object [SWS_CryIf_91009]. Интерфейс объявляется через заголовочный файл CryIf.h с Service-ID 0x09 [SWS_CryIf_91009].

При вызове передаются два идентификатора ключей [SWS_CryIf_91009]:

  • cryIfKeyId: идентификатор ключа, который используется в качестве основы для деривации.
  • targetCryIfKeyId: идентификатор ключа, в котором сохраняется производный ключ.

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

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

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

Параллелизм и граничные условия

Интерфейс специфицирован как реентерабельный [SWS_CryIf_91009]. Поскольку процесс протекает синхронно, вызывающим сторонам, вероятно, придется учитывать время выполнения драйвера в соответствующем контексте вызова. Вопрос Q-2b2fd50249878177 (открытый)

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

функция CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] 📄 PDF

Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available

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

Синхронная и реентерабельная функция CryIf_KeyExchangeCalcPubVal перенаправляет вычисление открытого значения обмена ключами сконфигурированному объекту Crypto-Driver [SWS_CryIf_91010]. Сервис доступен через заголовочный файл CryIf.h [SWS_CryIf_91010].

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

  • cryIfKeyId: идентификатор ключа, который должен использоваться для протокола обмена ключами.
  • publicValuePtr: указатель на область памяти, в которой сохраняется вычисленное открытое значение.
  • publicValueLengthPtr: указатель на информацию о длине. При вызове этот параметр должен содержать предоставленный размер буфера; после завершения он сохраняет фактическую длину вычисленного значения.

Функция возвращает статус типа Std_ReturnType [SWS_CryIf_91010]:

  • E_OK: запрос был успешен.
  • E_NOT_OK: запрос завершился сбоем.
  • CRYPTO_E_BUSY: ошибка, так как ответственный объект Crypto-Driver занят.
  • CRYPTO_E_KEY_EMPTY: ошибка из-за неинициализированного исходного элемента ключа.
  • CRYPTO_E_KEY_NOT_VALID: ошибка, так как адресуемый ключ находится в недействительном состоянии.

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

функция CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] 📄 PDF

Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.

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

Синхронная функция CryIf_KeyExchangeCalcSecret перенаправляет вычисление общего секрета при обмене ключами сконфигурированному объекту Crypto-Driver [SWS_CryIf_91011]. В сервис передаются идентификатор ключа (cryIfKeyId), указатель на открытое значение ключа партнера по коммуникации (partnerPublicValuePtr), а также его длина в байтах (partnerPublicValueLength) [SWS_CryIf_91011].

Обработка ошибок: функция сообщает о результате через Std_ReturnType [SWS_CryIf_91011]:

  • E_OK: вычисление было успешно выполнено [SWS_CryIf_91011].
  • CRYPTO_E_BUSY: объект Crypto-Driver занят [SWS_CryIf_91011].
  • CRYPTO_E_KEY_EMPTY: исходный элемент ключа не инициализирован [SWS_CryIf_91011].
  • CRYPTO_E_KEY_NOT_VALID: статус ключа указанного ключа недействителен [SWS_CryIf_91011].
  • E_NOT_OK: запрос завершился сбоем [SWS_CryIf_91011].

Параллелизм: интерфейс специфицирован как реентерабельный [SWS_CryIf_91011]. Поскольку процесс выполняется синхронно, вызов, как правило, должен происходить в контексте задачи. Вопрос Q-b3bca3645b0ef468 (открытый) Сервис предоставляется через заголовочный файл CryIf.h [SWS_CryIf_91011].

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

функция CryIf_CallbackNotification [SWS_CryIf_91013] 📄 PDF

void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);

Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.

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

Функция CryIf_CallbackNotification служит согласно [SWS_CryIf_91013] для уведомления Crypto Interface (CryIf) о завершении криптографической операции, а также о ее результате. Объявление доступно через заголовочный файл CryIf.h и имеет Service-ID 0x0d [SWS_CryIf_91013].

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

  • job (входной, Crypto_JobType*): указывает на информационную структуру завершенного задания и содержит Callback-ID для сопоставления завершенного задания [SWS_CryIf_91013].
  • result (входной, Crypto_ResultType): передает результат выполненной криптографической операции [SWS_CryIf_91013].

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

В отношении конкурентности функция согласно [SWS_CryIf_91013] специфицирована как нереентерабельная (Non Reentrant) и не имеет возвращаемого значения (void). Поэтому вызывающие стороны должны гарантировать, что вызовы происходят последовательно и вложенные или параллельные выполнения отсутствуют. Интерпретация: данное уведомление, как правило, вызывается нижележащими криптодрайверами для возврата результата асинхронно обработанных криптозаданий в Crypto Interface. Вопрос Q-ae17af188a970e00 (открытый)

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

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

Record
AUTOSAR/AP/record/CP_MOD_CryIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_CryIf@rel:R20-11#1668e341
Content hash
1668e341
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoInterface.pdf#nameddest=SWS_CryIf_91000

Карта тем

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

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

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

CryIf_GetVersionInfo функция

Returns the version information of this module.

void CryIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
CryIf_Init функция

Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface

void CryIf_Init (const CryIf_ConfigType* configPtr);

Сервисы · KeyElement…

CryIf_KeyElementCopy функция

Service CryIf_KeyElementCopy.

Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);

Service CryIf_KeyElementCopyPartial.

Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);
CryIf_KeyElementGet функция

This function shall dispatch the get key ele ment function to the configured crypto driver object.

Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);
CryIf_KeyElementSet функция

This function shall dispatch the set key element function to the configured crypto driver object.

Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Сервисы · Key…

CryIf_KeyCopy функция

This function shall co py all key elements from the source key to a target key.

Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);
CryIf_KeyDerive функция

This function shall dispatch th e key derive function to the configured crypto driver object.

Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);

This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available

Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.

Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
CryIf_KeyGenerate функция

This function shall dispatch the key generate function to the configured crypto driver object.

Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);
CryIf_KeyGetStatus функция

Returns the key state of the key identified by cry If Key Id.

Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);
CryIf_KeySetInvalid функция

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

Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);
CryIf_KeySetValid функция

This function shall dispatch the set key valid function to the configured crypto driver object.

Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);

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

Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.

void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);
CryIf_CancelJob функция

This interface dispatches the job cancellation function to the configured crypto driver object.

Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);
CryIf_ProcessJob функция

Service CryIf_ProcessJob.

Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);
CryIf_RandomSeed функция

This function shall dispatch the random seed function to the configured crypto driver object.

Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);

Типы

Configuration data structure of Cry If module