Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

CoAPセキュア

このモジュールには、CoAP Secure(CoAP over DTLS)通信を制御する機能が含まれています。

概要

このモジュールの機能は、CoAP Secure API機能( OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE )が有効になっている場合に使用できます。

Typedef

otHandleCoapSecureClientConnect )(bool aConnected, void *aContext) typedef
void(*
この関数ポインタは、DTLS接続状態が変化したときに呼び出されます。

関数

otCoapSecureAddBlockWiseResource ( otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
この関数は、ブロック単位のリソースをCoAPSecureサーバーに追加します。
otCoapSecureAddResource ( otInstance *aInstance, otCoapResource *aResource)
void
この関数は、CoAPSecureサーバーにリソースを追加します。
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
この関数は、CoAPSecureサーバーからブロック単位のリソースを削除します。
otCoapSecureRemoveResource ( otInstance *aInstance, otCoapResource *aResource)
void
この関数は、CoAPSecureサーバーからリソースを削除します。
otCoapSecureSendRequest ( otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
このメソッドは、安全なDTLS接続を介してCoAP要求を送信します。
otCoapSecureSendRequestBlockWise ( otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
このメソッドは、安全なDTLS接続を介してブロック単位でCoAP要求を送信します。
otCoapSecureSendResponse ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
この関数は、CoAPSecureサーバーからCoAP応答を送信します。
otCoapSecureSendResponseBlockWise ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
この関数は、CoAPSecureサーバーからブロック単位でCoAP応答を送信します。
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_ECDHE_ECDSA_WITH_AES_128_CCM_8とのDTLSセッションに対応する秘密鍵を設定します。
otCoapSecureSetClientConnectedCallback ( otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
このメソッドは、接続されたコールバックを設定して、クライアントがCoAPSecureサーバーに接続するタイミングを示します。
otCoapSecureSetDefaultHandler ( otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
この関数は、未処理のCoAPSecureリクエストのデフォルトハンドラーを設定します。
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セキュアサービスを開始します。
otCoapSecureStop ( otInstance *aInstance)
void
この関数は、CoAPSecureサーバーを停止します。

Typedef

otHandleCoapSecureClientConnect

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

この関数ポインタは、DTLS接続状態が変化したときに呼び出されます。

詳細
パラメーター
[in] aConnected
true、接続が確立されている場合はfalse、それ以外の場合はfalse。
[in] aContext
任意のコンテキスト情報へのポインタ。

関数

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

この関数は、ブロック単位のリソースをCoAPSecureサーバーに追加します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

この関数は、CoAPSecureサーバーにリソースを追加します。

詳細
パラメーター
[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
)

このメソッドは、base64でエンコードされたピアx509証明書を返します。

詳細
パラメーター
[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
)

この関数は、CoAPSecureサーバーからブロック単位のリソースを削除します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

この関数は、CoAPSecureサーバーからリソースを削除します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aResource
リソースへのポインタ。

otCoapSecureSendRequest

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

このメソッドは、安全なDTLS接続を介してCoAP要求を送信します。

要求に対する応答が予想される場合は、それぞれの機能およびコンテキスト情報を提供する必要があります。応答が期待されない場合、これらの引数はNULLポインターである必要があります。メッセージIDがヘッダーに設定されていない場合(0に等しい)、この関数はメッセージに一意のメッセージIDを割り当てます。

詳細
パラメーター
[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
)

このメソッドは、安全なDTLS接続を介してブロック単位でCoAP要求を送信します。

この関数は、OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE構成が有効になっている場合に使用できます。

要求に対する応答が予想される場合は、それぞれの機能およびコンテキスト情報を提供する必要があります。応答が期待されない場合、これらの引数はNULLポインターである必要があります。メッセージIDがヘッダーに設定されていない場合(0に等しい)、この関数はメッセージに一意のメッセージIDを割り当てます。

詳細
パラメーター
[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
)

この関数は、CoAPSecureサーバーから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
)

この関数は、CoAPSecureサーバーからブロック単位でCoAP応答を送信します。

この関数は、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を設定します。

ピアの証明書を検証するために必要です。

アプリケーションCoAPS用のDTLSモード「ECDHEECDSAwith AES 128CCM8」。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aX509CaCertificateChain
PEM形式のX509CAチェーンへのポインタ。
[in] aX509CaCertChainLength
チェーンの長さ。

otCoapSecureSetCertificate

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

このメソッドは、ローカルデバイスのX509証明書に、DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8とのDTLSセッションに対応する秘密鍵を設定します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aX509Cert
PEM形式のX509証明書へのポインター。
[in] aX509Length
証明書の長さ。
[in] aPrivateKey
PEM形式の秘密鍵へのポインタ。
[in] aPrivateKeyLength
秘密鍵の長さ。

otCoapSecureSetClientConnectedCallback

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

このメソッドは、接続されたコールバックを設定して、クライアントがCoAPSecureサーバーに接続するタイミングを示します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aHandler
DTLS接続が確立されると呼び出される関数へのポインター。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合はNULLになる可能性があります。

otCoapSecureSetDefaultHandler

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

この関数は、未処理のCoAPSecureリクエストのデフォルトハンドラーを設定します。

詳細
パラメーター
[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のID名。
[in] aPskIdLength
PSKIDの長さ。

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

このメソッドは、coapセキュア接続の認証モードを設定します。

ピア証明書の検証を無効または有効にします。開始前に呼び出す必要があります。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aVerifyPeerCertificate
true、ピア証明書を検証します。

otCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

この関数は、CoAPセキュアサービスを開始します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aPort
バインドするローカルUDPポート。
戻り値
OT_ERROR_NONE
CoAPSecureサーバーを正常に起動しました。

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

この関数は、CoAPSecureサーバーを停止します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。

マクロ

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

RFC7252で指定されているデフォルトのCoAPセキュアポート。