BLE 보안

이 모듈에는 BLE Secure (TLS over 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 보안 TLS 연결을 통해 데이터가 수신된 시점에 대한 호출을 가리키는 포인터입니다.
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext) typedef
void(*
TCAT TLS 연결을 통해 애플리케이션 데이터가 수신된 시점에 대한 호출을 가리키는 포인터입니다.
otHandleTcatJoin)(otError aError, void *aContext) typedef
void(*
조인 작업의 완료를 알리는 호출에 대한 포인터입니다.
otTcatApplicationProtocol typedef
TCAT 애플리케이션 프로토콜을 나타냅니다.
otTcatCommandClass typedef
TCAT 명령어 클래스를 나타냅니다.
otTcatStatusCode typedef
TCAT 상태 코드를 나타냅니다.
otTcatVendorInfo typedef
이 구조는 TCAT 공급업체 정보를 나타냅니다.

함수

otBleSecureConnect(otInstance *aInstance)
이미 열려 있는 BLE 연결을 사용하여 피어와의 TLS 세션을 초기화합니다.
otBleSecureDisconnect(otInstance *aInstance)
void
BLE 및 TLS 연결을 중지합니다.
otBleSecureFlush(otInstance *aInstance)
전송 버퍼를 플러시합니다.
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
base64로 인코딩된 피어 x509 인증서를 반환합니다.
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)
자체 x509 인증서의 v3 확장에서 OID 1.3.6.1.4.1.44970.x의 속성 값을 반환합니다. 여기서 마지막 숫자 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
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8을 사용하여 TLS 세션의 해당 비공개 키로 로컬 기기의 X509 인증서를 설정합니다.
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 보안 서버를 중지합니다.
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)

안전한 연결 상태가 변경될 때 호출하는 포인터입니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aConnected
보안 연결이 설정된 경우 TRUE, 그렇지 않으면 FALSE입니다.
[in] aBleConnectionOpen
TLS 데이터 스트림을 전송하도록 BLE 연결이 설정된 경우 TRUE, 그렇지 않은 경우 FALSE입니다.
[in] 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 연결을 통해 애플리케이션 데이터가 수신된 시점에 대한 호출을 가리키는 포인터입니다.

세부정보
매개변수
[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 세션이 실행되는 동안 지속되고 변경되지 않은 상태로 유지되어야 합니다(MUST).

함수

otBleSecureConnect

otError otBleSecureConnect(
  otInstance *aInstance
)

이미 열려 있는 BLE 연결을 사용하여 피어와의 TLS 세션을 초기화합니다.

세부정보
매개변수
[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
)

base64로 인코딩된 피어 x509 인증서를 반환합니다.

세부정보
매개변수
[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
)

피어 x509 인증서의 주체에서 OID로 식별된 속성 값을 반환합니다.

피어 OID는 바이너리 형식으로 제공됩니다. 속성 길이는 속성을 성공적으로 읽은 경우 설정되고 성공하지 못하면 0으로 설정됩니다. 속성을 성공적으로 읽은 경우 ITU-T X.690 표준에 정의된 대로 ASN.1 유형입니다.

세부정보
매개변수
[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
)

자체 x509 인증서의 v3 확장에서 OID 1.3.6.1.4.1.44970.x의 속성 값을 반환합니다. 여기서 마지막 숫자 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
인증서 확장자를 파싱할 수 없습니다.

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로 설정됩니다.

속성 길이는 속성을 성공적으로 읽은 경우 설정되고 성공하지 못하면 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
TCAT 애플리케이션 데이터 전송 TLV의 값으로 전송할 데이터에 대한 포인터입니다.
[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
)

TCAT 애플리케이션 데이터 전송 TLV가 포함된 보안 BLE 데이터 패킷을 전송합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aBuf
TCAT 애플리케이션 데이터 전송 TLV의 값으로 전송할 데이터에 대한 포인터입니다.
[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를 설정합니다.

피어 인증서를 검증하는 데 필요합니다.

보안 BLE를 위한 TLS 모드 'ECDHE ECDSA with AES 128 CCM 8'.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aX509CaCertificateChain
PEM 형식의 X509 CA 체인을 가리키는 포인터입니다.
[in] aX509CaCertChainLength
체인의 길이입니다.

otBleSecureSetCertificate

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

TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8을 사용하여 TLS 세션의 해당 비공개 키로 로컬 기기의 X509 인증서를 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aX509Cert
PEM 형식의 X509 인증서를 가리키는 포인터입니다.
[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의 ID 이름입니다.
[in] aPskIdLength
PSK ID 길이

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 모드가 활성화되면 완전한 TLV가 수신되고 메시지 오프셋이 TLV 값을 가리키면 aReceiveHandler 함수가 호출됩니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aConnectHandler
연결 상태가 변경될 때 호출될 함수에 대한 포인터입니다.
[in] aReceiveHandler
TLS 연결을 통해 데이터가 수신되면 호출될 함수에 대한 포인터입니다.
[in] aTlvMode
선 모드가 활성화되어야 하는지 여부를 나타내는 부울 값.
[in] aContext
임의의 컨텍스트 정보에 대한 포인터입니다. 사용하지 않을 경우 NULL일 수 있습니다.
반환 값
OT_ERROR_NONE
BLE 보안 서버를 시작했습니다.
OT_ERROR_ALREADY
서비스가 이미 명시되어 있습니다.

otBleSecureStop

void otBleSecureStop(
  otInstance *aInstance
)

BLE 보안 서버를 중지합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.

otBleSecureTcatStart

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

BLE Secure를 통한 TCAT 프로토콜을 사용 설정합니다.

세부정보
매개변수
[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 문자는 포함되지 않음).

자료

OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.