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

CoAP 보안

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

요약

이 모듈의 기능은 CoAP 보안 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)
이 메서드는 base64로 인코딩 된 피어 x509 인증서를 반환합니다.
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 (Pre-Shared Key) 및 암호화 제품군 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 보안 서버를 중지합니다.

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 연결을 성공적으로 시작했습니다.

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 보안 서버에서 블록 단위 리소스를 제거합니다.

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

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

이 기능은 CoAP 보안 서버에서 리소스를 제거합니다.

세부
매개 변수
[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 요청을 보냅니다.

이 기능은 OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 구성이 활성화 된 경우 사용할 수 있습니다.

요청에 대한 응답이 예상되는 경우 각 기능 및 컨텍스트 정보를 제공해야합니다. 응답이 예상되지 않는 경우 이러한 인수는 NULL 포인터 여야합니다. 헤더에 Message Id가 설정되지 않은 경우 (0과 같음)이 함수는 메시지에 고유 한 Message 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 응답을 보냅니다.

이 기능은 OPENTHREAD_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_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 (Pre-Shared Key) 및 암호화 제품군 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 보안 서버를 성공적으로 시작했습니다.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

이 기능은 CoAP 보안 서버를 중지합니다.

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

매크로

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

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