BLE ที่ปลอดภัย

โมดูลนี้มีฟังก์ชันที่ควบคุมการสื่อสาร BLE Secure (TLS ผ่าน BLE)

สรุป

โมดูลนี้ประกอบด้วยฟังก์ชันที่ใช้การสื่อสาร TCAT

ฟังก์ชันในโมดูลนี้จะพร้อมใช้งานเมื่อเปิดใช้ฟีเจอร์ BLE Secure API (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE)

ฟังก์ชันในโมดูลนี้จะใช้ได้เมื่อเปิดใช้ฟีเจอร์ TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE)

การแจกแจง

otTcatApplicationProtocol{
  OT_TCAT_APPLICATION_PROTOCOL_NONE = 0,
  OT_TCAT_APPLICATION_PROTOCOL_STATUS = 1,
  OT_TCAT_APPLICATION_PROTOCOL_TCP = 2
}
enum
แสดงโปรโตคอลแอปพลิเคชัน TCAT
otTcatCommandClass{
  OT_TCAT_COMMAND_CLASS_GENERAL = 0,
  OT_TCAT_COMMAND_CLASS_COMMISSIONING = 1,
  OT_TCAT_COMMAND_CLASS_EXTRACTION = 2,
  OT_TCAT_COMMAND_CLASS_DECOMMISSIONING = 3,
  OT_TCAT_COMMAND_CLASS_APPLICATION = 4
}
enum
แสดงคลาสคำสั่ง TCAT
otTcatStatusCode{
  OT_TCAT_STATUS_SUCCESS = 0,
  OT_TCAT_STATUS_UNSUPPORTED = 1,
  OT_TCAT_STATUS_PARSE_ERROR = 2,
  OT_TCAT_STATUS_VALUE_ERROR = 3,
  OT_TCAT_STATUS_GENERAL_ERROR = 4,
  OT_TCAT_STATUS_BUSY = 5,
  OT_TCAT_STATUS_UNDEFINED = 6,
  OT_TCAT_STATUS_HASH_ERROR = 7,
  OT_TCAT_STATUS_UNAUTHORIZED = 16
}
enum
แสดงรหัสสถานะ TCAT

Typedef

otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext) typedef
void(*
ตัวชี้สำหรับเรียกเมื่อมีการเปลี่ยนแปลงสถานะการเชื่อมต่อที่ปลอดภัย
otHandleBleSecureReceive typedef
ตัวชี้สำหรับโทรเมื่อได้รับข้อมูลผ่านการเชื่อมต่อ BLE Secure TLS
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext) typedef
void(*
ตัวชี้สำหรับโทรเมื่อได้รับข้อมูลแอปพลิเคชันผ่านการเชื่อมต่อ TLS ของ TCAT
otHandleTcatJoin)(otError aError, void *aContext) typedef
void(*
ตัวชี้สำหรับเรียกเพื่อแจ้งว่าการดำเนินการผนวกเสร็จสิ้นแล้ว
otTcatApplicationProtocol typedef
แสดงโปรโตคอลแอปพลิเคชัน TCAT
otTcatCommandClass typedef
แสดงคลาสคำสั่ง TCAT
otTcatStatusCode typedef
แสดงรหัสสถานะ TCAT
otTcatVendorInfo typedef
โครงสร้างนี้แสดงข้อมูลผู้ให้บริการ TCAT

ฟังก์ชัน

otBleSecureConnect(otInstance *aInstance)
เริ่มต้นเซสชัน TLS ด้วยเพียร์โดยใช้การเชื่อมต่อ BLE ที่เปิดอยู่แล้ว
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)
แสดงผลค่าแอตทริบิวต์ที่ระบุโดย OID จากเรื่องของใบรับรองเพียร์ x509
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
แสดงค่าแอตทริบิวต์สำหรับ OID 1.3.6.1.4.1.44970.x จากส่วนขยาย v3 ของใบรับรอง x509 ของตัวเอง โดยตัวเลข x สุดท้ายได้รับการตั้งค่าเป็น ThreadOidDescriptor
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
แสดงค่าแอตทริบิวต์สำหรับ OID 1.3.6.1.4.1.44970.x จากส่วนขยาย v3 ของใบรับรองการเพียร์ x509 ซึ่งตัวเลข 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)
ส่งแพ็กเก็ตข้อมูล BLE ที่ปลอดภัยซึ่งมี TCAT Send Application Data TLV
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 ด้วย TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
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 Secure
otBleSecureStop(otInstance *aInstance)
void
หยุดเซิร์ฟเวอร์ BLE Secure
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
เปิดใช้โปรโตคอล TCAT ผ่าน BLE Secure

โครงสร้าง

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)

ตัวชี้สำหรับเรียกเมื่อมีการเปลี่ยนแปลงสถานะการเชื่อมต่อที่ปลอดภัย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aConnected
TRUE ถ้ามีการสร้างการเชื่อมต่อที่ปลอดภัย จะ FALSE ในกรณีอื่นๆ
[in] aBleConnectionOpen
TRUE หากมีการสร้างการเชื่อมต่อ BLE เพื่อรับสตรีมข้อมูล TLS หากไม่เป็นเช่นนั้น FALSE
[in] aContext
ตัวชี้ไปยังข้อมูลบริบทที่กำหนดเอง

otHandleBleSecureReceive

otHandleTcatApplicationDataReceive otHandleBleSecureReceive

ตัวชี้สำหรับโทรเมื่อได้รับข้อมูลผ่านการเชื่อมต่อ BLE Secure TLS

otHandleTcatApplicationDataReceive

void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)

ตัวชี้สำหรับโทรเมื่อได้รับข้อมูลแอปพลิเคชันผ่านการเชื่อมต่อ TLS ของ TCAT

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMessage
ตัวชี้ไปยังข้อความ
[in] aOffset
ออฟเซ็ตที่ข้อมูลแอปพลิเคชันเริ่มต้น
[in] aTcatApplicationProtocol
ประเภทโปรโตคอลของข้อความที่ได้รับ
[in] aServiceName
ชื่อบริการที่เก็บข้อความ
[in] aContext
ตัวชี้ไปยังข้อมูลบริบทที่กำหนดเอง

otHandleTcatJoin

void(* otHandleTcatJoin)(otError aError, void *aContext)

ตัวชี้สำหรับเรียกเพื่อแจ้งว่าการดำเนินการผนวกเสร็จสิ้นแล้ว

รายละเอียด
พารามิเตอร์
[in] aError
OT_ERROR_NONE หากขั้นตอนการเข้าร่วมสำเร็จ OT_ERROR_SECURITY หากขั้นตอนการเข้าร่วมล้มเหลวเนื่องจากข้อมูลเข้าสู่ระบบเพื่อรักษาความปลอดภัย
[in] aContext
ตัวชี้ไปยังข้อมูลบริบทที่กำหนดเอง

otTcatApplicationProtocol

enum otTcatApplicationProtocol otTcatApplicationProtocol

แสดงโปรโตคอลแอปพลิเคชัน TCAT

otTcatCommandClass

enum otTcatCommandClass otTcatCommandClass

แสดงคลาสคำสั่ง TCAT

otTcatStatusCode

enum otTcatStatusCode otTcatStatusCode

แสดงรหัสสถานะ TCAT

otTcatVendorInfo

struct otTcatVendorInfo otTcatVendorInfo

โครงสร้างนี้แสดงข้อมูลผู้ให้บริการ TCAT

เนื้อหาของโครงสร้างนี้จะต้องยังคงอยู่และไม่มีการเปลี่ยนแปลงขณะที่เซสชัน TCAT ทำงานอยู่

ฟังก์ชัน

otBleSecureConnect

otError otBleSecureConnect(
  otInstance *aInstance
)

เริ่มต้นเซสชัน TLS ด้วยเพียร์โดยใช้การเชื่อมต่อ BLE ที่เปิดอยู่แล้ว

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
OT_ERROR_NONE
เริ่มการเชื่อมต่อ TLS สำเร็จแล้ว

otBleSecureDisconnect

void otBleSecureDisconnect(
  otInstance *aInstance
)

หยุดการเชื่อมต่อ BLE และ TLS

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otBleSecureFlush

otError otBleSecureFlush(
  otInstance *aInstance
)

ล้างบัฟเฟอร์การส่ง

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
OT_ERROR_NONE
ล้างบัฟเฟอร์เอาต์พุตสำเร็จ
OT_ERROR_NO_BUFS
จัดสรรหน่วยความจำบัฟเฟอร์ไม่สำเร็จ
OT_ERROR_INVALID_STATE
ไม่ได้เริ่มต้นการเชื่อมต่อ TLS

otBleSecureGetPeerCertificateBase64

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

แสดงผลการเข้ารหัสเพียร์ x509 ใบรับรอง base64

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[out] aPeerCert
ตัวชี้ไปยังบัฟเฟอร์ใบรับรองที่เข้ารหัสแบบ Base64
[in,out] aCertLength
เมื่อป้อนข้อมูล ขนาดสูงสุดคือ aPeerCert ความยาวของใบรับรองเพียร์ที่เข้ารหัส base64 ในเอาต์พุต
แสดงผลค่า
OT_ERROR_NONE
รับใบรับรองเพียร์เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
aInstance หรือ aCertLength ไม่ถูกต้อง
OT_ERROR_INVALID_STATE
ยังไม่ได้เชื่อมต่อ
OT_ERROR_NO_BUFS
จัดสรรหน่วยความจำสำหรับใบรับรองไม่ได้

otBleSecureGetPeerSubjectAttributeByOid

otError otBleSecureGetPeerSubjectAttributeByOid(
  otInstance *aInstance,
  const char *aOid,
  size_t aOidLength,
  uint8_t *aAttributeBuffer,
  size_t *aAttributeLength,
  int *aAsn1Type
)

แสดงผลค่าแอตทริบิวต์ที่ระบุโดย OID จากเรื่องของใบรับรองเพียร์ x509

Peer OID มีให้ในรูปแบบไบนารี ระบบจะตั้งค่าความยาวของแอตทริบิวต์ในกรณีที่อ่านแอตทริบิวต์สำเร็จ หรือเป็น 0 หากอ่านไม่สำเร็จ ประเภท ASN.1 ตามที่ตั้งค่าไว้ในมาตรฐาน ITU-T X.690 หากอ่านแอตทริบิวต์สำเร็จ

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aOid
ตัวชี้ไปยัง OID ที่จะค้นหา
[in] aOidLength
ความยาวของ OID
[out] aAttributeBuffer
ตัวชี้ไปยังบัฟเฟอร์แอตทริบิวต์
[in,out] aAttributeLength
เมื่อป้อนข้อมูล ขนาดสูงสุดคือ aAttributeBuffer ความยาวของแอตทริบิวต์ที่เขียนลงในบัฟเฟอร์เมื่อเอาต์พุต
[out] aAsn1Type
ตัวชี้ไปยังประเภท ASN.1 ของแอตทริบิวต์ที่เขียนลงในบัฟเฟอร์
แสดงผลค่า
OT_ERROR_INVALID_STATE
ยังไม่ได้เชื่อมต่อ
OT_ERROR_INVALID_ARGS
ความยาวของแอตทริบิวต์ไม่ถูกต้อง
OT_ERROR_NONE
อ่านแอตทริบิวต์เรียบร้อยแล้ว
OT_ERROR_NO_BUFS
หน่วยความจำไม่เพียงพอที่จะจัดเก็บค่าแอตทริบิวต์

otBleSecureGetThreadAttributeFromOwnCertificate

otError otBleSecureGetThreadAttributeFromOwnCertificate(
  otInstance *aInstance,
  int aThreadOidDescriptor,
  uint8_t *aAttributeBuffer,
  size_t *aAttributeLength
)

แสดงค่าแอตทริบิวต์สำหรับ OID 1.3.6.1.4.1.44970.x จากส่วนขยาย v3 ของใบรับรอง x509 ของตัวเอง โดยตัวเลข x สุดท้ายได้รับการตั้งค่าเป็น ThreadOidDescriptor

ระบบจะตั้งค่าความยาวของแอตทริบิวต์ในกรณีที่อ่านแอตทริบิวต์สำเร็จ หรือเป็น 0 หากอ่านไม่สำเร็จ ต้องมีการเชื่อมต่อจึงจะใช้งานได้

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aThreadOidDescriptor
ตัวเลขหลักสุดท้ายของแอตทริบิวต์ OID ของเทรด
[out] aAttributeBuffer
ตัวชี้ไปยังบัฟเฟอร์แอตทริบิวต์
[in,out] aAttributeLength
เมื่อป้อนข้อมูล ขนาดสูงสุดคือ aAttributeBuffer ความยาวของแอตทริบิวต์ที่เขียนลงในบัฟเฟอร์เมื่อเอาต์พุต
แสดงผลค่า
OT_ERROR_NONE
อ่านแอตทริบิวต์เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
ความยาวของแอตทริบิวต์ไม่ถูกต้อง
OT_NOT_FOUND
ไม่พบแอตทริบิวต์ที่ขอ
OT_ERROR_NO_BUFS
หน่วยความจำไม่เพียงพอที่จะจัดเก็บค่าแอตทริบิวต์
OT_ERROR_INVALID_STATE
ยังไม่ได้เชื่อมต่อ
OT_ERROR_NOT_IMPLEMENTED
ค่าของ aThreadOidDescriptor คือ >127
OT_ERROR_PARSE
แยกวิเคราะห์ส่วนขยายใบรับรองไม่ได้

otBleSecureGetThreadAttributeFromPeerCertificate

otError otBleSecureGetThreadAttributeFromPeerCertificate(
  otInstance *aInstance,
  int aThreadOidDescriptor,
  uint8_t *aAttributeBuffer,
  size_t *aAttributeLength
)

แสดงค่าแอตทริบิวต์สำหรับ OID 1.3.6.1.4.1.44970.x จากส่วนขยาย v3 ของใบรับรองการเพียร์ x509 ซึ่งตัวเลข x สุดท้ายถูกตั้งค่าเป็น aThreadOidDescriptor

ระบบจะตั้งค่าความยาวของแอตทริบิวต์ในกรณีที่อ่านแอตทริบิวต์สำเร็จ หรือเป็น 0 หากอ่านไม่สำเร็จ ต้องมีการเชื่อมต่อจึงจะใช้งานได้

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aThreadOidDescriptor
ตัวเลขหลักสุดท้ายของแอตทริบิวต์ OID ของเทรด
[out] aAttributeBuffer
ตัวชี้ไปยังบัฟเฟอร์แอตทริบิวต์
[in,out] aAttributeLength
เมื่อป้อนข้อมูล ขนาดสูงสุดคือ aAttributeBuffer ความยาวของแอตทริบิวต์ที่เขียนลงในบัฟเฟอร์เมื่อเอาต์พุต
แสดงผลค่า
OT_ERROR_NONE
อ่านแอตทริบิวต์เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
ความยาวของแอตทริบิวต์ไม่ถูกต้อง
OT_NOT_FOUND
ไม่พบแอตทริบิวต์ที่ขอ
OT_ERROR_NO_BUFS
หน่วยความจำไม่เพียงพอที่จะจัดเก็บค่าแอตทริบิวต์
OT_ERROR_INVALID_STATE
ยังไม่ได้เชื่อมต่อ
OT_ERROR_NOT_IMPLEMENTED
ค่าของ aThreadOidDescriptor คือ >127
OT_ERROR_PARSE
แยกวิเคราะห์ส่วนขยายใบรับรองไม่ได้

otBleSecureIsCommandClassAuthorized

bool otBleSecureIsCommandClassAuthorized(
  otInstance *aInstance,
  otTcatCommandClass aCommandClass
)

ระบุว่าอนุญาตคลาสคำสั่ง TCAT หรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aCommandClass
คลาสคำสั่งที่ต้องตรวจสอบ
แสดงผลค่า
TRUE
ให้สิทธิ์คลาสคำสั่งแล้ว
FALSE
คลาสคำสั่งไม่ได้รับอนุญาต

otBleSecureIsConnected

bool otBleSecureIsConnected(
  otInstance *aInstance
)

ระบุว่าเซสชัน TLS เชื่อมต่อหรือไม่

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
TRUE
เชื่อมต่อเซสชัน TLS แล้ว
FALSE
เซสชัน TLS ไม่ได้เชื่อมต่อ

otBleSecureIsConnectionActive

bool otBleSecureIsConnectionActive(
  otInstance *aInstance
)

ระบุว่าเซสชัน TLS ทำงานอยู่หรือไม่ (เชื่อมต่อหรือเชื่อมต่อ)

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
แสดงผลค่า
TRUE
กรณีที่เซสชัน TLS ทำงานอยู่
FALSE
หากเซสชัน TLS ไม่ทำงาน

otBleSecureIsTcatEnabled

bool otBleSecureIsTcatEnabled(
  otInstance *aInstance
)

ระบุว่าเปิดใช้ตัวแทน TCAT หรือไม่

รายละเอียด
แสดงผลค่า
TRUE
เปิดใช้ตัวแทน TCAT แล้ว
FALSE
ไม่ได้เปิดใช้เอเจนต์ TCAT

otBleSecureSend

otError otBleSecureSend(
  otInstance *aInstance,
  uint8_t *aBuf,
  uint16_t aLength
)

ส่งแพ็กเก็ตข้อมูล BLE ที่ปลอดภัย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aBuf
ตัวชี้ไปยังข้อมูลที่จะส่งเป็นค่า TLV ของ TCAT Send Application Data
[in] aLength
ตัวเลขที่ระบุความยาวของบัฟเฟอร์ข้อมูล
แสดงผลค่า
OT_ERROR_NONE
ส่งข้อมูลสำเร็จแล้ว
OT_ERROR_NO_BUFS
จัดสรรหน่วยความจำบัฟเฟอร์ไม่สำเร็จ
OT_ERROR_INVALID_STATE
ไม่ได้เริ่มต้นการเชื่อมต่อ TLS

otBleSecureSendApplicationTlv

otError otBleSecureSendApplicationTlv(
  otInstance *aInstance,
  uint8_t *aBuf,
  uint16_t aLength
)

ส่งแพ็กเก็ตข้อมูล BLE ที่ปลอดภัยซึ่งมี TCAT Send Application Data TLV

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aBuf
ตัวชี้ไปยังข้อมูลที่จะส่งเป็นค่า TLV ของ TCAT Send Application Data
[in] aLength
ตัวเลขที่ระบุความยาวของบัฟเฟอร์ข้อมูล
แสดงผลค่า
OT_ERROR_NONE
ส่งข้อมูลสำเร็จแล้ว
OT_ERROR_NO_BUFS
จัดสรรหน่วยความจำบัฟเฟอร์ไม่สำเร็จ
OT_ERROR_INVALID_STATE
ไม่ได้เริ่มต้นการเชื่อมต่อ TLS

otBleSecureSendMessage

otError otBleSecureSendMessage(
  otInstance *aInstance,
  otMessage *aMessage
)

ส่งข้อความ BLE ที่ปลอดภัย

หากค่าผลลัพธ์คือ OT_ERROR_NONE, OpenThread จะเป็นเจ้าของ aMessage และผู้โทรไม่ควรอ้างอิง aMessage อีกต่อไป หากค่าที่แสดงผลไม่ใช่ OT_ERROR_NONE ผู้โทรจะยังคงเป็นเจ้าของ aMessage รวมถึงเพิ่มพื้นที่ว่าง aMessage หากไม่จำเป็นต้องใช้บัฟเฟอร์ข้อความอีก

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMessage
ตัวชี้ไปยังข้อความที่จะส่ง

รายละเอียด
แสดงผลค่า
OT_ERROR_NONE
ส่งข้อความสำเร็จแล้ว
OT_ERROR_NO_BUFS
จัดสรรหน่วยความจำบัฟเฟอร์ไม่สำเร็จ
OT_ERROR_INVALID_STATE
ไม่ได้เริ่มต้นการเชื่อมต่อ TLS

otBleSecureSetCaCertificateChain

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

ตั้งค่า CA ระดับบนสุดที่เชื่อถือได้

จำเป็นสำหรับการตรวจสอบความถูกต้องของใบรับรองการเพียร์

โหมด TLS "ECDHE ECDSA พร้อม AES 128 CCM 8" สำหรับ BLE ที่ปลอดภัย

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aX509CaCertificateChain
ตัวชี้ไปยังเชน CA X509 ที่จัดรูปแบบ PEM
[in] aX509CaCertChainLength
ความยาวของห่วงโซ่

otBleSecureSetCertificate

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

ตั้งค่าใบรับรอง X509 ของอุปกรณ์ที่มีคีย์ส่วนตัวที่เกี่ยวข้องสำหรับเซสชัน TLS ด้วย TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aX509Cert
ตัวชี้ไปยังใบรับรอง X509 ที่จัดรูปแบบด้วย PEM
[in] aX509Length
ความยาวของใบรับรอง
[in] aPrivateKey
ตัวชี้ไปยังคีย์ส่วนตัวในรูปแบบ PEM
[in] aPrivateKeyLength
ความยาวของคีย์ส่วนตัว

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

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aPsk
ตัวชี้ไปยัง PSK
[in] aPskLength
ความยาว PSK
[in] aPskIdentity
ชื่อข้อมูลประจำตัวของ PSK
[in] aPskIdLength
ความยาวของข้อมูลประจำตัว PSK

otBleSecureSetSslAuthMode

void otBleSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

ตั้งค่าโหมดการตรวจสอบสิทธิ์สำหรับการเชื่อมต่อที่ปลอดภัยของ BLE

ปิดใช้งานหรือเปิดใช้งานการตรวจสอบใบรับรองเพียร์ ต้องเรียกใช้ก่อนเริ่ม

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aVerifyPeerCertificate
true เพื่อยืนยันใบรับรองเพียร์

otBleSecureStart

otError otBleSecureStart(
  otInstance *aInstance,
  otHandleBleSecureConnect aConnectHandler,
  otHandleBleSecureReceive aReceiveHandler,
  bool aTlvMode,
  void *aContext
)

เริ่มต้นบริการ BLE Secure

เมื่อใช้งานโหมด TLV อยู่ ระบบจะเรียกใช้ฟังก์ชัน aReceiveHandler เมื่อได้รับ TLV ที่สมบูรณ์และออฟเซ็ตข้อความจะชี้ไปยังค่า TLV

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aConnectHandler
ตัวชี้ไปยังฟังก์ชันที่จะถูกเรียกเมื่อสถานะการเชื่อมต่อมีการเปลี่ยนแปลง
[in] aReceiveHandler
ตัวชี้ไปยังฟังก์ชันที่จะเรียกใช้เมื่อได้รับข้อมูลผ่านการเชื่อมต่อ TLS
[in] aTlvMode
ค่าบูลีนที่ระบุว่าจะต้องเปิดใช้งานโหมดเส้นไหม
[in] aContext
ตัวชี้ไปยังข้อมูลบริบทที่กำหนดเอง ค่าอาจเป็น NULL หากไม่ได้ใช้
แสดงผลค่า
OT_ERROR_NONE
เริ่มต้นเซิร์ฟเวอร์ BLE Secure เรียบร้อยแล้ว
OT_ERROR_ALREADY
ระบุบริการไว้แล้ว

otBleSecureStop

void otBleSecureStop(
  otInstance *aInstance
)

หยุดเซิร์ฟเวอร์ BLE Secure

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread

otBleSecureTcatStart

otError otBleSecureTcatStart(
  otInstance *aInstance,
  const otTcatVendorInfo *aVendorInfo,
  otHandleTcatJoin aHandler
)

เปิดใช้โปรโตคอล TCAT ผ่าน BLE Secure

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aVendorInfo
ตัวชี้ไปยังข้อมูลผู้ให้บริการ (ต้องยังคงใช้งานได้หลังจากเรียกเมธอด อาจเป็น NULL)
[in] aHandler
ตัวชี้ไปยังฟังก์ชันที่เรียกใช้เมื่อการดำเนินการผนวกเสร็จสมบูรณ์
แสดงผลค่า
OT_ERROR_NONE
เริ่มต้นบทบาทผู้เชื่อมที่ปลอดภัย BLE เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
aElevationPsk หรือ aVendorInfo ไม่ถูกต้อง
OT_ERROR_INVALID_STATE
ยังไม่ได้เริ่มฟังก์ชัน BLE หรือไม่ได้เลือกโหมดขึ้นบรรทัดใหม่

มาโคร

OT_TCAT_MAX_SERVICE_NAME_LENGTH

 OT_TCAT_MAX_SERVICE_NAME_LENGTH 15

ความยาวสูงสุดของสตริงของชื่อบริการ UDP หรือ TCP (ไม่รวมอักขระ Null)

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล