BLE セキュア
このモジュールには、BLE Secure(TLS over BLE)通信を制御する関数が含まれています。
概要
このモジュールには、TCAT 通信を実装する関数が含まれています。
このモジュールの関数は、BLE Secure API 機能(OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
)が有効になっている場合に使用できます。
このモジュールの関数は、TCAT 機能(OPENTHREAD_CONFIG_BLE_TCAT_ENABLE
)が有効になっている場合に使用できます。
列挙型 |
|
---|---|
otTcatApplicationProtocol{
|
enum TCAT アプリケーション プロトコルを表します。 |
otTcatCommandClass{
|
enum TCAT コマンド クラスを表します。 |
otTcatStatusCode{
|
enum TCAT ステータス コードを表します。 |
Typedef |
|
---|---|
otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
|
typedefvoid(*
安全な接続状態が変更されたときに呼び出すポインタ。 |
otHandleBleSecureReceive
|
typedef BLE セキュア TLS 接続を介してデータが受信されたときに呼び出すポインタ。 |
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
|
typedefvoid(*
TCAT TLS 接続を介してアプリデータが受信されたときに呼び出すポインタ。 |
otHandleTcatJoin)(otError aError, void *aContext)
|
typedefvoid(*
結合オペレーションの完了を通知するために呼び出すポインタ。 |
otTcatApplicationProtocol
|
typedef TCAT アプリケーション プロトコルを表します。 |
otTcatCommandClass
|
typedefenum otTcatCommandClass
TCAT コマンド クラスを表します。 |
otTcatStatusCode
|
typedefenum otTcatStatusCode
TCAT ステータス コードを表します。 |
otTcatVendorInfo
|
typedefstruct otTcatVendorInfo
この構造体は TCAT ベンダー情報を表します。 |
関数 |
|
---|---|
otBleSecureConnect(otInstance *aInstance)
|
すでに開いている BLE 接続を使用してピアとの TLS セッションを初期化します。
|
otBleSecureDisconnect(otInstance *aInstance)
|
void
BLE 接続と TLS 接続を停止します。
|
otBleSecureFlush(otInstance *aInstance)
|
送信バッファをフラッシュします。
|
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
|
ピア x509 証明書を base64 でエンコードして返します。
|
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
|
ピア x509 証明書のサブジェクトから OID で識別される属性値を返します。
|
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
OID 1.3.6.1.4.1.44970.x の属性値を、自身の x509 証明書の v3 拡張から返します。最後の桁の x は aThreadOidDescriptor に設定されています。
|
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
|
ピア x509 証明書の v3 拡張から OID 1.3.6.1.4.1.44970.x の属性値を返します。最後の数字の x は aThreadOidDescriptor に設定されています。
|
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
|
bool
TCAT コマンド クラスが許可されているかどうかを示します。
|
otBleSecureIsConnected(otInstance *aInstance)
|
bool
TLS セッションが接続されているかどうかを示します。
|
otBleSecureIsConnectionActive(otInstance *aInstance)
|
bool
TLS セッションがアクティブ(接続済みまたは接続中)かどうかを示します。
|
otBleSecureIsTcatEnabled(otInstance *aInstance)
|
bool
TCAT エージェントが有効かどうかを示します。
|
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
安全な BLE データパケットを送信します。
|
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
|
TCAT アプリケーション データ送信 TLV を含むセキュア BLE データパケットを送信します。
|
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
|
セキュア BLE メッセージを送信します。
|
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
|
void
信頼できるトップレベル CA を設定します。
|
otBleSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
|
void
ローカル デバイスの X509 証明書を、TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 との TLS セッション用の対応する秘密鍵に設定します。
|
otBleSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
|
void
事前共有キー(PSK)と暗号スイート TLS_PSK_WITH_AES_128_CCM_8 を設定します。
|
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
|
void
BLE セキュア接続の認証モードを設定します。
|
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
|
BLE セキュア サービスを開始します。
|
otBleSecureStop(otInstance *aInstance)
|
void
BLE Secure サーバーを停止します。
|
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
|
BLE Secure で TCAT プロトコルを有効にします。
|
構造体 |
|
---|---|
otTcatVendorInfo |
この構造体は TCAT ベンダー情報を表します。 |
列挙型
otTcatApplicationProtocol
otTcatApplicationProtocol
TCAT アプリケーション プロトコルを表します。
プロパティ | |
---|---|
OT_TCAT_APPLICATION_PROTOCOL_NONE
|
TCAT エージェントを有効にせずに送信されたメッセージ。 |
OT_TCAT_APPLICATION_PROTOCOL_STATUS
|
UDP サービスに転送されたメッセージ。 |
OT_TCAT_APPLICATION_PROTOCOL_TCP
|
TCP サービスに転送されるメッセージ。 |
otTcatCommandClass
otTcatCommandClass
TCAT コマンド クラスを表します。
プロパティ | |
---|---|
OT_TCAT_COMMAND_CLASS_APPLICATION
|
アプリケーション レイヤに関連する TCAT コマンド。 |
OT_TCAT_COMMAND_CLASS_COMMISSIONING
|
コミッショニングに関連する TCAT コマンド。 |
OT_TCAT_COMMAND_CLASS_DECOMMISSIONING
|
廃止に関連する TCAT コマンド。 |
OT_TCAT_COMMAND_CLASS_EXTRACTION
|
鍵の抽出に関連する TCAT コマンド。 |
OT_TCAT_COMMAND_CLASS_GENERAL
|
一般的な操作に関連する TCAT コマンド。 |
otTcatStatusCode
otTcatStatusCode
TCAT ステータス コードを表します。
プロパティ | |
---|---|
OT_TCAT_STATUS_BUSY
|
リソースがビジー状態であるため、コマンドを実行できません。 |
OT_TCAT_STATUS_GENERAL_ERROR
|
他のカテゴリと一致しないエラーが発生しました。 |
OT_TCAT_STATUS_HASH_ERROR
|
コミッショナーが提示したハッシュ値が正しくありません。 |
OT_TCAT_STATUS_PARSE_ERROR
|
リクエスト / コマンドを正しく解析できませんでした。 |
OT_TCAT_STATUS_SUCCESS
|
コマンドまたはリクエストが正常に処理されました。 |
OT_TCAT_STATUS_UNAUTHORIZED
|
指定したコマンドの実行に必要な権限が送信者にありません。 |
OT_TCAT_STATUS_UNDEFINED
|
リクエストされた値、データ、またはサービスが(現在)定義されていないか、存在しません。 |
OT_TCAT_STATUS_UNSUPPORTED
|
リクエストされたコマンドまたは受信した TLV はサポートされていません。 |
OT_TCAT_STATUS_VALUE_ERROR
|
送信された TLV の値にエラーがあります。 |
Typedef
otHandleBleSecureConnect
void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
安全な接続状態が変更されたときに呼び出すポインタ。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
otHandleBleSecureReceive
otHandleTcatApplicationDataReceive otHandleBleSecureReceive
BLE セキュア TLS 接続を介してデータが受信されたときに呼び出すポインタ。
otHandleTcatApplicationDataReceive
void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)
TCAT TLS 接続を介してアプリデータが受信されたときに呼び出すポインタ。
詳細 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
結合オペレーションの完了を通知するために呼び出すポインタ。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
TCAT アプリケーション プロトコルを表します。
otTcatVendorInfo
struct otTcatVendorInfo otTcatVendorInfo
この構造体は TCAT ベンダー情報を表します。
この構造のコンテンツは、TCAT セッションが実行されている間、保持され、変更されないままでなければなりません。
関数
otBleSecureConnect
otError otBleSecureConnect( otInstance *aInstance )
すでに開いている BLE 接続を使用してピアとの TLS セッションを初期化します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
|
otBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
BLE 接続と TLS 接続を停止します。
詳細 | |||
---|---|---|---|
パラメータ |
|
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
送信バッファをフラッシュします。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
ピア x509 証明書を base64 でエンコードして返します。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
otBleSecureGetPeerSubjectAttributeByOid
otError otBleSecureGetPeerSubjectAttributeByOid( otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type )
ピア x509 証明書のサブジェクトから OID で識別される属性値を返します。
ピア OID はバイナリ形式で提供されます。属性の長さは、属性が正常に読み取られた場合に設定され、失敗した場合はゼロに設定されます。属性が正常に読み取られた場合、ASN.1 タイプは ITU-T X.690 標準で定義されているとおりに設定されます。
詳細 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||
戻り値 |
|
otBleSecureGetThreadAttributeFromOwnCertificate
otError otBleSecureGetThreadAttributeFromOwnCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
OID 1.3.6.1.4.1.44970.x の属性値を、自身の x509 証明書の v3 拡張から返します。最後の桁の x は aThreadOidDescriptor に設定されています。
属性の長さは、属性が正常に読み取られた場合に設定され、失敗した場合はゼロに設定されます。接続がアクティブである必要があります。
詳細 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||||
戻り値 |
|
otBleSecureGetThreadAttributeFromPeerCertificate
otError otBleSecureGetThreadAttributeFromPeerCertificate( otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength )
ピア x509 証明書の v3 拡張から OID 1.3.6.1.4.1.44970.x の属性値を返します。最後の数字の x は aThreadOidDescriptor に設定されています。
属性の長さは、属性が正常に読み取られた場合に設定され、失敗した場合はゼロに設定されます。接続がアクティブである必要があります。
詳細 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||||
戻り値 |
|
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
TCAT コマンド クラスが許可されているかどうかを示します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otBleSecureIsConnected
bool otBleSecureIsConnected( otInstance *aInstance )
TLS セッションが接続されているかどうかを示します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otBleSecureIsConnectionActive
bool otBleSecureIsConnectionActive( otInstance *aInstance )
TLS セッションがアクティブ(接続済みまたは接続中)かどうかを示します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
otBleSecureIsTcatEnabled
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
TCAT エージェントが有効かどうかを示します。
詳細 | |||||
---|---|---|---|---|---|
戻り値 |
|
otBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
安全な BLE データパケットを送信します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otBleSecureSendApplicationTlv
otError otBleSecureSendApplicationTlv( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
TCAT アプリケーション データ送信 TLV を含むセキュア BLE データパケットを送信します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otBleSecureSendMessage
otError otBleSecureSendMessage( otInstance *aInstance, otMessage *aMessage )
セキュア BLE メッセージを送信します。
戻り値が OT_ERROR_NONE の場合、OpenThread は aMessage
の所有権を取得するため、呼び出し元は aMessage
を参照しなくなります。戻り値が OT_ERROR_NONE ではない場合、呼び出し元は aMessage
の所有権を保持します。これには、メッセージ バッファが不要になったときの aMessage
の解放も含まれます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
詳細 | |||||||
---|---|---|---|---|---|---|---|
戻り値 |
|
otBleSecureSetCaCertificateChain
void otBleSecureSetCaCertificateChain( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength )
信頼できるトップレベル CA を設定します。
ピアの証明書を検証するために必要です。
安全な BLE のための TLS モード「ECDHE ECDSA with AES 128 CCM 8」。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
otBleSecureSetCertificate
void otBleSecureSetCertificate( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength )
ローカル デバイスの X509 証明書を、TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 との TLS セッション用の対応する秘密鍵に設定します。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
otBleSecureSetPsk
void otBleSecureSetPsk( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength )
事前共有キー(PSK)と暗号スイート TLS_PSK_WITH_AES_128_CCM_8 を設定します。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
otBleSecureSetSslAuthMode
void otBleSecureSetSslAuthMode( otInstance *aInstance, bool aVerifyPeerCertificate )
BLE セキュア接続の認証モードを設定します。
ピア証明書の検証を無効または有効にします。開始前に呼び出す必要があります。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otBleSecureStart
otError otBleSecureStart( otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext )
BLE セキュア サービスを開始します。
TLV モードがアクティブな場合は、完全な TLV を受信し、メッセージ オフセットが TLV 値をポイントすると、関数 aReceiveHandler
が呼び出されます。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
BLE Secure サーバーを停止します。
詳細 | |||
---|---|---|---|
パラメータ |
|
otBleSecureTcatStart
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
BLE Secure で TCAT プロトコルを有効にします。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
マクロ
OT_TCAT_MAX_SERVICE_NAME_LENGTH
OT_TCAT_MAX_SERVICE_NAME_LENGTH 15
UDP または TCP サービス名の文字列の最大長(null は含みません)。
関連情報
OpenThread API リファレンスのトピックは、GitHub で入手できるソースコードに由来しています。 詳細について、またはドキュメントへの投稿については、リソースをご覧ください。