CoAP 보안

이 모듈에는 CoAP Secure (DTLS를 통한 CoAP) 통신을 제어하는 함수가 포함되어 있습니다.

요약

이 모듈의 함수는 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 Secure 서버에 블록별 리소스를 추가합니다.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
CoAP Secure 서버에 리소스를 추가합니다.
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
CoAP Secure 서버에서 블록별 리소스를 삭제합니다.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
CoAP Secure 서버에서 리소스를 삭제합니다.
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 Secure 서버에서 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 세션용 DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8로 비공개 기기의 X509 인증서를 설정합니다.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
클라이언트가 CoAP Secure 서버에 연결될 때 이를 표시하도록 연결된 콜백을 설정합니다.
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 Secure 서비스를 시작합니다.
otCoapSecureStop(otInstance *aInstance)
void
CoAP Secure 서버를 중지합니다.

Typedef

otHandleCoapSecureClientConnect

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

포인터는 DTLS 연결 상태가 변경되면 호출됩니다.

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

함수

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

CoAP Secure 서버에 블록별 리소스를 추가합니다.

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

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

CoAP Secure 서버에 리소스를 추가합니다.

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

CoAP Secure 서버에서 블록별 리소스를 삭제합니다.

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

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

CoAP Secure 서버에서 리소스를 삭제합니다.

세부정보
매개변수
[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 요청을 블록별로 전송합니다.

OPENSpanner_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 Secure 서버에서 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 응답을 블록 단위로 전송합니다.

OPENSpanner_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를 설정합니다.

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

Application CoAPS의 DTLS 모드 'ECDHE ECDSA with AES 128 CCM 8'

세부정보
매개변수
[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 세션용 DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8로 비공개 기기의 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 Secure 서버에 연결될 때 이를 표시하도록 연결된 콜백을 설정합니다.

세부정보
매개변수
[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 Secure 서비스를 시작합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.
[in] aPort
결합할 로컬 UDP 포트입니다.
반환 값
OT_ERROR_NONE
CoAP Secure 서버를 시작했습니다.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

CoAP Secure 서버를 중지합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.

매크로

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

기본 CoAP 보안 포트로, RFC 7252에 지정되어 있습니다.

자료

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