Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

CoAP 보안

이 모듈에는 CoAP Secure (DAP 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
이 함수는 CoAP 보안 서버에 블록별 리소스를 추가합니다.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
이 함수는 CoAP 보안 서버에 리소스를 추가합니다.
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)
이 메서드는 인코딩된 피어 x509 인증서 base64를 반환합니다.
otCoapSecureIsConnected(otInstance *aInstance)
bool
이 메서드는 DTLS 세션의 연결 여부를 나타냅니다.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
이 메서드는 DTLS 세션이 활성 상태인지 여부를 나타냅니다.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
이 함수는 CoAP 보안 서버에서 블록별 리소스를 삭제합니다.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
이 함수는 CoAP 보안 서버에서 리소스를 삭제합니다.
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)
이 함수는 CoAP 보안 서버에서 CoAP 응답을 보냅니다.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
이 함수는 CoAP 보안 서버에서 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
이 방법에서는 DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8를 사용하는 DTLS 세션의 상응하는 비공개 키로 로컬 기기의 X509 인증서를 설정합니다.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
이 메서드는 클라이언트가 CoAP 보안 서버에 연결할 때를 나타내는 연결된 콜백을 설정합니다.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
이 함수는 처리되지 않은 CoAP 보안 요청의 기본 핸들러를 설정합니다.
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
이 함수는 CoAP 보안 서버를 중지합니다.

Typedef

otHandleCoapSecureClientConnect

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

이 함수 포인터는 DTLS 연결 상태가 변경될 때 호출됩니다.

세부정보
매개변수
[in] aConnected
연결이 설정된 경우 true, 그렇지 않은 경우 false
[in] aContext
임의의 컨텍스트 정보를 가리키는 포인터입니다.

함수

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

이 함수는 CoAP 보안 서버에 블록별 리소스를 추가합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.
[in] aResource
리소스 포인터입니다.

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

이 함수는 CoAP 보안 서버에 리소스를 추가합니다.

세부정보
매개변수
[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 연결을 시작했습니다.

otCoapSecure연결 해제

void otCoapSecureDisconnect(
  otInstance *aInstance
)

이 메서드는 DTLS 연결을 중지합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.

otCoapSecureGetPeerCertificateBase64입니다.

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

이 메서드는 인코딩된 피어 x509 인증서 base64를 반환합니다.

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

이 함수는 CoAP 보안 서버에서 블록별 리소스를 삭제합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.
[in] aResource
리소스 포인터입니다.

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

이 함수는 CoAP 보안 서버에서 리소스를 삭제합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.
[in] aResource
리소스 포인터입니다.

otCoapSecureSendRequest : 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 요청을 블록별로 전송합니다.

이 함수는 OPENWARNING_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
)

이 함수는 CoAP 보안 서버에서 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
)

이 함수는 CoAP 보안 서버에서 CoAP 응답을 블록별로 전송합니다.

이 함수는 OPENWARNING_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 모드 'AES 128 CCM 8이 포함된 ECDHE ECDSA'입니다.

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

otCoapSecureSetCertificate 인증서

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

이 방법에서는 DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8를 사용하는 DTLS 세션의 상응하는 비공개 키로 로컬 기기의 X509 인증서를 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.
[in] aX509Cert
PEM 형식의 X509 인증서 포인터입니다.
[in] aX509Length
인증서 길이
[in] aPrivateKey
PEM 형식의 비공개 키 포인터입니다.
[in] aPrivateKeyLength
비공개 키의 길이입니다.

otCoapSecureSetClientConnectedCallback

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

이 메서드는 클라이언트가 CoAP 보안 서버에 연결할 때를 나타내는 연결된 콜백을 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.
[in] aHandler
DTLS 연결이 설정된 후 호출될 함수에 대한 포인터입니다.
[in] aContext
임의의 컨텍스트 정보를 가리키는 포인터입니다. 사용하지 않을 경우 NULL일 수 있습니다.

otCoapSecureSetDefaultHandler

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

이 함수는 처리되지 않은 CoAP 보안 요청의 기본 핸들러를 설정합니다.

세부정보
매개변수
[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
PSK ID 길이

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
CoAP 보안 서버를 시작했습니다.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

이 함수는 CoAP 보안 서버를 중지합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 포인터.

매크로

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

RFC 7252에 지정된 기본 CoAP 보안 포트입니다.

리소스

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