nl:: Weave:: Profiles:: Security
這個命名空間包含 Weave 中有關 Weave Security 設定檔的所有介面。
摘要
列舉 |
|
---|---|
@235
|
列舉 X.509 憑證金鑰用途標記。 |
@236
|
列舉 X.509 憑證金鑰使用旗標。 |
@237
|
列舉 Weave 憑證標幟。 |
@238
|
列舉 Weave 憑證解碼旗標。 |
@239
|
列舉 Weave 憑證驗證標幟。 |
@240
|
列舉 |
@280
|
列舉 |
@281
|
列舉 |
@282
|
列舉 |
@283
|
列舉 |
@284
|
列舉 |
@285
|
列舉 |
@286
|
列舉 |
@287
|
列舉 |
@288
|
列舉 |
@289
|
列舉 |
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)
|
|
CASECertInfoFromAccessToken(TLVReader & reader, TLVWriter & writer)
|
|
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
為指定的 Nest Thermostat 裝置憑證產生一組採用 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
為指定的 Weave 佈建資訊產生驗證雜湊 (採用 Base-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 針對 Weave 安全性設定檔內 Weave 應用程式金鑰程式庫的所有介面。 |
nl:: |
這個命名空間包含 Weave 內所有供 Weave 安全性設定檔內憑證驗證工作階段建立 (CASE) 通訊協定的介面。 |
nl:: |
這個命名空間包含 Weave 針對 Weave 憑證佈建通訊協定的所有 Weave 憑證佈建通訊協定 (Weave 憑證佈建通訊協定) 中的所有介面。 |
nl:: |
這個命名空間包含 Weave 中針對 Weave 安全性設定檔中金鑰匯出通訊協定的所有介面。 |
nl:: |
這個命名空間包含 Weave 內所有用於 Weave 安全性設定檔中的密碼驗證工作階段建立 (PASE) 通訊協定的介面。 |
nl:: |
這個命名空間包含 Weave 中有關 Weave 安全性設定檔內 Weave 密碼庫的所有介面。 |
nl:: |
這個命名空間包含 Weave 中針對權杖驗證金鑰交換 (TAKE) 通訊協定的所有介面 (Weave Security 設定檔)。 |
列舉
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)
使用本機 Weave 節點的私密金鑰產生 ECDSA 簽章。
叫用時,實作程序必須使用節點的私密金鑰計算指定雜湊值的簽名。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
變數
gProvisioningBundleKDFSalt
const char gProvisioningBundleKDFSalt[] = "Weave Provisioning Bundle v1"
函式
CASECertInfoFromAccessToken
WEAVE_ERROR CASECertInfoFromAccessToken( const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen )
讀取 Weave 存取權杖並建構含有存取權杖憑證的 CASE 憑證資訊 TLV 結構。
這個函式會將指定的 Weave 存取權杖解碼,並將 TLV 編碼為 Weave CASE 憑證資訊結構。CertificateInfo 結構內的 EntityCertificate 欄位設為存取權杖憑證,並將 RelatedCertificates 欄位 (如有) 設為存取權杖中的對應欄位。
詳細資料 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
CASECertInfoFromAccessToken
WEAVE_ERROR CASECertInfoFromAccessToken( TLVReader & reader, TLVWriter & writer )
讀取 Weave 存取權杖並寫入含有存取權杖憑證的 CASE 憑證資訊 TLV 結構。
這個函式會從特定 TLVReader 讀取 Weave 存取權杖,並將 Weave CASE 憑證資訊結構的 TLV 寫入 TLVWriter。CertificateInfo 結構內的 EntityCertificate 欄位設為存取權杖憑證,並將 RelatedCertificates 欄位 (如有) 設為存取權杖中的對應欄位。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
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 存取權杖並擷取存取權杖憑證。
此函式會從 TLVReader 讀取 Weave 存取權杖,並將存取權杖憑證寫入指定的 TLVWriter。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
ExtractPrivateKeyFromAccessToken
WEAVE_ERROR ExtractPrivateKeyFromAccessToken( const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen )
讀取 Weave 存取權杖並擷取私密金鑰。
此函式會解碼指定的 Weave 存取權杖,並從權杖擷取私密金鑰欄位。
詳細資料 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
ExtractPrivateKeyFromAccessToken
WEAVE_ERROR ExtractPrivateKeyFromAccessToken( TLVReader & reader, TLVWriter & writer )
讀取 Weave 存取權杖並擷取私密金鑰。
此函式會解碼指定的 Weave 存取權杖,並從權杖擷取私密金鑰欄位。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
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 ECDSA Signature 結構形式寫入簽章,提供給指定標記的指定 TLV 寫入者。
詳細資料 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回值 |
|
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 自行簽署作業憑證。
詳細資料 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回值 |
|
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 憑證集物件。如果存取權杖包含一或多個相關憑證,這些憑證也會載入憑證集。
詳細資料 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
LoadAccessTokenCerts
WEAVE_ERROR LoadAccessTokenCerts( TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert )
將存取權杖中的憑證載入 Weave 憑證集。
此函式會從指定的 TLVReader 讀取 Weave 存取權杖,然後將存取權杖憑證載入指定的 Weave 憑證集物件。如果存取權杖包含一或多個相關憑證,這些憑證也會載入憑證集。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
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 )
為指定的 Nest Thermostat 裝置憑證產生一組採用 Base-64 格式的驗證雜湊。
詳細資料 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||
傳回值 |
|
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 佈建資訊產生驗證雜湊 (採用 Base-64 格式)。
詳細資料 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||||||||
傳回值 |
|
OIDToWeaveCurveId
uint32_t OIDToWeaveCurveId( ASN1::OID curveOID )
PackCertTime
NL_DLL_EXPORT WEAVE_ERROR PackCertTime( const ASN1UniversalTime & time, uint32_t & packedTime )
將憑證日期/時間 (格式為 ASN.1 通用時間結構) 轉換成封裝的憑證日期/時間。
封裝憑證的日期/時間會以簡潔的方式表示憑證中的時間值 (notBefore 和 notAfter) ,且不需完整解讀日曆數學。
封裝憑證的日期/時間包含日曆日期/時間的欄位。年、月、日、小時、分鐘、秒內包裝為無正負號整數。位元表示法的編排,是讓封裝的日期/時間值的序數比較對應至對應時間的自然順序。為縮減憑證大小,封裝憑證的日期/時間只能代表 2000/01/01 00:00:00 當天或之後的時間。如果憑證儲存在 32 位元無正負號整數內,封裝憑證日期/時間最多可代表 2133 年的時間。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
PackedCertDateToTime
NL_DLL_EXPORT uint32_t PackedCertDateToTime( uint16_t packedDate )
將封裝憑證的日期轉換為對應的封裝憑證日期/時間,其中值的時間部分設為 00:00:00。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
對應的封包憑證日期/時間。
|
PackedCertTimeToDate
NL_DLL_EXPORT uint16_t PackedCertTimeToDate( uint32_t packedTime )
將封裝憑證的日期/時間轉換為封裝憑證日期。
封裝憑證日期包含日期年份、月份的欄位,且已包裝成無正負號整數。這些位元的編排方式,是依照對應日期的自然順序對應已封裝的日期值序數比較。為了縮減憑證大小,封裝的憑證日期不得超過 2000 年 1 月 1 日當天或之後的日期。如果封裝憑證日期位於 16 位元無正負號整數內,能夠代表截至 2176 年的日期。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
對應的封包憑證日期。
|
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 (世界標準時間) 之後的秒數,轉換為封裝憑證的日期/時間。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
對應的封包憑證日期/時間。
|
TranslateOpenSSLError
WEAVE_ERROR TranslateOpenSSLError( WEAVE_ERROR defaultErr )
UnpackCertTime
NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime( uint32_t packedTime, ASN1UniversalTime & time )
將封裝的憑證日期/時間解壓縮為 ASN.1 通用時間結構。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
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 )