العملة المشفّرة

تعرض هذه الوحدة ملخصًا لمنصة 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 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)
استخدِم ملفrefref للتحقق من توقيع 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)
نفِّذ خطوة "توسيع هونغ كونغ".
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)
استيراد مفتاح إلى 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)
void
يمكنك إجراء 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

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

otPlatCryptoEcdsaKeyإقران

يمثّل مفتاحَي تشفير ECDSA (مفاتيح عامة وخاصة).

otPlatCryptoEcdsaPublicKey

يمثّل مفتاحًا عامًا بتنسيق ECDSA.

otPlatCryptoEcdsaSignatures

يمثّل توقيع 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

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

OtCryptoKeyAlgoritham

 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

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

أنواع المحددات

سياق العملات المشفّرة

struct otCryptoContext otCryptoContext

OtCryptoKey

struct otCryptoKey otCryptoKey

OotCryptoKeyref

uint32_t otCryptoKeyRef

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

otPlatCryptoEcdsaKeyإقران

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey.

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsaSignatures

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

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

المتغيّرات

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

الدوال

otPlatCryptoAesتشفير

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 كان فارغًا

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

اضبِط عملية AES.

التفاصيل
المَعلمات
[in] aContext
سياق عملية تشفير AES
قيم الإرجاع
OT_ERROR_NONE
تم إعداد عملية AES بنجاح.
OT_ERROR_FAILED
تعذّر إعداد عملية تشفير AES.
OT_ERROR_INVALID_ARGS
aContext كان فارغًا
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 ITS.

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

otPlatCryptoEcdsaتصديرPublicKey

otError otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef aKeyRef,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

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

يتم تخزين المفتاح العام بشكل مختلف اعتمادًا على مكتبة الخلفية المشفّرة المستخدَمة (OPENThread_CONFIG_CRYPTO_LIB).

يجب أن تضمن واجهة برمجة التطبيقات هذه عرض المفتاح العام كتمثيل تسلسلي بالبايت لنقطة منحنى غير مضغوطة (RFC 6605 - ث 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 فارغ.

otPlatCryptoEcdsaSignUseKeyref

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
تعذّر تخصيص المخزن المؤقت لإثبات صحة التوقيع.

otPlatCryptoEcdsaVerifyUseKeyref

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

استخدِم ملفrefref للتحقق من توقيع 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 كان فارغًا

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 كان فارغًا

otPlatCryptoHkdfتوسيع

otError otPlatCryptoHkdfExpand(
  otCryptoContext *aContext,
  const uint8_t *aInfo,
  uint16_t aInfoLength,
  uint8_t *aOutputKey,
  uint16_t aOutputKeyLength
)

نفِّذ خطوة "توسيع هونغ كونغ".

التفاصيل
المَعلمات
[in] aContext
سياق التشغيل لعملية HKDF
[in] aInfo
أشِر إلى تسلسل المعلومات.
[in] aInfoLength
طول تسلسل المعلومات.
[out] aOutputKey
أشِر إلى مفتاح الإخراج.
[in] aOutputKeyLength
حجم المخزن المؤقت لمفتاح الإخراج
قيم الإرجاع
OT_ERROR_NONE
تم توسيع نطاق HKDF بنجاح.
OT_ERROR_FAILED
تعذّر توسيع HKDF.
OT_ERROR_INVALID_ARGS
aContext كان فارغًا

otPlatCryptoHkdfاستخراج

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 كان فارغًا

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

يجب إعداد عملية HMAC.

التفاصيل
المَعلمات
[in] aContext
سياق تشغيل بروتوكول HMAC
قيم الإرجاع
OT_ERROR_NONE
تعذّر إعداد عملية HMAC.
OT_ERROR_FAILED
تعذّر إعداد عملية HMAC.
OT_ERROR_INVALID_ARGS
aContext كان فارغًا

otPlatCryptoHmacSha256إنهاء

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 كان فارغًا

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 كان فارغًا

تحديث 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 كان فارغًا

otPlatCryptoImportKey

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

استيراد مفتاح إلى ITS.

ملاحظة: إذا تم تمرير OT_CRYPTO_KEY_STORAGE_PERSISTENT عند إدخال KeyKeyPersistence، يجب إدخال aKeyRef على المنصة ويجب أن تستخدِم النظام الأساسي المفتاح Keyref المحدّد ويجب ألا تغيّره. إذا تم تمرير 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
)

إعداد وحدة Crypto

otPlatCryptoPbkdf2CreateKey

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).

التفاصيل
المَعلمات
[in] aPassword
كلمة المرور المطلوب استخدامها عند إنشاء مفتاح
[in] aPasswordLen
طول كلمة المرور
[in] aSalt
الملح المطلوب استخدامه عند إنشاء المفتاح
[in] aSaltLen
طول الملح
[in] aIterationCounter
عدد التكرارات
[in] aKeyLen
طول المفتاح الذي تم إنشاؤه بالبايت.
[out] aKey
مؤشر للمفتاح الذي تم إنشاؤه.

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 كان فارغًا

otPlatCryptoSha256إنهاء

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 كان فارغًا

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 كان فارغًا

تحديث 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 كان فارغًا

وحدات ماكرو

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

الحدّ الأقصى لطول BBKDF2: البادئة الملحية (6) + الخوف الشامل (8) + اسم الشبكة (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

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

الموارد

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