CoAP Secure

این ماژول شامل عملکردهایی است که ارتباطات CoAP Secure (CoAP over DTLS) را کنترل می کند.

خلاصه

وقتی ویژگی CoAP Secure API ( OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE ) فعال باشد، عملکردهای این ماژول در دسترس هستند.

Typedefs

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)
گواهی نامه همتا x509 base64 را به صورت رمزگذاری شده برمی گرداند.
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
کلید Pre-Shared (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 را متوقف می کند.

Typedefs

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
)

گواهی نامه همتا x509 base64 را به صورت رمزگذاری شده برمی گرداند.

جزئیات
مولفه های
[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.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aX509CaCertificateChain
اشاره گر به زنجیره CA با فرمت PEM X509.
[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
طول کلید خصوصی

otCoapSecureSetClientConnectedCallback

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
)

کلید Pre-Shared (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 Secure، همانطور که در RFC 7252 مشخص شده است.

منابع

موضوعات مرجع OpenThread API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.