nl:: بافت:: پروفایل ها:: امنیت

این فضای نام شامل تمام رابط های داخل Weave برای نمایه Weave Security است.

خلاصه

شمارش ها

@235 enum
پرچم‌های هدف کلیدی گواهی X.509.
@236 enum
پرچم های استفاده از کلید گواهی X.509.
@237 enum
پرچم های گواهی را ببافید.
@238 enum
پرچم های رمزگشایی گواهی را ببافید.
@239 enum
پرچم های تایید گواهی را ببافید.
@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
با استفاده از کلید خصوصی گره محلی Weave یک امضای ECDSA ایجاد کنید.

متغیرها

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 Certificate می نویسد که حاوی گواهی نامه های توکن دسترسی است.
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)
نوع کلی گواهی بافت را تعیین کنید.
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)
توکن Weave Access را می خواند و کلید خصوصی را استخراج می کند.
ExtractPrivateKeyFromAccessToken ( TLVReader & reader, TLVWriter & writer)
توکن Weave Access را می خواند و کلید خصوصی را استخراج می کند.
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
یک هش تأیید (در قالب پایه 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
یک هش تأیید (در قالب پایه 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
تعداد ثانیه ها از 01-01-1970 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:: بافت:: پروفایل ها:: امنیت:: CertificateKeyId
nl:: بافت:: پروفایل ها:: امنیت:: ValidationContext
nl:: Weave:: پروفایل ها:: امنیت:: WeaveCertificateData
nl:: Weave:: پروفایل ها:: امنیت:: WeaveCertificateSet
nl:: Weave:: پروفایل ها:: امنیت:: WeaveDN
nl:: Weave:: پروفایل ها:: امنیت:: WeaveProvisioningBundle
nl:: Weave:: پروفایل ها:: امنیت:: WeaveSignatureGenerator

با استفاده از یک کلید خصوصی در حافظه، یک WeaveSignature ایجاد می کند.

nl:: Weave:: پروفایل ها:: امنیت:: WeaveSignatureGeneratorBase

قابلیت های عمومی را برای تولید WeaveSignatures ارائه می دهد.

فضاهای نام

nl:: بافت:: پروفایل ها:: امنیت:: AppKeys

این فضای نام شامل تمام رابط‌های موجود در Weave برای کتابخانه کلیدهای برنامه Weave در نمایه امنیتی Weave است.

nl:: بافت:: پروفایل:: امنیت:: CASE

این فضای نام شامل تمام رابط‌های موجود در پروتکل Weave برای Certificate Authenticated Session Establishment ( CASE ) در نمایه امنیتی Weave است.

nl:: بافت:: پروفایل ها:: امنیت:: CertProvisioning

این فضای نام شامل تمام رابط‌های موجود در پروتکل Weave Certificate Provisioning در نمایه امنیتی Weave است.

nl:: بافت:: پروفایل ها:: امنیت:: KeyExport

این فضای نام شامل تمام رابط‌های داخل Weave برای پروتکل صادرات کلید در نمایه امنیتی Weave است.

nl:: بافت:: پروفایل ها:: امنیت:: PASE

این فضای نام شامل تمام رابط‌های داخل Weave برای پروتکل ایجاد جلسه تأیید شده با رمز عبور ( PASE ) در نمایه امنیتی Weave است.

nl:: بافت:: پروفایل ها:: امنیت:: رمزهای عبور

این فضای نام شامل تمام رابط های موجود در Weave برای کتابخانه رمزهای Weave در نمایه امنیتی Weave است.

nl:: بافت:: پروفایل ها:: امنیت:: TAKE

این فضای نام شامل تمام رابط‌های داخل Weave برای پروتکل Token Authenticated Key Exchange ( TAKE ) در نمایه Weave Security است.

شمارش ها

@235

 @235

پرچم‌های هدف کلیدی گواهی X.509.

@236

 @236

پرچم های استفاده از کلید گواهی X.509.

@237

 @237

پرچم های گواهی را ببافید.

حاوی اطلاعات مربوط به گواهینامه ای است که در یک شی WeaveCertSet بارگذاری شده است.

@238

 @238

پرچم های رمزگشایی گواهی را ببافید.

حاوی اطلاعاتی است که نحوه رمزگشایی یک گواهی را مشخص می کند.

@239

 @239

پرچم های تایید گواهی را ببافید.

حاوی اطلاعاتی است که مشخص می کند گواهی چگونه باید اعتبار سنجی شود.

@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)

با استفاده از کلید خصوصی گره محلی Weave یک امضای ECDSA ایجاد کنید.

هنگامی که فراخوانی می شود، پیاده سازی ها باید با استفاده از کلید خصوصی گره، امضایی را روی مقدار هش داده شده محاسبه کنند.

جزئیات
مولفه های
[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 را برای ساختار اطلاعات Weave CASE Certificate رمزگذاری می کند. فیلد EntityCertificate در ساختار CertificateInfo روی گواهی نشانه دسترسی و فیلد RelatedCertificates (در صورت وجود) روی فیلد مربوطه در نشانه دسترسی تنظیم می شود.

جزئیات
مولفه های
accessToken
اشاره گر به یک بافر حاوی یک رمز دسترسی به بافت.
accessTokenLen
طول رمز دسترسی رمزگذاری شده.
certInfoBuf
اشاره گر به بافری که ساختار اطلاعات گواهی CASE باید در آن کدگذاری شود.
certInfoBufSize
اندازه بافری که توسط certInfoBuf به آن اشاره شده است.
certInfoLen
ارجاع به یک عدد صحیح به طول ساختار اطلاعات گواهی کدگذاری شده تنظیم می شود. توجه: این مقدار تنها زمانی تنظیم می شود که تابع با موفقیت برگردد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر ساختار اطلاعات گواهی دسترسی CASE با موفقیت کدگذاری شد.
tlv-errors
خطاهای مربوط به خواندن یا نوشتن TLV .
cert-errors
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
platform-errors
سایر خطاهای پلتفرم خاص.

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

یک توکن دسترسی Weave را می خواند و یک ساختار TLV اطلاعات CASE Certificate می نویسد که حاوی گواهی نامه های توکن دسترسی است.

این تابع یک توکن دسترسی Weave را از یک TLVReader می‌خواند و TLV را برای ساختار اطلاعات Weave CASE Certificate در یک TLVWriter می‌نویسد. فیلد EntityCertificate در ساختار CertificateInfo روی گواهی نشانه دسترسی و فیلد RelatedCertificates (در صورت وجود) روی فیلد مربوطه در نشانه دسترسی تنظیم می شود.

جزئیات
مولفه های
[in] reader
یک TLVReader که روی توکن Weave Access قرار گرفته است.
[in] writer
یک TLVWriter برای ضبط اطلاعات گواهی CASE خروجی.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر ساختار اطلاعات گواهی دسترسی CASE با موفقیت کدگذاری شد.
tlv-errors
خطاهای مربوط به خواندن یا نوشتن TLV .
cert-errors
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
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
)

DecodeConvertECDSASsignature

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
)

DecodeWeaveECDSASامضا

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
)

WeaveCertId را توصیف کنید

const char * DescribeWeaveCertId(
  OID attrOID,
  uint64_t weaveCertId
)

DetermineCertType

WEAVE_ERROR DetermineCertType(
  WeaveCertificateData & cert
)

نوع کلی گواهی بافت را تعیین کنید.

این تابع یک ارزیابی کلی از نوع گواهی را بر اساس ساختار 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
)

یک توکن دسترسی بافت را می خواند و گواهی توکن دسترسی را استخراج می کند.

این تابع یک Token Weave Access را از TLVReader می خواند و گواهی Access Token را در یک TLVWriter مشخص می نویسد.

جزئیات
مولفه های
[در] خواننده
یک TLVReader که روی توکن Weave Access قرار گرفته است.
[در] نویسنده
TLVWriter که گواهینامه روی آن نوشته می شود.
برچسب [در]
تگ TLV که باید هنگام نوشتن گواهی استفاده شود.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر ساختار اطلاعات گواهی دسترسی CASE با موفقیت کدگذاری شد.
tlv-errors
خطاهای مربوط به خواندن یا نوشتن TLV.
خطاهای گواهی
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
خطاهای پلت فرم
سایر خطاهای پلتفرم خاص.

ExtractPrivateKeyFromAccessToken

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

توکن Weave Access را می خواند و کلید خصوصی را استخراج می کند.

این تابع یک Token Weave Access داده شده را رمزگشایی می کند و فیلد کلید خصوصی را از توکن استخراج می کند.

جزئیات
مولفه های
نشانه دسترسی
اشاره گر به یک بافر حاوی یک رمز دسترسی به بافت.
accessTokenLen
طول رمز دسترسی رمزگذاری شده.
privKeyBuf
اشاره گر به بافری که ساختار کلید خصوصی باید در آن کدگذاری شود.
privKeyBufSize
اندازه بافری که توسط privKeyBuf به آن اشاره شده است.
privKeyLen
ارجاع به یک عدد صحیح به طول کلید خصوصی تنظیم می شود. توجه: این مقدار تنها زمانی تنظیم می شود که تابع با موفقیت برگردد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر کلید خصوصی با موفقیت استخراج شد.
tlv-errors
خطاهای مربوط به خواندن یا نوشتن TLV.
خطاهای گواهی
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
خطاهای پلت فرم
سایر خطاهای پلتفرم خاص.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

توکن Weave Access را می خواند و کلید خصوصی را استخراج می کند.

این تابع یک Token Weave Access داده شده را رمزگشایی می کند و فیلد کلید خصوصی را از توکن استخراج می کند.

جزئیات
مولفه های
[در] خواننده
یک TLVReader که روی توکن Weave Access قرار گرفته است.
[در] نویسنده
TLVWriter که کلید خصوصی روی آن نوشته خواهد شد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر کلید خصوصی با موفقیت استخراج شد.
tlv-errors
خطاهای مربوط به خواندن یا نوشتن TLV.
خطاهای گواهی
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
خطاهای پلت فرم
سایر خطاهای پلتفرم خاص.

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 مشخص شده با تگ داده شده می نویسد.

جزئیات
مولفه های
[در] نویسنده
شی TLVWriter که امضای کدگذاری شده باید روی آن نوشته شود.
برچسب [در]
برچسب TLV با ساختار امضای کدگذاری شده مرتبط شود.
[in] msgHash
یک بافر حاوی هش پیامی که باید امضا شود.
[in] msgHashLen
طول هش پیام بر حسب بایت.
[در] signingKey
یک بافر حاوی کلید خصوصی که برای تولید امضا استفاده می شود. انتظار می رود کلید خصوصی به عنوان ساختار Weave EllipticCurvePrivateKey TLV کدگذاری شود.
[در] signingKeyLen
طول کلید خصوصی رمزگذاری شده بر حسب بایت.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر عملیات موفقیت آمیز بود.
دیگر
سایر کدهای خطای 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 کدگذاری شده است.

جزئیات
مولفه های
شناسه دستگاه
شناسه دستگاه عملیاتی بافت
devicePubKey
کلید عمومی دستگاه عملیاتی را ببافید.
گواهی
اشاره گر به بافری که در آن گواهی برای نوشته شدن تولید شده است.
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
)

درج گواهی های مرتبط در امضای Weave

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

IsCertificateExtensionTag

l10n-placeholder63

IsCurveInSet

l10n-placeholder64

IsSupportedCurve

l10n-placeholder65

IsWeaveIdX509Attr

l10n-placeholder66

IsWeaveX509Attr

l10n-placeholder67

LoadAccessTokenCerts

l10n-placeholder68

گواهی ها را در یک نشانه دسترسی در مجموعه گواهی Weave بارگیری کنید.

این تابع یک نشانه دسترسی Weave داده شده را رمزگشایی می کند و گواهی های نشانه دسترسی را در شی مجموعه گواهی Weave مشخص شده بارگذاری می کند. اگر نشانه‌های دسترسی حاوی یک یا چند گواهی مرتبط باشند، در مجموعه گواهی نیز بارگذاری می‌شوند.

جزئیات
مولفه های
نشانه دسترسی
اشاره گر به یک بافر حاوی یک رمز دسترسی به بافت.
accessTokenLen
طول رمز دسترسی رمزگذاری شده.
certSet
مجموعه گواهی که گواهینامه های نشانه دسترسی باید در آن بارگیری شوند.
رمزگشایی پرچم ها
گواهی رمزگشایی پرچم هایی است که باید هنگام بارگیری گواهی ها استفاده شود.
accessTokenCert
یک اشاره به یک اشاره گر که به ساختار داده گواهی Weave برای گواهی نشانه دسترسی تنظیم می شود. توجه: این اشاره گر تنها در صورتی تنظیم می شود که تابع با موفقیت برگردد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر گواهی های نشانه دسترسی با موفقیت بارگیری شدند.
tlv-errors
خطاهای بافت مربوط به خواندن TLV.
خطاهای گواهی
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
خطاهای پلت فرم
سایر خطاهای پلتفرم خاص.

LoadAccessTokenCerts

l10n-placeholder69

گواهی ها را در یک نشانه دسترسی در مجموعه گواهی Weave بارگیری کنید.

این تابع یک نشانه دسترسی Weave را از یک TLVReader مشخص می‌خواند و گواهی‌های نشانه دسترسی را در شی مجموعه گواهی Weave مشخص شده بارگذاری می‌کند. اگر نشانه‌های دسترسی حاوی یک یا چند گواهی مرتبط باشند، در مجموعه گواهی نیز بارگذاری می‌شوند.

جزئیات
مولفه های
خواننده
یک شی TLVReader که بلافاصله قبل از توکن Weave Access قرار دارد.
certSet
مجموعه گواهی که گواهینامه های نشانه دسترسی باید در آن بارگیری شوند.
رمزگشایی پرچم ها
گواهی رمزگشایی پرچم هایی است که باید هنگام بارگیری گواهی ها استفاده شود.
accessTokenCert
یک اشاره به یک اشاره گر که به ساختار داده گواهی Weave برای گواهی نشانه دسترسی تنظیم می شود. توجه: این مقدار تنها زمانی تنظیم می شود که تابع با موفقیت برگردد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر گواهی های نشانه دسترسی با موفقیت بارگیری شدند.
tlv-errors
خطاهای بافت مربوط به خواندن TLV.
خطاهای گواهی
خطاهای بافت مربوط به رمزگشایی گواهی های بافت.
خطاهای پلت فرم
سایر خطاهای پلتفرم خاص.

MakeDeviceCredentialHash

l10n-placeholder70

یک هش تأیید (در قالب پایه 64) برای مجموعه معینی از اعتبار دستگاه ترموستات ایجاد کنید.

جزئیات
مولفه های
[in] serialNum
اشاره گر به بافر حاوی شماره سریال دستگاه.
[در] serialNumLen
طول رشته شماره سریال.
[در] شناسه دستگاه
اشاره گر به بافر حاوی شناسه دستگاه.
[در] deviceIdLen
طول شناسه دستگاه
[در] دستگاه مخفی
اشاره گر به بافر حاوی راز دستگاه.
[در] deviceSecretLen
طول راز دستگاه.
[در، خارج] hashBuf
اشاره‌گر به بافری که مقدار هش تأیید را در قالب پایه ۶۴ دریافت می‌کند. رشته خروجی تهی خواهد شد. این بافر باید حداقل به اندازه kDeviceCredentialHashLength + 1 باشد.
[در] hashBufSize
اندازه در بایت بافر که توسط hashBuf اشاره شده است.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_STRING_LENGTH
اگر یکی از مقادیر ورودی بیش از حد طولانی باشد (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
اگر بافر ارائه شده برای نگهداری مقدار هش تولید شده خیلی کوچک باشد.

MakeWeaveProvisioningHash

l10n-placeholder71

یک هش تأیید (در قالب پایه 64) برای مجموعه ای از اطلاعات تأمین Weave ایجاد کنید.

جزئیات
مولفه های
[in] nodeId
شناسه گره Weave دستگاه.
[در] weaveCert
اشاره گر به بافر حاوی گواهی دستگاه Weave در قالب پایه-64.
[در] weaveCertLen
طول مقدار گواهی که توسط weaveCert نشان داده شده است.
[در] weavePrivKey
اشاره گر به بافر حاوی کلید خصوصی دستگاه Weave در قالب پایه 64.
[در] weavePrivKeyLen
طول مقدار کلید خصوصی که توسط weavePrivKey اشاره شده است.
[در] pairingCode
اشاره گر به بافر حاوی کد جفت شدن دستگاه.
[در] pairingCodeLen
طول مقدار کد جفت شدن که توسط pairingCode اشاره شده است.
[در، خارج] hashBuf
اشاره‌گر به بافری که مقدار هش تأیید را در قالب پایه ۶۴ دریافت می‌کند. رشته خروجی تهی خواهد شد. این بافر باید حداقل به اندازه kWeaveProvisioningHashLength + 1 باشد.
[در] hashBufSize
اندازه در بایت بافر که توسط hashBuf اشاره شده است.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_STRING_LENGTH
اگر یکی از مقادیر ورودی بیش از حد طولانی باشد (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
اگر بافر ارائه شده برای نگهداری مقدار هش تولید شده خیلی کوچک باشد.

OIDToWeaveCurveId

l10n-placeholder72

PackCertTime

l10n-placeholder73

تاریخ/زمان گواهی (به شکل ساختار زمان جهانی ASN.1) را به تاریخ/زمان گواهی بسته بندی شده تبدیل کنید.

تاریخ/زمان‌های گواهی بسته‌بندی شده، نمایش فشرده‌ای برای مقادیر زمانی در گواهی (notBefore و notAfter) ارائه می‌کند که برای تفسیر به ریاضیات تقویم کامل نیاز ندارد.

تاریخ/زمان گواهی بسته بندی شده حاوی فیلدهای تاریخ/timei.e تقویم است. سال، ماه، روز، ساعت، دقیقه، به صورت یک عدد صحیح بدون علامت بسته شده است. نمایش بیت به گونه ای سازماندهی شده است که مقایسه ترتیبی مقادیر تاریخ/زمان بسته بندی شده با ترتیب طبیعی زمان های مربوطه مطابقت دارد. برای کاهش اندازه، تاریخ/زمان‌های گواهی بسته‌بندی شده محدود به نمایش زمان‌هایی است که در یا بعد از 00:00:00 01/01/2000 هستند. هنگامی که در یک عدد صحیح بدون علامت 32 بیتی قرار می گیرد، تاریخ/زمان های گواهی بسته بندی شده می تواند زمان هایی را تا سال 2133 نشان دهد.

جزئیات
مولفه های
زمان
تاریخ/زمان تقویمی که باید تبدیل شود.
packedTime
ارجاع به یک عدد صحیح که تاریخ/زمان بسته بندی شده را دریافت می کند.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر زمان ورودی با موفقیت تبدیل شد.
ASN1_ERROR_UNSUPPORTED_ENCODING
اگر زمان ورودی حاوی یک مقدار سال بود که نمی‌توان آن را در یک مقدار زمانی گواهی بسته‌بندی نشان داد.

PackedCertDateToTime

l10n-placeholder74

تاریخ گواهی بسته بندی شده را به تاریخ/زمان گواهی بسته بندی شده مربوطه تبدیل کنید، جایی که بخش زمانی مقدار روی 00:00:00 تنظیم شده است.

جزئیات
مولفه های
تاریخ بسته بندی شده
تاریخ گواهی بسته بندی شده برای تبدیل.
برمی گرداند
تاریخ/زمان گواهی بسته مربوطه.

PackedCertTimeToDate

l10n-placeholder75

تاریخ/زمان گواهی بسته بندی شده را به تاریخ گواهی بسته بندی شده تبدیل کنید.

تاریخ گواهی بسته بندی شده حاوی فیلدهای تاریخ تقویم سال، ماه، روز بسته بندی شده در یک عدد صحیح بدون علامت است. بیت ها به گونه ای سازماندهی شده اند که مقایسه ترتیبی مقادیر تاریخ بسته بندی شده با ترتیب طبیعی تاریخ های مربوطه مطابقت دارد. برای کاهش اندازه آنها، تاریخ های بسته بندی شده گواهی به نمایش تاریخ های 2000/01/01 یا بعد از آن محدود می شود. هنگامی که در یک عدد صحیح بدون علامت 16 بیتی قرار می گیرد، تاریخ های بسته بندی شده گواهی می توانند تاریخ های تا سال 2176 را نشان دهند.

جزئیات
مولفه های
packedTime
تاریخ/زمان گواهی بسته بندی شده برای تبدیل.
برمی گرداند
تاریخ گواهی بسته مربوطه

ParseWeaveIdAttribute

l10n-placeholder76

PrintCert

l10n-placeholder77

PrintCertArray

l10n-placeholder78

PrintCertReference

l10n-placeholder79

PrintCertType

l10n-placeholder80

PrintCertValidation Results

l10n-placeholder81

چاپECDSASامضا

l10n-placeholder82

PrintHexField

l10n-placeholder83

PrintPackedDate

l10n-placeholder84

PrintPackedTime

l10n-placeholder85

PrintWeaveDN

l10n-placeholder86

PrintWeaveDN

l10n-placeholder87

PrintWeaveSignature

l10n-placeholder88

SecondsSinceEpochToPackedCertTime

l10n-placeholder89

تعداد ثانیه ها از 01-01-1970 00:00:00 UTC را به تاریخ/زمان گواهی بسته بندی شده تبدیل کنید.

جزئیات
مولفه های
secondsSinceEpoch
تعداد ثانیه از 1970-01-01 00:00:00 UTC. توجه: این مقدار با مقادیر مثبت مقدار POSIX time_t تا سال 2105 سازگار است.
برمی گرداند
تاریخ/زمان گواهی بسته مربوطه.

TranslateOpenSSLError

l10n-placeholder90

UnpackCertTime

l10n-placeholder91

تاریخ/زمان گواهی بسته بندی شده را در ساختار زمانی جهانی ASN.1 باز کنید.

جزئیات
مولفه های
packedTime
زمان بسته بندی گواهی برای باز کردن بسته بندی.
زمان
ارجاع به ساختار ASN1UniversalTime برای دریافت تاریخ/زمان بسته بندی نشده.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر زمان ورودی با موفقیت باز شد.

VerifyWeaveSignature

l10n-placeholder92

VerifyWeaveSignature

l10n-placeholder93

WeaveCurveIdToOID

l10n-placeholder94