תוכנית CoAP Secure

מודול זה כולל פונקציות ששולטות בתקשורת של 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)
השיטה הזו מחזירה את אישור ה-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.
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
שיטה זו מגדירה את רשויות האישורים המהימנות ברמה העליונה.
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
True, אם נוצר חיבור, לא נכון.
[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 החל בהצלחה.

OTCoapSecureלהתנתק

void otCoapSecureDisconnect(
  otInstance *aInstance
)

שיטה זו מפסיקה את חיבור ה-DTLS.

פרטים
פרמטרים
[in] aInstance
מצביע למופע OpenThread.

otCoapSecureGetPeerCertificationBasic66

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 מאובטח.

הפונקציה הזו זמינה כאשר מופעלת התצורה של OPEN_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.

פרטים
פרמטרים
[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.

הפונקציה הזו זמינה כאשר מופעלת התצורה של OPEN_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.

otCoapSecureSetCaCertificationChain

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

שיטה זו מגדירה את רשויות האישורים המהימנות ברמה העליונה.

הוא נדרש לאימות האישור של העמית.

מצב DTLS " ECDHE ECDSA עם AES 128 CCM 8" ל-App CoAPS.

פרטים
פרמטרים
[in] aInstance
מצביע למופע OpenThread.
[in] aX509CaCertificateChain
מצביע לשרשרת CA X509 בפורמט PEM.
[in] aX509CaCertChainLength
אורך השרשרת.

otCoapSecureSetCertification

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
)

שיטה זו מגדירה את המפתח המשותף מראש (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
TRUE, כדי לאמת את אישור העמית.

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. למידע נוסף או כדי לתרום לתיעוד שלנו, יש לעיין בקטע משאבים.