Google is committed to advancing racial equity for Black communities. See how.

بلات التشفير

تتضمن هذه الوحدة تجريد النظام الأساسي لـ 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
}
تعداد
يحدد هذا التعداد إشارات استخدام المفتاح.
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
تعداد
يحدد هذا التعداد الخوارزميات الرئيسية.
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
}
تعداد
يحدد هذا التعداد أنواع المفاتيح.

النوع

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
يمثل نوع البيانات هذا المرجع الرئيسي.

المهام

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.
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 Expand.
otPlatCryptoHkdfExtract ( otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
قم بتنفيذ خطوة HKDF Extract.
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)
قم بتهيئة وحدة التشفير.
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

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

التعداد

تعداد مجهول

 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

استخدام المفتاح: HMAC SHA-256.

خوارزمية otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

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

الخصائص
OT_CRYPTO_KEY_ALG_AES_ECB

الخوارزمية الرئيسية: AES ECB.

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_HMAC

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

OT_CRYPTO_KEY_TYPE_RAW

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

النوع

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

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

المهام

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 كانت NULL

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 كان NULL

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

تدمير مفتاح مخزّن في PSA ITS.

تفاصيل
العوامل
[in] aKeyRef
يجب تدمير المرجع الرئيسي
إرجاع القيم
OT_ERROR_NONE
دمرت المفتاح بنجاح.
OT_ERROR_FAILED
فشل في إتلاف المفتاح.

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

otPlatCryptoHkdf قم بتوسيع

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

نفذ خطوة HKDF Expand.

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

استخراج otPlatCryptoHkdf

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

قم بتنفيذ خطوة HKDF Extract.

تفاصيل
العوامل
[in] aContext
سياق العملية لعملية HKDF.
[in] aSalt
مؤشر إلى الملح لـ HKDF.
[in] aInfoLength
طول الملح.
[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 كان NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

بدء تشغيل HMAC.

تفاصيل
العوامل
[in] aContext
سياق عملية HMAC.
إرجاع القيم
OT_ERROR_NONE
تمت تهيئة عملية HMAC بنجاح.
OT_ERROR_FAILED
فشل في تهيئة عملية HMAC.
OT_ERROR_INVALID_ARGS
aContext كان NULL

otPlatCryptoHmacSha256 ابدأ

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 تمكين.

otPlatCryptoInit

otError otPlatCryptoInit(
  void
)

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

تفاصيل
إرجاع القيم
OT_ERROR_NONE
تمت تهيئة وحدة التشفير بنجاح.
OT_ERROR_FAILED
فشل تهيئة وحدة التشفير.

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

otPlatCryptoSha256 إنهاء

otError otPlatCryptoSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aHash,
  uint16_t aHashSize
)

قم بإنهاء عملية SHA-256.

تفاصيل
العوامل
[in] aContext
سياق عملية SHA-256.
[in] aContextSize
حجم السياق عملية 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.

تفاصيل
العوامل
[in] aContext
سياق عملية SHA-256.
إرجاع القيم
OT_ERROR_NONE
تمت تهيئة عملية SHA-256 بنجاح.
OT_ERROR_FAILED
فشل تهيئة عملية SHA-256.
OT_ERROR_INVALID_ARGS
aContext كان NULL

otPlatCryptoSha256 ابدأ

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