nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine

#include <src/lib/profiles/security/WeaveCertProvisioning.h>

Weave Certificate Provisioning 프로토콜 객체의 핵심 로직을 구현합니다.

요약

생성자 및 소멸자

WeaveCertProvEngine(void)

공개 유형

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
enum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
이 함수는 Certificate Provisioning Engine API 이벤트에서 호출되는 애플리케이션 콜백입니다.
EventType{
  kEvent_PrepareAuthorizeInfo = 1,
  kEvent_ResponseReceived = 2,
  kEvent_CommunicationError = 3
}
enum
State{
  kState_NotInitialized = 0,
  kState_Idle = 1,
  kState_PreparingBinding = 2,
  kState_RequestInProgress = 3
}
enum

공개 속성

AppState
void *
애플리케이션별 데이터를 가리키는 포인터입니다.

공개 함수

AbortCertificateProvisioning(void)
void
진행 중인 GetCertificate 교환을 중지합니다.
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
GetCertificateRequest 메시지를 생성합니다.
GetBinding(void) const
WeaveCertProvEngine과 연결된 Binding 객체에 대한 포인터를 반환합니다.
GetEventCallback(void) const
현재 WeaveCertProvEngine 객체에 구성된 API 이벤트 콜백 함수에 대한 포인터를 반환합니다.
GetMfrAttestDelegate(void) const
현재 WeaveCertProvEngine 객체에 구성된 제조업체 증명 대리자 객체에 대한 포인터를 반환합니다.
GetOpAuthDelegate(void) const
현재 WeaveCertProvEngine 객체에 구성된 작업 인증 대리자 객체에 대한 포인터를 반환합니다.
GetReqType(void) const
uint8_t
현재 요청 유형을 가져옵니다.
GetState(void) const
WeaveCertProvEngine 객체의 현재 상태를 가져옵니다.
Init(Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
인증서 가져오기 요청 메시지를 보내기 전에 WeaveCertProvEngine 객체를 초기화합니다.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
GetCertificateResponse 메시지를 처리합니다.
SetBinding(Binding *binding)
void
WeaveCertProvEngine 객체에 결합 객체를 설정합니다.
SetEventCallback(EventCallback eventCallback)
void
WeaveCertProvEngine 객체에 API 이벤트 콜백 함수를 설정합니다.
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
WeaveCertProvEngine 객체에 제조업체 증명 위임 객체를 설정합니다.
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
WeaveCertProvEngine 객체에 작업 인증 대리자 객체를 설정합니다.
Shutdown(void)
void
이전에 초기화된 WeaveCertProvEngine 개체를 종료합니다.
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
인증서 프로비저닝 프로토콜을 시작합니다.

구조체

nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::InEventParam

Weave Certificate Provisioning API 이벤트에 대한 입력 매개변수입니다.

nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::OutEventParam

Weave Certificate Provisioning API 이벤트에 대한 출력 매개변수입니다.

공개 유형

@246

 @246
속성
kReqType_GetInitialOpDeviceCert

인증서 가져오기 요청 유형은 초기 작업 인증서를 가져오기 위한 것입니다.

kReqType_RotateOpDeviceCert

인증서 가져오기 요청 유형은 현재 운영 인증서를 순환하는 것입니다.

EventCallback

void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)

이 함수는 Certificate Provisioning Engine API 이벤트에서 호출되는 애플리케이션 콜백입니다.

세부정보
매개변수
[in] appState
엔진 객체와 연결된 애플리케이션 정의 상태 정보에 대한 포인터입니다.
[in] eventType
이벤트 콜백에서 전달한 이벤트 ID.
[in] inParam
이벤트 콜백에서 전달한 입력 이벤트 매개변수의 참조입니다.
[in] outParam
이벤트 콜백에서 전달한 출력 이벤트 매개변수의 참조입니다.

EventType

 EventType
속성
kEvent_CommunicationError

GetCertificateRequest를 전송하거나 응답을 기다리는 중에 통신 오류가 발생했습니다.

kEvent_PrepareAuthorizeInfo

GetCertificateRequest의 페이로드를 준비하도록 애플리케이션이 요청됩니다.

kEvent_ResponseReceived

GetCertificateResponse 메시지가 피어에서 수신되었습니다.

상태

 State
속성
kState_Idle

엔진 객체가 유휴 상태입니다.

kState_NotInitialized

엔진 객체가 초기화되지 않았습니다.

kState_PreparingBinding

엔진 객체가 결합이 준비될 때까지 기다리는 중입니다.

kState_RequestInProgress

GetCertificateRequest 메시지가 전송되었으며 엔진 객체가 응답을 기다리고 있습니다.

공개 속성

AppState

void * AppState

애플리케이션별 데이터를 가리키는 포인터입니다.

공개 함수

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

진행 중인 GetCertificate 교환을 중지합니다.

GenerateGetCertificateRequest

WEAVE_ERROR GenerateGetCertificateRequest(
  PacketBuffer *msgBuf,
  uint8_t reqType,
  bool doMfrAttest
)

GetCertificateRequest 메시지를 생성합니다.

이 메서드는 Weave TLV 형식으로 인코딩된 Weave GetCertificateRequest 구조를 생성합니다.

GetCertificateRequest 메시지를 작성할 때 이 메서드는 WeaveNodeOpAuthDelegateWeaveNodeMfrAttestDelegate 함수와 PrepareAuthorizeInfo API 이벤트를 통해 애플리케이션에 요청을 보내 메시지의 페이로드를 준비합니다.

세부정보
매개변수
[in] msgBuf
GetCertificateRequest 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
[in] reqType
인증서 요청 유형 가져오기
[in] doMfrAttest
요청에 제조업체 증명 데이터를 포함해야 하는지 여부를 나타내는 불리언 플래그입니다.
반환 값
WEAVE_NO_ERROR
GetCertificateRequest가 성공적으로 생성된 경우입니다.

GetBinding

Binding * GetBinding(
  void
) const 

WeaveCertProvEngine과 연결된 Binding 객체에 대한 포인터를 반환합니다.

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

현재 WeaveCertProvEngine 객체에 구성된 API 이벤트 콜백 함수에 대한 포인터를 반환합니다.

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

현재 WeaveCertProvEngine 객체에 구성된 제조업체 증명 대리자 객체에 대한 포인터를 반환합니다.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

현재 WeaveCertProvEngine 객체에 구성된 작업 인증 대리자 객체에 대한 포인터를 반환합니다.

GetReqType

uint8_t GetReqType(
  void
) const 

현재 요청 유형을 가져옵니다.

GetState

State GetState(
  void
) const 

WeaveCertProvEngine 객체의 현재 상태를 가져옵니다.

Init

WEAVE_ERROR Init(
  Binding *binding,
  WeaveNodeOpAuthDelegate *opAuthDelegate,
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate,
  EventCallback eventCallback,
  void *appState
)

인증서 가져오기 요청 메시지를 보내기 전에 WeaveCertProvEngine 객체를 초기화합니다.

세부정보
매개변수
[in] binding
피어 노드와의 통신을 설정하는 데 사용될 Binding 객체입니다.
[in] opAuthDelegate
노드의 운영 사용자 인증 정보를 사용하여 생성하고 서명하는 데 사용될 운영 인증 대리자를 가리키는 포인터입니다.
[in] mfrAttestDelegate
노드의 제조업체에서 프로비저닝된 사용자 인증 정보를 사용하여 요청을 구성하고 서명하는 데 사용될 제조업체 증명 위임 객체에 대한 포인터입니다.
[in] eventCallback
API 이벤트를 애플리케이션에 전달하기 위해 WeaveCertProvEngine 객체가 호출할 함수에 대한 포인터입니다.
[in] appState
API 이벤트가 발생할 때마다 애플리케이션에 다시 전달될 애플리케이션 정의 객체에 대한 포인터입니다.

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

GetCertificateResponse 메시지를 처리합니다.

이 메서드는 Weave TLV 형식으로 인코딩된 Weave GetCertificateResponse 구조를 처리합니다.

GetCertificateResponse 메시지 처리가 성공적으로 완료되면 메서드는 ResponseReceived API 이벤트를 통해 애플리케이션을 호출하여 결과를 전달합니다.

GetCertificateResponse 메시지 처리에 실패하면 메서드는 CommunicationError API 이벤트를 통해 애플리케이션을 호출하여 오류를 보고합니다.

세부정보
매개변수
[in] msgBuf
GetCertificateResponse 메시지를 보유한 PacketBuffer 객체에 대한 포인터입니다.
반환 값
WEAVE_NO_ERROR
GetCertificateResponse 메시지가 성공적으로 처리되었는지 여부

SetBinding

void SetBinding(
  Binding *binding
)

WeaveCertProvEngine 객체에 결합 객체를 설정합니다.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

WeaveCertProvEngine 객체에 API 이벤트 콜백 함수를 설정합니다.

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

WeaveCertProvEngine 객체에 제조업체 증명 위임 객체를 설정합니다.

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

WeaveCertProvEngine 객체에 작업 인증 대리자 객체를 설정합니다.

종료

void Shutdown(
  void
)

이전에 초기화된 WeaveCertProvEngine 개체를 종료합니다.

이 메서드는 Init() 메서드를 이전에 호출한 경우에만 호출할 수 있습니다.

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

인증서 프로비저닝 프로토콜을 시작합니다.

이 메서드는 CA 서비스에 GetCertificateRequest 메시지를 보내는 프로세스를 시작합니다. 해당 GetCertificateResponse 메시지가 수신되면 ResponseReceived API 이벤트를 통해 애플리케이션에 전달됩니다.

이 메서드가 호출될 때 Binding 객체가 Ready 상태가 아니면 Binding::RequestPrepare() 메서드에 요청하여 주문형 준비를 시작합니다. 그러면 이 프로세스가 완료될 때까지 요청 작업이 대기하게 됩니다. 진행 중인 이전 요청이 있는 동안 StartCertificateProvisioning()에 대한 모든 호출은 무시됩니다.

세부정보
매개변수
[in] reqType
인증서 요청 유형 가져오기
[in] doMfrAttest
프로토콜에 제조업체 증명 데이터를 포함해야 하는지 여부를 나타내는 불리언 플래그입니다.
반환 값
WEAVE_NO_ERROR
StartCertificateProvisioning()이 성공적으로 처리되었는지 여부

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)