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
แสดงผลพอยน์เตอร์ไปยังฟังก์ชันการเรียกกลับเหตุการณ์ 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
ตั้งค่าฟังก์ชันการเรียกกลับเหตุการณ์ 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)

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

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

เมื่อสร้างข้อความ 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 

แสดงผลพอยน์เตอร์ไปยังฟังก์ชันการเรียกกลับเหตุการณ์ 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
)

ตั้งค่าฟังก์ชันการเรียกกลับเหตุการณ์ 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 ไม่ได้อยู่ในสถานะ "พร้อม" เมื่อมีการเรียกใช้เมธอดนี้ ระบบจะส่งคำขอไปยังเมธอด Binding::RequestPrepare() เพื่อเริ่มการเตรียมความพร้อมแบบออนดีมานด์ การดำเนินการคำขอจะรอจนกว่าขั้นตอนนี้จะเสร็จสมบูรณ์ การเรียกใช้ StartCertificateProvisioning() ขณะที่มีคำขอก่อนหน้าที่อยู่ระหว่างดำเนินการจะได้รับการละเว้น

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

WeaveCertProvEngine

 WeaveCertProvEngine(
  void
)