nl::Weave::Profiles::Security

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

สรุป

การแจงนับ

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

Typedef

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

ตัวแปร

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 และสร้างโครงสร้าง TLV ของข้อมูลใบรับรอง CASE ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง
CASECertInfoFromAccessToken(TLVReader & reader, TLVWriter & writer)
อ่านโทเค็นเพื่อการเข้าถึงของ Weave และเขียนโครงสร้าง TLV ของข้อมูลใบรับรอง CASE ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง
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)
อ่านโทเค็นเพื่อการเข้าถึงและดึงข้อมูลใบรับรองโทเค็นเพื่อการเข้าถึง
ExtractPrivateKeyFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
อ่านโทเค็นเพื่อการเข้าถึงและดึงข้อมูลคีย์ส่วนตัว
ExtractPrivateKeyFromAccessToken(TLVReader & reader, TLVWriter & writer)
อ่านโทเค็นเพื่อการเข้าถึงและดึงข้อมูลคีย์ส่วนตัว
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
สร้างแฮชการยืนยัน (ในรูปแบบ base-64) สำหรับชุดข้อมูลเข้าสู่ระบบของอุปกรณ์ตัวควบคุมอุณหภูมิที่กำหนด
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
สร้างแฮชการยืนยัน (ในรูปแบบ base-64) สำหรับชุดข้อมูลการจัดสรรของ 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::Profiles::Security::WeaveCertificateData
nl::Weave::Profiles::Security::WeaveCertificateSet
nl::Weave::Profiles::Security::WeaveDN
nl::Weave::Profiles::Security::WeaveProvisioningBundle
nl::Weave::Profiles::Security::WeaveSignatureGenerator

สร้าง WeaveSignature โดยใช้คีย์ส่วนตัวในหน่วยความจำ

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

มีฟังก์ชันการทำงานทั่วไปสำหรับการสร้าง WeaveSignatures

เนมสเปซ

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

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

nl::Weave::Profiles::Security::CASE

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

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

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

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

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

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

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

nl::Weave::Profiles::Security::Passcodes

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

nl::Weave::Profiles::Security::TAKE

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

การแจงนับ

@235

 @235

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

@236

 @236

แฟล็กการใช้งานคีย์ใบรับรอง X.509

@237

 @237

ธงใบรับรองการสาน

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

@238

 @238

แฟล็กการถอดรหัสใบรับรองของ Weave

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

@239

 @239

แฟล็กการตรวจสอบใบรับรอง Weave

มีข้อมูลที่ระบุว่าควรตรวจสอบใบรับรองอย่างไร

@240

 @240

@280

 @280

@281

 @281

@282

 @282

@283

 @283

@284

 @284

@285

 @285

@286

 @286

@287

 @287

@288

 @288

@289

 @289

Typedef

GenerateECDSASignatureFunct

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

สร้างลายเซ็น ECDSA โดยใช้คีย์ส่วนตัวของโหนด Weave ในเครื่อง

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

รายละเอียด
พารามิเตอร์
[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 และสร้างโครงสร้าง TLV ของข้อมูลใบรับรอง CASE ที่มีใบรับรองจากโทเค็นเพื่อการเข้าถึง

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

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

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

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

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

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

ConvertAuthorityKeyIdentifierExtension

WEAVE_ERROR ConvertAuthorityKeyIdentifierExtension(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertCertificate

WEAVE_ERROR ConvertCertificate(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertDistinguishedName

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

ConvertECDSASignature_DERToWeave

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

ConvertExtension

WEAVE_ERROR ConvertExtension(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertExtensions

WEAVE_ERROR ConvertExtensions(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertSubjectPublicKeyInfo

WEAVE_ERROR ConvertSubjectPublicKeyInfo(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertValidity

WEAVE_ERROR ConvertValidity(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertWeaveCertToX509Cert

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

ConvertX509CertToWeaveCert

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

DecodeConvertAuthorityKeyIdentifierExtension

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

DecodeConvertBasicConstraintsExtension

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

DecodeConvertCert

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

DecodeConvertDN

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

DecodeConvertECDSASignature

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

DecodeConvertExtendedKeyUsageExtension

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

DecodeConvertExtension

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

DecodeConvertExtensions

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

DecodeConvertKeyUsageExtension

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

DecodeConvertRSASignature

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

DecodeConvertSubjectKeyIdentifierExtension

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

DecodeConvertSubjectPublicKeyInfo

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

DecodeConvertTBSCert

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

DecodeConvertValidity

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

DecodeCopyECDSASignature_DER

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

DecodeWeaveCert

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

DecodeWeaveCert

WEAVE_ERROR DecodeWeaveCert(
  TLVReader & reader,
  WeaveCertificateData & certData
)

DecodeWeaveDN

WEAVE_ERROR DecodeWeaveDN(
  TLVReader & reader,
  WeaveDN & dn
)

DecodeWeaveECDSASignature

WEAVE_ERROR DecodeWeaveECDSASignature(
  TLVReader & reader,
  EncodedECDSASignature & sig
)

DecodeWeaveECPrivateKey

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

DescribeWeaveCertId

const char * DescribeWeaveCertId(
  OID attrOID,
  uint64_t weaveCertId
)

DetermineCertType

WEAVE_ERROR DetermineCertType(
  WeaveCertificateData & cert
)

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

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

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

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

EncodeWeaveECDSASignature

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

EncodeWeaveECPrivateKey

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

ExtractCertFromAccessToken

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

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

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

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

ExtractPrivateKeyFromAccessToken

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

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

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

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

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

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

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

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

GenerateAndEncodeWeaveECDSASignature

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 ECDSASignature ไปยังผู้เขียน TLV ที่ระบุด้วยแท็กดังกล่าว

รายละเอียด
พารามิเตอร์
[in] writer
ออบเจ็กต์ TLVWriter ที่ควรเขียนลายเซ็นที่เข้ารหัส
[in] tag
TLV ที่จะเชื่อมโยงกับโครงสร้างลายเซ็นที่เข้ารหัส
[in] msgHash
บัฟเฟอร์ที่มีแฮชของข้อความที่ต้องลงนาม
[in] msgHashLen
ความยาวเป็นไบต์ของแฮชข้อความ
[in] signingKey
บัฟเฟอร์ที่มีคีย์ส่วนตัวที่จะใช้สร้างลายเซ็น คีย์ส่วนตัวควรเข้ารหัสเป็นโครงสร้าง TLV ของ Weave EllipticCurvePrivateKey
[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
รหัสอุปกรณ์ดำเนินการของ Weave
devicePubKey
Weave คีย์สาธารณะของอุปกรณ์การดำเนินการ
cert
ตัวชี้ไปยังบัฟเฟอร์ที่จะมีการเขียนใบรับรองที่สร้างขึ้น
certBufSize
ความยาวเป็นไบต์ของบัฟเฟอร์ใบรับรองที่ระบุ
certLen
ความยาวเป็นไบต์ของใบรับรองที่สร้างขึ้น
genCertSignature
ตัวชี้ไปยังฟังก์ชันที่สร้างลายเซ็น ECDSA ในแฮชใบรับรองที่ระบุโดยใช้คีย์ส่วนตัวของอุปกรณ์ที่ทำงาน
ผลลัพธ์
WEAVE_NO_ERROR
หากสร้างใบรับรอง Weave สำเร็จ

GetWeaveSignatureAlgo

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

เยื้อง

void Indent(
  FILE *out,
  uint16_t count
)

InsertRelatedCertificatesIntoWeaveSignature

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

IsCertificateExtensionTag

bool IsCertificateExtensionTag(
  uint64_t tag
)

IsCurveInSet

bool IsCurveInSet(
  uint32_t curveId,
  uint8_t curveSet
)

IsSupportedCurve

bool IsSupportedCurve(
  uint32_t curveId
)

IsWeaveIdX509Attr

bool IsWeaveIdX509Attr(
  OID oid
)

IsWeaveX509Attr

bool IsWeaveX509Attr(
  OID oid
)

LoadAccessTokenCerts

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

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

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

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

LoadAccessTokenCerts

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

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

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

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

MakeDeviceCredentialHash

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
)

สร้างแฮชการยืนยัน (ในรูปแบบ base-64) สำหรับชุดข้อมูลเข้าสู่ระบบของอุปกรณ์ตัวควบคุมอุณหภูมิที่กำหนด

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

MakeWeaveProvisioningHash

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
)

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

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

OIDToWeaveCurveId

uint32_t OIDToWeaveCurveId(
  ASN1::OID curveOID
)

PackCertTime

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

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

วันที่/เวลาของใบรับรองที่บรรจุมาจะแสดงค่าเวลาภายในใบรับรอง (notbefore และ notAfter) ที่ไม่ต้องมีคณิตศาสตร์เต็มรูปแบบในปฏิทินเพื่อตีความ

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

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

PackedCertDateToTime

NL_DLL_EXPORT uint32_t PackedCertDateToTime(
  uint16_t packedDate
)

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

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

PackedCertTimeToDate

NL_DLL_EXPORT uint16_t PackedCertTimeToDate(
  uint32_t packedTime
)

แปลงวันที่/เวลาของใบรับรองที่แพคเป็นวันที่ของใบรับรองที่แพ็ค

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

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

ParseWeaveIdAttribute

WEAVE_ERROR ParseWeaveIdAttribute(
  ASN1Reader & reader,
  uint64_t & weaveIdOut
)

PrintCert

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
)

PrintCertReference

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

PrintCertType

void PrintCertType(
  FILE *out,
  uint8_t certType
)

PrintCertValidationResults

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

PrintECDSASignature

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

PrintHexField

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

PrintPackedDate

void PrintPackedDate(
  FILE *out,
  uint16_t t
)

PrintPackedTime

void PrintPackedTime(
  FILE *out,
  uint32_t t
)

PrintWeaveDN

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

PrintWeaveDN

WEAVE_ERROR PrintWeaveDN(
  FILE *out,
  TLVReader & reader
)

PrintWeaveSignature

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

SecondsSinceEpochToPackedCertTime

NL_DLL_EXPORT uint32_t SecondsSinceEpochToPackedCertTime(
  uint32_t secondsSinceEpoch
)

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

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

TranslateOpenSSLError

WEAVE_ERROR TranslateOpenSSLError(
  WEAVE_ERROR defaultErr
)

UnpackCertTime

NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime(
  uint32_t packedTime,
  ASN1UniversalTime & time
)

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

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

VerifyWeaveSignature

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

VerifyWeaveSignature

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
)