нл:: Переплетение:: Профили:: Безопасность
Это пространство имен включает в себя все интерфейсы внутри Weave для профиля безопасности Weave.
Краткое содержание
Перечисления | |
---|---|
@235 | перечисление Флаги основного назначения сертификата X.509. |
@236 | перечисление Флаги использования ключа сертификата X.509. |
@237 | перечисление Сплетите флажки сертификатов. |
@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) | определение типаWEAVE_ERROR (* Создайте подпись ECDSA, используя закрытый ключ локального узла Weave. |
Переменные | |
---|---|
gProvisioningBundleKDFSalt = "Weave Provisioning Bundle v1"[] | const char |
Функции | |
---|---|
CASECertInfoFromAccessToken (const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen) | |
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 Сгенерируйте проверочный хеш (в формате Base-64) для заданного набора информации о настройке Weave. |
OIDToWeaveCurveId (ASN1::OID curveOID) | uint32_t |
PackCertTime (const ASN1UniversalTime & time, uint32_t & packedTime) | NL_DLL_EXPORT WEAVE_ERROR Преобразуйте дату/время сертификата (в форме универсальной структуры времени ASN.1) в упакованную дату/время сертификата. |
PackedCertDateToTime (uint16_t packedDate) | NL_DLL_EXPORT uint32_t Преобразуйте дату упакованного сертификата в соответствующую дату/время упакованного сертификата, где для временной части значения установлено значение 00:00:00. |
PackedCertTimeToDate (uint32_t packedTime) | NL_DLL_EXPORT uint16_t Преобразуйте дату/время упакованного сертификата в дату упакованного сертификата. |
ParseWeaveIdAttribute ( ASN1Reader & reader, uint64_t & weaveIdOut) | |
PrintCert (FILE *out, const WeaveCertificateData & cert, const WeaveCertificateSet *certSet, uint16_t indent, bool verbose) | NL_DLL_EXPORT void |
PrintCertArray (FILE *out, TLVReader & reader, uint16_t indent) | |
PrintCertReference (FILE *out, TLVReader & reader, uint16_t indent) | |
PrintCertType (FILE *out, uint8_t certType) | void |
PrintCertValidationResults (FILE *out, const WeaveCertificateSet & certSet, const ValidationContext & validContext, uint16_t indent) | NL_DLL_EXPORT void |
PrintECDSASignature (FILE *out, TLVReader & reader, uint16_t indent) | |
PrintHexField (FILE *out, const char *name, uint16_t indent, uint16_t count, const uint8_t *data) | void |
PrintPackedDate (FILE *out, uint16_t t) | void |
PrintPackedTime (FILE *out, uint32_t t) | void |
PrintWeaveDN (FILE *out, const WeaveDN & dn) | void |
PrintWeaveDN (FILE *out, TLVReader & reader) | |
PrintWeaveSignature (FILE *out, TLVReader & reader, uint16_t indent) | |
SecondsSinceEpochToPackedCertTime (uint32_t secondsSinceEpoch) | NL_DLL_EXPORT uint32_t Преобразуйте количество секунд с 1970-01-01 00:00:00 UTC в дату/время упакованного сертификата. |
TranslateOpenSSLError ( WEAVE_ERROR defaultErr) | |
UnpackCertTime (uint32_t packedTime, ASN1UniversalTime & time) | NL_DLL_EXPORT WEAVE_ERROR Распакуйте дату/время упакованного сертификата в универсальную структуру времени ASN.1. |
VerifyWeaveSignature (const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, WeaveCertificateSet & certSet, ValidationContext & certValidContext) | NL_DLL_EXPORT WEAVE_ERROR |
VerifyWeaveSignature (const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, OID expectedSigAlgoOID, WeaveCertificateSet & certSet, ValidationContext & certValidContext) | NL_DLL_EXPORT WEAVE_ERROR |
WeaveCurveIdToOID (uint32_t weaveCurveId) | NL_DLL_EXPORT OID |
Классы | |
---|---|
nl:: Weave:: Profiles:: Security:: CertificateKeyId | |
nl:: Weave:: Profiles:: Security:: ValidationContext | |
nl:: Weave:: Profiles:: Security:: WeaveCertificateData | |
nl:: Weave:: Profiles:: Security:: WeaveCertificateSet | |
nl::Weave:: Profiles:: Security:: WeaveDN | |
nl:: Weave:: Profiles:: Security:: WeaveProvisioningBundle | |
nl:: Weave:: Profiles:: Security:: WeaveSignatureGenerator | Генерирует WeaveSignature, используя закрытый ключ в памяти. |
nl:: Weave:: Profiles:: Security:: WeaveSignatureGeneratorBase | Предоставляет общие функции для создания WeaveSignatures. |
Пространства имен | |
---|---|
nl:: Weave:: Профили:: Безопасность:: AppKeys | Это пространство имен включает в себя все интерфейсы внутри Weave для библиотеки ключей приложения Weave в профиле безопасности Weave. |
nl:: Weave:: Профили:: Безопасность:: CASE | Это пространство имен включает в себя все интерфейсы внутри Weave для протокола установления сеанса с проверкой подлинности сертификата ( CASE ) в профиле безопасности Weave. |
nl::Weave:: Profiles:: Security:: CertProvisioning | Это пространство имен включает в себя все интерфейсы внутри Weave для протокола предоставления сертификатов Weave в профиле безопасности Weave. |
nl:: Weave:: Profiles:: Security:: KeyExport | Это пространство имен включает в себя все интерфейсы Weave для протокола экспорта ключей в профиле безопасности Weave. |
nl:: Weave:: Профили:: Безопасность:: PASE | Это пространство имен включает в себя все интерфейсы внутри Weave для протокола установления сеанса с проверкой пароля ( PASE ) в профиле безопасности Weave. |
nl:: Weave:: Профили:: Безопасность:: Пароли | Это пространство имен включает в себя все интерфейсы внутри Weave для библиотеки паролей Weave в профиле безопасности Weave. |
nl:: Weave:: Профили:: Безопасность:: ПРИНИМАТЬ | Это пространство имен включает в себя все интерфейсы внутри Weave для протокола обмена ключами с проверкой токена ( TAKE ) в профиле безопасности Weave. |
Перечисления
@235
@235
Флаги основного назначения сертификата X.509.
@236
@236
Флаги использования ключа сертификата X.509.
@237
@237
Сплетите флажки сертификатов.
Содержит информацию о сертификате, который был загружен в объект 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
Определения типов
ГенерироватьECDSASignatureFunct
WEAVE_ERROR(* GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig)
Создайте подпись ECDSA, используя закрытый ключ локального узла Weave.
При вызове реализации должны вычислить подпись по заданному значению хеш-функции, используя закрытый ключ узла.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возвращаемые значения |
|
Переменные
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 . Поле EntityCertificate в структуре CertificateInfo установлено для сертификата токена доступа, а поле linkedCertificates (если оно присутствует) установлено в соответствующее поле в токене доступа.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
CASECertInfoFromAccessToken
WEAVE_ERROR CASECertInfoFromAccessToken( TLVReader & reader, TLVWriter & writer )
Считывает токен доступа Weave и записывает структуру TLV информации о сертификате CASE , содержащую сертификаты из токена доступа.
Эта функция считывает токен доступа Weave из данного TLVReader и записывает TLV для структуры информации о сертификате Weave CASE в TLVWriter. Поле EntityCertificate в структуре CertificateInfo установлено для сертификата токена доступа, а поле linkedCertificates (если оно присутствует) установлено в соответствующее поле в токене доступа.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
ConvertAuthorityKeyIdentifierExtension
WEAVE_ERROR ConvertAuthorityKeyIdentifierExtension( ASN1Reader & reader, TLVWriter & writer )
Конвертироватьсертификате
WEAVE_ERROR ConvertCertificate( ASN1Reader & reader, TLVWriter & writer )
ConvertDistinguishedName
WEAVE_ERROR ConvertDistinguishedName( ASN1Reader & reader, TLVWriter & writer, uint64_t tag )
КонвертироватьECDSASignature_DERToWeave
WEAVE_ERROR ConvertECDSASignature_DERToWeave( const uint8_t *sigBuf, uint8_t sigLen, TLVWriter & writer, uint64_t tag )
КонвертироватьРасширение
WEAVE_ERROR ConvertExtension( ASN1Reader & reader, TLVWriter & writer )
КонвертироватьРасширения
WEAVE_ERROR ConvertExtensions( ASN1Reader & reader, TLVWriter & writer )
Конвертироватьсубжекпубликкэйинфо
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 )
КонвертироватьX509CertToWeaveCert
WEAVE_ERROR ConvertX509CertToWeaveCert( const uint8_t *x509Cert, uint32_t x509CertLen, uint8_t *weaveCertBuf, uint32_t weaveCertBufSize, uint32_t & weaveCertLen )
Декодированиеконвертаторитикеидентифиерекстенсион
WEAVE_ERROR DecodeConvertAuthorityKeyIdentifierExtension( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
ДекодированиеConvertBasicConstraintsExtension
WEAVE_ERROR DecodeConvertBasicConstraintsExtension( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодированиеконвертцерт
WEAVE_ERROR DecodeConvertCert( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
ДекодированиеконвертироватьDN
WEAVE_ERROR DecodeConvertDN( TLVReader & reader, ASN1Writer & writer, WeaveDN & dn )
ДекодированиеПреобразованиеECDSASignature
WEAVE_ERROR DecodeConvertECDSASignature( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодированиеконвертекстендкэйусажеэкстенсион
WEAVE_ERROR DecodeConvertExtendedKeyUsageExtension( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодированиеконвертекстенсион
WEAVE_ERROR DecodeConvertExtension( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодироватьконвертировать расширения
WEAVE_ERROR DecodeConvertExtensions( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодеконвертекэйусажеекстенсион
WEAVE_ERROR DecodeConvertKeyUsageExtension( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
ДекодированиеConvertRSASignature
WEAVE_ERROR DecodeConvertRSASignature( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодированиеконвертироватьсубжеккэйидентификаторекстенсион
WEAVE_ERROR DecodeConvertSubjectKeyIdentifierExtension( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
ДекодированиеConvertSubjectPublicKeyInfo
WEAVE_ERROR DecodeConvertSubjectPublicKeyInfo( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
ДекодированиеConvertTBSCert
WEAVE_ERROR DecodeConvertTBSCert( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
Декодироватьконвертироватьвалидити
WEAVE_ERROR DecodeConvertValidity( TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData )
ДекодироватькопиюECDSASignature_DER
WEAVE_ERROR DecodeCopyECDSASignature_DER( const uint8_t *sigBuf, uint8_t sigLen, EncodedECDSASignature & sig )
ДекодированиеWeaveCert
WEAVE_ERROR DecodeWeaveCert( const uint8_t *weaveCert, uint32_t weaveCertLen, WeaveCertificateData & certData )
ДекодированиеWeaveCert
WEAVE_ERROR DecodeWeaveCert( TLVReader & reader, WeaveCertificateData & certData )
ДекодироватьWeaveDN
WEAVE_ERROR DecodeWeaveDN( TLVReader & reader, WeaveDN & dn )
ДекодированиеWeaveECDSASignature
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 )
ОписатьWeaveCertId
const char * DescribeWeaveCertId( OID attrOID, uint64_t weaveCertId )
ОпределитьCertType
WEAVE_ERROR DetermineCertType( WeaveCertificateData & cert )
Определите общий тип сертификата Weave.
Эта функция выполняет общую оценку типа сертификата на основе структуры его DN субъекта и имеющихся расширений. Приложения могут переопределить эту оценку, установив для cert.CertType другое значение, в том числе определяемое приложением.
Как правило, приложения будут доверять сертификату узла только в том случае, если он связан с доверенным корневым сертификатом. Однако тип, присвоенный сертификату, может влиять на характер этого доверия, например, разрешать или запрещать доступ к определенным функциям. По этой причине изменения в этом алгоритме могут иметь ОЧЕНЬ ЗНАЧИТЕЛЬНЫЕ и ПОТЕНЦИАЛЬНО КАТАСТРОФИЧЕСКИЕ последствия для общей безопасности системы, и их не следует вносить без тщательного понимания последствий.
ПРИМЕЧАНИЕ. Сертификаты маркеров доступа нельзя отличить только по их структуре. Таким образом, эта функция никогда не устанавливает cert.CertType = kCertType_AccessToken.
EncodeWeaveECDSASignature
WEAVE_ERROR EncodeWeaveECDSASignature( TLVWriter & writer, EncodedECDSASignature & sig, uint64_t tag )
КодироватьWeaveECPrivateKey
NL_DLL_EXPORT WEAVE_ERROR EncodeWeaveECPrivateKey( uint32_t weaveCurveId, const EncodedECPublicKey *pubKey, const EncodedECPrivateKey & privKey, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outLen )
ИзвлечьCertFromAccessToken
WEAVE_ERROR ExtractCertFromAccessToken( TLVReader & reader, TLVWriter & writer, uint64_t tag )
Считывает токен доступа Weave и извлекает сертификат токена доступа.
Эта функция считывает токен доступа Weave из TLVReader и записывает сертификат токена доступа в указанный TLVWriter.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
ИзвлечьPrivateKeyFromAccessToken
WEAVE_ERROR ExtractPrivateKeyFromAccessToken( const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen )
Считывает токен доступа Weave и извлекает закрытый ключ.
Эта функция декодирует данный токен доступа Weave и извлекает из токена поле закрытого ключа.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
ИзвлечьPrivateKeyFromAccessToken
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 с заданным тегом.
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||
Возвращаемые значения |
|
СоздатьOperationalDeviceCert
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 .
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||
Возвращаемые значения |
|
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 )
ИсВеавеX509Аттр
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.
Эта функция считывает токен доступа Weave из данного TLVReader и загружает сертификаты токенов доступа в указанный объект набора сертификатов 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 )
Сгенерируйте проверочный хеш (в формате Base-64) для заданного набора информации о настройке Weave.
Подробности | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||||||||
Возвращаемые значения |
|
OIDToWeaveCurveId
uint32_t OIDToWeaveCurveId( ASN1::OID curveOID )
Паксерттиме
NL_DLL_EXPORT WEAVE_ERROR PackCertTime( const ASN1UniversalTime & time, uint32_t & packedTime )
Преобразуйте дату/время сертификата (в форме универсальной структуры времени ASN.1) в упакованную дату/время сертификата.
Дата и время упакованного сертификата обеспечивают компактное представление значений времени в сертификате (notBefore и notAfter), для интерпретации которого не требуется полная календарная математика.
Упакованный дата/время сертификата содержит поля календарной даты/времени, т.е. год, месяц, день, час, минута, секунда упакованы в целое число без знака. Битовое представление организовано таким образом, что порядковые сравнения упакованных значений даты/времени соответствуют естественному порядку соответствующих времен. Чтобы уменьшить размер, дата/время упакованного сертификата ограничиваются представлением времени, которое приходится на 01.01.2000 00:00:00 или позже. Если дата/время упакованного сертификата помещено в 32-битное целое число без знака, оно может представлять собой время до 2133 года.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
Пакедсертдатетотиме
NL_DLL_EXPORT uint32_t PackedCertDateToTime( uint16_t packedDate )
Преобразуйте дату упакованного сертификата в соответствующую дату/время упакованного сертификата, где для временной части значения установлено значение 00:00:00.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Соответствующая дата/время сертификата пакета. |
Пакедсерттиметодате
NL_DLL_EXPORT uint16_t PackedCertTimeToDate( uint32_t packedTime )
Преобразуйте дату/время упакованного сертификата в дату упакованного сертификата.
Дата упакованного сертификата содержит поля календарной даты, года, месяца и дня, упакованные в целое число без знака. Биты организованы таким образом, что порядковые сравнения упакованных значений дат соответствуют естественному порядку соответствующих дат. Чтобы уменьшить размер, даты упакованных сертификатов ограничиваются датами, наступающими 01.01.2000 или позже. Если даты упакованного сертификата помещены в 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 )
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 )
РаспечататьECDSASподпись
WEAVE_ERROR PrintECDSASignature( FILE *out, TLVReader & reader, uint16_t indent )
ПечатьHexField
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 )
РаспечататьТкатьПодпись
WEAVE_ERROR PrintWeaveSignature( FILE *out, TLVReader & reader, uint16_t indent )
СекундыСинесЭпохToPackedCertTime
NL_DLL_EXPORT uint32_t SecondsSinceEpochToPackedCertTime( uint32_t secondsSinceEpoch )
Преобразуйте количество секунд с 1970-01-01 00:00:00 UTC в дату/время упакованного сертификата.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | Соответствующая дата/время сертификата пакета. |
ПеревестиOpenSSLError
WEAVE_ERROR TranslateOpenSSLError( WEAVE_ERROR defaultErr )
РаспаковатьCertTime
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 )