Этот модуль включает абстракцию платформы для Crypto.
 Краткое содержание   Перечисления  anonymous enum  {OT_CRYPTO_KEY_USAGE_NONE  = 0,OT_CRYPTO_KEY_USAGE_EXPORT  = 1 << 0,OT_CRYPTO_KEY_USAGE_ENCRYPT  = 1 << 1,OT_CRYPTO_KEY_USAGE_DECRYPT  = 1 << 2,OT_CRYPTO_KEY_USAGE_SIGN_HASH  = 1 << 3,OT_CRYPTO_KEY_USAGE_VERIFY_HASH  = 1 << 4  перечисление Определяет флаги использования ключей.
  otCryptoKeyAlgorithm  {OT_CRYPTO_KEY_ALG_VENDOR  ,OT_CRYPTO_KEY_ALG_AES_ECB  ,OT_CRYPTO_KEY_ALG_HMAC_SHA_256  ,OT_CRYPTO_KEY_ALG_ECDSA   перечисление Определяет ключевые алгоритмы.
  otCryptoKeyStorage  {OT_CRYPTO_KEY_STORAGE_VOLATILE  ,OT_CRYPTO_KEY_STORAGE_PERSISTENT   перечисление Определяет типы хранения ключей.
  otCryptoKeyType  {OT_CRYPTO_KEY_TYPE_RAW  ,OT_CRYPTO_KEY_TYPE_AES  ,OT_CRYPTO_KEY_TYPE_HMAC  ,OT_CRYPTO_KEY_TYPE_ECDSA   перечисление Определяет типы ключей. 
 
 Функции  otPlatCryptoAesEncrypt  ( otCryptoContext  *aContext, const uint8_t *aInput, uint8_t *aOutput)  Зашифруйте данные.
 otPlatCryptoAesFree  ( otCryptoContext  *aContext)  Освободите контекст AES.
 otPlatCryptoAesInit  ( otCryptoContext  *aContext)  Инициализируйте операцию AES.
 otPlatCryptoAesSetKey  ( otCryptoContext  *aContext, const otCryptoKey  *aKey)  Установите ключ для работы AES.
 otPlatCryptoDestroyKey  ( otCryptoKeyRef  aKeyRef)  Уничтожьте ключ, хранящийся в PSA ITS.
 otPlatCryptoEcdsaExportPublicKey  ( otCryptoKeyRef  aKeyRef, otPlatCryptoEcdsaPublicKey  *aPublicKey)  Получите связанный открытый ключ из переданной ссылки на ключ.
 otPlatCryptoEcdsaGenerateAndImportKey  ( otCryptoKeyRef  aKeyRef)  Создайте и импортируйте новую пару ключей ECDSA по переданной ссылке.
 otPlatCryptoEcdsaGenerateKey  ( otPlatCryptoEcdsaKeyPair  *aKeyPair)  Сгенерируйте и заполните выходной буфер новой парой ключей ECDSA.
 otPlatCryptoEcdsaGetPublicKey  (const otPlatCryptoEcdsaKeyPair  *aKeyPair, otPlatCryptoEcdsaPublicKey  *aPublicKey)  Получите связанный открытый ключ из контекста ввода.
 otPlatCryptoEcdsaSign  (const otPlatCryptoEcdsaKeyPair  *aKeyPair, const otPlatCryptoSha256Hash  *aHash, otPlatCryptoEcdsaSignature  *aSignature)  Вычислите подпись ECDSA для хешированного сообщения, используя закрытый ключ из входного контекста.
 otPlatCryptoEcdsaSignUsingKeyRef  ( otCryptoKeyRef  aKeyRef, const otPlatCryptoSha256Hash  *aHash, otPlatCryptoEcdsaSignature  *aSignature)  Вычислите подпись ECDSA для хешированного сообщения, используя переданную ссылку на ключ.
 otPlatCryptoEcdsaVerify  (const otPlatCryptoEcdsaPublicKey  *aPublicKey, const otPlatCryptoSha256Hash  *aHash, const otPlatCryptoEcdsaSignature  *aSignature)  Используйте ключ из входного контекста, чтобы проверить подпись ECDSA хешированного сообщения.
 otPlatCryptoEcdsaVerifyUsingKeyRef  ( otCryptoKeyRef  aKeyRef, const otPlatCryptoSha256Hash  *aHash, const otPlatCryptoEcdsaSignature  *aSignature)  Используйте ссылку на ключ для проверки подписи ECDSA хешированного сообщения.
 otPlatCryptoExportKey  ( otCryptoKeyRef  aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)  Экспортируйте ключ, хранящийся в PSA ITS.
 otPlatCryptoHasKey  ( otCryptoKeyRef  aKeyRef)  bool
 Проверьте, имеет ли переданный ключ ref связанный ключ в PSA ITS.
 otPlatCryptoHkdfDeinit  ( otCryptoContext  *aContext)  Деинициализируйте контекст HKDF.
 otPlatCryptoHkdfExpand  ( otCryptoContext  *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)  Выполните шаг расширения HKDF.
 otPlatCryptoHkdfExtract  ( otCryptoContext  *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey  *aInputKey)  Выполните шаг извлечения HKDF.
 otPlatCryptoHkdfInit  ( otCryptoContext  *aContext)  Инициализируйте контекст HKDF.
 otPlatCryptoHmacSha256Deinit  ( otCryptoContext  *aContext)  Деинициализируйте операцию HMAC.
 otPlatCryptoHmacSha256Finish  ( otCryptoContext  *aContext, uint8_t *aBuf, size_t aBufLength)  Завершите операцию HMAC.
 otPlatCryptoHmacSha256Init  ( otCryptoContext  *aContext)  Инициализируйте операцию HMAC.
 otPlatCryptoHmacSha256Start  ( otCryptoContext  *aContext, const otCryptoKey  *aKey)  Запустите операцию HMAC.
 otPlatCryptoHmacSha256Update  ( otCryptoContext  *aContext, const void *aBuf, uint16_t aBufLength)  Обновите операцию HMAC, добавив новые данные.
 otPlatCryptoImportKey  ( otCryptoKeyRef  *aKeyRef, otCryptoKeyType  aKeyType, otCryptoKeyAlgorithm  aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage  aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)  Импортируйте ключ в PSA ITS.
 otPlatCryptoInit  (void)  void
 Инициализируйте модуль Crypto.
 otPlatCryptoPbkdf2GenerateKey  (const uint8_t *aPassword, uint16_t aPasswordLen, const uint8_t *aSalt, uint16_t aSaltLen, uint32_t aIterationCounter, uint16_t aKeyLen, uint8_t *aKey)  Выполните PKCS#5 PBKDF2, используя CMAC (AES-CMAC-PRF-128).
 otPlatCryptoRandomDeinit  (void)  void
 Деинициализировать криптографически безопасный генератор псевдослучайных чисел (CSPRNG).
 otPlatCryptoRandomGet  (uint8_t *aBuffer, uint16_t aSize)  Заполняет заданный буфер криптографически безопасными случайными байтами.
 otPlatCryptoRandomInit  (void)  void
 Инициализировать криптографически безопасный генератор псевдослучайных чисел (CSPRNG).
 otPlatCryptoSha256Deinit  ( otCryptoContext  *aContext)  Деинициализируйте операцию SHA-256.
 otPlatCryptoSha256Finish  ( otCryptoContext  *aContext, uint8_t *aHash, uint16_t aHashSize)  Завершите операцию SHA-256.
 otPlatCryptoSha256Init  ( otCryptoContext  *aContext)  Инициализируйте операцию SHA-256.
 otPlatCryptoSha256Start  ( otCryptoContext  *aContext)  Запустите операцию SHA-256.
 otPlatCryptoSha256Update  ( otCryptoContext  *aContext, const void *aBuf, uint16_t aBufLength)  Обновите операцию SHA-256, добавив новые входные данные. 
 Перечисления   анонимное перечисление   anonymous enum  Определяет флаги использования ключей.
 Характеристики    Использование ключа: AES ECB.
   Использование ключа: Шифрование (определяется поставщиком).
   Использование ключа: ключ можно экспортировать.
   Использование ключа: Использование ключа пусто.
   Использование ключа: Знак Хэша.
   Использование ключа: проверка хеша. 
 Алгоритм otCryptoKey   otCryptoKeyAlgorithm  Определяет ключевые алгоритмы.
 Характеристики    Ключевой алгоритм: AES ECB.
   Ключевой алгоритм: ECDSA.
   Ключевой алгоритм: HMAC SHA-256.
   Ключевой алгоритм: определяется поставщиком. 
 otCryptoKeyStorage   otCryptoKeyStorage  Определяет типы хранения ключей.
 Характеристики    Сохранение ключа: ключ является постоянным.
   Сохранение ключа: ключ изменчив. 
 отКриптоКейТип   otCryptoKeyType  Определяет типы ключей.
 Характеристики    Тип ключа: AES.
   Тип ключа: ECDSA.
   Тип ключа: HMAC.
   Тип ключа: необработанные данные.
Определения типов   otCryptoKeyRef  uint32_t otCryptoKeyRef  Этот тип данных представляет ключевую ссылку. 
 Переменные   Функции   отПлатКриптоАесЭнкрипт  otError  otPlatCryptoAesEncrypt(
  otCryptoContext  *aContext,
  const uint8_t *aInput,
  uint8_t *aOutput
) Зашифруйте данные.
 Подробности  Параметры  [in] aContext  Контекст для работы AES.
 [in] aInput  Указатель на входной буфер.
 [in] aOutput  Указатель на выходной буфер.
 Возвращаемые значения  OT_ERROR_NONE  Успешно зашифрован aInput .
 OT_ERROR_FAILED  Не удалось зашифровать aInput .
 OT_ERROR_INVALID_ARGS  aContext или aKey или aOutput были NULL 
 otPlatCryptoAesFree  otError  otPlatCryptoAesFree(
  otCryptoContext  *aContext
) Освободите контекст AES.
 Подробности  Параметры  [in] aContext  Контекст для работы AES.
 Возвращаемые значения  OT_ERROR_NONE  Контекст AES успешно освобожден.
 OT_ERROR_FAILED  Не удалось освободить контекст AES.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 отПлатКриптоАесИнит  otError  otPlatCryptoAesInit(
  otCryptoContext  *aContext
) Инициализируйте операцию AES.
 Примечание.  Драйвер платформы должен указывать контекст на правильный объект, например psa_key_id или mbedtls_aes_context_t. 
 Подробности  Параметры  [in] aContext  Контекст для работы AES.
 Возвращаемые значения  OT_ERROR_NONE  Операция AES успешно инициализирована.
 OT_ERROR_FAILED  Не удалось инициализировать операцию AES.
 OT_ERROR_INVALID_ARGS  aContext был NULL
 OT_ERROR_NO_BUFS  Невозможно выделить контекст. 
 otPlatCryptoAesSetKey  otError  otPlatCryptoAesSetKey(
  otCryptoContext  *aContext,
  const otCryptoKey  *aKey
) Установите ключ для работы AES.
 Подробности  Параметры  [in] aContext  Контекст для работы AES.
 [out] aKey  Ключ для использования для работы AES.
 Возвращаемые значения  OT_ERROR_NONE  Успешно установили ключ для работы AES.
 OT_ERROR_FAILED  Не удалось установить ключ для работы AES.
 OT_ERROR_INVALID_ARGS  aContext или aKey было NULL 
 otPlatCryptoDestroyKey  otError  otPlatCryptoDestroyKey(
  otCryptoKeyRef  aKeyRef
) Уничтожьте ключ, хранящийся в PSA ITS.
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ключевая ссылка, которую нужно уничтожить
 Возвращаемые значения  OT_ERROR_NONE  Ключ успешно уничтожен.
 OT_ERROR_FAILED  Не удалось уничтожить ключ. 
 otPlatCryptoEcdsaExportPublicKey  otError  otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef  aKeyRef,
  otPlatCryptoEcdsaPublicKey  *aPublicKey
) Получите связанный открытый ключ из переданной ссылки на ключ.
 Открытый ключ хранится по-разному в зависимости от используемой библиотеки шифрования (OPENTHREAD_CONFIG_CRYPTO_LIB).
 Этот API должен обязательно возвращать открытый ключ в виде представления последовательности байтов несжатой точки кривой (RFC 6605, раздел 4).
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ключ Ссылка на слот, в котором хранится пара ключей.
 [out] aPublicKey  Указатель на структуру открытого ключа ECDSA для хранения открытого ключа.
 Возвращаемые значения  OT_ERROR_NONE  Открытый ключ успешно получен, aBuffer обновлен.
 OT_ERROR_PARSE  Не удалось проанализировать формат DER пары ключей (недопустимый формат).
 OT_ERROR_INVALID_ARGS  aContext имеет значение NULL. 
 otPlatCryptoEcdsaGenerateAndImportKey  otError  otPlatCryptoEcdsaGenerateAndImportKey(
  otCryptoKeyRef  aKeyRef
) Создайте и импортируйте новую пару ключей ECDSA по переданной ссылке.
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ключ Ссылка на слот, в котором хранится пара ключей.
 Возвращаемые значения  OT_ERROR_NONE  Новая пара ключей была успешно сгенерирована.
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для генерации ключа.
 OT_ERROR_NOT_CAPABLE  Функция не поддерживается.
 OT_ERROR_FAILED  Не удалось создать пару ключей. 
 otPlatCryptoEcdsaGenerateKey  otError  otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair  *aKeyPair
) Сгенерируйте и заполните выходной буфер новой парой ключей ECDSA.
 Подробности  Параметры  [out] aKeyPair  Указатель на структуру пары ключей ECDSA для хранения сгенерированной пары ключей.
 Возвращаемые значения  OT_ERROR_NONE  Новая пара ключей была успешно сгенерирована.
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для генерации ключа.
 OT_ERROR_NOT_CAPABLE  Функция не поддерживается.
 OT_ERROR_FAILED  Не удалось создать пару ключей. 
 otPlatCryptoEcdsaGetPublicKey  otError  otPlatCryptoEcdsaGetPublicKey(
  const otPlatCryptoEcdsaKeyPair  *aKeyPair,
  otPlatCryptoEcdsaPublicKey  *aPublicKey
) Получите связанный открытый ключ из контекста ввода.
 Подробности  Параметры  [in] aKeyPair  Указатель на структуру пары ключей ECDSA, в которой хранится пара ключей.
 [out] aPublicKey  Указатель на структуру открытого ключа ECDSA для хранения открытого ключа.
 Возвращаемые значения  OT_ERROR_NONE  Открытый ключ успешно получен, aBuffer обновлен.
 OT_ERROR_PARSE  Не удалось проанализировать формат DER пары ключей (недопустимый формат).
 OT_ERROR_INVALID_ARGS  aContext имеет значение NULL. 
 otPlatCryptoEcdsaSign  otError  otPlatCryptoEcdsaSign(
  const otPlatCryptoEcdsaKeyPair  *aKeyPair,
  const otPlatCryptoSha256Hash  *aHash,
  otPlatCryptoEcdsaSignature  *aSignature
) Вычислите подпись ECDSA для хешированного сообщения, используя закрытый ключ из входного контекста.
 Использует детерминированную процедуру генерации цифровой подписи из RFC 6979.
 Подробности  Параметры  [in] aKeyPair  Указатель на структуру пары ключей ECDSA, в которой хранится пара ключей.
 [in] aHash  Указатель на хеш-структуру SHA-256, в которой хранится хеш-значение для расчета подписи.
 [out] aSignature  Указатель на структуру подписи ECDSA для вывода рассчитанной подписи.
 Возвращаемые значения  OT_ERROR_NONE  Подпись рассчитана успешно, aSignature обновлена.
 OT_ERROR_PARSE  Не удалось проанализировать формат DER пары ключей (недопустимый формат).
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для расчета подписи.
 OT_ERROR_INVALID_ARGS  aContext имеет значение NULL. 
 otPlatCryptoEcdsaSignUsingKeyRef  otError  otPlatCryptoEcdsaSignUsingKeyRef(
  otCryptoKeyRef  aKeyRef,
  const otPlatCryptoSha256Hash  *aHash,
  otPlatCryptoEcdsaSignature  *aSignature
) Вычислите подпись ECDSA для хешированного сообщения, используя переданную ссылку на ключ.
 Использует детерминированную процедуру генерации цифровой подписи из RFC 6979.
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ключ Ссылка на слот, в котором хранится пара ключей.
 [in] aHash  Указатель на хеш-структуру SHA-256, в которой хранится хеш-значение для расчета подписи.
 [out] aSignature  Указатель на структуру подписи ECDSA для вывода рассчитанной подписи.
 Возвращаемые значения  OT_ERROR_NONE  Подпись рассчитана успешно, aSignature обновлена.
 OT_ERROR_PARSE  Не удалось проанализировать формат DER пары ключей (недопустимый формат).
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для расчета подписи.
 OT_ERROR_INVALID_ARGS  aContext имеет значение NULL. 
 otPlatCryptoEcdsaVerify  otError  otPlatCryptoEcdsaVerify(
  const otPlatCryptoEcdsaPublicKey  *aPublicKey,
  const otPlatCryptoSha256Hash  *aHash,
  const otPlatCryptoEcdsaSignature  *aSignature
) Используйте ключ из входного контекста, чтобы проверить подпись ECDSA хешированного сообщения.
 Подробности  Параметры  [in] aPublicKey  Указатель на структуру открытого ключа ECDSA, в которой хранится открытый ключ для проверки подписи.
 [in] aHash  Указатель на хеш-структуру SHA-256, в которой хранится хэш-значение для проверки подписи.
 [in] aSignature  Указатель на структуру подписи ECDSA, в которой хранится значение подписи, подлежащее проверке.
 Возвращаемые значения  OT_ERROR_NONE  Подпись успешно проверена.
 OT_ERROR_SECURITY  Подпись недействительна.
 OT_ERROR_INVALID_ARGS  Ключ или хэш недействителен.
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для проверки подписи. 
 otPlatCryptoEcdsaVerifyUsingKeyRef  otError  otPlatCryptoEcdsaVerifyUsingKeyRef(
  otCryptoKeyRef  aKeyRef,
  const otPlatCryptoSha256Hash  *aHash,
  const otPlatCryptoEcdsaSignature  *aSignature
) Используйте ссылку на ключ для проверки подписи ECDSA хешированного сообщения.
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ключ Ссылка на слот, в котором хранится пара ключей.
 [in] aHash  Указатель на хеш-структуру SHA-256, в которой хранится хэш-значение для проверки подписи.
 [in] aSignature  Указатель на структуру подписи ECDSA, в которой хранится значение подписи, подлежащее проверке.
 Возвращаемые значения  OT_ERROR_NONE  Подпись успешно проверена.
 OT_ERROR_SECURITY  Подпись недействительна.
 OT_ERROR_INVALID_ARGS  Ключ или хэш недействителен.
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для проверки подписи. 
 otPlatCryptoExportKey  otError  otPlatCryptoExportKey(
  otCryptoKeyRef  aKeyRef,
  uint8_t *aBuffer,
  size_t aBufferLen,
  size_t *aKeyLen
) Экспортируйте ключ, хранящийся в PSA ITS.
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ссылка на ключ, которая будет использоваться для криптографических операций.
 [out] aBuffer  Указатель на буфер, куда необходимо экспортировать ключ.
 [in] aBufferLen  Длина буфера, передаваемого для хранения экспортированного ключа.
 [out] aKeyLen  Указатель для возврата длины экспортированного ключа.
 Возвращаемые значения  OT_ERROR_NONE  Успешно экспортирован aKeyRef .
 OT_ERROR_FAILED  Не удалось экспортировать aKeyRef .
 OT_ERROR_INVALID_ARGS  aBuffer был NULL 
 otPlatCryptoHasKey  bool otPlatCryptoHasKey(
  otCryptoKeyRef  aKeyRef
)  Проверьте, имеет ли переданный ключ ref связанный ключ в PSA ITS.
 Примечание.  Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 Подробности  Параметры  [in] aKeyRef  Ключевая ссылка для проверки.
 Возвращаемые значения  TRUE  С aKeyRef связан ключ.
 FALSE  С aKeyRef не связан ключ. 
 otPlatCryptoHkdfDeinit  otError  otPlatCryptoHkdfDeinit(
  otCryptoContext  *aContext
) Деинициализируйте контекст HKDF.
 Подробности  Параметры  [in] aContext  Контекст для работы HKDF.
 Возвращаемые значения  OT_ERROR_NONE  Операция HKDF успешно деинициализирована.
 OT_ERROR_FAILED  Не удалось деинициализировать операцию HKDF.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoHkdfРазвернуть  otError  otPlatCryptoHkdfExpand(
  otCryptoContext  *aContext,
  const uint8_t *aInfo,
  uint16_t aInfoLength,
  uint8_t *aOutputKey,
  uint16_t aOutputKeyLength
) Выполните шаг расширения HKDF.
 Подробности  Параметры  [in] aContext  Контекст операции для операции HKDF.
 [in] aInfo  Указатель на последовательность информации.
 [in] aInfoLength  Длина информационной последовательности.
 [out] aOutputKey  Указатель на выходной ключ.
 [in] aOutputKeyLength  Размер выходного ключевого буфера.
 Возвращаемые значения  OT_ERROR_NONE  Расширение HKDF прошло успешно.
 OT_ERROR_FAILED  Не удалось развернуть HKDF.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otError  otPlatCryptoHkdfExtract(
  otCryptoContext  *aContext,
  const uint8_t *aSalt,
  uint16_t aSaltLength,
  const otCryptoKey  *aInputKey
) Выполните шаг извлечения HKDF.
 Подробности  Параметры  [in] aContext  Контекст операции для операции HKDF.
 [in] aSalt  Указатель на соль для HKDF.
 [in] aSaltLength  Длина соли.
 [in] aInputKey  Указатель на клавишу ввода.
 Возвращаемые значения  OT_ERROR_NONE  Извлечение HKDF прошло успешно.
 OT_ERROR_FAILED  Не удалось извлечь HKDF. 
  otPlatCryptoHkdfinit  otError  otPlatCryptoHkdfInit(
  otCryptoContext  *aContext
) Инициализируйте контекст HKDF.
 Примечание.  Драйвер платформы должен указывать контекст на правильный объект, например psa_key_derivation_operation_t или HmacSha256::Hash. 
 Подробности  Параметры  [in] aContext  Контекст для работы HKDF.
 Возвращаемые значения  OT_ERROR_NONE  Операция AES успешно инициализирована.
 OT_ERROR_FAILED  Не удалось инициализировать операцию AES.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoHmacSha256Deinit  otError  otPlatCryptoHmacSha256Deinit(
  otCryptoContext  *aContext
) Деинициализируйте операцию HMAC.
 Подробности  Параметры  [in] aContext  Контекст для работы HMAC.
 Возвращаемые значения  OT_ERROR_NONE  Операция HMAC успешно деинициализирована.
 OT_ERROR_FAILED  Не удалось выполнить неинициализированную операцию HMAC.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoHmacSha256Finish  otError  otPlatCryptoHmacSha256Finish(
  otCryptoContext  *aContext,
  uint8_t *aBuf,
  size_t aBufLength
) Завершите операцию HMAC.
 Подробности  Параметры  [in] aContext  Контекст для работы HMAC.
 [out] aBuf  Указатель на выходной буфер.
 [in] aBufLength  Длина aBuf в байтах.
 Возвращаемые значения  OT_ERROR_NONE  Операция HMAC успешно завершена.
 OT_ERROR_FAILED  Не удалось завершить операцию HMAC.
 OT_ERROR_INVALID_ARGS  aContext или aBuf был NULL 
 otPlatCryptoHmacSha256Init  otError  otPlatCryptoHmacSha256Init(
  otCryptoContext  *aContext
) Инициализируйте операцию HMAC.
 Примечание.  Драйвер платформы должен указывать контекст на правильный объект, например psa_mac_operation_t или mbedtls_md_context_t. 
 Подробности  Параметры  [in] aContext  Контекст для работы HMAC.
 Возвращаемые значения  OT_ERROR_NONE  Операция HMAC успешно инициализирована.
 OT_ERROR_FAILED  Не удалось инициализировать операцию HMAC.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoHmacSha256Start  otError  otPlatCryptoHmacSha256Start(
  otCryptoContext  *aContext,
  const otCryptoKey  *aKey
) Запустите операцию HMAC.
 Подробности  Параметры  [in] aContext  Контекст для работы HMAC.
 [in] aKey  Ключевой материал, который будет использоваться для работы HMAC.
 Возвращаемые значения  OT_ERROR_NONE  Операция HMAC успешно запущена.
 OT_ERROR_FAILED  Не удалось запустить операцию HMAC.
 OT_ERROR_INVALID_ARGS  aContext или aKey было NULL 
 otPlatCryptoHmacSha256Обновить  otError  otPlatCryptoHmacSha256Update(
  otCryptoContext  *aContext,
  const void *aBuf,
  uint16_t aBufLength
) Обновите операцию HMAC, добавив новые данные.
 Подробности  Параметры  [in] aContext  Контекст для работы HMAC.
 [in] aBuf  Указатель на входной буфер.
 [in] aBufLength  Длина aBuf в байтах.
 Возвращаемые значения  OT_ERROR_NONE  HMAC успешно обновлен новой операцией ввода.
 OT_ERROR_FAILED  Не удалось обновить операцию HMAC.
 OT_ERROR_INVALID_ARGS  aContext или aBuf был NULL 
 otPlatCryptoImportKey  otError  otPlatCryptoImportKey(
  otCryptoKeyRef  *aKeyRef,
  otCryptoKeyType  aKeyType,
  otCryptoKeyAlgorithm  aKeyAlgorithm,
  int aKeyUsage,
  otCryptoKeyStorage  aKeyPersistence,
  const uint8_t *aKey,
  size_t aKeyLen
) Импортируйте ключ в PSA ITS.
 Примечание.  Если OT_CRYPTO_KEY_STORAGE_PERSISTENT передается для aKeyPersistence, тогда aKeyRef является входным, и платформа должна использовать данный aKeyRef и НЕ ДОЛЖНА его менять.  Если OT_CRYPTO_KEY_STORAGE_VOLATILE передается для aKeyPersistence, то выводится aKeyRef , начальное значение не имеет значения, и API платформы ДОЛЖЕН обновить его, чтобы вернуть новую ссылку на ключ.
 Подробности  Параметры  [in,out] aKeyRef  Указатель на ссылку на ключ, который будет использоваться для криптографических операций.
 [in] aKeyType  Кодировка типа ключа.
 [in] aKeyAlgorithm  Ключевой алгоритм кодирования ключа.
 [in] aKeyUsage  Кодировка использования ключа (комбинации OT_CRYPTO_KEY_USAGE_* ).
 [in] aKeyPersistence  Постоянство ключа для этого ключа
 [in] aKey  Фактический ключ, который нужно импортировать.
 [in] aKeyLen  Длина импортируемого ключа.
 Возвращаемые значения  OT_ERROR_NONE  Ключ успешно импортирован.
 OT_ERROR_FAILED  Не удалось импортировать ключ.
 OT_ERROR_INVALID_ARGS  aKey было установлено в NULL.
 Этот API используется ядром OT только тогда, когда включен OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE . 
 отПлатКриптоинит  void otPlatCryptoInit(
  void
)  Инициализируйте модуль Crypto. 
 otPlatCryptoPbkdf2GenerateKey  otError  otPlatCryptoPbkdf2GenerateKey(
  const uint8_t *aPassword,
  uint16_t aPasswordLen,
  const uint8_t *aSalt,
  uint16_t aSaltLen,
  uint32_t aIterationCounter,
  uint16_t aKeyLen,
  uint8_t *aKey
) Выполните PKCS#5 PBKDF2, используя CMAC (AES-CMAC-PRF-128).
 Подробности  Параметры  [in] aPassword  Пароль, который будет использоваться при генерации ключа.
 [in] aPasswordLen  Длина пароля.
 [in] aSalt  Соль, которую следует использовать при генерации ключа.
 [in] aSaltLen  Длина соли.
 [in] aIterationCounter  Количество итераций.
 [in] aKeyLen  Длина сгенерированного ключа в байтах.
 [out] aKey  Указатель на сгенерированный ключ.
 Возвращаемые значения  OT_ERROR_NONE  Новая пара ключей была успешно сгенерирована.
 OT_ERROR_NO_BUFS  Не удалось выделить буфер для генерации ключа.
 OT_ERROR_NOT_CAPABLE  Функция не поддерживается.
 OT_ERROR_FAILED  Не удалось сгенерировать ключ. 
 otPlatCryptoRandomDeinit  void otPlatCryptoRandomDeinit(
  void
)  Деинициализировать криптографически безопасный генератор псевдослучайных чисел (CSPRNG). 
 otPlatCryptoRandomGet  otError  otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
) Заполняет заданный буфер криптографически безопасными случайными байтами.
 Подробности  Параметры  [out] aBuffer  Указатель на буфер для заполнения случайными байтами.
 [in] aSize  Размер буфера (количество байт для заполнения).
 Возвращаемые значения  OT_ERROR_NONE  Буфер успешно заполнен случайными значениями.
 OT_ERROR_FAILED  Операция не удалась. 
 otPlatCryptoRandomInit  void otPlatCryptoRandomInit(
  void
)  Инициализируйте криптографически безопасный генератор псевдослучайных чисел (CSPRNG). 
 otPlatCryptoSha256Deinit  otError  otPlatCryptoSha256Deinit(
  otCryptoContext  *aContext
) Деинициализируйте операцию SHA-256.
 Подробности  Параметры  [in] aContext  Контекст для работы SHA-256.
 Возвращаемые значения  OT_ERROR_NONE  Операция SHA-256 успешно деинициализирована.
 OT_ERROR_FAILED  Не удалось выполнить неинициализированную операцию SHA-256.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoSha256Finish  otError  otPlatCryptoSha256Finish(
  otCryptoContext  *aContext,
  uint8_t *aHash,
  uint16_t aHashSize
) Завершите операцию SHA-256.
 Подробности  Параметры  [in] aContext  Контекст для работы SHA-256.
 [in] aHash  Указатель на выходной буфер, в котором необходимо сохранить хэш.
 [in] aHashSize  Длина aHash в байтах.
 Возвращаемые значения  OT_ERROR_NONE  Успешно завершена операция SHA-256.
 OT_ERROR_FAILED  Не удалось завершить операцию SHA-256.
 OT_ERROR_INVALID_ARGS  aContext или aHash был NULL 
 otPlatCryptoSha256Init  otError  otPlatCryptoSha256Init(
  otCryptoContext  *aContext
) Инициализируйте операцию SHA-256.
 Примечание.  Драйвер платформы должен указать контекст на правильный объект, например psa_hash_operation_t или mbedtls_sha256_context. 
 Подробности  Параметры  [in] aContext  Контекст для работы SHA-256.
 Возвращаемые значения  OT_ERROR_NONE  Операция SHA-256 успешно инициализирована.
 OT_ERROR_FAILED  Не удалось инициализировать операцию SHA-256.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoSha256Start  otError  otPlatCryptoSha256Start(
  otCryptoContext  *aContext
) Запустите операцию SHA-256.
 Подробности  Параметры  [in] aContext  Контекст для работы SHA-256.
 Возвращаемые значения  OT_ERROR_NONE  Операция SHA-256 успешно запущена.
 OT_ERROR_FAILED  Не удалось запустить операцию SHA-256.
 OT_ERROR_INVALID_ARGS  aContext был NULL 
 otPlatCryptoSha256Обновить  otError  otPlatCryptoSha256Update(
  otCryptoContext  *aContext,
  const void *aBuf,
  uint16_t aBufLength
) Обновите операцию SHA-256, добавив новые входные данные.
 Подробности  Параметры  [in] aContext  Контекст для работы SHA-256.
 [in] aBuf  Указатель на входной буфер.
 [in] aBufLength  Длина aBuf в байтах.
 Возвращаемые значения  OT_ERROR_NONE  SHA-256 успешно обновлен новой операцией ввода.
 OT_ERROR_FAILED  Не удалось обновить операцию SHA-256.
 OT_ERROR_INVALID_ARGS  aContext или aBuf был NULL 
 Макросы   OT_CRYPTO_ECDSA_MAX_DER_SIZE   OT_CRYPTO_ECDSA_MAX_DER_SIZE 125  Максимальный размер буфера (в байтах) для представления пары ключей EDCSA в формате DER. 
 OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE   OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64  Размер буфера (в байтах) для представления открытого ключа EDCSA. 
 OT_CRYPTO_ECDSA_SIGNATURE_SIZE   OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64  Размер буфера (в байтах) для представления подписи EDCSA. 
 OT_CRYPTO_PBDKF2_MAX_SALT_SIZE   OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30  Максимальная длина PBKDF2 SALT: префикс соли (6) + расширенный панид (8) + имя сети (16) 
 OT_CRYPTO_SHA256_HASH_SIZE   OT_CRYPTO_SHA256_HASH_SIZE 32  Длина хеша SHA256 (в байтах).
 Ресурсы  Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub  . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам  .