COAP Aman

Modul ini mencakup fungsi yang mengontrol komunikasi CoAP Secure (CoAP melalui DTLS).

Ringkasan

Fungsi dalam modul ini tersedia saat fitur CoAP Secure API (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE) diaktifkan.

Typedef

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) typedef
void(*
Pointer dipanggil saat status koneksi DTLS berubah.

Fungsi

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Menambahkan resource yang diblokir untuk server CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Menambahkan resource ke server CoAP Secure.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Menginisialisasi sesi DTLS dengan pembanding.
otCoapSecureDisconnect(otInstance *aInstance)
void
Menghentikan koneksi DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Menampilkan berenkode base64 sertifikat peer x509.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Menunjukkan apakah sesi DTLS terhubung atau tidak.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Menunjukkan apakah sesi DTLS aktif atau tidak.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Menghapus resource yang diblokir dari server CoAP Secure.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Menghapus resource dari server CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Mengirim permintaan CoAP melalui koneksi DTLS yang aman.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Mengirim permintaan CoAP satu per satu melalui koneksi DTLS yang aman.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Mengirim respons CoAP dari server CoAP Secure.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Mengirim respons CoAP berbasis blok dari server CoAP Secure.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Menetapkan CA tingkat atas tepercaya.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Menetapkan sertifikat X509 perangkat lokal dengan kunci pribadi yang sesuai untuk sesi DTLS dengan DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Menetapkan callback yang terhubung untuk menunjukkan, saat Klien terhubung ke server CoAP Secure.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Menetapkan pengendali default untuk permintaan CoAP Secure yang tidak ditangani.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Menetapkan Pre-Shared Key (PSK) dan cipher suite DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Menetapkan mode autentikasi untuk koneksi aman coap.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Memulai layanan CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Menghentikan server CoAP Secure.

Typedef

OTHandleCoapSecureClientConnect

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

Pointer dipanggil saat status koneksi DTLS berubah.

Detail
Parameter
[in] aConnected
true, jika koneksi dibuat, false jika tidak.
[in] aContext
Pointer ke informasi konteks arbitrer.

Fungsi

OTCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Menambahkan resource yang diblokir untuk server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aResource
Pointer ke resource.

OTCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Menambahkan resource ke server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aResource
Pointer ke resource.

OTCoapSecureConnect

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

Menginisialisasi sesi DTLS dengan pembanding.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aSockAddr
Pointer ke alamat soket jarak jauh.
[in] aHandler
Pointer ke fungsi yang akan dipanggil saat status koneksi DTLS berubah.
[in] aContext
Pointer ke informasi konteks arbitrer.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil memulai koneksi DTLS.

OTCoapSecurePutuskan hubungan

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Menghentikan koneksi DTLS.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.

OTCoapSecureGetPeerCertificateBase64

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

Menampilkan berenkode base64 sertifikat peer x509.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[out] aPeerCert
Pointer ke buffering sertifikat yang dienkode base64.
[out] aCertLength
Panjang sertifikat peer yang dienkode dengan base64.
[in] aCertBufferSize
Ukuran buffer aPeerCert.
Nilai yang Ditampilkan
OT_ERROR_INVALID_STATE
Belum tersambung.
OT_ERROR_NONE
Berhasil mendapatkan sertifikat peer.
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan memori untuk sertifikat.

OTCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Menunjukkan apakah sesi DTLS terhubung atau tidak.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Nilai yang Ditampilkan
TRUE
Sesi DTLS terhubung.
FALSE
Sesi DTLS tidak terhubung.

OTCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Menunjukkan apakah sesi DTLS aktif atau tidak.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Nilai yang Ditampilkan
TRUE
Jika sesi DTLS aktif.
FALSE
Jika sesi DTLS tidak aktif.

OTCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Menghapus resource yang diblokir dari server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aResource
Pointer ke resource.

OTCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Menghapus resource dari server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aResource
Pointer ke resource.

OTCoapSecureSendRequest

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

Mengirim permintaan CoAP melalui koneksi DTLS yang aman.

Jika respons untuk permintaan diharapkan, informasi konteks dan fungsi masing-masing harus diberikan. Jika tidak ada respons yang diharapkan, argumen ini harus berupa pointer NULL. Jika ID Pesan tidak ditetapkan di header (sama dengan 0), fungsi ini akan menetapkan ID Pesan unik ke pesan.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aMessage
Referensi ke pesan yang akan dikirim.
[in] aHandler
Pointer fungsi yang harus dipanggil saat penerimaan respons atau waktu habis.
[in] aContext
Pointer ke informasi konteks arbitrer.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengirim pesan CoAP.
OT_ERROR_NO_BUFS
Gagal mengalokasikan data transmisi ulang.
OT_ERROR_INVALID_STATE
Koneksi DTLS tidak diinisialisasi.

OTCoapSecureSendRequestBlockWise

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

Mengirim permintaan CoAP satu per satu melalui koneksi DTLS yang aman.

Tersedia saat konfigurasi OPENminSdkVersion_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE diaktifkan.

Jika respons untuk permintaan diharapkan, informasi konteks dan fungsi masing-masing harus diberikan. Jika tidak ada respons yang diharapkan, argumen ini harus berupa pointer NULL. Jika ID Pesan tidak ditetapkan di header (sama dengan 0), fungsi ini akan menetapkan ID Pesan unik ke pesan.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aMessage
Referensi ke pesan yang akan dikirim.
[in] aHandler
Pointer fungsi yang harus dipanggil saat penerimaan respons atau waktu habis.
[in] aContext
Pointer ke informasi konteks arbitrer.
[in] aTransmitHook
Pointer fungsi yang dipanggil pada penerimaan respons Block1.
[in] aReceiveHook
Pointer fungsi yang dipanggil pada penerimaan respons Block2.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengirim pesan CoAP.
OT_ERROR_NO_BUFS
Gagal mengalokasikan data transmisi ulang.
OT_ERROR_INVALID_STATE
Koneksi DTLS tidak diinisialisasi.

OTCoapSecureSendResponse

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

Mengirim respons CoAP dari server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aMessage
Pointer respons CoAP yang akan dikirim.
[in] aMessageInfo
Pointer ke info pesan yang terkait dengan aMessage.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengantrekan pesan respons CoAP.
OT_ERROR_NO_BUFS
Buffering yang tersedia tidak cukup untuk mengirimkan respons CoAP.

OTCoapSecureSendResponseBlockWise

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

Mengirim respons CoAP berbasis blok dari server CoAP Secure.

Tersedia saat konfigurasi OPENminSdkVersion_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE diaktifkan.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aMessage
Pointer respons CoAP yang akan dikirim.
[in] aMessageInfo
Pointer ke info pesan yang terkait dengan aMessage.
[in] aContext
Pointer ke informasi konteks arbitrer. Dapat NULL jika tidak digunakan.
[in] aTransmitHook
Pointer fungsi yang dipanggil pada penerimaan permintaan Block1.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengantrekan pesan respons CoAP.
OT_ERROR_NO_BUFS
Buffering yang tersedia tidak cukup untuk mengirimkan respons CoAP.

OTCoapSecureSetCaCertificateChain

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

Menetapkan CA tingkat atas tepercaya.

Ini diperlukan untuk memvalidasi sertifikat peer.

Mode DTLS "ECDHE ECDSA dengan AES 128 CCM 8" untuk CoAPS Aplikasi.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aX509CaCertificateChain
Pointer ke rantai CA X509 berformat PEM.
[in] aX509CaCertChainLength
Panjang rantai.

OTCoapSecureSetCertificate

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

Menetapkan sertifikat X509 perangkat lokal dengan kunci pribadi yang sesuai untuk sesi DTLS dengan DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aX509Cert
Pointer ke sertifikat X509 berformat PEM.
[in] aX509Length
Panjang sertifikat.
[in] aPrivateKey
Pointer ke kunci pribadi berformat PEM.
[in] aPrivateKeyLength
Panjang kunci pribadi.

OTCoapSecureSetClientConnectedCallback

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

Menetapkan callback yang terhubung untuk menunjukkan, saat Klien terhubung ke server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aHandler
Pointer ke fungsi yang akan dipanggil setelah koneksi DTLS dibuat.
[in] aContext
Pointer ke informasi konteks arbitrer. Dapat NULL jika tidak digunakan.

OTCoapSecureSetDefaultHandler

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

Menetapkan pengendali default untuk permintaan CoAP Secure yang tidak ditangani.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aHandler
Pointer fungsi yang akan dipanggil saat permintaan yang tidak tertangani tiba.
[in] aContext
Pointer ke informasi konteks arbitrer. Dapat NULL jika tidak digunakan.

OTCoapSecureSetPsk

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

Menetapkan Pre-Shared Key (PSK) dan cipher suite DTLS_PSK_WITH_AES_128_CCM_8.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aPsk
Pointer ke PSK.
[in] aPskLength
Panjang PSK.
[in] aPskIdentity
Nama Identitas untuk PSK.
[in] aPskIdLength
Panjang Identitas PSK.

OTCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Menetapkan mode autentikasi untuk koneksi aman coap.

Nonaktifkan atau aktifkan verifikasi sertifikat peer. Harus dipanggil sebelum memulai.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aVerifyPeerCertificate
true (benar), untuk memverifikasi sertifikat peer.

OTCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Memulai layanan CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aPort
Port UDP lokal untuk diikat.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil memulai server CoAP Secure.

OTCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Menghentikan server CoAP Secure.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.

Makro

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Port Aman CoAP default, seperti yang ditentukan dalam RFC 7252.

Referensi

Topik Referensi OpenThread API berasal dari kode sumber, yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.