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

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

ใช้ตรรกะหลักของออบเจ็กต์โปรโตคอลการจัดสรรใบรับรอง Weave

สรุป

ผู้ผลิตและผู้ทำลาย

WeaveCertProvEngine(void)

ประเภทสาธารณะ

@246{
  kReqType_GetInitialOpDeviceCert = 0,
  kReqType_RotateOpDeviceCert = 1
}
enum
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) Typedef
void(*
ฟังก์ชันนี้คือ Callback ของแอปพลิเคชันที่เรียกใช้ในเหตุการณ์ 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
แสดงผลตัวชี้ไปยังออบเจ็กต์ Binding ที่เชื่อมโยงกับ WeaveCertProvEngine
GetEventCallback(void) const
แสดงผลตัวชี้ไปยังฟังก์ชัน Callback ของเหตุการณ์ API ที่กําหนดค่าไว้ในออบเจ็กต์ WeaveCertProvEngine อยู่ในปัจจุบัน
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
ตั้งค่าฟังก์ชัน Callback ของเหตุการณ์ API ในออบเจ็กต์ WeaveCertProvEngine
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)

ฟังก์ชันนี้คือ Callback ของแอปพลิเคชันที่เรียกใช้ในเหตุการณ์ Certificate Provisioning Engine API

รายละเอียด
พารามิเตอร์
[in] appState
ตัวชี้ไปยังข้อมูลสถานะที่แอปพลิเคชันกำหนดซึ่งเชื่อมโยงกับออบเจ็กต์เครื่องมือ
[in] eventType
รหัสเหตุการณ์ที่ Callback ของเหตุการณ์ส่งผ่าน
[in] inParam
การอ้างอิงพารามิเตอร์เหตุการณ์อินพุตที่ส่งผ่านโดย Callback ของเหตุการณ์
[in] outParam
การอ้างอิงพารามิเตอร์เหตุการณ์เอาต์พุตที่ส่งโดย Callback ของเหตุการณ์

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 GetCertificateRequest ที่เข้ารหัสในรูปแบบ Weave TLV

เมื่อสร้างข้อความ GetCertificateRequest เมธอดจะส่งคำขอไปยังแอปพลิเคชันผ่านฟังก์ชัน WeaveNodeOpAuthDelegate และ WeaveNodeMfrAttestDelegate และเหตุการณ์ PrepareAuthorizeInfo API เพื่อเตรียมเพย์โหลดของข้อความ

รายละเอียด
พารามิเตอร์
[in] msgBuf
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ GetCertificateRequest
[in] reqType
รับประเภทคำขอใบรับรอง
[in] doMfrAttest
แฟล็กบูลีนที่ระบุว่าคำขอควรรวมข้อมูลเอกสารรับรองของผู้ผลิตหรือไม่
ผลลัพธ์
WEAVE_NO_ERROR
หากสร้าง GetCertificateRequest สำเร็จ

GetBinding

Binding * GetBinding(
  void
) const 

แสดงผลตัวชี้ไปยังออบเจ็กต์ Binding ที่เชื่อมโยงกับ WeaveCertProvEngine

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

แสดงผลตัวชี้ไปยังฟังก์ชัน Callback ของเหตุการณ์ API ที่กําหนดค่าไว้ในออบเจ็กต์ WeaveCertProvEngine อยู่ในปัจจุบัน

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
ตัวชี้ไปยังฟังก์ชันที่ออบเจ็กต์ WeaveCertProvEngine จะเรียกเพื่อส่งเหตุการณ์ API ไปยังแอปพลิเคชัน
[in] appState
ตัวชี้ไปยังออบเจ็กต์ที่กำหนดโดยแอปพลิเคชัน ซึ่งระบบจะส่งคืนกลับไปยังแอปพลิเคชันเมื่อมีเหตุการณ์ API เกิดขึ้น

ProcessGetCertificateResponse

WEAVE_ERROR ProcessGetCertificateResponse(
  PacketBuffer *msgBuf
)

ประมวลผลข้อความ GetCertificateResponse

เมธอดนี้จะประมวลผลโครงสร้าง Weave GetCertificateResponse ที่เข้ารหัสในรูปแบบ Weave TLV

เมื่อประมวลผลข้อความ GetCertificateResponse เสร็จสมบูรณ์ เมธอดจะเรียกใช้แอปพลิเคชันผ่านเหตุการณ์ ResponseReceived API เพื่อส่งผลลัพธ์

หากการประมวลผลข้อความ GetCertificateResponse ล้มเหลว เมธอดจะเรียกใช้แอปพลิเคชันผ่านเหตุการณ์ CommunicationError API เพื่อรายงานข้อผิดพลาด

รายละเอียด
พารามิเตอร์
[in] msgBuf
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ GetCertificateResponse
ผลลัพธ์
WEAVE_NO_ERROR
หากข้อความ GetCertificateResponse ประมวลผลสำเร็จ

SetBinding

void SetBinding(
  Binding *binding
)

ตั้งค่าออบเจ็กต์การเชื่อมโยงในออบเจ็กต์ WeaveCertProvEngine

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

ตั้งค่าฟังก์ชัน Callback ของเหตุการณ์ API ในออบเจ็กต์ WeaveCertProvEngine

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
)

เริ่มต้นโปรโตคอลการจัดสรรใบรับรอง

วิธีนี้จะเริ่มกระบวนการส่งข้อความ GetCertificateRequest ไปยังบริการ CA หากได้รับข้อความ GetCertificateResponse ที่เกี่ยวข้องแล้ว ระบบจะส่งข้อความดังกล่าวไปยังแอปพลิเคชันผ่านเหตุการณ์ ResponseReceived API

หากออบเจ็กต์ Binding ไม่อยู่ในสถานะ Ready เมื่อมีการเรียกใช้เมธอดนี้ ระบบจะส่งคำขอไปยังเมธอด Binding::RequestPrepare() เพื่อเริ่มการเตรียมการตามคำขอ การดำเนินการคำขอจะรอจนกว่าขั้นตอนนี้จะเสร็จสมบูรณ์ ระบบจะไม่สนใจการเรียกใช้ StartCertificateProvisioning() ที่มีคำขอในกระบวนการก่อนหน้า

รายละเอียด
พารามิเตอร์
[in] reqType
รับประเภทคำขอใบรับรอง
[in] doMfrAttest
ธงบูลีนที่ระบุว่าโปรโตคอลควรรวมข้อมูลเอกสารรับรองของผู้ผลิตหรือไม่
ผลลัพธ์
WEAVE_NO_ERROR
หากประมวลผล StartCertificateProvisioning() สำเร็จ

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)