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

CoAP آمن

تتضمن هذه الوحدة الوظائف التي تتحكم في اتصالات CoAP Secure (CoAP عبر DTLS).

ملخص

تتوفر الوظائف في هذه الوحدة عند تمكين ميزة CoAP Secure API ( OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE ).

النوع

otHandleCoapSecureClientConnect )(bool aConnected, void *aContext) typedef
void(*
يتم استدعاء مؤشر الوظيفة هذا عندما تتغير حالة اتصال DTLS.

المهام

otCoapSecureAddBlockWiseResource ( otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
تضيف هذه الوظيفة موردًا جماعيًا إلى خادم CoAP Secure.
otCoapSecureAddResource ( otInstance *aInstance, otCoapResource *aResource)
void
تضيف هذه الوظيفة موردًا إلى خادم CoAP Secure.
otCoapSecureConnect ( otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
تعمل هذه الطريقة على تهيئة جلسة DTLS مع نظير.
otCoapSecureDisconnect ( otInstance *aInstance)
void
هذه الطريقة توقف اتصال DTLS.
otCoapSecureGetPeerCertificateBase64 ( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
تقوم هذه الطريقة بإرجاع تشفير base64 لشهادة النظير x509.
otCoapSecureIsConnected ( otInstance *aInstance)
bool
تشير هذه الطريقة إلى ما إذا كانت جلسة DTLS متصلة أم لا.
otCoapSecureIsConnectionActive ( otInstance *aInstance)
bool
تشير هذه الطريقة إلى ما إذا كانت جلسة DTLS نشطة أم لا.
otCoapSecureRemoveBlockWiseResource ( otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
تقوم هذه الوظيفة بإزالة مورد الكتلة من خادم CoAP Secure.
otCoapSecureRemoveResource ( otInstance *aInstance, otCoapResource *aResource)
void
تقوم هذه الوظيفة بإزالة مورد من خادم CoAP Secure.
otCoapSecureSendRequest ( otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
ترسل هذه الطريقة طلب CoAP عبر اتصال DTLS آمن.
otCoapSecureSendRequestBlockWise ( otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
ترسل هذه الطريقة طلب CoAP على شكل كتلة عبر اتصال DTLS آمن.
otCoapSecureSendResponse ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
ترسل هذه الوظيفة استجابة CoAP من خادم CoAP Secure.
otCoapSecureSendResponseBlockWise ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
ترسل هذه الوظيفة كتلة استجابة CoAP من خادم CoAP الآمن.
otCoapSecureSetCaCertificateChain ( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
تقوم هذه الطريقة بتعيين المراجع المصدقة (CA) الموثوق بها.
otCoapSecureSetCertificate ( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
تعيّن هذه الطريقة شهادة X509 للجهاز المحلي مع المفتاح الخاص المقابل لجلسة DTLS مع DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback ( otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
تقوم هذه الطريقة بتعيين رد الاتصال المتصل للإشارة ، عندما يتصل العميل بخادم CoAP Secure.
otCoapSecureSetDefaultHandler ( otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
تعيّن هذه الوظيفة المعالج الافتراضي لطلبات CoAP Secure غير المعالجة.
otCoapSecureSetPsk ( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
تحدد هذه الطريقة المفتاح المشترك مسبقًا (PSK) ومجموعة التشفير DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode ( otInstance *aInstance, bool aVerifyPeerCertificate)
void
تحدد هذه الطريقة وضع المصادقة للاتصال الآمن coap.
otCoapSecureStart ( otInstance *aInstance, uint16_t aPort)
تبدأ هذه الوظيفة خدمة CoAP Secure.
otCoapSecureStop ( otInstance *aInstance)
void
تعمل هذه الوظيفة على إيقاف خادم CoAP Secure.

النوع

otHandleCoapSecureClientConnect

void(* otHandleCoapSecureClientConnect)(bool aConnected, void *aContext)

يتم استدعاء مؤشر الوظيفة هذا عندما تتغير حالة اتصال DTLS.

تفاصيل
المعلمات
[in] aConnected
صواب ، إذا تم إنشاء اتصال ، خطأ بخلاف ذلك.
[in] aContext
مؤشر إلى معلومات سياق عشوائية.

المهام

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

تضيف هذه الوظيفة موردًا جماعيًا إلى خادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aResource
مؤشر إلى المورد.

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

تضيف هذه الوظيفة موردًا إلى خادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aResource
مؤشر إلى المورد.

otCoapSecureConnect

otError otCoapSecureConnect(
  otInstance *aInstance,
  const otSockAddr *aSockAddr,
  otHandleCoapSecureClientConnect aHandler,
  void *aContext
)

تعمل هذه الطريقة على تهيئة جلسة DTLS مع نظير.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aSockAddr
مؤشر إلى عنوان مأخذ التوصيل البعيد.
[in] aHandler
مؤشر لوظيفة سيتم استدعاؤها عند تغير حالة اتصال DTLS.
[in] aContext
مؤشر إلى معلومات سياق عشوائية.
إرجاع القيم
OT_ERROR_NONE
تم بدء اتصال DTLS بنجاح.

otCoapSecureDisconnect

void otCoapSecureDisconnect(
  otInstance *aInstance
)

هذه الطريقة توقف اتصال DTLS.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.

otCoapSecureGetPeerCertificateBase64

otError otCoapSecureGetPeerCertificateBase64(
  otInstance *aInstance,
  unsigned char *aPeerCert,
  size_t *aCertLength,
  size_t aCertBufferSize
)

تقوم هذه الطريقة بإرجاع تشفير base64 لشهادة النظير x509.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[out] aPeerCert
مؤشر إلى المخزن المؤقت للشهادة بترميز base64.
[out] aCertLength
طول شهادة النظير base64 المشفرة.
[in] aCertBufferSize
حجم المخزن المؤقت من aPeerCert.
إرجاع القيم
OT_ERROR_INVALID_STATE
غير متصل بعد.
OT_ERROR_NONE
بنجاح الحصول على شهادة الأقران.
OT_ERROR_NO_BUFS
لا يمكن تخصيص ذاكرة للشهادة.

otCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

تشير هذه الطريقة إلى ما إذا كانت جلسة DTLS متصلة أم لا.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
إرجاع القيم
TRUE
تم توصيل جلسة DTLS.
FALSE
جلسة DTLS غير متصلة.

otCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

تشير هذه الطريقة إلى ما إذا كانت جلسة DTLS نشطة أم لا.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
إرجاع القيم
TRUE
إذا كانت جلسة DTLS نشطة.
FALSE
إذا كانت جلسة DTLS غير نشطة.

otCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

تقوم هذه الوظيفة بإزالة مورد الكتلة من خادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aResource
مؤشر إلى المورد.

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

تقوم هذه الوظيفة بإزالة مورد من خادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aResource
مؤشر إلى المورد.

otCoapSecureSendRequest

otError otCoapSecureSendRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  otCoapResponseHandler aHandler,
  void *aContext
)

ترسل هذه الطريقة طلب CoAP عبر اتصال DTLS آمن.

في حالة توقع استجابة لطلب ما ، يجب تقديم معلومات عن الوظيفة والسياق. في حالة عدم توقع أي استجابة ، يجب أن تكون هذه الوسائط مؤشرات NULL. إذا لم يتم تعيين معرف الرسالة في الرأس (يساوي 0) ، فستقوم هذه الوظيفة بتعيين معرف رسالة فريد للرسالة.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aMessage
إشارة إلى الرسالة المراد إرسالها.
[in] aHandler
مؤشر وظيفة يتم استدعاؤه عند استقبال الاستجابة أو انتهاء المهلة.
[in] aContext
مؤشر إلى معلومات سياق عشوائية.
إرجاع القيم
OT_ERROR_NONE
تم إرسال رسالة CoAP بنجاح.
OT_ERROR_NO_BUFS
فشل في تخصيص بيانات إعادة الإرسال.
OT_ERROR_INVALID_STATE
لم تتم تهيئة اتصال DTLS.

otCoapSecureSendRequestBlockWise

otError otCoapSecureSendRequestBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  otCoapResponseHandler aHandler,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

ترسل هذه الطريقة طلب CoAP على شكل كتلة عبر اتصال DTLS آمن.

هذه الوظيفة متاحة عند تمكين تكوين OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE.

إذا كان من المتوقع الرد على طلب ما ، فيجب توفير معلومات الوظيفة والسياق ذات الصلة. في حالة عدم توقع أي استجابة ، يجب أن تكون هذه الوسائط مؤشرات NULL. إذا لم يتم تعيين معرف الرسالة في العنوان (يساوي 0) ، فستقوم هذه الوظيفة بتعيين معرف رسالة فريد للرسالة.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aMessage
إشارة إلى الرسالة المراد إرسالها.
[in] aHandler
مؤشر وظيفة يتم استدعاؤه عند استقبال الاستجابة أو انتهاء المهلة.
[in] aContext
مؤشر إلى معلومات سياق عشوائية.
[in] aTransmitHook
مؤشر وظيفة يسمى استقبال استجابة Block1.
[in] aReceiveHook
مؤشر وظيفة يسمى استقبال استجابة Block2.
إرجاع القيم
OT_ERROR_NONE
تم إرسال رسالة CoAP بنجاح.
OT_ERROR_NO_BUFS
فشل في تخصيص بيانات إعادة الإرسال.
OT_ERROR_INVALID_STATE
لم تتم تهيئة اتصال DTLS.

otCoapSecureSendResponse

otError otCoapSecureSendResponse(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

ترسل هذه الوظيفة استجابة CoAP من خادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aMessage
مؤشر إلى استجابة CoAP للإرسال.
[in] aMessageInfo
مؤشر إلى معلومات الرسالة المرتبطة بـ aMessage .
إرجاع القيم
OT_ERROR_NONE
تم بنجاح إدراج رسالة استجابة CoAP في قائمة الانتظار.
OT_ERROR_NO_BUFS
تتوفر مخازن مؤقتة غير كافية لإرسال استجابة CoAP.

otCoapSecureSendResponseBlockWise

otError otCoapSecureSendResponseBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

ترسل هذه الوظيفة كتلة استجابة CoAP من خادم CoAP الآمن.

هذه الوظيفة متاحة عند تمكين تكوين OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aMessage
مؤشر إلى استجابة CoAP للإرسال.
[in] aMessageInfo
مؤشر إلى معلومات الرسالة المرتبطة بـ aMessage .
[in] aContext
مؤشر إلى معلومات سياق عشوائية. قد يكون NULL إذا لم يتم استخدامه.
[in] aTransmitHook
مؤشر وظيفة يتم استدعاؤه عند استقبال طلب Block1.
إرجاع القيم
OT_ERROR_NONE
تم بنجاح إدراج رسالة استجابة CoAP في قائمة الانتظار.
OT_ERROR_NO_BUFS
تتوفر مخازن مؤقتة غير كافية لإرسال استجابة CoAP.

otCoapSecureSetCaCertificateChain

void otCoapSecureSetCaCertificateChain(
  otInstance *aInstance,
  const uint8_t *aX509CaCertificateChain,
  uint32_t aX509CaCertChainLength
)

تقوم هذه الطريقة بتعيين المراجع المصدقة (CA) الموثوق بها.

مطلوب للتحقق من صحة شهادة النظير.

وضع DTLS "ECDHE ECDSA مع AES 128 CCM 8" لتطبيق CoAPS.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aX509CaCertificateChain
مؤشر إلى سلسلة X509 CA بتنسيق PEM.
[in] aX509CaCertChainLength
طول السلسلة.

otCoapSecureSetCertificate

void otCoapSecureSetCertificate(
  otInstance *aInstance,
  const uint8_t *aX509Cert,
  uint32_t aX509Length,
  const uint8_t *aPrivateKey,
  uint32_t aPrivateKeyLength
)

تعيّن هذه الطريقة شهادة X509 للجهاز المحلي مع المفتاح الخاص المقابل لجلسة DTLS مع DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aX509Cert
مؤشر لشهادة X509 بتنسيق PEM.
[in] aX509Length
طول الشهادة.
[in] aPrivateKey
مؤشر إلى المفتاح الخاص بتنسيق PEM.
[in] aPrivateKeyLength
طول المفتاح الخاص.

otCoapSecureSetClientConnectedConnectedCallback

void otCoapSecureSetClientConnectedCallback(
  otInstance *aInstance,
  otHandleCoapSecureClientConnect aHandler,
  void *aContext
)

تقوم هذه الطريقة بتعيين رد الاتصال المتصل للإشارة ، عندما يتصل العميل بخادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aHandler
مؤشر لوظيفة سيتم استدعاؤها بمجرد إنشاء اتصال DTLS.
[in] aContext
مؤشر إلى معلومات سياق عشوائية. قد يكون NULL إذا لم يتم استخدامه.

otCoapSecureSetDefaultHandler

void otCoapSecureSetDefaultHandler(
  otInstance *aInstance,
  otCoapRequestHandler aHandler,
  void *aContext
)

تعيّن هذه الوظيفة المعالج الافتراضي لطلبات CoAP Secure غير المعالجة.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aHandler
مؤشر دالة يتم استدعاؤه عند وصول طلب لم تتم معالجته.
[in] aContext
مؤشر إلى معلومات سياق عشوائية. قد يكون NULL إذا لم يتم استخدامه.

otCoapSecureSetPsk

void otCoapSecureSetPsk(
  otInstance *aInstance,
  const uint8_t *aPsk,
  uint16_t aPskLength,
  const uint8_t *aPskIdentity,
  uint16_t aPskIdLength
)

تحدد هذه الطريقة المفتاح المشترك مسبقًا (PSK) ومجموعة التشفير DTLS_PSK_WITH_AES_128_CCM_8.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aPsk
مؤشر إلى PSK.
[in] aPskLength
طول PSK.
[in] aPskIdentity
اسم الهوية لـ PSK.
[in] aPskIdLength
طول هوية PSK.

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

تحدد هذه الطريقة وضع المصادقة للاتصال الآمن coap.

تعطيل أو تمكين التحقق من شهادة النظير. يجب الاتصال قبل البدء.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aVerifyPeerCertificate
صحيح ، للتحقق من شهادة النظير.

otCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

تبدأ هذه الوظيفة خدمة CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aPort
منفذ UDP المحلي المراد الارتباط به.
إرجاع القيم
OT_ERROR_NONE
تم بدء تشغيل خادم CoAP Secure بنجاح.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

تعمل هذه الوظيفة على إيقاف خادم CoAP Secure.

تفاصيل
المعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.

وحدات الماكرو

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

منفذ CoAP الآمن الافتراضي ، كما هو محدد في RFC 7252.