CoAP آمن تتضمن هذه الوحدة الوظائف التي تتحكم في اتصالات CoAP Secure (CoAP عبر DTLS).
ملخص تتوفر الوظائف في هذه الوحدة عند تمكين ميزة CoAP Secure API ( OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE
).
المهام 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 Secure.
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
مؤشر إلى sockaddr البعيد.
[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.
ملاحظة: تتطلب هذه الوظيفة MBEDTLS_BASE64_C
ميزة وقت MBEDTLS_BASE64_C
.
تفاصيل المعلمات [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 Secure.
هذه الوظيفة متاحة عند تمكين تكوين 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.
ملاحظة: تتطلب هذه الوظيفة MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=1
.
تفاصيل المعلمات [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.
ملاحظة: تتطلب هذه الوظيفة MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=1
.
تفاصيل المعلمات [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.
ملاحظة: تتطلب هذه الوظيفة MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
ميزة وقت MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
.
تفاصيل المعلمات [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.