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(*
ฟังก์ชันนี้คือการเรียกกลับของแอปพลิเคชันที่มีการเรียกใช้ในเหตุการณ์ 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
แสดงผลตัวชี้ไปยังออบเจ็กต์ Delegate สำหรับเอกสารรับรองของผู้ผลิตที่กำหนดค่าในปัจจุบันในออบเจ็กต์ WeaveCertProvEngine
GetOpAuthDelegate(void) const
แสดงผลตัวชี้ไปยังออบเจ็กต์ Delegate สำหรับการตรวจสอบสิทธิ์ในการดำเนินการที่กำหนดค่าไว้ในออบเจ็กต์ 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
ตั้งค่าออบเจ็กต์ Delegate สำหรับการตรวจสอบสิทธิ์ในการดำเนินการในออบเจ็กต์ WeaveCertProvEngine
Shutdown(void)
void
ปิดออบเจ็กต์ WeaveCertProvEngine ที่เริ่มต้นก่อนหน้านี้
StartCertificateProvisioning(uint8_t reqType, bool doMfrAttest)
เริ่มต้นโปรโตคอลการจัดสรรใบรับรอง

โครงสร้าง

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

ป้อนพารามิเตอร์ไปยังเหตุการณ์ API การจัดสรรใบรับรองของ Weave

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)

ฟังก์ชันนี้คือการเรียกกลับของแอปพลิเคชันที่มีการเรียกใช้ในเหตุการณ์ 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 ที่เข้ารหัสในรูปแบบ 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 

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

GetMfrAttestDelegate

WeaveNodeMfrAttestDelegate * GetMfrAttestDelegate(
  void
) const 

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

GetOpAuthDelegate

WeaveNodeOpAuthDelegate * GetOpAuthDelegate(
  void
) const 

แสดงผลตัวชี้ไปยังออบเจ็กต์ Delegate สำหรับการตรวจสอบสิทธิ์ในการดำเนินการที่กำหนดค่าไว้ในออบเจ็กต์ WeaveCertProvEngine

GetReqType

uint8_t GetReqType(
  void
) const 

ดึงข้อมูลประเภทคำขอปัจจุบัน

GetState

State GetState(
  void
) const 

ดึงข้อมูลสถานะปัจจุบันของออบเจ็กต์ WeaveCertProvEngine

เริ่มต้น

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

เริ่มต้นออบเจ็กต์ WeaveCertProvEngine เพื่อเตรียมส่งข้อความคำขอรับใบรับรอง

รายละเอียด
พารามิเตอร์
[in] 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
)

ตั้งค่าออบเจ็กต์ Delegate สำหรับการตรวจสอบสิทธิ์ในการดำเนินการในออบเจ็กต์ 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
)