تقنية BLE الآمنة
تتضمَّن هذه الوحدة وظائف تتحكّم في اتصال BLE Secure (بروتوكول أمان طبقة النقل (TLS) عبر BLE).
ملخّص
تتضمن هذه الوحدة وظائف تقوم بتنفيذ اتصال TCAT.
تتوفر الوظائف في هذه الوحدة عند تفعيل ميزة BLE Secure API (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
).
تتوفر الدوالّ في هذه الوحدة عند تفعيل ميزة TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
).
عمليات التعداد |
|
---|---|
otTcatApplicationProtocol{
|
تعداد يمثل بروتوكول تطبيق TCAT. |
otTcatCommandClass{
|
تعداد يمثل فئة أمر TCAT. |
otTcatStatusCode{
|
تعداد يُمثِّل رمز حالة TCAT. |
تحديدات النوع |
|
---|---|
otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
|
typedefvoid(*
مؤشر للاتصال عند تغيير حالة الاتصال الآمن "بلي". |
otHandleBleSecureReceive
|
typedef مؤشر للاتصال عند استلام البيانات عبر اتصال بروتوكول أمان طبقة النقل (TLS) بتقنية BLE. |
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
|
typedefvoid(*
مؤشر للاتصال عند استلام بيانات التطبيق من خلال اتصال بروتوكول أمان طبقة النقل (TLS) لبروتوكول TCAT. |
otHandleTcatJoin)(otError aError, void *aContext)
|
typedefvoid(*
مؤشر للاتصال للإعلام باكتمال عملية الانضمام. |
otTcatApplicationProtocol
|
typedef يمثل بروتوكول تطبيق TCAT. |
otTcatCommandClass
|
typedefenum otTcatCommandClass
يمثل فئة أمر TCAT. |
otTcatStatusCode
|
typedefenum otTcatStatusCode
يُمثِّل رمز حالة TCAT. |
otTcatVendorInfo
|
typedefstruct otTcatVendorInfo
يمثل هذا الهيكل معلومات مورّد TCAT. |
الدوال |
|
---|---|
otBleSecureConnect(otInstance *aInstance)
|
يؤدي هذا الخيار إلى إعداد جلسة بروتوكول أمان طبقة النقل (TLS) مع نظير باستخدام اتصال BLE مفتوح حاليًا.
|
otBleSecureDisconnect(otInstance *aInstance)
|
void
يوقف الاتصال عبر تقنية BLE وبروتوكول أمان طبقة النقل (TLS).
|
otBleSecureFlush(otInstance *aInstance)
|
تنظيف المخزن المؤقت للإرسال
|
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
|
لعرض النظير x509 لشهادة base64 المشفرة.
|
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
|
لعرض قيمة سمة تم تحديدها بواسطة OID من موضوع شهادة x509 من الأقران.
|
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
تعرض قيمة سمة لـ OID 1.3.6.1.4.1.44970.x من الامتدادات v3 لشهادة x509 الخاصة، حيث يتم تعيين الرقم الأخير x على aThreadOidDescriptor.
|
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
تعرض قيمة سمة لـ OID 1.3.6.1.4.1.44970.x من الامتدادات v3 لشهادة x509 من النظير، حيث يتم تعيين الرقم الأخير x على aThreadOidDescriptor.
|
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
|
bool
يشير إلى ما إذا كان مسموحًا لفئة أوامر TCAT بإدراجها.
|
otBleSecureIsConnected(otInstance *aInstance)
|
bool
يشير إلى ما إذا كانت جلسة بروتوكول أمان طبقة النقل (TLS) متصلة أم لا.
|
otBleSecureIsConnectionActive(otInstance *aInstance)
|
bool
يشير إلى ما إذا كانت جلسة TLS نشطة (متصلة أو متصلة).
|
otBleSecureIsTcatEnabled(otInstance *aInstance)
|
bool
يشير إلى ما إذا كان وكيل TCAT مفعَّلاً أم لا.
|
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
يتم إرسال حزمة بيانات BLE آمنة.
|
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
يرسل حزمة بيانات BLE آمنة تحتوي على TLV (ملف TLV) لإرسال بيانات التطبيق.
|
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
|
لإرسال رسالة BLE آمنة.
|
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
|
void
لضبط مراجع التصديق ذات المستوى الأعلى الموثوق بها
|
otBleSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
|
void
لضبط شهادة X509 للجهاز المحلي باستخدام المفتاح الخاص المقابل لجلسة بروتوكول أمان طبقة النقل (TLS)، باستخدام TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
|
otBleSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
|
void
تُعيِّن المفتاح المشترك مسبقًا (PSK) ومجموعة التشفير TLS_PSK_WITH_AES_128_CCM_8.
|
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
|
void
تحدِّد هذه السياسة وضع المصادقة للاتصال الآمن بتقنية BLE.
|
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
|
يؤدي هذا الإجراء إلى بدء تشغيل خدمة BLE Secure.
|
otBleSecureStop(otInstance *aInstance)
|
void
تؤدي إلى إيقاف خادم BLE Secure.
|
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
|
تفعيل بروتوكول TCAT عبر بروتوكول BLE Secure.
|
الهياكل |
|
---|---|
otTcatVendorInfo |
يمثل هذا الهيكل معلومات مورّد TCAT. |
عمليات التعداد
otTcatApplicationProtocol
otTcatApplicationProtocol
يمثل بروتوكول تطبيق TCAT.
أماكن إقامة | |
---|---|
OT_TCAT_APPLICATION_PROTOCOL_NONE
|
الرسالة التي تم إرسالها بدون تفعيل وكيل TCAT. |
OT_TCAT_APPLICATION_PROTOCOL_STATUS
|
تم توجيه الرسالة إلى خدمة UDP. |
OT_TCAT_APPLICATION_PROTOCOL_TCP
|
رسالة موجهة إلى خدمة TCP. |
otTcatCommandClass
otTcatCommandClass
يمثل فئة أمر TCAT.
أماكن إقامة | |
---|---|
OT_TCAT_COMMAND_CLASS_APPLICATION
|
أوامر TCAT المرتبطة بطبقة التطبيق. |
OT_TCAT_COMMAND_CLASS_COMMISSIONING
|
أوامر TCAT المتعلقة بالتكليف. |
OT_TCAT_COMMAND_CLASS_DECOMMISSIONING
|
أوامر TCAT المتعلقة بإنهاء الخدمة. |
OT_TCAT_COMMAND_CLASS_EXTRACTION
|
أوامر TCAT المرتبطة باستخراج المفاتيح. |
OT_TCAT_COMMAND_CLASS_GENERAL
|
أوامر TCAT المتعلقة بالعمليات العامة. |
otTcatStatusCode
otTcatStatusCode
يُمثِّل رمز حالة TCAT.
أماكن إقامة | |
---|---|
OT_TCAT_STATUS_BUSY
|
لا يمكن تنفيذ الأمر لأن المورد مشغول. |
OT_TCAT_STATUS_GENERAL_ERROR
|
حدث خطأ لا يطابق أي فئة أخرى. |
OT_TCAT_STATUS_HASH_ERROR
|
قيمة التجزئة التي قدّمها المفوَّض غير صحيحة. |
OT_TCAT_STATUS_PARSE_ERROR
|
تعذَّر تحليل الطلب / الأمر بشكل صحيح. |
OT_TCAT_STATUS_SUCCESS
|
تمت معالجة الأمر أو الطلب بنجاح. |
OT_TCAT_STATUS_UNAUTHORIZED
|
لا يمتلك المُرسِل إذنًا كافيًا للأمر المحدد. |
OT_TCAT_STATUS_UNDEFINED
|
القيمة المطلوبة أو البيانات أو الخدمة المطلوبة غير محدَّدة (في الوقت الحالي) أو غير موجودة. |
OT_TCAT_STATUS_UNSUPPORTED
|
الطلب المطلوب أو النص الذي تم استلامه غير متوافق. |
OT_TCAT_STATUS_VALUE_ERROR
|
هناك خطأ في قيمة TLV الذي تم نقله. |
تحديدات النوع
otHandleBleSecureConnect
void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
مؤشر للاتصال عند تغيير حالة الاتصال الآمن "بلي".
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
otHandleBleSecureReceive
otHandleTcatApplicationDataReceive otHandleBleSecureReceive
مؤشر للاتصال عند استلام البيانات عبر اتصال بروتوكول أمان طبقة النقل (TLS) بتقنية BLE.
otHandleTcatApplicationDataReceive
void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
مؤشر للاتصال عند استلام بيانات التطبيق من خلال اتصال بروتوكول أمان طبقة النقل (TLS) لبروتوكول TCAT.
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
مؤشر للاتصال للإعلام باكتمال عملية الانضمام.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
يمثل بروتوكول تطبيق TCAT.
otTcatVendorInfo
struct otTcatVendorInfo otTcatVendorInfo
يمثل هذا الهيكل معلومات مورّد TCAT.
يجب أن يستمر محتوى هذه البنية ويظل بدون تغيير أثناء تشغيل جلسة TCAT.
الدوال
otBleSecureConnect
otError otBleSecureConnect( otInstance *aInstance )
يؤدي هذا الخيار إلى إعداد جلسة بروتوكول أمان طبقة النقل (TLS) مع نظير باستخدام اتصال BLE مفتوح حاليًا.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
قيم الإرجاع |
|
otBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
يوقف الاتصال عبر تقنية BLE وبروتوكول أمان طبقة النقل (TLS).
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
تنظيف المخزن المؤقت للإرسال
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
لعرض النظير x509 لشهادة base64 المشفرة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||
قيم الإرجاع |
|
otBleSecureGetPeerSubjectAttributeByOid
otError otBleSecureGetPeerSubjectAttributeByOid( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type )
لعرض قيمة سمة تم تحديدها بواسطة OID من موضوع شهادة x509 من الأقران.
يتم توفير معرّف الجهاز النظير (OID) في تنسيق ثنائي. يتم ضبط طول السمة إذا تمت قراءتها بنجاح أو صفرًا في حال عدم النجاح. نوع ASN.1 كما يتم تحديده في معيار ITU-T X.690 إذا تمت قراءة السمة بنجاح.
التفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||
قيم الإرجاع |
|
otBleSecureGetThreadAttributeFromOwnCertificate
otError otBleSecureGetThreadAttributeFromOwnCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
تعرض قيمة سمة لـ OID 1.3.6.1.4.1.44970.x من الامتدادات v3 لشهادة x509 الخاصة، حيث يتم تعيين الرقم الأخير x على aThreadOidDescriptor.
يتم ضبط طول السمة إذا تمت قراءتها بنجاح أو صفرًا في حال عدم النجاح. يجب الاتصال بالإنترنت لتفعيل الميزة.
التفاصيل | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||||
قيم الإرجاع |
|
otBleSecureGetThreadAttributeFromPeerCertificate
otError otBleSecureGetThreadAttributeFromPeerCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
تعرض قيمة سمة لـ OID 1.3.6.1.4.1.44970.x من الامتدادات v3 لشهادة x509 من النظير، حيث يتم تعيين الرقم الأخير x على aThreadOidDescriptor.
يتم ضبط طول السمة إذا تمت قراءتها بنجاح أو صفرًا في حال عدم النجاح. يجب الاتصال بالإنترنت لتفعيل الميزة.
التفاصيل | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||||||
قيم الإرجاع |
|
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
يشير إلى ما إذا كان مسموحًا لفئة أوامر TCAT بإدراجها.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBleSecureIsConnected
bool otBleSecureIsConnected( otInstance *aInstance )
يشير إلى ما إذا كانت جلسة بروتوكول أمان طبقة النقل (TLS) متصلة أم لا.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBleSecureIsConnectionActive
bool otBleSecureIsConnectionActive( otInstance *aInstance )
يشير إلى ما إذا كانت جلسة TLS نشطة (متصلة أو متصلة).
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
||||
قيم الإرجاع |
|
otBleSecureIsTcatEnabled
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
يشير إلى ما إذا كان وكيل TCAT مفعَّلاً أم لا.
التفاصيل | |||||
---|---|---|---|---|---|
قيم الإرجاع |
|
otBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
يتم إرسال حزمة بيانات BLE آمنة.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otBleSecureSendApplicationTlv
otError otBleSecureSendApplicationTlv( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
يرسل حزمة بيانات BLE آمنة تحتوي على TLV (ملف TLV) لإرسال بيانات التطبيق.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
otBleSecureSendMessage
otError otBleSecureSendMessage( otInstance *aInstance, otMessage *aMessage )
لإرسال رسالة BLE آمنة.
إذا كانت القيمة المعروضة هي OT_ERROR_NONE، سيحصل OpenThread على ملكية aMessage
، ويجب ألا يشير المتصل إلى aMessage
بعد ذلك. وإذا لم تكن القيمة المعروضة OT_ERROR_NONE، يحتفظ المتصل بملكية aMessage
، بما في ذلك تحرير aMessage
إذا لم تعد هناك حاجة إلى المخزن المؤقت للرسائل.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
قيم الإرجاع |
|
otBleSecureSetCaCertificateChain
void otBleSecureSetCaCertificateChain( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength )
لضبط مراجع التصديق ذات المستوى الأعلى الموثوق بها
وهي مطلوبة للتحقق من صحة شهادة الزميل.
وضع بروتوكول أمان طبقة النقل (TLS) هو "ECDHE ECDSA مع AES 128 CCM 8" للحصول على تقنية BLE آمنة.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
otBleSecureSetCertificate
void otBleSecureSetCertificate( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength )
لضبط شهادة X509 للجهاز المحلي باستخدام المفتاح الخاص المقابل لجلسة بروتوكول أمان طبقة النقل (TLS)، باستخدام TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
otBleSecureSetPsk
void otBleSecureSetPsk( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength )
تُعيِّن المفتاح المشترك مسبقًا (PSK) ومجموعة التشفير TLS_PSK_WITH_AES_128_CCM_8.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
otBleSecureSetSslAuthMode
void otBleSecureSetSslAuthMode( otInstance *aInstance, bool aVerifyPeerCertificate )
تحدِّد هذه السياسة وضع المصادقة للاتصال الآمن بتقنية BLE.
يمكنك إيقاف التحقّق من الشهادة النظير أو تفعيله. يجب الاتصال قبل البدء.
التفاصيل | |||||
---|---|---|---|---|---|
المَعلمات |
|
otBleSecureStart
otError otBleSecureStart( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext )
يؤدي هذا الإجراء إلى بدء تشغيل خدمة BLE Secure.
عندما يكون وضع TLV مفعَّلاً، سيتم استدعاء الدالة "aReceiveHandler
" بعد استلام رسالة TLV كاملة وتشير إزاحة الرسالة إلى قيمة TLV.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||||||
قيم الإرجاع |
|
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
تؤدي إلى إيقاف خادم BLE Secure.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
otBleSecureTcatStart
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
تفعيل بروتوكول TCAT عبر بروتوكول BLE Secure.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المَعلمات |
|
||||||
قيم الإرجاع |
|
وحدات ماكرو
OT_TCAT_MAX_SERVICE_NAME_LENGTH
OT_TCAT_MAX_SERVICE_NAME_LENGTH 15
الحد الأقصى لطول السلسلة لاسم خدمة UDP أو TCP (لا يتضمن حرفًا فارغًا).
المراجِع
تنشأ المواضيع المرجعية لواجهة برمجة تطبيقات OpenThread من رمز المصدر المتاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في مستنداتنا، يمكنك الاطّلاع على المراجع.