nl::Weave::Profiles::Security

इस नेमस्पेस में, 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

टाइपडिफ़

GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig) टाइपडिफ़
लोकल वीव नोड की निजी कुंजी का इस्तेमाल करके ईसीडीएसए हस्ताक्षर जनरेट करें.

वैरिएबल

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

फ़ंक्शन

CASECertInfoFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen)
वीव ऐक्सेस टोकन को पढ़ता है और CASE सर्टिफ़िकेट की जानकारी TLV स्ट्रक्चर बनाता है, जिसमें ऐक्सेस टोकन से मिले सर्टिफ़िकेट होते हैं.
CASECertInfoFromAccessToken(TLVReader & reader, TLVWriter & writer)
वीव ऐक्सेस टोकन को पढ़ता है और CASE सर्टिफ़िकेट की जानकारी TLV स्ट्रक्चर लिखता है, जिसमें ऐक्सेस टोकन से मिले सर्टिफ़िकेट होते हैं.
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)
वीव ऐक्सेस टोकन को पढ़ता है और निजी पासकोड को निकालता है.
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
Thermostat डिवाइस के किसी दिए गए क्रेडेंशियल के सेट के लिए, पुष्टि करने वाला हैश (बेस-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
Weave की प्रॉविज़निंग की जानकारी के दिए गए सेट के लिए, वेरिफ़िकेशन हैश (बेस-64 फ़ॉर्मैट में) जनरेट करें.
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 यूटीसी के बाद से सेकंड की संख्या को, पैक किए गए सर्टिफ़िकेट की तारीख/समय में बदलें.
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 ऐप्लिकेशन की लाइब्रेरी के लिए सभी इंटरफ़ेस शामिल हैं.

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

इस नेमस्पेस में, Weave सुरक्षा प्रोफ़ाइल के सर्टिफ़िकेट से ऑथेंटिकेटेड सेशन इस्टैब्लिशमेंट (CASE) प्रोटोकॉल के लिए Weave के सभी इंटरफ़ेस शामिल हैं.

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

इस नेमस्पेस में Weave सिक्योरिटी प्रोफ़ाइल के अंदर Weave सर्टिफ़िकेट प्रॉविज़निंग प्रोटोकॉल के लिए सभी इंटरफ़ेस शामिल हैं.

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

इस नेमस्पेस में, Weave की सुरक्षा प्रोफ़ाइल के मुख्य एक्सपोर्ट प्रोटोकॉल के लिए सभी इंटरफ़ेस शामिल हैं.

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

इस नेमस्पेस में, Weave सिक्योरिटी प्रोफ़ाइल के अंदर, पासवर्ड ऑथेंटिकेटेड सेशन इस्टैब्लिशमेंट (PASE) प्रोटोकॉल के लिए Weave के सभी इंटरफ़ेस शामिल हैं.

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

इस नेमस्पेस में Weave सुरक्षा प्रोफ़ाइल के अंदर Weave पासवर्ड लाइब्रेरी के लिए सभी इंटरफ़ेस शामिल हैं.

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

इस नेमस्पेस में, Weave Security प्रोफ़ाइल के लिए, Weave में टोकन से पुष्टि किए गए की एक्सचेंज (Take) प्रोटोकॉल के लिए सभी इंटरफ़ेस शामिल हैं.

इन्यूमरेशन

@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

टाइपडिफ़

GenerateECDSASignatureFunct

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

लोकल वीव नोड की निजी कुंजी का इस्तेमाल करके ईसीडीएसए हस्ताक्षर जनरेट करें.

लागू किए जाने पर, लागू करने के लिए नोड की निजी कुंजी का इस्तेमाल करके दिए गए हैश मान पर हस्ताक्षर की गणना करनी चाहिए.

ब्यौरा
पैरामीटर
[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
)

वीव ऐक्सेस टोकन को पढ़ता है और CASE सर्टिफ़िकेट की जानकारी TLV स्ट्रक्चर बनाता है, जिसमें ऐक्सेस टोकन से मिले सर्टिफ़िकेट होते हैं.

यह फ़ंक्शन, किसी दिए गए वीव ऐक्सेस टोकन को डीकोड करता है. साथ ही, वीव CASE सर्टिफ़िकेट की जानकारी देने वाले स्ट्रक्चर के लिए, TLV को कोड में बदलता है. CertificateInfo स्ट्रक्चर में मौजूद EntityCertificate फ़ील्ड को, ऐक्सेस टोकन सर्टिफ़िकेट पर सेट किया जाता है. वहीं, relatedCertificates फ़ील्ड (अगर मौजूद हो) को ऐक्सेस टोकन में इससे जुड़े फ़ील्ड पर सेट किया जाता है.

ब्यौरा
पैरामीटर
accessToken
बफ़र का पॉइंटर, जिसमें कोड में बदला गया Weave ऐक्सेस टोकन है.
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
)

वीव ऐक्सेस टोकन को पढ़ता है और CASE सर्टिफ़िकेट की जानकारी TLV स्ट्रक्चर लिखता है, जिसमें ऐक्सेस टोकन से मिले सर्टिफ़िकेट होते हैं.

यह फ़ंक्शन, दिए गए TLVReader के वीव ऐक्सेस टोकन को पढ़ता है और वीव CASE सर्टिफ़िकेट की जानकारी के स्ट्रक्चर के लिए TLVWriter को TLV लिखता है. CertificateInfo स्ट्रक्चर में मौजूद EntityCertificate फ़ील्ड को, ऐक्सेस टोकन सर्टिफ़िकेट पर सेट किया जाता है. वहीं, relatedCertificates फ़ील्ड (अगर मौजूद हो) को ऐक्सेस टोकन में इससे जुड़े फ़ील्ड पर सेट किया जाता है.

ब्यौरा
पैरामीटर
[in] reader
Weave ऐक्सेस टोकन पर एक TLVReader रखा गया है.
[in] writer
आउटपुट CASE सर्टिफ़िकेट की जानकारी रिकॉर्ड करने के लिए, TLVWriter का इस्तेमाल करना.
रिटर्न वैल्यू
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
)

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
)

वीव सर्टिफ़िकेट का सामान्य टाइप पता करना.

यह फ़ंक्शन, सर्टिफ़िकेट के टाइप की सामान्य जांच करता है. यह आकलन, सब्जेक्ट डीएन की बनावट और मौजूद एक्सटेंशन के आधार पर किया जाता है. ऐप्लिकेशन, 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
)

वीव ऐक्सेस टोकन को पढ़ता है और ऐक्सेस टोकन सर्टिफ़िकेट को एक्सट्रैक्ट करता है.

यह फ़ंक्शन, TLVReader के वीव ऐक्सेस टोकन को पढ़ता है और तय किए गए TLVWriter को ऐक्सेस टोकन सर्टिफ़िकेट लिखता है.

ब्यौरा
पैरामीटर
[in] reader
Weave ऐक्सेस टोकन पर एक TLVReader रखा गया है.
[in] writer
एक TLVWriter, जिस पर सर्टिफ़िकेट लिखा जाएगा.
[in] tag
सर्टिफ़िकेट लिखते समय इस्तेमाल किया जाने वाला TLV टैग.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर ऐक्सेस CASE सर्टिफ़िकेट की जानकारी के स्ट्रक्चर को कोड में बदला गया था.
tlv-errors
TLV पढ़ने या लिखने से जुड़ी गड़बड़ियां हो सकती हैं.
cert-errors
वीव सर्टिफ़िकेट को डिकोड करने से जुड़ी गड़बड़ियां.
platform-errors
प्लैटफ़ॉर्म से जुड़ी अन्य गड़बड़ियां.

ExtractPrivateKeyFromAccessToken

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

वीव ऐक्सेस टोकन को पढ़ता है और निजी पासकोड को निकालता है.

यह फ़ंक्शन किसी दिए गए वीव ऐक्सेस टोकन को डीकोड करता है और टोकन से निजी पासकोड फ़ील्ड निकालता है.

ब्यौरा
पैरामीटर
accessToken
बफ़र का पॉइंटर, जिसमें कोड में बदला गया Weave ऐक्सेस टोकन है.
accessTokenLen
कोड में बदले गए ऐक्सेस टोकन की लंबाई.
privKeyBuf
बफ़र का पॉइंटर, जिसमें निजी पासकोड के स्ट्रक्चर को कोड में बदला जाना चाहिए.
privKeyBufSize
बफ़र का साइज़, जिसे privKeyBuf की ओर से दिखाया गया है.
privKeyLen
किसी पूर्णांक का रेफ़रंस, निजी पासकोड की लंबाई पर सेट कर दिया जाएगा. ध्यान दें: यह वैल्यू सिर्फ़ तब सेट की जाती है, जब फ़ंक्शन सही तरीके से रिटर्न करता है.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर निजी कुंजी निकाल दी गई थी.
tlv-errors
TLV पढ़ने या लिखने से जुड़ी गड़बड़ियां हो सकती हैं.
cert-errors
वीव सर्टिफ़िकेट को डिकोड करने से जुड़ी गड़बड़ियां.
platform-errors
प्लैटफ़ॉर्म से जुड़ी अन्य गड़बड़ियां.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

वीव ऐक्सेस टोकन को पढ़ता है और निजी पासकोड को निकालता है.

यह फ़ंक्शन किसी दिए गए वीव ऐक्सेस टोकन को डीकोड करता है और टोकन से निजी पासकोड फ़ील्ड निकालता है.

ब्यौरा
पैरामीटर
[in] reader
Weave ऐक्सेस टोकन पर एक TLVReader रखा गया है.
[in] writer
एक TLVWriter, जिस पर निजी पासकोड लिखा जाएगा.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर निजी कुंजी निकाल दी गई थी.
tlv-errors
TLV पढ़ने या लिखने से जुड़ी गड़बड़ियां हो सकती हैं.
cert-errors
वीव सर्टिफ़िकेट को डिकोड करने से जुड़ी गड़बड़ियां.
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 सिग्नेचर की गणना करता है. साथ ही, दिए गए टैग के साथ, तय किए गए TLV राइटर के लिए, हस्ताक्षर को Weave ECDSASignature स्ट्रक्चर के तौर पर लिखता है.

ब्यौरा
पैरामीटर
[in] writer
TLVWriter ऑब्जेक्ट, जिस पर कोड में बदले गए हस्ताक्षर लिखे जाने चाहिए.
[in] tag
कोड में बदले गए हस्ताक्षर के स्ट्रक्चर से जोड़ने के लिए TLV टैग.
[in] msgHash
एक बफ़र, जिसमें हस्ताक्षर किए जाने वाले मैसेज का हैश मौजूद होता है.
[in] msgHashLen
मैसेज हैश की लंबाई बाइट में.
[in] signingKey
निजी पासकोड वाला बफ़र, जिसका इस्तेमाल हस्ताक्षर जनरेट करने के लिए किया जाता है. निजी पासकोड को Weave EllipticCurvePrivateKey TLV स्ट्रक्चर के तौर पर एन्कोड किया जाना चाहिए.
[in] signingKeyLen
कोड में बदले गए निजी पासकोड की लंबाई बाइट में.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर कार्रवाई पूरी हो गई.
other
निजी पासकोड को डिकोड करने, सिग्नेचर जनरेट करने या सिग्नेचर को कोड में बदलने से जुड़े अन्य Weave गड़बड़ी कोड.

GenerateOperationalDeviceCert

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

Weave ऑपरेशनल डिवाइस सर्टिफ़िकेट जनरेट करें.

यह फ़ंक्शन, Weave के TLV फ़ॉर्मैट में एन्कोड किया गया खुद का हस्ताक्षर किया हुआ ऑपरेशनल सर्टिफ़िकेट जनरेट करता है.

ब्यौरा
पैरामीटर
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 ऐक्सेस टोकन है.
accessTokenLen
कोड में बदले गए ऐक्सेस टोकन की लंबाई.
certSet
वह सर्टिफ़िकेट सेट जिसमें ऐक्सेस टोकन सर्टिफ़िकेट लोड किए जाने चाहिए.
decodeFlags
सर्टिफ़िकेट डिकोड करने वाले फ़्लैग जिनका इस्तेमाल सर्टिफ़िकेट लोड करते समय किया जाना चाहिए.
accessTokenCert
पॉइंटर का रेफ़रंस, जिसे ऐक्सेस टोकन सर्टिफ़िकेट के लिए Weave सर्टिफ़िकेट के डेटा स्ट्रक्चर पर सेट किया जाएगा. ध्यान दें: यह पॉइंटर सिर्फ़ तब सेट किया जाएगा, जब फ़ंक्शन पूरी तरह से काम करेगा.
रिटर्न वैल्यू
WEAVE_NO_ERROR
क्या ऐक्सेस टोकन सर्टिफ़िकेट लोड हो गए थे.
tlv-errors
TLV पढ़ने से जुड़ी गड़बड़ियां ठीक करें.
cert-errors
वीव सर्टिफ़िकेट को डिकोड करने से जुड़ी गड़बड़ियां.
platform-errors
प्लैटफ़ॉर्म से जुड़ी अन्य गड़बड़ियां.

LoadAccessTokenCerts

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

किसी ऐक्सेस टोकन में मौजूद सर्टिफ़िकेट को Weave सर्टिफ़िकेट के सेट में लोड करें.

यह फ़ंक्शन, दिए गए TLVReader के Weave ऐक्सेस टोकन को पढ़ता है और ऐक्सेस टोकन सर्टिफ़िकेट को बताए गए Weave प्रमाणपत्र सेट ऑब्जेक्ट में लोड करता है. अगर ऐक्सेस टोकन में एक या एक से ज़्यादा मिलते-जुलते सर्टिफ़िकेट हैं, तो उन्हें भी सर्टिफ़िकेट सेट में लोड कर दिया जाता है.

ब्यौरा
पैरामीटर
reader
एक TLVReader ऑब्जेक्ट, जो वीव ऐक्सेस टोकन के ठीक पहले होता है.
certSet
वह सर्टिफ़िकेट सेट जिसमें ऐक्सेस टोकन सर्टिफ़िकेट लोड किए जाने चाहिए.
decodeFlags
सर्टिफ़िकेट डिकोड करने वाले फ़्लैग जिनका इस्तेमाल सर्टिफ़िकेट लोड करते समय किया जाना चाहिए.
accessTokenCert
पॉइंटर का रेफ़रंस, जिसे ऐक्सेस टोकन सर्टिफ़िकेट के लिए Weave सर्टिफ़िकेट के डेटा स्ट्रक्चर पर सेट किया जाएगा. ध्यान दें: यह वैल्यू सिर्फ़ तब सेट की जाती है, जब फ़ंक्शन सही तरीके से रिटर्न करता है.
रिटर्न वैल्यू
WEAVE_NO_ERROR
क्या ऐक्सेस टोकन सर्टिफ़िकेट लोड हो गए थे.
tlv-errors
TLV पढ़ने से जुड़ी गड़बड़ियां ठीक करें.
cert-errors
वीव सर्टिफ़िकेट को डिकोड करने से जुड़ी गड़बड़ियां.
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
)

Thermostat डिवाइस के किसी दिए गए क्रेडेंशियल के सेट के लिए, पुष्टि करने वाला हैश (बेस-64 फ़ॉर्मैट में) जनरेट करें.

ब्यौरा
पैरामीटर
[in] serialNum
बफ़र का पॉइंटर, जिसमें डिवाइस का सीरियल नंबर है.
[in] serialNumLen
सीरियल नंबर स्ट्रिंग की लंबाई.
[in] deviceId
बफ़र का पॉइंटर, जिसमें डिवाइस का आईडी है.
[in] deviceIdLen
डिवाइस के आईडी की लंबाई.
[in] deviceSecret
बफ़र का पॉइंटर, जिसमें डिवाइस का सीक्रेट है.
[in] deviceSecretLen
डिवाइस के सीक्रेट की लंबाई.
[in,out] hashBuf
बफ़र का पॉइंटर, जिसे base-64 फ़ॉर्मैट में पुष्टि करने के लिए हैश वैल्यू मिलेगी. आउटपुट स्ट्रिंग को खत्म कर दिया जाएगा. यह बफ़र कम से कम 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
)

Weave की प्रॉविज़निंग की जानकारी के दिए गए सेट के लिए, वेरिफ़िकेशन हैश (बेस-64 फ़ॉर्मैट में) जनरेट करें.

ब्यौरा
पैरामीटर
[in] nodeId
डिवाइस का Weave नोड आईडी.
[in] weaveCert
बफ़र का पॉइंटर, जिसमें Base-64 फ़ॉर्मैट में Weave डिवाइस सर्टिफ़िकेट है.
[in] weaveCertLen
सर्टिफ़िकेट वैल्यू की वह लंबाई जिसके बारे में WeaveCert ने बताया है.
[in] weavePrivKey
बफ़र का पॉइंटर, जिसमें Base-64 फ़ॉर्मैट में Weave डिवाइस निजी कुंजी है.
[in] weavePrivKeyLen
WeavePrivKey के ज़रिए बताए गए निजी पासकोड की वैल्यू की लंबाई.
[in] pairingCode
बफ़र का पॉइंटर जिसमें डिवाइस जोड़ने का कोड है.
[in] pairingCodeLen
जोड़े गए जोड़ने के कोड की वैल्यू की लंबाई, जिसके बारे में partnerCode की मदद से बताया गया है.
[in,out] hashBuf
बफ़र का पॉइंटर, जिसे base-64 फ़ॉर्मैट में पुष्टि करने के लिए हैश वैल्यू मिलेगी. आउटपुट स्ट्रिंग को खत्म कर दिया जाएगा. यह बफ़र कम से कम kWeaveप्रोविज़निंगHashLength + 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 यूनिवर्सल टाइम स्ट्रक्चर के रूप में) को, भरी हुई सर्टिफ़िकेट की तारीख/समय में बदलें.

पैक की गई सर्टिफ़िकेट की तारीख/समय का मतलब है कि सर्टिफ़िकेट (न कि पहले और बाद में नहीं) में, समय की वैल्यू को छोटा करके दिखाया जाता है. ऐसे सर्टिफ़िकेट को समझने के लिए कैलेंडर की पूरी गणित की ज़रूरत नहीं होती.

पैक किए गए सर्टिफ़िकेट की तारीख/समय में, कैलेंडर की तारीख/समय के फ़ील्ड होते हैं. साल, महीना, दिन, घंटा, मिनट, हस्ताक्षर न किए गए पूर्णांक में दूसरा पैक किया गया. बिट प्रज़ेंटेशन को इस तरह व्यवस्थित किया जाता है कि पैक की गई तारीख/समय की वैल्यू की ऑर्डिनल तुलना, संबंधित समय के प्राकृतिक क्रम के मुताबिक हो. साइज़ कम करने के लिए, पैक किए गए सर्टिफ़िकेट की तारीख/समय, 01/01/2000 को या उसके बाद के समय को दिखाने के लिए सीमित है. जब इसे 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 यूटीसी के बाद से सेकंड की संख्या को, पैक किए गए सर्टिफ़िकेट की तारीख/समय में बदलें.

ब्यौरा
पैरामीटर
secondsSinceEpoch
1970-01-01 को 00:00:00 यूटीसी के बाद से सेकंड की संख्या. ध्यान दें: यह वैल्यू, 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
)