nl:: Weave:: Profiles:: 安全
此命名空间包含 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
|
枚举 |
类型定义符 |
|
---|---|
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
为指定的温控器设备凭据生成验证哈希值(采用 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 UTC 以来的秒数转换为打包证书日期/时间。
|
TranslateOpenSSLError(WEAVE_ERROR defaultErr)
|
|
UnpackCertTime(uint32_t packedTime, ASN1UniversalTime & time)
|
NL_DLL_EXPORT WEAVE_ERROR
将打包证书的日期/时间解压缩为 ASN.1 通用时间结构。
|
VerifyWeaveSignature(const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, WeaveCertificateSet & certSet, ValidationContext & certValidContext)
|
NL_DLL_EXPORT WEAVE_ERROR
|
VerifyWeaveSignature(const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, OID expectedSigAlgoOID, WeaveCertificateSet & certSet, ValidationContext & certValidContext)
|
NL_DLL_EXPORT WEAVE_ERROR
|
WeaveCurveIdToOID(uint32_t weaveCurveId)
|
NL_DLL_EXPORT OID
|
命名空间 |
|
---|---|
nl:: |
此命名空间包括 Weave 中适用于 Weave 安全配置文件的 Weave 应用密钥库的所有接口。 |
nl:: |
此命名空间包括 Weave 中适用于 Weave 安全配置文件中的证书身份验证会话创建 (CASE) 协议中的所有接口。 |
nl:: |
此命名空间包括 Weave 中适用于 Weave 安全配置文件中的 Weave 证书配置协议的所有接口。 |
nl:: |
此命名空间包含 Weave 中适用于 Weave 安全配置文件中的密钥导出协议的所有接口。 |
nl:: |
此命名空间包括 Weave 中密码身份验证会话创建 (PASE) 协议中的所有接口。 |
nl:: |
此命名空间包括 Weave 中适用于 Weave 安全配置文件内的 Weave 密码库的所有接口。 |
nl:: |
枚举
@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
类型定义符
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 Certificate Info TLV 结构。
此函数对给定的 Weave 访问令牌进行解码,并针对 Weave CASE 证书信息结构对 TLV 进行编码。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 )
转化证书
WEAVE_ERROR ConvertCertificate( ASN1Reader & reader, TLVWriter & writer )
转化名称
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 )
ConvertExtension
WEAVE_ERROR ConvertExtensions( ASN1Reader & reader, TLVWriter & writer )
ConvertSubjectPublicKeyInfo
WEAVE_ERROR ConvertSubjectPublicKeyInfo( ASN1Reader & reader, TLVWriter & writer )
转化有效性
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(解码转化 DN)
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 )
解码主题公开密钥信息
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 )
解码代码
WEAVE_ERROR DecodeWeaveCert( const uint8_t *weaveCert, uint32_t weaveCertLen, WeaveCertificateData & certData )
解码代码
WEAVE_ERROR DecodeWeaveCert( TLVReader & reader, WeaveCertificateData & certData )
DecodeWeaveDN
WEAVE_ERROR DecodeWeaveDN( TLVReader & reader, WeaveDN & dn )
解码 WeDSA ECDSASignature
WEAVE_ERROR DecodeWeaveECDSASignature( TLVReader & reader, EncodedECDSASignature & sig )
解码 WeaveECPrivateKey
NL_DLL_EXPORT WEAVE_ERROR DecodeWeaveECPrivateKey( const uint8_t *buf, uint32_t len, uint32_t & weaveCurveId, EncodedECPublicKey & pubKey, EncodedECPrivateKey & privKey )
ExplainWeaveCertId
const char * DescribeWeaveCertId( OID attrOID, uint64_t weaveCertId )
确定认证类型
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 )
提取证书中的访问令牌
WEAVE_ERROR ExtractCertFromAccessToken( TLVReader & reader, TLVWriter & writer, uint64_t tag )
读取 Weave 访问令牌并提取访问令牌证书。
此函数从 TLVReader 读取 Weave 访问令牌,并将访问令牌证书写入指定的 TLVWriter。
详细信息 | |||||||||
---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||
返回值 |
|
提取私有密钥的访问令牌
WEAVE_ERROR ExtractPrivateKeyFromAccessToken( const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen )
读取 Weave 访问令牌并提取私钥。
此函数对给定的 Weave 访问令牌进行解码,并从令牌中提取私钥字段。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
提取私有密钥的访问令牌
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 ECDSASignature 结构写入使用指定标记的指定 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 )
曲面集
bool IsCurveInSet( uint32_t curveId, uint8_t curveSet )
支持的曲线
bool IsSupportedCurve( uint32_t curveId )
IsWeaveIdX509 属性
bool IsWeaveIdX509Attr( OID oid )
IsWeaveX509 属性
bool IsWeaveX509Attr( OID oid )
加载访问令牌证书
WEAVE_ERROR LoadAccessTokenCerts( const uint8_t *accessToken, uint32_t accessTokenLen, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert )
将访问令牌中的证书加载到 Weave 证书集中。
此函数对给定的 Weave 访问令牌进行解码,并将访问令牌证书加载到指定的 Weave 证书集对象中。如果访问令牌包含一个或多个相关证书,系统也会将这些证书加载到证书集中。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
加载访问令牌证书
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 )
为指定的温控器设备凭据生成验证哈希值(采用 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 格式)。
详细信息 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||||||
返回值 |
|
OIDToWeave 曲线
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 年的时间。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
打包证书日期时间
NL_DLL_EXPORT uint32_t PackedCertDateToTime( uint16_t packedDate )
将打包证书日期转换为相应的打包证书日期/时间,其中值的时间部分设置为 00:00:00。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
对应的数据包证书日期/时间。
|
PackedCertTimeToDate
NL_DLL_EXPORT uint16_t PackedCertTimeToDate( uint32_t packedTime )
将打包证书的日期/时间转换为打包的证书日期。
打包证书日期包含日历 年、月、日包(未签名整数)的字段。这些位已经过整理,因此打包日期值的序号比较与对应日期的自然顺序相对应。为了缩减应用大小,打包证书日期仅限于 2000/01/01 当天或之后的日期。打包在 16 位无符号整数内时,打包证书日期可表示 2176 年之前的日期。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
对应的数据包证书日期。
|
ParseWeaveIdAttribute
WEAVE_ERROR ParseWeaveIdAttribute( ASN1Reader & reader, uint64_t & weaveIdOut )
打印认证
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 )
打印认证类型
void PrintCertType( FILE *out, uint8_t certType )
PrintCertValidationResults
NL_DLL_EXPORT void PrintCertValidationResults( FILE *out, const WeaveCertificateSet & certSet, const ValidationContext & validContext, uint16_t indent )
打印 ECDSA 签名
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 )
打印日期
void PrintPackedDate( FILE *out, uint16_t t )
打印包装时间
void PrintPackedTime( FILE *out, uint32_t t )
PrintWeaveDN
void PrintWeaveDN( FILE *out, const WeaveDN & dn )
PrintWeaveDN
WEAVE_ERROR PrintWeaveDN( FILE *out, TLVReader & reader )
打印 WeaveSignature
WEAVE_ERROR PrintWeaveSignature( FILE *out, TLVReader & reader, uint16_t indent )
从 EpochToPackedCertTime 开始
NL_DLL_EXPORT uint32_t SecondsSinceEpochToPackedCertTime( uint32_t secondsSinceEpoch )
将自 1970-01-01 00:00:00 UTC 以来的秒数转换为打包证书日期/时间。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
对应的数据包证书日期/时间。
|
TranslateOpenSSLError
WEAVE_ERROR TranslateOpenSSLError( WEAVE_ERROR defaultErr )
解压缩证书时间
NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime( uint32_t packedTime, ASN1UniversalTime & time )
将打包证书的日期/时间解压缩为 ASN.1 通用时间结构。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
|
验证 WeaveSignature
NL_DLL_EXPORT WEAVE_ERROR VerifyWeaveSignature( const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, WeaveCertificateSet & certSet, ValidationContext & certValidContext )
验证 WeaveSignature
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 )