nl::Weave::Profiles::Security

מרחב השמות הזה כולל את כל הממשקים ב-Weave לפרופיל האבטחה של Weave.

סיכום

ערכים של ספירה

@235 טיפוסים בני מנייה (enum)
סימונים למטרה של מפתחות אישור X.509.
@236 טיפוסים בני מנייה (enum)
סימונים לשימוש במפתחות אישור מסוג X.509
@237 טיפוסים בני מנייה (enum)
סימונים לאישורי Weave.
@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)

Typedefs

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)
קורא אסימון גישה של 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
תיצור גיבוב לאימות (בפורמט 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 לפרוטוקול Password Authenticated Session Association (PASE) בפרופיל האבטחה של Weave.

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

מרחב השמות הזה כולל את כל הממשקים ב-Weave של ספריית קודי הגישה של Weave, בתוך פרופיל האבטחה של Weave.

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

מרחב השמות הזה כולל את כל הממשקים ב-Weave לפרוטוקול Token Authenticated Key Exchange (TAKE) שבפרופיל האבטחה של Weave.

ערכים של ספירה

235@

 @235

סימונים למטרה של מפתחות אישור X.509.

@236

 @236

סימונים לשימוש במפתחות אישור מסוג X.509

@237

 @237

סימונים לאישורי Weave.

מכיל מידע על אישור שנטען לאובייקט 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

Typedefs

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 Access ומקודדת את TLV עבור מבנה של פרטי אישור מסוג CASE ב-Weave. השדה EntityCertificate שבמבנה CertificateInfo מוגדר לאישור של אסימון הגישה, והשדה relatedCertifications (אם קיים) מוגדר לשדה המתאים בתוך אסימון הגישה.

פרטים
פרמטרים
accessToken
מצביע למאגר נתונים זמני שמכיל אסימון גישה מקודד ל-Weave Access.
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 וכתיבת מבנה TLV של פרטי אישור מסוג CASE, שמכיל את האישורים מאסימון הגישה.

הפונקציה הזו קוראת אסימון גישה של Weave מ-TLVReader נתון וכותבת את ה-TLV עבור מבנה של פרטי אישור CASE של Weave, ל-TLVWriter. השדה EntityCertificate שבמבנה CertificateInfo מוגדר לאישור של אסימון הגישה, והשדה relatedCertifications (אם קיים) מוגדר לשדה המתאים בתוך אסימון הגישה.

פרטים
פרמטרים
[in] reader
TLVReader שממוקם על אסימון הגישה של Weave.
[in] writer
TLVWriter שישמש לתיעוד פרטי אישור CASE פלט.
מוחזר ערכים
WEAVE_NO_ERROR
אם מבנה פרטי האישור של CASE של הגישה קודד בהצלחה.
tlv-errors
שזירה של שגיאות שקשורות לקריאה או לכתיבה של TLV.
cert-errors
אריגת שגיאות שקשורות לפענוח אישורי 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 כערך אחר, כולל ערך שהוגדר על ידי האפליקציה.

באופן כללי, אפליקציות סומכים על אישור של עמית רק אם הוא משורשר לאישור בסיס מהימן. עם זאת, הסוג שמוקצה לאישור יכול להשפיע על אופי האמון הזה, למשל. כדי לאשר או לחסום גישה לתכונות מסוימות. לכן, שינויים באלגוריתם הזה עשויים להיות בעלי השפעות קטסטרופליות מאוד וקטסטרופליות על האבטחה הכוללת של המערכת, ואין לבצע אותם ללא הבנה מעמיקה של ההשלכות.

הערה: אי אפשר להבדיל בין אישורים של אסימון גישה רק לפי המבנה שלהם. לכן, הפונקציה הזו אף פעם לא מגדירה 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 ומחלץ את אישור אסימון הגישה.

הפונקציה הזו קוראת אסימון גישה של 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
שגיאות אחרות ספציפיות לפלטפורמה.

ExtractPrivateKeyFromAccessToken

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

קורא אסימון גישה של Weave ושולף את המפתח הפרטי.

הפונקציה הזו מפענחת אסימון גישה נתון ל-Weave Access ומחלצת את שדה המפתח הפרטי מהאסימון.

פרטים
פרמטרים
accessToken
מצביע למאגר נתונים זמני שמכיל אסימון גישה מקודד ל-Weave Access.
accessTokenLen
האורך של אסימון הגישה המקודד.
privKeyBuf
מצביע למאגר נתונים זמני שבו צריך לקודד את מבנה המפתח הפרטי.
privKeyBufSize
גודל מאגר הנתונים הזמני שאליו מצביע privKeyBuf.
privKeyLen
ההפניה למספר שלם תיקבע לאורך של המפתח הפרטי. הערה: הערך הזה מוגדר רק כשהפונקציה חוזרת בהצלחה.
מוחזר ערכים
WEAVE_NO_ERROR
אם המפתח הפרטי חולץ בהצלחה.
tlv-errors
שזירה של שגיאות שקשורות לקריאה או לכתיבה של TLV.
cert-errors
אריגת שגיאות שקשורות לפענוח אישורי Weave.
platform-errors
שגיאות אחרות ספציפיות לפלטפורמה.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

קורא אסימון גישה של Weave ושולף את המפתח הפרטי.

הפונקציה הזו מפענחת אסימון גישה נתון ל-Weave Access ומחלצת את שדה המפתח הפרטי מהאסימון.

פרטים
פרמטרים
[in] reader
TLVReader שממוקם על אסימון הגישה של Weave.
[in] writer
TLVWriter שאליו ייכתב המפתח הפרטי.
מוחזר ערכים
WEAVE_NO_ERROR
אם המפתח הפרטי חולץ בהצלחה.
tlv-errors
שזירה של שגיאות שקשורות לקריאה או לכתיבה של TLV.
cert-errors
אריגת שגיאות שקשורות לפענוח אישורי 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 באמצעות מפתח פרטי וגיבוב (hash) של הודעה, וכותבת את החתימה כמבנה Wave 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 שמקודד בפורמט TLV של Weave.

פרטים
פרמטרים
deviceId
שזירה של מזהה המכשיר התפעולי.
devicePubKey
שזירה של המפתח הציבורי של המכשיר התפעולי.
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 שצוין. אם אסימוני הגישה מכילים אישור קשור אחד או יותר, הם נטענים גם לקבוצת האישורים.

פרטים
פרמטרים
accessToken
מצביע למאגר נתונים זמני שמכיל אסימון גישה מקודד ל-Weave Access.
accessTokenLen
האורך של אסימון הגישה המקודד.
certSet
הגדרת האישורים שאליה צריך לטעון את האישורים של אסימון הגישה.
decodeFlags
הדגלים של פענוח הקוד צריך להשתמש בהם כשטוענים את האישורים.
accessTokenCert
הפניה לסמן שיוגדר למבנה הנתונים של אישור Weave עבור אישור אסימון גישה. הערה: המצביע הזה יוגדר רק אם הפונקציה תחזור בהצלחה.
מוחזר ערכים
WEAVE_NO_ERROR
אם האישורים של אסימון הגישה נטענו.
tlv-errors
שזירה של שגיאות שקשורות לקריאת TLV.
cert-errors
אריגת שגיאות שקשורות לפענוח אישורי Weave.
platform-errors
שגיאות אחרות ספציפיות לפלטפורמה.

LoadAccessTokenCerts

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

טוענים את האישורים באסימון גישה לקבוצת אישורים של Weave.

הפונקציה הזו קוראת אסימון גישה של Weave מ-TLVReader נתון וטוענת את האישורים של אסימון הגישה לאובייקט של קבוצת אישורי Weave שצוין. אם אסימוני הגישה מכילים אישור קשור אחד או יותר, הם נטענים גם לקבוצת האישורים.

פרטים
פרמטרים
reader
אובייקט TLVReader שממוקם ממש לפני אסימון גישה של Weave.
certSet
הגדרת האישורים שאליה צריך לטעון את האישורים של אסימון הגישה.
decodeFlags
הדגלים של פענוח הקוד צריך להשתמש בהם כשטוענים את האישורים.
accessTokenCert
הפניה לסמן שיוגדר למבנה הנתונים של אישור Weave עבור אישור אסימון גישה. הערה: הערך הזה מוגדר רק כשהפונקציה חוזרת בהצלחה.
מוחזר ערכים
WEAVE_NO_ERROR
אם האישורים של אסימון הגישה נטענו.
tlv-errors
שזירה של שגיאות שקשורות לקריאת TLV.
cert-errors
אריגת שגיאות שקשורות לפענוח אישורי 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
מצביע למאגר נתונים זמני שיקבל את ערך הגיבוב לאימות, בפורמט base-64. מחרוזת הפלט תפסיק להיות null. מאגר הנתונים הזמני צריך להיות לפחות בגודל של kDeviceCredentialHashLength + 1.
[in] hashBufSize
הגודל בבייטים של מאגר הנתונים הזמני שאליו hashBuf מפנה.
מוחזר ערכים
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 בפורמט base-64.
[in] weaveCertLen
אורך ערך האישור שאליו מפנה WeaveCert.
[in] weavePrivKey
מצביע למאגר נתונים זמני שמכיל את המפתח הפרטי של מכשיר Weave בפורמט base-64.
[in] weavePrivKeyLen
האורך של ערך המפתח הפרטי שאליו מפנה WeavePrivKey.
[in] pairingCode
מצביע למאגר נתונים זמני שמכיל את קוד ההתאמה של המכשיר.
[in] pairingCodeLen
האורך של ערך קוד ההתאמה שאליו מצביע התאמת הקוד.
[in,out] hashBuf
מצביע למאגר נתונים זמני שיקבל את ערך הגיבוב לאימות, בפורמט base-64. מחרוזת הפלט תפסיק להיות null. מאגר הנתונים הזמני צריך להיות לפחות בגודל של kWeaveProvideingHashLength + 1.
[in] hashBufSize
הגודל בבייטים של מאגר הנתונים הזמני שאליו hashBuf מפנה.
מוחזר ערכים
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) שלא דורש ניתוח של הנתונים ביומן מלא.

תאריך/שעה של אישור דחוס מכיל את השדות של תאריך/שעה ביומן, כלומר. שנה, חודש, יום, שעה, דקה, ארוז במספר שלם ללא סימן. ייצוג הביטים מאורגן כך שהשוואות סידוריות של ערכי תאריך/שעה ארוזים יתאימו לסדר הטבעי של השעות המתאימות. כדי להקטין את גודלן, התאריכים או השעות של האישורים הארוזים מוגבלים לייצוג השעות החל מ-1 בינואר 2000 בשעה 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
)

המרה של תאריך/שעה של אישור דחוס לתאריך של אישור דחוס.

תאריך של אישור ארוז מכיל את השדות של dateyear, month, ו-daypacked [מספר שלם לא חתום]. הביטים מאורגנים כך שהשוואות סידוריות של ערכי תאריכים ארוזים מתאימות לסדר הטבעי של התאריכים התואמים. כדי להקטין את גודלן, תאריכי האישורים הארוזים מוגבלים לתאריכים של 1 בינואר 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. הערה: הערך הזה תואם לערכים חיוביים של ערך POSIX time_t, עד שנת 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
)