CoAP Bảo mật

Mô-đun này bao gồm các chức năng điều khiển giao tiếp CoAP Secure (CoAP over DTLS).

Tóm tắt

Các hàm trong mô-đun này có sẵn khi bật tính năng CoAP Secure API (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE).

Typedef

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) typedef
void(*
Con trỏ được gọi khi trạng thái kết nối DTLS thay đổi.

Hàm

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Thêm tài nguyên khôn ngoan vào khối vào máy chủ CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Thêm tài nguyên vào máy chủ Bảo mật CoAP.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Khởi tạo phiên DTLS với đồng nghiệp.
otCoapSecureDisconnect(otInstance *aInstance)
void
Dừng kết nối DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Trả về chứng chỉ cơ sở x509 được mã hóa base64.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Cho biết phiên DTLS có được kết nối hay không.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Cho biết phiên DTLS có đang hoạt động hay không.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Xoá tài nguyên khôn ngoan bị chặn khỏi máy chủ bảo mật CoAP.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Xóa tài nguyên khỏi máy chủ CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Gửi yêu cầu CoAP qua kết nối DTLS an toàn.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Gửi yêu cầu CoAP một cách khôn ngoan qua kết nối DTLS an toàn.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Gửi phản hồi CoAP từ máy chủ Bảo mật CoAP.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Gửi phản hồi CoAP từ máy chủ Bảo mật CoAP.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Đặt CA cấp cao nhất đáng tin cậy.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Đặt chứng chỉ X509 của thiết bị cục bộ bằng khóa cá nhân tương ứng cho phiên DTLS với DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Đặt lệnh gọi lại đã kết nối để cho biết khi Ứng dụng khách kết nối với máy chủ Bảo mật CoAP.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Đặt trình xử lý mặc định cho các yêu cầu CoAP Secure chưa xử lý.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Đặt Khóa chia sẻ trước (PSK) và bộ mật mã DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Đặt chế độ xác thực cho kết nối an toàn cục bộ.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Bắt đầu dịch vụ CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Dừng máy chủ bảo mật CoAP.

Typedef

otHandleCoapSecureClientConnect

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

Con trỏ được gọi khi trạng thái kết nối DTLS thay đổi.

Thông tin chi tiết
Các tham số
[in] aConnected
true, nếu kết nối đã được thiết lập, false nếu ngược lại.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý.

Hàm

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Thêm tài nguyên khôn ngoan vào khối vào máy chủ CoAP Secure.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aResource
Con trỏ trỏ đến tài nguyên.

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Thêm tài nguyên vào máy chủ Bảo mật CoAP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aResource
Con trỏ trỏ đến tài nguyên.

otCoapSecureConnect

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

Khởi tạo phiên DTLS với đồng nghiệp.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aSockAddr
Con trỏ tới địa chỉ ổ cắm từ xa.
[in] aHandler
Con trỏ tới một hàm sẽ được gọi khi trạng thái kết nối DTLS thay đổi.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý.
Giá trị trả về
OT_ERROR_NONE
Đã bắt đầu kết nối DTLS thành công.

Ngắt kết nối an toàn otCoap

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Dừng kết nối DTLS.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.

otCoapSecureGetPeerCertificateBase64

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

Trả về chứng chỉ cơ sở x509 được mã hóa base64.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[out] aPeerCert
Con trỏ trỏ đến vùng đệm chứng chỉ đã mã hóa base64.
[out] aCertLength
Độ dài của chứng chỉ ngang hàng được mã hóa base64.
[in] aCertBufferSize
Dung lượng bộ nhớ đệm của một CrowdsourceCert.
Giá trị trả về
OT_ERROR_INVALID_STATE
Chưa kết nối.
OT_ERROR_NONE
Nhận chứng chỉ ngang hàng thành công.
OT_ERROR_NO_BUFS
Không thể phân bổ bộ nhớ cho chứng chỉ.

otCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Cho biết phiên DTLS có được kết nối hay không.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Giá trị trả về
TRUE
Phiên DTLS đã được kết nối.
FALSE
Phiên DTLS chưa được kết nối.

otCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Cho biết phiên DTLS có đang hoạt động hay không.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
Giá trị trả về
TRUE
Nếu phiên DTLS đang hoạt động.
FALSE
Nếu phiên DTLS không hoạt động.

otCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Xoá tài nguyên khôn ngoan bị chặn khỏi máy chủ bảo mật CoAP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aResource
Con trỏ trỏ đến tài nguyên.

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Xóa tài nguyên khỏi máy chủ CoAP Secure.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aResource
Con trỏ trỏ đến tài nguyên.

otCoapSecureSendRequest

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

Gửi yêu cầu CoAP qua kết nối DTLS an toàn.

Nếu phản hồi cho yêu cầu được mong đợi, chức năng và thông tin ngữ cảnh tương ứng phải được cung cấp. Nếu không có phản hồi nào được mong đợi, các đối số này phải là con trỏ NULL. Nếu Id thư không được đặt trong tiêu đề (bằng 0), hàm này sẽ chỉ định Id thư duy nhất cho thư.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aMessage
Tham chiếu đến tin nhắn cần gửi.
[in] aHandler
Một con trỏ hàm sẽ được gọi khi nhận phản hồi hoặc hết thời gian chờ.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý.
Giá trị trả về
OT_ERROR_NONE
Đã gửi thành công thông báo CoAP.
OT_ERROR_NO_BUFS
Không thể phân bổ dữ liệu truyền lại.
OT_ERROR_INVALID_STATE
Kết nối DTLS chưa được khởi tạo.

otCoapSecureSendRequestBlockWise

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

Gửi yêu cầu CoAP một cách khôn ngoan qua kết nối DTLS an toàn.

Có sẵn khi cấu hình OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE được bật.

Nếu phản hồi cho yêu cầu được mong đợi, chức năng và thông tin ngữ cảnh tương ứng phải được cung cấp. Nếu không có phản hồi nào được mong đợi, các đối số này phải là con trỏ NULL. Nếu Id thư không được đặt trong tiêu đề (bằng 0), hàm này sẽ chỉ định Id thư duy nhất cho thư.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aMessage
Tham chiếu đến tin nhắn cần gửi.
[in] aHandler
Một con trỏ hàm sẽ được gọi khi nhận phản hồi hoặc hết thời gian chờ.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý.
[in] aTransmitHook
Một con trỏ hàm được gọi trên khối nhận phản hồi của Block1.
[in] aReceiveHook
Một con trỏ hàm được gọi trên khối nhận phản hồi của Block2.
Giá trị trả về
OT_ERROR_NONE
Đã gửi thành công thông báo CoAP.
OT_ERROR_NO_BUFS
Không thể phân bổ dữ liệu truyền lại.
OT_ERROR_INVALID_STATE
Kết nối DTLS chưa được khởi tạo.

otCoapSecureSendResponse

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

Gửi phản hồi CoAP từ máy chủ Bảo mật CoAP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aMessage
Con trỏ tới phản hồi CoAP cần gửi.
[in] aMessageInfo
Con trỏ tới thông tin tin nhắn liên kết với aMessage.
Giá trị trả về
OT_ERROR_NONE
Đã thêm thành công thông báo phản hồi CoAP vào hàng đợi.
OT_ERROR_NO_BUFS
Không có đủ bộ đệm để gửi phản hồi CoAP.

otCoapSecureSendResponseBlockWise

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

Gửi phản hồi CoAP từ máy chủ Bảo mật CoAP.

Có sẵn khi cấu hình OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE được bật.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aMessage
Con trỏ tới phản hồi CoAP cần gửi.
[in] aMessageInfo
Con trỏ tới thông tin tin nhắn liên kết với aMessage.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý. Có thể là NULL nếu không sử dụng.
[in] aTransmitHook
Một con trỏ hàm được gọi khi tiếp nhận yêu cầu Block1.
Giá trị trả về
OT_ERROR_NONE
Đã thêm thành công thông báo phản hồi CoAP vào hàng đợi.
OT_ERROR_NO_BUFS
Không có đủ bộ đệm để gửi phản hồi CoAP.

otCoapSecureSetCaCertificateChain

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

Đặt CA cấp cao nhất đáng tin cậy.

Cần có để xác thực chứng chỉ của ứng dụng ngang hàng.

Chế độ DTLS "ECDHE ECDSA với AES 128 CCM 8" cho Ứng dụng CoAPS.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aX509CaCertificateChain
Con trỏ tới chuỗi CA X509 được định dạng PEM.
[in] aX509CaCertChainLength
Độ dài của dây xích.

otCoapSecureSetCertificate

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

Đặt chứng chỉ X509 của thiết bị cục bộ bằng khóa cá nhân tương ứng cho phiên DTLS với DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aX509Cert
Con trỏ tới chứng chỉ X509 được định dạng PEM.
[in] aX509Length
Độ dài của chứng chỉ.
[in] aPrivateKey
Con trỏ tới khóa cá nhân được định dạng PEM.
[in] aPrivateKeyLength
Độ dài của khóa riêng tư.

otCoapSecureSetClientConnectedCallback

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

Đặt lệnh gọi lại đã kết nối để cho biết khi Ứng dụng khách kết nối với máy chủ Bảo mật CoAP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aHandler
Con trỏ tới một hàm sẽ được gọi sau khi thiết lập kết nối DTLS.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý. Có thể là NULL nếu không sử dụng.

otCoapSecureSetDefaultHandler

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

Đặt trình xử lý mặc định cho các yêu cầu CoAP Secure chưa xử lý.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aHandler
Một con trỏ hàm sẽ được gọi khi có một yêu cầu chưa được xử lý.
[in] aContext
Con trỏ tới thông tin ngữ cảnh tùy ý. Có thể là NULL nếu không sử dụng.

otCoapSecureSetPsk

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

Đặt Khóa chia sẻ trước (PSK) và bộ mật mã DTLS_PSK_WITH_AES_128_CCM_8.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aPsk
Con trỏ tới PSK.
[in] aPskLength
Độ dài PSK.
[in] aPskIdentity
Tên nhận dạng cho PSK.
[in] aPskIdLength
Độ dài Nhận dạng PSK.

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Đặt chế độ xác thực cho kết nối an toàn cục bộ.

Tắt hoặc bật xác minh chứng chỉ ngang hàng. Phải được gọi trước khi bắt đầu.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aVerifyPeerCertificate
true để xác minh chứng chỉ ngang hàng.

otCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Bắt đầu dịch vụ CoAP Secure.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.
[in] aPort
Cổng UDP cục bộ cần liên kết.
Giá trị trả về
OT_ERROR_NONE
Đã khởi động thành công máy chủ CoAP Secure.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Dừng máy chủ bảo mật CoAP.

Thông tin chi tiết
Các tham số
[in] aInstance
Con trỏ trỏ đến một thực thể OpenThread.

Macro

Hàm OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Cổng CoAP Secure mặc định, như được chỉ định trong RFC 7252.

Tài nguyên

Các chủ đề Tham chiếu API OpenThread bắt nguồn từ mã nguồn, có sẵn trên GitHub. Để biết thêm thông tin hoặc đóng góp cho tài liệu của chúng tôi, hãy tham khảo phần Tài nguyên.