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

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

Triển khai logic cốt lõi của đối tượng giao thức Cấp phép chứng chỉ Weave.

Tóm tắt

Hàm khởi tạo và phá huỷ

WeaveCertProvEngine(void)

Loại công khai

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
enum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng được gọi trong các sự kiện API Công cụ cấp phép chứng chỉ.
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

Các thuộc tính công khai

AppState
void *
Con trỏ đến dữ liệu dành riêng cho ứng dụng.

Hàm công khai

AbortCertificateProvisioning(void)
void
Dừng bất kỳ trao đổi GetCertificate nào đang diễn ra.
GenerateGetCertificateRequest(PacketBuffer *msgBuf, uint8_t reqType, bool doMfrAttest)
Tạo thông báo GetCertificateRequest.
GetBinding(void) const
Trả về con trỏ đến đối tượng Binding (Liên kết) được liên kết với WeaveCertProvEngine.
GetEventCallback(void) const
Trả về con trỏ đến hàm gọi lại sự kiện API hiện được định cấu hình trên đối tượng WeaveCertProvEngine.
GetMfrAttestDelegate(void) const
Trả về con trỏ đến đối tượng uỷ quyền chứng thực của nhà sản xuất hiện được định cấu hình trên đối tượng WeaveCertProvEngine.
GetOpAuthDelegate(void) const
Trả về con trỏ đến đối tượng uỷ quyền xác thực hoạt động hiện được định cấu hình trên đối tượng WeaveCertProvEngine.
GetReqType(void) const
uint8_t
Truy xuất loại yêu cầu hiện tại.
GetState(void) const
Truy xuất trạng thái hiện tại của đối tượng WeaveCertProvEngine.
Init(Binding *binding, WeaveNodeOpAuthDelegate *opAuthDelegate, WeaveNodeMfrAttestDelegate *mfrAttestDelegate, EventCallback eventCallback, void *appState)
Khởi chạy đối tượng WeaveCertProvEngine để chuẩn bị gửi thông báo yêu cầu cấp chứng chỉ.
ProcessGetCertificateResponse(PacketBuffer *msgBuf)
Xử lý thông báo GetCertificateResponse.
SetBinding(Binding *binding)
void
Đặt đối tượng liên kết trên đối tượng WeaveCertProvEngine.
SetEventCallback(EventCallback eventCallback)
void
Đặt hàm gọi lại sự kiện API trên đối tượng WeaveCertProvEngine.
SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate *mfrAttestDelegate)
void
Đặt đối tượng uỷ quyền chứng thực của nhà sản xuất trên đối tượng WeaveCertProvEngine.
SetOpAuthDelegate(WeaveNodeOpAuthDelegate *opAuthDelegate)
void
Đặt đối tượng uỷ quyền xác thực hoạt động trên đối tượng WeaveCertProvEngine.
Shutdown(void)
void
Tắt đối tượng WeaveCertProvEngine đã khởi chạy trước đó.
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
Bắt đầu Giao thức cấp phép chứng chỉ.

Cấu trúc

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

Các tham số đầu vào cho sự kiện API Cấp chứng chỉ Weave.

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

Các tham số đầu ra cho sự kiện API Cấp chứng chỉ Weave.

Loại công khai

@246

 @246
Thuộc tính
kReqType_GetInitialOpDeviceCert

Loại yêu cầu Get Certificate (Lấy chứng chỉ) là để lấy chứng chỉ hoạt động ban đầu.

kReqType_RotateOpDeviceCert

Loại yêu cầu Get Certificate (Nhận chứng chỉ) là để xoay vòng chứng chỉ hoạt động hiện tại.

EventCallback

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

Hàm này là lệnh gọi lại ứng dụng được gọi trong các sự kiện API Công cụ cấp phép chứng chỉ.

Thông tin chi tiết
Thông số
[in] appState
Con trỏ đến thông tin trạng thái do ứng dụng xác định liên kết với đối tượng công cụ.
[in] eventType
Mã sự kiện do lệnh gọi lại sự kiện truyền vào.
[in] inParam
Tham chiếu các thông số sự kiện đầu vào do lệnh gọi lại sự kiện truyền.
[in] outParam
Tham chiếu đến các thông số sự kiện đầu ra được lệnh gọi lại sự kiện truyền.

EventType

 EventType
Thuộc tính
kEvent_CommunicationError

Đã xảy ra lỗi giao tiếp trong khi gửi GetCertificateRequest hoặc chờ phản hồi.

kEvent_PrepareAuthorizeInfo

Ứng dụng được yêu cầu chuẩn bị tải trọng cho GetCertificateRequest.

kEvent_ResponseReceived

Đã nhận được thông báo GetCertificateResponse từ ứng dụng ngang hàng.

Tiểu bang

 State
Thuộc tính
kState_Idle

Đối tượng công cụ đang ở trạng thái rảnh.

kState_NotInitialized

Đối tượng công cụ chưa được khởi chạy.

kState_PreparingBinding

Đối tượng công cụ đang chờ liên kết sẵn sàng.

kState_RequestInProgress

Thông báo GetCertificateRequest đã được gửi và đối tượng công cụ đang chờ phản hồi.

Các thuộc tính công khai

AppState

void * AppState

Con trỏ đến dữ liệu dành riêng cho ứng dụng.

Hàm công khai

AbortCertificateProvisioning

void AbortCertificateProvisioning(
  void
)

Dừng mọi quá trình trao đổi GetCertificate đang diễn ra.

GenerateGetCertificateRequest

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

Tạo thông báo GetCertificateRequest.

Phương thức này tạo cấu trúc Weave GetCertificateRequest được mã hoá ở định dạng TLV của Weave.

Khi tạo thông báo GetCertificateRequest, phương thức này sẽ gửi yêu cầu đến ứng dụng thông qua các hàm WeaveNodeOpAuthDelegateWeaveNodeMfrAttestDelegate cũng như sự kiện API PrepareAuthorizeInfo để chuẩn bị tải trọng của thông báo.

Thông tin chi tiết
Thông số
[in] msgBuf
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông báo GetCertificateRequest.
[in] reqType
Lấy loại yêu cầu cấp chứng chỉ.
[in] doMfrAttest
Cờ boolean cho biết yêu cầu có nên bao gồm dữ liệu chứng thực của nhà sản xuất hay không.
Giá trị trả về
WEAVE_NO_ERROR
Nếu GetCertificateRequest đã được tạo thành công.

GetBinding

Binding * GetBinding(
  void
) const 

Trả về con trỏ đến đối tượng Binding (Liên kết) được liên kết với WeaveCertProvEngine.

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Trả về con trỏ đến hàm gọi lại sự kiện API hiện được định cấu hình trên đối tượng WeaveCertProvEngine.

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

Trả về một con trỏ đến đối tượng uỷ quyền chứng thực của nhà sản xuất hiện được định cấu hình trên đối tượng WeaveCertProvEngine.

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

Trả về một con trỏ đến đối tượng uỷ quyền xác thực hoạt động hiện được định cấu hình trên đối tượng WeaveCertProvEngine.

GetReqType

uint8_t GetReqType(
  void
) const 

Truy xuất loại yêu cầu hiện tại.

GetState

State GetState(
  void
) const 

Truy xuất trạng thái hiện tại của đối tượng WeaveCertProvEngine.

Khởi động

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

Khởi chạy đối tượng WeaveCertProvEngine để chuẩn bị gửi thông báo yêu cầu cấp chứng chỉ.

Thông tin chi tiết
Thông số
[in] binding
Đối tượng Binding (Liên kết) sẽ được dùng để thiết lập giao tiếp với nút ngang hàng.
[in] opAuthDelegate
Con trỏ đến đối tượng uỷ quyền xác thực hoạt động sẽ được dùng để tạo và ký bằng thông tin xác thực hoạt động của nút.
[in] mfrAttestDelegate
Con trỏ trỏ đến đối tượng uỷ quyền chứng thực của nhà sản xuất. Đối tượng này sẽ dùng để tạo và ký yêu cầu bằng thông tin xác thực do nhà sản xuất cấp phép của nút.
[in] eventCallback
Con trỏ đến một hàm sẽ được đối tượng WeaveCertProvEngine gọi để phân phối các sự kiện API đến ứng dụng.
[in] appState
Con trỏ đến một đối tượng do ứng dụng xác định sẽ được chuyển lại cho ứng dụng bất cứ khi nào sự kiện API xảy ra.

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

Xử lý thông báo GetCertificateResponse.

Phương thức này xử lý cấu trúc Weave GetCertificateResponse được mã hoá ở định dạng TLV của Weave.

Khi xử lý xong thông báo GetCertificateResponse, phương thức này sẽ gọi đến ứng dụng thông qua sự kiện ResponseReceived API để phân phối kết quả.

Nếu việc xử lý thông báo GetCertificateResponse không thành công, thì phương thức này sẽ thực hiện lệnh gọi đến ứng dụng thông qua sự kiện API CommunicationError để báo cáo lỗi.

Thông tin chi tiết
Thông số
[in] msgBuf
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông báo GetCertificateResponse.
Giá trị trả về
WEAVE_NO_ERROR
Nếu thông báo GetCertificateResponse đã được xử lý thành công.

SetBinding

void SetBinding(
  Binding *binding
)

Đặt đối tượng liên kết trên đối tượng WeaveCertProvEngine.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Đặt hàm gọi lại sự kiện API trên đối tượng WeaveCertProvEngine.

SetMfrAttestDelegate

void SetMfrAttestDelegate(
  WeaveNodeMfrAttestDelegate *mfrAttestDelegate
)

Đặt đối tượng uỷ quyền chứng thực của nhà sản xuất trên đối tượng WeaveCertProvEngine.

SetOpAuthDelegate

void SetOpAuthDelegate(
  WeaveNodeOpAuthDelegate *opAuthDelegate
)

Đặt đối tượng uỷ quyền xác thực hoạt động trên đối tượng WeaveCertProvEngine.

Tắt

void Shutdown(
  void
)

Tắt đối tượng WeaveCertProvEngine đã khởi chạy trước đó.

Xin lưu ý rằng bạn chỉ có thể gọi phương thức này nếu phương thức Init() đã được gọi trước đó.

StartCertificateProvisioning

WEAVE_ERROR StartCertificateProvisioning(
  uint8_t reqType,
  bool doMfrAttest
)

Bắt đầu Giao thức cấp phép chứng chỉ.

Phương thức này sẽ bắt đầu quá trình gửi thông báo GetCertificateRequest đến dịch vụ CA. Nếu và khi nhận được thông báo GetCertificateResponse tương ứng, thông báo đó sẽ được gửi đến ứng dụng thông qua sự kiện ResponseReceived API.

Nếu đối tượng Binding không ở trạng thái Sẵn sàng khi phương thức này được gọi, thì một yêu cầu sẽ được gửi đến phương thức Binding::RequestPrepare() để bắt đầu quá trình chuẩn bị theo yêu cầu. Sau đó, thao tác yêu cầu sẽ đợi cho đến khi quá trình này hoàn tất. Mọi lệnh gọi đến StartCertificateProvisioning() trong khi có một yêu cầu trước đó đang được xử lý sẽ bị bỏ qua.

Thông tin chi tiết
Thông số
[in] reqType
Lấy loại yêu cầu cấp chứng chỉ.
[in] doMfrAttest
Cờ boolean cho biết liệu giao thức có nên bao gồm dữ liệu chứng thực của nhà sản xuất hay không.
Giá trị trả về
WEAVE_NO_ERROR
Nếu StartCertificateProvisioning() đã được xử lý thành công.

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)