nl::Weave::โปรไฟล์::ความปลอดภัย

เนมสเปซนี้ประกอบด้วยอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับโปรไฟล์ Security ของ Weave

สรุป

การแจกแจง

@235 enum
แฟล็กวัตถุประสงค์ของคีย์ใบรับรอง X.509
@236 enum
ธงการใช้งานคีย์ใบรับรอง X.509
@237 enum
ติดธงใบรับรอง Weave
@238 enum
ธงการถอดรหัสใบรับรอง Weave
@239 enum
ติดธงการยืนยัน Weave Certificate
@240 enum
@280 enum
@281 enum
@282 enum
@283 enum
@284 enum
@285 enum
@286 enum
@287 enum
@288 enum
@289 enum

ประเภทคําจํากัดความ

GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig) Typedef
สร้างลายเซ็น ECDSA โดยใช้คีย์ส่วนตัว Weave โหนดท้องถิ่น ##39

ตัวแปร

gProvisioningBundleKDFSalt = "Weave Provisioning Bundle v1"[]
const char

ฟังก์ชัน

CASECertInfoFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen)
อ่านโทเค็นเพื่อการเข้าถึงของ Weave และสร้างโครงสร้างข้อมูล CASE แบบใบรับรอง TLV ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง
CASECertInfoFromAccessToken(TLVReader & reader, TLVWriter & writer)
อ่านโทเค็นเพื่อการเข้าถึงของ Weave และเขียนโครงสร้างข้อมูล CASE CertificateTLV ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง
ConvertAuthorityKeyIdentifierExtension(ASN1Reader & reader, TLVWriter & writer)
ConvertCertificate(ASN1Reader & reader, TLVWriter & writer)
ConvertDistinguishedName(ASN1Reader & reader, TLVWriter & writer, uint64_t tag)
ConvertECDSASignature_DERToWeave(const uint8_t *sigBuf, uint8_t sigLen, TLVWriter & writer, uint64_t tag)
ConvertExtension(ASN1Reader & reader, TLVWriter & writer)
ConvertExtensions(ASN1Reader & reader, TLVWriter & writer)
ConvertSubjectPublicKeyInfo(ASN1Reader & reader, TLVWriter & writer)
ConvertValidity(ASN1Reader & reader, TLVWriter & writer)
ConvertWeaveCertToX509Cert(const uint8_t *weaveCert, uint32_t weaveCertLen, uint8_t *x509CertBuf, uint32_t x509CertBufSize, uint32_t & x509CertLen)
ConvertX509CertToWeaveCert(const uint8_t *x509Cert, uint32_t x509CertLen, uint8_t *weaveCertBuf, uint32_t weaveCertBufSize, uint32_t & weaveCertLen)
DecodeConvertAuthorityKeyIdentifierExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertBasicConstraintsExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertCert(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertDN(TLVReader & reader, ASN1Writer & writer, WeaveDN & dn)
DecodeConvertECDSASignature(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertExtendedKeyUsageExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertExtensions(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertKeyUsageExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertRSASignature(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertSubjectKeyIdentifierExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertSubjectPublicKeyInfo(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertTBSCert(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertValidity(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeCopyECDSASignature_DER(const uint8_t *sigBuf, uint8_t sigLen, EncodedECDSASignature & sig)
DecodeWeaveCert(const uint8_t *weaveCert, uint32_t weaveCertLen, WeaveCertificateData & certData)
DecodeWeaveCert(TLVReader & reader, WeaveCertificateData & certData)
DecodeWeaveDN(TLVReader & reader, WeaveDN & dn)
DecodeWeaveECDSASignature(TLVReader & reader, EncodedECDSASignature & sig)
DecodeWeaveECPrivateKey(const uint8_t *buf, uint32_t len, uint32_t & weaveCurveId, EncodedECPublicKey & pubKey, EncodedECPrivateKey & privKey)
NL_DLL_EXPORT WEAVE_ERROR
DescribeWeaveCertId(OID attrOID, uint64_t weaveCertId)
const char *
DetermineCertType(WeaveCertificateData & cert)
ระบุประเภททั่วไปของใบรับรอง Weave
EncodeWeaveECDSASignature(TLVWriter & writer, EncodedECDSASignature & sig, uint64_t tag)
EncodeWeaveECPrivateKey(uint32_t weaveCurveId, const EncodedECPublicKey *pubKey, const EncodedECPrivateKey & privKey, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outLen)
NL_DLL_EXPORT WEAVE_ERROR
ExtractCertFromAccessToken(TLVReader & reader, TLVWriter & writer, uint64_t tag)
อ่านโทเค็นเพื่อการเข้าถึงของ Weave และแยกใบรับรองโทเค็นการเข้าถึง
ExtractPrivateKeyFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
อ่านโทเค็นเพื่อการเข้าถึงของ Weave และดึงคีย์ส่วนตัว
ExtractPrivateKeyFromAccessToken(TLVReader & reader, TLVWriter & writer)
อ่านโทเค็นเพื่อการเข้าถึงของ Weave และดึงคีย์ส่วนตัว
GenerateAndEncodeWeaveECDSASignature(TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen)
สร้างและเข้ารหัสลายเซ็น Weave ECDSA
GenerateOperationalDeviceCert(uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature)
NL_DLL_EXPORT WEAVE_ERROR
สร้างใบรับรองอุปกรณ์การดําเนินการ Weave
GetWeaveSignatureAlgo(const uint8_t *sig, uint16_t sigLen, OID & sigAlgoOID)
Indent(FILE *out, uint16_t count)
void
InsertRelatedCertificatesIntoWeaveSignature(uint8_t *sigBuf, uint16_t sigLen, uint16_t sigBufLen, const uint8_t *relatedCerts, uint16_t relatedCertsLen, uint16_t & outSigLen)
IsCertificateExtensionTag(uint64_t tag)
bool
IsCurveInSet(uint32_t curveId, uint8_t curveSet)
bool
IsSupportedCurve(uint32_t curveId)
bool
IsWeaveIdX509Attr(OID oid)
bool
IsWeaveX509Attr(OID oid)
bool
LoadAccessTokenCerts(const uint8_t *accessToken, uint32_t accessTokenLen, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
โหลดใบรับรองในโทเค็นเพื่อการเข้าถึงลงในชุดใบรับรอง Weave
LoadAccessTokenCerts(TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
โหลดใบรับรองในโทเค็นเพื่อการเข้าถึงลงในชุดใบรับรอง Weave
MakeDeviceCredentialHash(const char *serialNum, size_t serialNumLen, const char *deviceId, size_t deviceIdLen, const char *deviceSecret, size_t deviceSecretLen, char *hashBuf, size_t hashBufSize)
NL_DLL_EXPORT WEAVE_ERROR
สร้างแฮชการยืนยัน (ในรูปแบบ Base64) สําหรับข้อมูลรับรองอุปกรณ์ตัวควบคุมอุณหภูมิชุดหนึ่ง
MakeWeaveProvisioningHash(uint64_t nodeId, const char *weaveCert, size_t weaveCertLen, const char *weavePrivKey, size_t weavePrivKeyLen, const char *pairingCode, size_t pairingCodeLen, char *hashBuf, size_t hashBufSize)
NL_DLL_EXPORT WEAVE_ERROR
สร้างแฮชการยืนยัน (ในรูปแบบ Base64) สําหรับชุดข้อมูลการจัดสรร Weave ที่ระบุ
OIDToWeaveCurveId(ASN1::OID curveOID)
uint32_t
PackCertTime(const ASN1UniversalTime & time, uint32_t & packedTime)
NL_DLL_EXPORT WEAVE_ERROR
แปลงวันที่/เวลาของใบรับรอง (ในรูปแบบโครงสร้างเวลาสากลของ ASN.1) เป็นวันที่/เวลาใบรับรอง
PackedCertDateToTime(uint16_t packedDate)
NL_DLL_EXPORT uint32_t
แปลงวันที่ของใบรับรองที่บรรจุให้เป็นวันที่/เวลาของใบรับรองที่บรรจุในนั้น โดยที่ส่วนเวลาของค่าถูกตั้งค่าเป็น 00:00:00
PackedCertTimeToDate(uint32_t packedTime)
NL_DLL_EXPORT uint16_t
แปลงวันที่/เวลาของใบรับรองที่บรรจุให้เป็นวันที่ของใบรับรองที่บรรจุไว้
ParseWeaveIdAttribute(ASN1Reader & reader, uint64_t & weaveIdOut)
PrintCert(FILE *out, const WeaveCertificateData & cert, const WeaveCertificateSet *certSet, uint16_t indent, bool verbose)
NL_DLL_EXPORT void
PrintCertArray(FILE *out, TLVReader & reader, uint16_t indent)
PrintCertReference(FILE *out, TLVReader & reader, uint16_t indent)
PrintCertType(FILE *out, uint8_t certType)
void
PrintCertValidationResults(FILE *out, const WeaveCertificateSet & certSet, const ValidationContext & validContext, uint16_t indent)
NL_DLL_EXPORT void
PrintECDSASignature(FILE *out, TLVReader & reader, uint16_t indent)
PrintHexField(FILE *out, const char *name, uint16_t indent, uint16_t count, const uint8_t *data)
void
PrintPackedDate(FILE *out, uint16_t t)
void
PrintPackedTime(FILE *out, uint32_t t)
void
PrintWeaveDN(FILE *out, const WeaveDN & dn)
void
PrintWeaveDN(FILE *out, TLVReader & reader)
PrintWeaveSignature(FILE *out, TLVReader & reader, uint16_t indent)
SecondsSinceEpochToPackedCertTime(uint32_t secondsSinceEpoch)
NL_DLL_EXPORT uint32_t
แปลงจํานวนวินาทีนับตั้งแต่ 1970-01-01 00:00:00 UTC เป็นวันที่/เวลาของใบรับรองที่แพ็กไว้
TranslateOpenSSLError(WEAVE_ERROR defaultErr)
UnpackCertTime(uint32_t packedTime, ASN1UniversalTime & time)
NL_DLL_EXPORT WEAVE_ERROR
บรรจุวันที่/เวลาของใบรับรองที่บรรจุในโครงสร้างเวลาสากล ASN.1
VerifyWeaveSignature(const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, WeaveCertificateSet & certSet, ValidationContext & certValidContext)
NL_DLL_EXPORT WEAVE_ERROR
VerifyWeaveSignature(const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, OID expectedSigAlgoOID, WeaveCertificateSet & certSet, ValidationContext & certValidContext)
NL_DLL_EXPORT WEAVE_ERROR
WeaveCurveIdToOID(uint32_t weaveCurveId)
NL_DLL_EXPORT OID

ชั้นเรียน

nl::Weave::Profiles::Security::CertificateKeyId
nl::Weave::Profiles::Security::validationContext
nl::Weave::โปรไฟล์::ความปลอดภัย::WeaveCertificateData
nl::Weave::Profiles::Security::WeaveCertificateSet
nl::Weave::โปรไฟล์::ความปลอดภัย::WeaveDN
nl::Weave::Profiles::Security::WeaveProvisioningBundle
nl::Weave::Profiles::Security::WeaveSignatureGenerator

สร้างลายเซ็น Weave โดยใช้คีย์ส่วนตัวในหน่วยความจํา

nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase

ให้ฟังก์ชันการทํางานทั่วไปสําหรับการสร้าง WeaveSignatures

เนมสเปซ

nl::Weave::Profiles::Security::AppKeys

เนมสเปซนี้รวมอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับไลบรารีคีย์แอปพลิเคชัน Weave ภายในโปรไฟล์การรักษาความปลอดภัย Weave

nl::Weave::โปรไฟล์::ความปลอดภัย::กรณี

เนมสเปซนี้ประกอบด้วยอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับโปรโตคอลการตรวจสอบสิทธิ์เซสชันใบรับรองที่ตรวจสอบสิทธิ์ (CASE) ภายในโปรไฟล์ความปลอดภัยของ Weave

nl::Weave::โปรไฟล์::ความปลอดภัย::การรับรองที่จัดสรรไว้

เนมสเปซนี้รวมถึงอินเทอร์เฟซทั้งหมดใน Weave สําหรับโปรโตคอลการจัดสรรใบรับรอง Weave ภายในโปรไฟล์ความปลอดภัยของ Weave

nl::Weave::Profiles::Security::KeyExport

เนมสเปซนี้รวมอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับโปรโตคอลการส่งออกคีย์ภายในโปรไฟล์ความปลอดภัยของ Weave

nl:: Weave::Profiles::Security::PASE

เนมสเปซนี้รวมถึงอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับโปรโตคอล Password-การชมเซสชันที่ตรวจสอบสิทธิ์แล้ว (PASE) ภายในโปรไฟล์ความปลอดภัยของ Weave

nl::Weave::โปรไฟล์::ความปลอดภัย::รหัสผ่าน

เนมสเปซนี้รวมอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับไลบรารีรหัสผ่าน Weave ภายในโปรไฟล์การรักษาความปลอดภัย Weave

nl::Weave::โปรไฟล์::ความปลอดภัย::รับ

เนมสเปซนี้ประกอบด้วยอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับโปรโตคอล Token Authenticationd Key Exchange (TAKE) ภายในโปรไฟล์ Security ของ Weave

การแจกแจง

235

 @235

แฟล็กวัตถุประสงค์ของคีย์ใบรับรอง X.509

236

 @236

ธงการใช้งานคีย์ใบรับรอง X.509

237

 @237

ติดธงใบรับรอง Weave

มีข้อมูลเกี่ยวกับใบรับรองที่โหลดในออบเจ็กต์ WeaveCertSet

238

 @238

ธงการถอดรหัสใบรับรอง Weave

มีข้อมูลที่ระบุวิธีถอดรหัสใบรับรอง

239

 @239

ติดธงการยืนยัน Weave Certificate

มีข้อมูลที่ระบุวิธีตรวจสอบใบรับรอง

240

 @240

280

 @280

281

 @281

282

 @282

283

 @283

284

 @284

285

 @285

286

 @286

287

 @287

288

 @288

289

 @289

ประเภทคําจํากัดความ

GenerateECDSASignatureFunct

WEAVE_ERROR(* GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig)

สร้างลายเซ็น ECDSA โดยใช้คีย์ส่วนตัว Weave โหนดท้องถิ่น ##39

เมื่อเรียกใช้ การใช้งานจะต้องคํานวณลายเซ็นในค่าแฮชที่กําหนดโดยใช้คีย์ส่วนตัวของโหนด&#39

รายละเอียด
พารามิเตอร์
[in] hash
บัฟเฟอร์ที่มีแฮชของใบรับรองที่จะลงนาม
[in] hashLen
ความยาวของไบต์เป็นแฮช
[in] ecdsaSig
การอ้างอิงถึงออบเจ็กต์ลายเซ็น ecdsa ที่มีการจัดเก็บฟังก์ชันนี้
แสดงผลค่า
WEAVE_NO_ERROR
หากดําเนินการสําเร็จ

ตัวแปร

gProvisioningBundleKDFSalt

const char gProvisioningBundleKDFSalt[] = "Weave Provisioning Bundle v1"

ฟังก์ชัน

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  uint8_t *certInfoBuf,
  uint16_t certInfoBufSize,
  uint16_t & certInfoLen
)

อ่านโทเค็นเพื่อการเข้าถึงของ Weave และสร้างโครงสร้างข้อมูล CASE แบบใบรับรอง TLV ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง

โดยฟังก์ชันนี้จะถอดรหัสโทเค็นเพื่อการเข้าถึงของ Weave และเข้ารหัส TLV สําหรับโครงสร้างข้อมูลใบรับรอง CASE ของ Weave ช่อง EntityCertificate ภายในโครงสร้าง CertificateInfo มีการตั้งค่าเป็นใบรับรองโทเค็นเพื่อการเข้าถึง และตั้งค่าช่อง CertificateCertificates (หากมี) เป็นช่องที่เกี่ยวข้องภายในโทเค็นเพื่อการเข้าถึง

รายละเอียด
พารามิเตอร์
accessToken
ตัวชี้ไปยังบัฟเฟอร์ที่มีโทเค็นเพื่อการเข้าถึง Weave Access Token
accessTokenLen
ความยาวของโทเค็นเพื่อการเข้าถึงที่เข้ารหัส
certInfoBuf
ตัวชี้ไปยังบัฟเฟอร์ที่ควรเข้ารหัสโครงสร้างข้อมูลใบรับรอง CASE
certInfoBufSize
ขนาดของบัฟเฟอร์ที่ certInfoBuf ชี้ไป
certInfoLen
ระบบจะตั้งค่าการอ้างอิงจํานวนเต็มตามระยะเวลาของโครงสร้างข้อมูลใบรับรองที่เข้ารหัส หมายเหตุ: ค่านี้จะกําหนดไว้เมื่อฟังก์ชันกลับมาสําเร็จเท่านั้น
แสดงผลค่า
WEAVE_NO_ERROR
หากเข้ารหัสโครงสร้างข้อมูลใบรับรองการเข้าถึง CASE สําเร็จ
tlv-errors
มีข้อผิดพลาดในการอ่านหรือเขียน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

อ่านโทเค็นเพื่อการเข้าถึงของ Weave และเขียนโครงสร้างข้อมูล CASE CertificateTLV ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง

โดยฟังก์ชันนี้จะอ่านโทเค็นเพื่อการเข้าถึงของ Weave จาก TLVReader ที่ระบุ และเขียน TLV สําหรับโครงสร้างข้อมูลใบรับรอง CASE ของ Weave ไปยัง TLVWriter ช่อง EntityCertificate ภายในโครงสร้าง CertificateInfo มีการตั้งค่าเป็นใบรับรองโทเค็นเพื่อการเข้าถึง และตั้งค่าช่อง CertificateCertificates (หากมี) เป็นช่องที่เกี่ยวข้องภายในโทเค็นเพื่อการเข้าถึง

รายละเอียด
พารามิเตอร์
[in] reader
TLVReader อยู่ที่โทเค็นเพื่อการเข้าถึงของ Weave
[in] writer
TLVWriter ที่จะใช้บันทึกข้อมูลใบรับรอง CASE เอาต์พุต
แสดงผลค่า
WEAVE_NO_ERROR
หากเข้ารหัสโครงสร้างข้อมูลใบรับรองการเข้าถึง CASE สําเร็จ
tlv-errors
มีข้อผิดพลาดในการอ่านหรือเขียน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

ตัวแปลงคีย์ตัวแปลง

WEAVE_ERROR ConvertAuthorityKeyIdentifierExtension(
  ASN1Reader & reader,
  TLVWriter & writer
)

แปลงใบรับรอง

WEAVE_ERROR ConvertCertificate(
  ASN1Reader & reader,
  TLVWriter & writer
)

ชื่อที่แปลงแล้ว

WEAVE_ERROR ConvertDistinguishedName(
  ASN1Reader & reader,
  TLVWriter & writer,
  uint64_t tag
)

แปลงเป็นลายเซ็น DSAEC

WEAVE_ERROR ConvertECDSASignature_DERToWeave(
  const uint8_t *sigBuf,
  uint8_t sigLen,
  TLVWriter & writer,
  uint64_t tag
)

แปลงส่วนขยาย

WEAVE_ERROR ConvertExtension(
  ASN1Reader & reader,
  TLVWriter & writer
)

แปลงส่วนขยาย

WEAVE_ERROR ConvertExtensions(
  ASN1Reader & reader,
  TLVWriter & writer
)

แปลงPublicPublicKeyInfo

WEAVE_ERROR ConvertSubjectPublicKeyInfo(
  ASN1Reader & reader,
  TLVWriter & writer
)

ความถูกต้องของ Conversion

WEAVE_ERROR ConvertValidity(
  ASN1Reader & reader,
  TLVWriter & writer
)

แปลง WeaveCertToX509Cert

WEAVE_ERROR ConvertWeaveCertToX509Cert(
  const uint8_t *weaveCert,
  uint32_t weaveCertLen,
  uint8_t *x509CertBuf,
  uint32_t x509CertBufSize,
  uint32_t & x509CertLen
)

แปลงX509CertToWeaveCert

WEAVE_ERROR ConvertX509CertToWeaveCert(
  const uint8_t *x509Cert,
  uint32_t x509CertLen,
  uint8_t *weaveCertBuf,
  uint32_t weaveCertBufSize,
  uint32_t & weaveCertLen
)

ตัวแปลงคีย์ตัวถอดรหัส DecodeConvertAuthority

WEAVE_ERROR DecodeConvertAuthorityKeyIdentifierExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ส่วนขยายที่แปลงรหัสพื้นฐาน

WEAVE_ERROR DecodeConvertBasicConstraintsExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ถอดรหัสตัวแปลง

WEAVE_ERROR DecodeConvertCert(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ยกเลิกการแปลงรหัส

WEAVE_ERROR DecodeConvertDN(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveDN & dn
)

ลายเซ็น DecodeConvertECDSA

WEAVE_ERROR DecodeConvertECDSASignature(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ถอดรหัสตัวแปลงคีย์การใช้งานแบบขยาย

WEAVE_ERROR DecodeConvertExtendedKeyUsageExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ส่วนขยายที่แปลงโค้ดแล้ว

WEAVE_ERROR DecodeConvertExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ถอดรหัสตัวแปลงรหัส

WEAVE_ERROR DecodeConvertExtensions(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ถอดรหัสตัวแปลงคีย์

WEAVE_ERROR DecodeConvertKeyUsageExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ลายเซ็น DecodeConvertRSA

WEAVE_ERROR DecodeConvertRSASignature(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ตัวแปลงรหัสคีย์ตัวแปลง

WEAVE_ERROR DecodeConvertSubjectKeyIdentifierExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ยกเลิกการแปลงรหัสสาธารณะของคีย์

WEAVE_ERROR DecodeConvertSubjectPublicKeyInfo(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ถอดรหัสตัวแปลงTBTB

WEAVE_ERROR DecodeConvertTBSCert(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

ความถูกต้องของการถอดรหัสโค้ด

WEAVE_ERROR DecodeConvertValidity(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

คําอธิบายลายเซ็นอิเล็กทรอนิกส์

WEAVE_ERROR DecodeCopyECDSASignature_DER(
  const uint8_t *sigBuf,
  uint8_t sigLen,
  EncodedECDSASignature & sig
)

การรับรอง WeaveCert

WEAVE_ERROR DecodeWeaveCert(
  const uint8_t *weaveCert,
  uint32_t weaveCertLen,
  WeaveCertificateData & certData
)

การรับรอง WeaveCert

WEAVE_ERROR DecodeWeaveCert(
  TLVReader & reader,
  WeaveCertificateData & certData
)

การถอดรหัส WeaveDN

WEAVE_ERROR DecodeWeaveDN(
  TLVReader & reader,
  WeaveDN & dn
)

ลายเซ็น DecodeWeaveECDSA

WEAVE_ERROR DecodeWeaveECDSASignature(
  TLVReader & reader,
  EncodedECDSASignature & sig
)

คีย์การเข้ารหัสของ WeaveEC

NL_DLL_EXPORT WEAVE_ERROR DecodeWeaveECPrivateKey(
  const uint8_t *buf,
  uint32_t len,
  uint32_t & weaveCurveId,
  EncodedECPublicKey & pubKey,
  EncodedECPrivateKey & privKey
)

อธิบาย WeaveCertId

const char * DescribeWeaveCertId(
  OID attrOID,
  uint64_t weaveCertId
)

กําหนดประเภทใบรับรอง

WEAVE_ERROR DetermineCertType(
  WeaveCertificateData & cert
)

ระบุประเภททั่วไปของใบรับรอง Weave

ฟังก์ชันนี้จะทําการประเมินทั่วไปของประเภทใบรับรองตามโครงสร้างของ DN เรื่อง และส่วนขยายที่มี แอปพลิเคชันจะลบล้างการลบล้างการประเมินนี้ได้โดยการตั้งค่า cert.CertType เป็นค่าอื่น รวมถึงค่าที่แอปพลิเคชันกําหนด

โดยทั่วไปแล้ว แอปพลิเคชันจะเชื่อถือใบรับรองการเพียร์หากเชนกับใบรับรองรูทที่เชื่อถือได้เท่านั้น แต่ประเภทที่กําหนดให้กับใบรับรองอาจส่งผลต่อธรรมชาติของความน่าเชื่อถือนี้ เช่น อนุญาตหรือบล็อกการเข้าถึงฟีเจอร์บางอย่าง ด้วยเหตุนี้ การเปลี่ยนแปลงอัลกอริทึมนี้จึงอาจส่งผลกระทบอย่างมากต่อ CATSTRIPHIC และผลกระทบต่อระบบโดยรวมอย่างมาก และไม่ควรทําความเข้าใจถึงผลที่จะเกิดขึ้นอย่างละเอียด

หมายเหตุ: ใบรับรองโทเค็นเพื่อการเข้าถึงจะแยกแยะได้จากโครงสร้างของใบรับรองเพียงอย่างเดียว ดังนั้นฟังก์ชันนี้จึงไม่ตั้งค่า cert.CertType = kCertType_AccessToken

ลายเซ็น EncodeWeaveECDSA

WEAVE_ERROR EncodeWeaveECDSASignature(
  TLVWriter & writer,
  EncodedECDSASignature & sig,
  uint64_t tag
)

คีย์การเข้ารหัส EnaWeECEC

NL_DLL_EXPORT WEAVE_ERROR EncodeWeaveECPrivateKey(
  uint32_t weaveCurveId,
  const EncodedECPublicKey *pubKey,
  const EncodedECPrivateKey & privKey,
  uint8_t *outBuf,
  uint32_t outBufSize,
  uint32_t & outLen
)

ดึง CertCertFromAccessToken

WEAVE_ERROR ExtractCertFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer,
  uint64_t tag
)

อ่านโทเค็นเพื่อการเข้าถึงของ Weave และแยกใบรับรองโทเค็นการเข้าถึง

ฟังก์ชันนี้จะอ่านโทเค็นเพื่อการเข้าถึงของ Weave จาก TLVReader และเขียนใบรับรองโทเค็นการเข้าถึงไปยัง TLVWriter ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] reader
TLVReader อยู่ที่โทเค็นเพื่อการเข้าถึงของ Weave
[in] writer
TLVWriter ที่จะเขียนใบรับรอง
[in] tag
แท็ก TLV ที่จะใช้เมื่อเขียนใบรับรอง
แสดงผลค่า
WEAVE_NO_ERROR
หากเข้ารหัสโครงสร้างข้อมูลใบรับรองการเข้าถึง CASE สําเร็จ
tlv-errors
มีข้อผิดพลาดในการอ่านหรือเขียน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

ดึง คีย์ส่วนตัวจากโทเค็นการเข้าถึง

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  uint8_t *privKeyBuf,
  uint16_t privKeyBufSize,
  uint16_t & privKeyLen
)

อ่านโทเค็นเพื่อการเข้าถึงของ Weave และดึงคีย์ส่วนตัว

โดยฟังก์ชันนี้ถอดรหัสโทเค็นการเข้าถึงของ Weave และแยกช่องคีย์ส่วนตัวออกจากโทเค็น

รายละเอียด
พารามิเตอร์
accessToken
ตัวชี้ไปยังบัฟเฟอร์ที่มีโทเค็นเพื่อการเข้าถึง Weave Access Token
accessTokenLen
ความยาวของโทเค็นเพื่อการเข้าถึงที่เข้ารหัส
privKeyBuf
ตัวชี้ไปยังบัฟเฟอร์ที่ควรเข้ารหัสโครงสร้างคีย์ส่วนตัว
privKeyBufSize
ขนาดของบัฟเฟอร์ที่ชี้ไปที่ privKeyBuf
privKeyLen
ระบบจะกําหนดการอ้างอิงจํานวนเต็มเป็นความยาวของคีย์ส่วนตัว หมายเหตุ: ค่านี้จะกําหนดไว้เมื่อฟังก์ชันกลับมาสําเร็จเท่านั้น
แสดงผลค่า
WEAVE_NO_ERROR
หากดึงคีย์ส่วนตัวสําเร็จ
tlv-errors
มีข้อผิดพลาดในการอ่านหรือเขียน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

ดึง คีย์ส่วนตัวจากโทเค็นการเข้าถึง

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

อ่านโทเค็นเพื่อการเข้าถึงของ Weave และดึงคีย์ส่วนตัว

โดยฟังก์ชันนี้ถอดรหัสโทเค็นการเข้าถึงของ Weave และแยกช่องคีย์ส่วนตัวออกจากโทเค็น

รายละเอียด
พารามิเตอร์
[in] reader
TLVReader อยู่ที่โทเค็นเพื่อการเข้าถึงของ Weave
[in] writer
TLVWriter ที่จะเขียนคีย์ส่วนตัวไว้
แสดงผลค่า
WEAVE_NO_ERROR
หากดึงคีย์ส่วนตัวสําเร็จ
tlv-errors
มีข้อผิดพลาดในการอ่านหรือเขียน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

SignatureAndEncodeWeaveECDSASignature

WEAVE_ERROR GenerateAndEncodeWeaveECDSASignature(
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *signingKey,
  uint16_t signingKeyLen
)

สร้างและเข้ารหัสลายเซ็น Weave ECDSA

คํานวณลายเซ็น ECDSA โดยใช้แฮชคีย์ส่วนตัวและข้อความที่กําหนด และเขียนลายเซ็นเป็นโครงสร้าง Weave ECDSA ของลายเซ็นที่เขียนไปยัง TLV ที่ระบุด้วยแท็กที่ระบุ

รายละเอียด
พารามิเตอร์
[in] writer
ออบเจ็กต์ TLVWriter ที่ควรเขียนลายเซ็นที่เข้ารหัส
[in] tag
แท็ก TLV เพื่อเชื่อมโยงกับโครงสร้างลายเซ็นที่เข้ารหัส
[in] msgHash
บัฟเฟอร์ที่มีแฮชของข้อความที่จะลงนาม
[in] msgHashLen
ความยาวของไบต์ของแฮชข้อความ
[in] signingKey
บัฟเฟอร์ที่มีคีย์ส่วนตัวที่จะใช้สร้างลายเซ็น คีย์ส่วนตัวควรเข้ารหัสเป็นโครงสร้าง Weave EllipticCurvePrivateKey TLV
[in] signingKeyLen
ความยาวของไบต์ของคีย์ส่วนตัวที่เข้ารหัส
แสดงผลค่า
WEAVE_NO_ERROR
หากดําเนินการสําเร็จ
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave ที่เกี่ยวข้องกับการถอดรหัสคีย์ส่วนตัว การสร้างลายเซ็น หรือการเข้ารหัสลายเซ็น

GenerateOperationalDeviceCert

NL_DLL_EXPORT WEAVE_ERROR GenerateOperationalDeviceCert(
  uint64_t deviceId,
  EncodedECPublicKey & devicePubKey,
  uint8_t *cert,
  uint16_t certBufSize,
  uint16_t & certLen,
  GenerateECDSASignatureFunct genCertSignature
)

สร้างใบรับรองอุปกรณ์การดําเนินการ Weave

โดยฟังก์ชันนี้จะสร้างใบรับรองการดําเนินงานแบบลงนามด้วยตนเองของ Weave ที่เข้ารหัสในรูปแบบ Weave TLV

รายละเอียด
พารามิเตอร์
deviceId
สานรหัสอุปกรณ์
devicePubKey
สานคีย์สาธารณะของอุปกรณ์ปฏิบัติการ
cert
ตัวชี้ไปยังบัฟเฟอร์ที่สร้างใบรับรองสําหรับเขียน
certBufSize
ความยาวของไบต์ของบัฟเฟอร์ใบรับรองที่ระบุ
certLen
ความยาวของไบต์ในหน่วยใบรับรอง
genCertSignature
ตัวชี้ไปยังฟังก์ชันที่สร้างลายเซ็น ECDSA ในแฮชใบรับรองที่ระบุโดยใช้คีย์ส่วนตัวของอุปกรณ์ปฏิบัติการ
แสดงผลค่า
WEAVE_NO_ERROR
หากสร้างใบรับรอง Weave เรียบร้อยแล้ว

รับ WeaveSignatureAlgo

WEAVE_ERROR GetWeaveSignatureAlgo(
  const uint8_t *sig,
  uint16_t sigLen,
  OID & sigAlgoOID
)

เยื้อง

void Indent(
  FILE *out,
  uint16_t count
)

แทรก CertificateCertificatesIntoWeaveSignature

WEAVE_ERROR InsertRelatedCertificatesIntoWeaveSignature(
  uint8_t *sigBuf,
  uint16_t sigLen,
  uint16_t sigBufLen,
  const uint8_t *relatedCerts,
  uint16_t relatedCertsLen,
  uint16_t & outSigLen
)

แท็กส่วนขยายใบรับรอง

bool IsCertificateExtensionTag(
  uint64_t tag
)

ชุดตามมาตรฐาน

bool IsCurveInSet(
  uint32_t curveId,
  uint8_t curveSet
)

รองรับเส้นโค้ง

bool IsSupportedCurve(
  uint32_t curveId
)

เวอร์ชัน WeaveIdX509 Attr

bool IsWeaveIdX509Attr(
  OID oid
)

WeaveX509Attr

bool IsWeaveX509Attr(
  OID oid
)

CertTokenTokenCerts ในการโหลด

WEAVE_ERROR LoadAccessTokenCerts(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  WeaveCertificateSet & certSet,
  uint16_t decodeFlags,
  WeaveCertificateData *& accessTokenCert
)

โหลดใบรับรองในโทเค็นเพื่อการเข้าถึงลงในชุดใบรับรอง Weave

ฟังก์ชันนี้ถอดรหัสโทเค็นเพื่อการเข้าถึงของ Weave และโหลดใบรับรองโทเค็นเพื่อการเข้าถึงไว้ในออบเจ็กต์ชุดใบรับรอง Weave ที่ระบุ หากโทเค็นเพื่อการเข้าถึงมีใบรับรองที่เกี่ยวข้องอย่างน้อย 1 รายการ ระบบจะโหลดโทเค็นดังกล่าวลงในชุดใบรับรองด้วย

รายละเอียด
พารามิเตอร์
accessToken
ตัวชี้ไปยังบัฟเฟอร์ที่มีโทเค็นเพื่อการเข้าถึง Weave Access Token
accessTokenLen
ความยาวของโทเค็นเพื่อการเข้าถึงที่เข้ารหัส
certSet
ใบรับรองที่ตั้งค่าให้กับใบรับรองโทเค็นการเข้าถึงที่ควรโหลด
decodeFlags
การถอดรหัสใบรับรองจะแจ้งว่าควรใช้เมื่อโหลดใบรับรอง
accessTokenCert
การอ้างอิงไปยังตัวชี้ที่จะตั้งค่าเป็นโครงสร้างข้อมูลใบรับรอง Weave สําหรับใบรับรองโทเค็นการเข้าถึง หมายเหตุ: ตัวชี้นี้จะได้รับการตั้งค่าเมื่อฟังก์ชันส่งคืนสําเร็จเท่านั้น
แสดงผลค่า
WEAVE_NO_ERROR
โหลดใบรับรองโทเค็นเพื่อการเข้าถึงเรียบร้อยแล้ว
tlv-errors
มีข้อผิดพลาดในการอ่าน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

CertTokenTokenCerts ในการโหลด

WEAVE_ERROR LoadAccessTokenCerts(
  TLVReader & reader,
  WeaveCertificateSet & certSet,
  uint16_t decodeFlags,
  WeaveCertificateData *& accessTokenCert
)

โหลดใบรับรองในโทเค็นเพื่อการเข้าถึงลงในชุดใบรับรอง Weave

ฟังก์ชันนี้จะอ่านโทเค็นเพื่อการเข้าถึงของ Weave จาก TLVReader และโหลดใบรับรองโทเค็นเพื่อการเข้าถึงลงในออบเจ็กต์ชุดใบรับรอง Weave ที่ระบุ หากโทเค็นเพื่อการเข้าถึงมีใบรับรองที่เกี่ยวข้องอย่างน้อย 1 รายการ ระบบจะโหลดโทเค็นดังกล่าวลงในชุดใบรับรองด้วย

รายละเอียด
พารามิเตอร์
reader
ออบเจ็กต์ TLVReader ที่อยู่ในตําแหน่งก่อนโทเค็นเพื่อการเข้าถึงของ Weave
certSet
ใบรับรองที่ตั้งค่าให้กับใบรับรองโทเค็นการเข้าถึงที่ควรโหลด
decodeFlags
การถอดรหัสใบรับรองจะแจ้งว่าควรใช้เมื่อโหลดใบรับรอง
accessTokenCert
การอ้างอิงไปยังตัวชี้ที่จะตั้งค่าเป็นโครงสร้างข้อมูลใบรับรอง Weave สําหรับใบรับรองโทเค็นการเข้าถึง หมายเหตุ: ค่านี้จะกําหนดไว้เมื่อฟังก์ชันกลับมาสําเร็จเท่านั้น
แสดงผลค่า
WEAVE_NO_ERROR
โหลดใบรับรองโทเค็นเพื่อการเข้าถึงเรียบร้อยแล้ว
tlv-errors
มีข้อผิดพลาดในการอ่าน TLV
cert-errors
แสดงข้อผิดพลาดเกี่ยวกับการถอดรหัสใบรับรอง Weave
platform-errors
ข้อผิดพลาดเฉพาะแพลตฟอร์มอื่นๆ

ทํา DeviceCredentialHash

NL_DLL_EXPORT WEAVE_ERROR MakeDeviceCredentialHash(
  const char *serialNum,
  size_t serialNumLen,
  const char *deviceId,
  size_t deviceIdLen,
  const char *deviceSecret,
  size_t deviceSecretLen,
  char *hashBuf,
  size_t hashBufSize
)

สร้างแฮชการยืนยัน (ในรูปแบบ Base64) สําหรับข้อมูลรับรองอุปกรณ์ตัวควบคุมอุณหภูมิชุดหนึ่ง

รายละเอียด
พารามิเตอร์
[in] serialNum
ตัวชี้ไปยังบัฟเฟอร์ที่มีหมายเลขซีเรียลของอุปกรณ์
[in] serialNumLen
ความยาวของสตริงหมายเลขซีเรียล
[in] deviceId
ตัวชี้ไปยังบัฟเฟอร์ที่มีรหัสอุปกรณ์
[in] deviceIdLen
ความยาวของรหัสอุปกรณ์
[in] deviceSecret
ตัวชี้ไปยังบัฟเฟอร์ที่มีข้อมูลลับของอุปกรณ์
[in] deviceSecretLen
ความยาวของข้อมูลลับของอุปกรณ์
[in,out] hashBuf
ตัวชี้ไปยังบัฟเฟอร์ที่จะได้รับค่าแฮชการยืนยัน ในรูปแบบเลขฐาน 64 สตริงเอาต์พุตจะถูกยกเลิก บัฟเฟอร์นี้ควรใหญ่เท่ากับ kDeviceCredentialHashLength + 1
[in] hashBufSize
ขนาดเป็นไบต์ของบัฟเฟอร์ที่แฮชโดยแฮช Buf
แสดงผลค่า
WEAVE_NO_ERROR
หากวิธีการประสบความสําเร็จ
WEAVE_ERROR_INVALID_STRING_LENGTH
หากค่าใดค่าหนึ่งยาวเกินไป (> 65535)
WEAVE_ERROR_BUFFER_TOO_SMALL
หากบัฟเฟอร์ที่ระบุมีขนาดเล็กเกินกว่าที่จะเก็บค่าแฮชที่สร้างขึ้น

ด้ามจัดสรร

NL_DLL_EXPORT WEAVE_ERROR MakeWeaveProvisioningHash(
  uint64_t nodeId,
  const char *weaveCert,
  size_t weaveCertLen,
  const char *weavePrivKey,
  size_t weavePrivKeyLen,
  const char *pairingCode,
  size_t pairingCodeLen,
  char *hashBuf,
  size_t hashBufSize
)

สร้างแฮชการยืนยัน (ในรูปแบบ Base64) สําหรับชุดข้อมูลการจัดสรร Weave ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] nodeId
รหัสโหนด Weave ของอุปกรณ์
[in] weaveCert
ตัวชี้ไปยังบัฟเฟอร์ที่มีใบรับรองอุปกรณ์ Weave ในรูปแบบ Base64
[in] weaveCertLen
ความยาวของค่าใบรับรองที่ชี้ไปยัง weaveCert
[in] weavePrivKey
ตัวชี้ไปยังบัฟเฟอร์ที่มีคีย์ส่วนตัวของอุปกรณ์ Weave ในรูปแบบ Base64
[in] weavePrivKeyLen
ความยาวของค่าคีย์ส่วนตัวที่ชี้ไปยัง WeavePrivKey
[in] pairingCode
ตัวชี้ไปยังบัฟเฟอร์ที่มีรหัสการจับคู่อุปกรณ์
[in] pairingCodeLen
ความยาวของค่ารหัสการจับคู่ที่ชี้ด้วยการจับคู่ code
[in,out] hashBuf
ตัวชี้ไปยังบัฟเฟอร์ที่จะได้รับค่าแฮชการยืนยัน ในรูปแบบเลขฐาน 64 สตริงเอาต์พุตจะถูกยกเลิก บัฟเฟอร์นี้ควรใหญ่เท่ากับ kWeaveProvisioningHashLength + 1
[in] hashBufSize
ขนาดเป็นไบต์ของบัฟเฟอร์ที่แฮชโดยแฮช Buf
แสดงผลค่า
WEAVE_NO_ERROR
หากวิธีการประสบความสําเร็จ
WEAVE_ERROR_INVALID_STRING_LENGTH
หากค่าใดค่าหนึ่งยาวเกินไป (> 65535)
WEAVE_ERROR_BUFFER_TOO_SMALL
หากบัฟเฟอร์ที่ระบุมีขนาดเล็กเกินกว่าที่จะเก็บค่าแฮชที่สร้างขึ้น

รหัส OIDToWeave CurveId

uint32_t OIDToWeaveCurveId(
  ASN1::OID curveOID
)

PackCertTime

NL_DLL_EXPORT WEAVE_ERROR PackCertTime(
  const ASN1UniversalTime & time,
  uint32_t & packedTime
)

แปลงวันที่/เวลาของใบรับรอง (ในรูปแบบโครงสร้างเวลาสากลของ ASN.1) เป็นวันที่/เวลาใบรับรอง

วันที่/เวลาของใบรับรองที่รวมไว้จะแสดงค่าขนาดกะทัดรัดสําหรับค่าเวลาภายในใบรับรอง (notBefore และ notAfter) โดยไม่ต้องมีการคํานวณปฏิทินแบบเต็มในการตีความ

วันที่/เวลาของใบรับรองที่แพ็กไว้จะมีช่องวันที่/เวลาในปฏิทิน เช่น ปี เดือน วัน ชั่วโมง นาที ที่ 2 บรรจุเป็นจํานวนเต็มที่ไม่มีเครื่องหมาย การแสดงบิตจะจัดระเบียบเพื่อให้การเปรียบเทียบตามลําดับเวลาของค่าวันที่/เวลาตรงกับเวลาที่เรียงลําดับตามธรรมชาติ หากต้องการลดขนาดลง วันที่/เวลาของใบรับรองที่บรรจุจะถูกจํากัดให้เป็นเวลาที่แสดงในวันที่ หรือหลังจากวันที่ 01/01/2000 00:00:00 เมื่ออยู่ภายในจํานวนเต็มที่ไม่มีเครื่องหมาย 32 บิต วันที่/เวลาของใบรับรองที่บรรจุไว้อาจแสดงเวลาจนถึงปี 2133 ได้

รายละเอียด
พารามิเตอร์
time
วันที่/เวลาในปฏิทินที่จะแปลง
packedTime
การอ้างอิงไปยังจํานวนเต็มที่จะได้รับวันที่/เวลาแพ็ก
แสดงผลค่า
WEAVE_NO_ERROR
หากแปลงเวลาป้อนข้อมูลสําเร็จแล้ว
ASN1_ERROR_UNSUPPORTED_ENCODING
หากเวลาป้อนข้อมูลมีค่าปีที่ไม่สามารถแสดงเป็นค่าเวลาของใบรับรองที่บรรจุไว้

แพ็กวันที่รับรอง

NL_DLL_EXPORT uint32_t PackedCertDateToTime(
  uint16_t packedDate
)

แปลงวันที่ของใบรับรองที่บรรจุให้เป็นวันที่/เวลาของใบรับรองที่บรรจุในนั้น โดยที่ส่วนเวลาของค่าถูกตั้งค่าเป็น 00:00:00

รายละเอียด
พารามิเตอร์
packedDate
วันที่ของใบรับรองที่บรรจุในการแปลง
การคืนสินค้า
วันที่/เวลาของใบรับรองแพ็กเก็ตที่เกี่ยวข้อง

วันที่รับรองแบบบรรจุหีบห่อ

NL_DLL_EXPORT uint16_t PackedCertTimeToDate(
  uint32_t packedTime
)

แปลงวันที่/เวลาของใบรับรองที่บรรจุให้เป็นวันที่ของใบรับรองที่บรรจุไว้

วันที่ของใบรับรองที่แพ็กไว้จะมีช่องของวันตามปฏิทิน เดือน วันที่บรรจุวันที่เป็นจํานวนเต็มที่ไม่มีเครื่องหมาย บิตจะจัดระเบียบเพื่อให้การเปรียบเทียบวันที่ของค่าที่บรรจุแบบธรรมดาตรงกับลําดับตามธรรมชาติของวันที่ที่สอดคล้องกัน หากต้องการลดขนาดลง วันที่ของใบรับรองที่รวมไว้จะจํากัดเฉพาะในวันที่ 2000/01/2000 หรือหลังจากนั้น เมื่ออยู่ภายในจํานวนเต็ม 16 บิตที่ไม่มีเครื่องหมาย วันที่ของใบรับรองที่แพ็คข้อมูลอาจแสดงวันที่จนถึงปี 2176

รายละเอียด
พารามิเตอร์
packedTime
วันที่/เวลาของใบรับรองที่บรรจุการแปลงค่า
การคืนสินค้า
วันที่ของใบรับรองแพ็กเก็ตที่เกี่ยวข้อง

แอตทริบิวต์ ParseWeaveId

WEAVE_ERROR ParseWeaveIdAttribute(
  ASN1Reader & reader,
  uint64_t & weaveIdOut
)

พิมพ์สิ่งพิมพ์

NL_DLL_EXPORT void PrintCert(
  FILE *out,
  const WeaveCertificateData & cert,
  const WeaveCertificateSet *certSet,
  uint16_t indent,
  bool verbose
)

พิมพ์ PrintCertArray

WEAVE_ERROR PrintCertArray(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

การอ้างอิงฉบับพิมพ์

WEAVE_ERROR PrintCertReference(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

ประเภทใบรับรอง

void PrintCertType(
  FILE *out,
  uint8_t certType
)

พิมพ์ผลลัพธ์ที่ได้รับการรับรอง

NL_DLL_EXPORT void PrintCertValidationResults(
  FILE *out,
  const WeaveCertificateSet & certSet,
  const ValidationContext & validContext,
  uint16_t indent
)

ลายเซ็น PrintECDSA

WEAVE_ERROR PrintECDSASignature(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

พิมพ์ HexField

void PrintHexField(
  FILE *out,
  const char *name,
  uint16_t indent,
  uint16_t count,
  const uint8_t *data
)

วันที่พิมพ์

void PrintPackedDate(
  FILE *out,
  uint16_t t
)

เวลาที่พิมพ์แล้ว

void PrintPackedTime(
  FILE *out,
  uint32_t t
)

พิมพ์ WeaveDN

void PrintWeaveDN(
  FILE *out,
  const WeaveDN & dn
)

พิมพ์ WeaveDN

WEAVE_ERROR PrintWeaveDN(
  FILE *out,
  TLVReader & reader
)

ลายเซ็นของ Weave

WEAVE_ERROR PrintWeaveSignature(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

วินาทีนับจาก EpochToPackedCertTime

NL_DLL_EXPORT uint32_t SecondsSinceEpochToPackedCertTime(
  uint32_t secondsSinceEpoch
)

แปลงจํานวนวินาทีนับตั้งแต่ 1970-01-01 00:00:00 UTC เป็นวันที่/เวลาของใบรับรองที่แพ็กไว้

รายละเอียด
พารามิเตอร์
secondsSinceEpoch
จํานวนวินาทีนับตั้งแต่ 1970-01-01 00:00:00 UTC หมายเหตุ: ค่านี้สามารถทํางานร่วมกับค่าบวกของค่า POSIX time_t ได้จนถึงปี 2105
การคืนสินค้า
วันที่/เวลาของใบรับรองแพ็กเก็ตที่เกี่ยวข้อง

ข้อผิดพลาดของ OpenOpenSSL

WEAVE_ERROR TranslateOpenSSLError(
  WEAVE_ERROR defaultErr
)

ยกเลิก PackCertTime

NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime(
  uint32_t packedTime,
  ASN1UniversalTime & time
)

บรรจุวันที่/เวลาของใบรับรองที่บรรจุในโครงสร้างเวลาสากล ASN.1

รายละเอียด
พารามิเตอร์
packedTime
เวลาที่คลายการแพคใบรับรอง
time
การอ้างอิงไปยังโครงสร้าง ASN1UniversalTime เพื่อรับวันที่/เวลาที่คลายการแพคข้อมูล
แสดงผลค่า
WEAVE_NO_ERROR
หากคลายการแพคข้อมูลอินพุตเรียบร้อยแล้ว

ยืนยันลายเซ็น Weave

NL_DLL_EXPORT WEAVE_ERROR VerifyWeaveSignature(
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *sig,
  uint16_t sigLen,
  WeaveCertificateSet & certSet,
  ValidationContext & certValidContext
)

ยืนยันลายเซ็น Weave

NL_DLL_EXPORT WEAVE_ERROR VerifyWeaveSignature(
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *sig,
  uint16_t sigLen,
  OID expectedSigAlgoOID,
  WeaveCertificateSet & certSet,
  ValidationContext & certValidContext
)

WeaveCurveIdToOID

NL_DLL_EXPORT OID WeaveCurveIdToOID(
  uint32_t weaveCurveId
)