التشفير - النظام الأساسي

تتضمن هذه الوحدة تجريد النظام الأساسي لـ 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
}
تعداد
يحدد الأنواع الرئيسية.

تحديدات النوع

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
يمثل نوع البيانات هذا المرجع الرئيسي.
otPlatCryptoEcdsaKeyPair typedef
otPlatCryptoEcdsaPublicKey typedef
otPlatCryptoEcdsaSignature typedef
otPlatCryptoSha256Hash typedef
يمثل تجزئة SHA-256.

المتغيرات

OT_TOOL_PACKED_END

الدوال

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.
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)
استخدِم الملف keyref للتحقّق من توقيع ECDSA لرسالة مجزأة.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
تصدير مفتاح تم تخزينه في PSA ITS.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
تحقق مما إذا كان مرجع المفتاح الذي تم تمريره يحتوي على مفتاح مرتبط في 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)
otPlatCryptoInit(void)
void
قم بتهيئة وحدة التشفير.
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 باستخدام إدخال جديد

الهياكل

otCryptoContext

تخزين كائن السياق لواجهات برمجة التطبيقات للنظام الأساسي

otCryptoKey

يمثل المادة الأساسية المطلوبة لعمليات التشفير.

otPlatCryptoEcdsaKeyPair

ويمثِّل زوج مفاتيح ECDSA (مفاتيح عامة وخاصة).

otPlatCryptoEcdsaPublicKey

يُمثِّل هذا المفتاح مفتاحًا عامًا خاصًا بالقانون الإلكتروني والمساواة الرقمية (ECDSA).

otPlatCryptoEcdsaSignature

يُمثِّل توقيعًا في "قانون حقوق الخصوصية في كاليفورنيا (ECDSA)"

otPlatCryptoSha256Hash

يمثل تجزئة SHA-256.

عمليات التعداد

تعداد مجهول

 anonymous enum

تحدد علامات الاستخدام الرئيسية.

أماكن إقامة
OT_CRYPTO_KEY_USAGE_DECRYPT

استخدام المفتاح: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

استخدام المفتاح: التشفير (من تحديد المورّد).

OT_CRYPTO_KEY_USAGE_EXPORT

استخدام المفتاح: يمكن تصدير المفتاح.

OT_CRYPTO_KEY_USAGE_NONE

استخدام المفتاح: حقل استخدام المفتاح فارغ.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

استخدام المفتاح: تجزئة الإشارة

OT_CRYPTO_KEY_USAGE_VERIFY_HASH

استخدام المفتاح: التحقّق من صحة التجزئة

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

تحدد الخوارزميات الرئيسية.

أماكن إقامة
OT_CRYPTO_KEY_ALG_AES_ECB

خوارزمية المفاتيح: AES ECB.

OT_CRYPTO_KEY_ALG_ECDSA

الخوارزمية الأساسية: ECDSA

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

خوارزمية المفاتيح: HMAC SHA-256

OT_CRYPTO_KEY_ALG_VENDOR

الخوارزمية الرئيسية: من تحديد المورّد.

otCryptoKeyStorage

 otCryptoKeyStorage

تحدد أنواع مساحة التخزين الرئيسية.

أماكن إقامة
OT_CRYPTO_KEY_STORAGE_PERSISTENT

استمرارية المفتاح: المفتاح دائم.

OT_CRYPTO_KEY_STORAGE_VOLATILE

ثبات المفتاح: المفتاح متقلب.

otCryptoKeyType

 otCryptoKeyType

يحدد الأنواع الرئيسية.

أماكن إقامة
OT_CRYPTO_KEY_TYPE_AES

نوع المفتاح: AES.

OT_CRYPTO_KEY_TYPE_ECDSA

نوع المفتاح: ECDSA

OT_CRYPTO_KEY_TYPE_HMAC

نوع المفتاح: HMAC

OT_CRYPTO_KEY_TYPE_RAW

نوع المفتاح: بيانات أولية.

تحديدات النوع

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

يمثل نوع البيانات هذا المرجع الرئيسي.

otPlatCryptoEcdsaKeyPair

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsaSignature

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

يمثل تجزئة SHA-256.

المتغيرات

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

الدوال

otPlatCryptoAesEncrypt

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 فارغة (فارغة)

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

حرر سياق AES.

التفاصيل
المَعلمات
[in] aContext
سياق عملية AES.
قيم الإرجاع
OT_ERROR_NONE
تم إخلاء سياق AES بنجاح.
OT_ERROR_FAILED
تعذَّر إخلاء سياق AES.
OT_ERROR_INVALID_ARGS
قيمة aContext كانت فارغة (NULL)

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

تهيئة عملية AES.

التفاصيل
المَعلمات
[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 كانت فارغة (فارغ)

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

إتلاف مفتاح مخزن في تكنولوجيا المعلومات الخاصة بـ PSA.

التفاصيل
المَعلمات
[in] aKeyRef
المرجع الرئيسي المطلوب إتلافه
قيم الإرجاع
OT_ERROR_NONE
تم إتلاف المفتاح بنجاح.
OT_ERROR_FAILED
تعذّر حذف المفتاح.

otPlatCryptoEcdsaExportPublicKey

otError otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef aKeyRef,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

احصل على المفتاح العام المرتبط من مرجع المفتاح الذي تم تمريره.

يتم تخزين المفتاح العام بشكل مختلف بناءً على مكتبة الواجهة الخلفية للتشفير التي يتم استخدامها (OPENthread_CONFIG_CRYPTO_LIB).

يجب أن تتأكّد واجهة برمجة التطبيقات هذه من عرض المفتاح العام كتمثيل تسلسل بايت لنقطة منحنى غير مضغوطة (RFC 6605 - sec 4).

التفاصيل
المَعلمات
[in] aKeyRef
مرجع المفتاح إلى الفتحة التي يتم فيها تخزين مفتاحَي التشفير
[out] aPublicKey
يشير هذا المصطلح إلى بنية مفتاح عام خاص بـ ECDSA بهدف تخزين المفتاح العام.
قيم الإرجاع
OT_ERROR_NONE
تم استرداد المفتاح العام بنجاح وتم تحديث aBuffer.
OT_ERROR_PARSE
تعذّر تحليل تنسيق DER الزوجي (تنسيق غير صالح).
OT_ERROR_INVALID_ARGS
قيمة aContext فارغة.

otPlatCryptoEcdsaGenerateAndImportKey

otError otPlatCryptoEcdsaGenerateAndImportKey(
  otCryptoKeyRef aKeyRef
)

إنشاء واستيراد زوج مفاتيح ECDSA جديد عند المرجع الذي تم تمريره.

التفاصيل
المَعلمات
[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 فارغة.

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 فارغة.

otPlatCryptoEcdsaSignUsingKeyRef

otError otPlatCryptoEcdsaSignUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  otPlatCryptoEcdsaSignature *aSignature
)

احسِب توقيع ECDSA لرسالة مجزأة باستخدام مرجع المفتاح الذي تم تمريره.

يستخدم إجراء إنشاء التوقيع الرقمي الحتمي من RFC 6979.

التفاصيل
المَعلمات
[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 فارغة.

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
)

استخدِم الملف keyref للتحقّق من توقيع ECDSA لرسالة مجزأة.

التفاصيل
المَعلمات
[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.

التفاصيل
المَعلمات
[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
)

تحقق مما إذا كان مرجع المفتاح الذي تم تمريره يحتوي على مفتاح مرتبط في PSA ITS.

التفاصيل
المَعلمات
[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)

otPlatCryptoHkdfExpand

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 Chromebox بنجاح.
OT_ERROR_FAILED
تعذّر توسيع HKDF.
OT_ERROR_INVALID_ARGS
قيمة aContext كانت فارغة (NULL)

otPlatCryptoHkdfExtract

otError otPlatCryptoHkdfExtract(
  otCryptoContext *aContext,
  const uint8_t *aSalt,
  uint16_t aSaltLength,
  const otCryptoKey *aInputKey
)

تنفيذ خطوة استخراج HKDF

التفاصيل
المَعلمات
[in] aContext
سياق العمليات لتشغيل منصة HKDF.
[in] aSalt
مؤشّر إلى الملح الخاص بدولار هونغ كونغ
[in] aSaltLength
طول الملح.
[in] aInputKey
أشِر إلى مفتاح الإدخال.
قيم الإرجاع
OT_ERROR_NONE
تم بنجاح استخراج HKDF.
OT_ERROR_FAILED
تعذّر استخراج HKDF.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

تهيئة سياق HKDF.

التفاصيل
المَعلمات
[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 كانت فارغة (فارغ)

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

تهيئة عملية HMAC.

التفاصيل
المَعلمات
[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 كانت فارغة (فارغ)

otPlatCryptoHmacSha256Update

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 كانت فارغة (فارغ)

otPlatCryptoImportKey

otError otPlatCryptoImportKey(
  otCryptoKeyRef *aKeyRef,
  otCryptoKeyType aKeyType,
  otCryptoKeyAlgorithm aKeyAlgorithm,
  int aKeyUsage,
  otCryptoKeyStorage aKeyPersistence,
  const uint8_t *aKey,
  size_t aKeyLen
)

استيراد مفتاح إلى تكنولوجيا المعلومات (PSA)

إذا تم تمرير OT_CRYPTO_KEY_STORAGE_VOLATILE لـ aKeyPersistence، يعني ذلك أنّ aKeyRef هو إخراج، ولن تكون القيمة الأولية مهمة ويجب أن تحدِّثها واجهة برمجة تطبيقات النظام الأساسي لعرض مرجع المفتاح الجديد.

التفاصيل
المَعلمات
[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.

لا يتم استخدام واجهة برمجة التطبيقات هذه إلا من خلال OT Core عند تفعيل "OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE".

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

قم بتهيئة وحدة التشفير.

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 كانت فارغة (فارغ)

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

هيئ عملية SHA-256.

التفاصيل
المَعلمات
[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)

otPlatCryptoSha256Update

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 كانت فارغة (فارغ)

وحدات ماكرو

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) + panid موسّع (8) + اسم الشبكة (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

طول تجزئة SHA256 (بالبايت)

المراجِع

تنشأ المواضيع المرجعية لواجهة برمجة تطبيقات OpenThread من رمز المصدر المتاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في مستنداتنا، يمكنك الاطّلاع على المراجع.