nl:: Weave:: Profiles:: Security
Dieser Namespace umfasst alle Schnittstellen in Weave für das Weave-Profil Security.
Zusammenfassung
Aufzählungen |
|
---|---|
@235
|
enum Flags für den Zweck des X.509-Zertifikatschlüssels. |
@236
|
enum Flags für die Nutzung des X.509-Zertifikatschlüssels |
@237
|
enum Weave Certificate Flags. |
@238
|
enum Flags zur Decodierung von Weave-Zertifikaten. |
@239
|
enum Flags zur Validierung des Weave-Zertifikats. |
@240
|
enum |
@280
|
enum |
@281
|
enum |
@282
|
enum |
@283
|
enum |
@284
|
enum |
@285
|
enum |
@286
|
enum |
@287
|
enum |
@288
|
enum |
@289
|
enum |
Typedefs |
|
---|---|
GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig)
|
typedef. Generieren Sie eine ECDSA-Signatur mit dem privaten Schlüssel des lokalen Weave-Knotens. |
Variablen |
|
---|---|
gProvisioningBundleKDFSalt = "Weave Provisioning Bundle v1"[]
|
const char
|
Funktionen |
|
---|---|
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)
|
Ermitteln Sie den allgemeinen Typ eines Weave-Zertifikats.
|
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)
|
Liest ein Weave-Zugriffstoken und extrahiert das Zugriffstoken-Zertifikat.
|
ExtractPrivateKeyFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
|
Liest ein Weave-Zugriffstoken und extrahiert den privaten Schlüssel.
|
ExtractPrivateKeyFromAccessToken(TLVReader & reader, TLVWriter & writer)
|
Liest ein Weave-Zugriffstoken und extrahiert den privaten Schlüssel.
|
GenerateAndEncodeWeaveECDSASignature(TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen)
|
Generieren und codieren Sie eine Weave-ECDSA-Signatur.
|
GenerateOperationalDeviceCert(uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature)
|
NL_DLL_EXPORT WEAVE_ERROR
Generieren Sie ein Weave-Betriebszertifikat für Geräte.
|
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)
|
Laden Sie die Zertifikate in einem Zugriffstoken in einen Weave-Zertifikatsatz.
|
LoadAccessTokenCerts(TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
|
Laden Sie die Zertifikate in einem Zugriffstoken in einen Weave-Zertifikatsatz.
|
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
Generieren Sie einen Bestätigungs-Hash (im Base-64-Format) für einen bestimmten Satz von Anmeldedaten für das Thermostat-Gerät.
|
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
Generieren Sie einen Bestätigungs-Hash (im Base-64-Format) für einen bestimmten Satz an Weave-Bereitstellungsinformationen.
|
OIDToWeaveCurveId(ASN1::OID curveOID)
|
uint32_t
|
PackCertTime(const ASN1UniversalTime & time, uint32_t & packedTime)
|
NL_DLL_EXPORT WEAVE_ERROR
Wandeln Sie Datum/Uhrzeit eines Zertifikats in Form einer universellen ASN.1-Zeitstruktur in Datum/Uhrzeit für gepacktes Zertifikat um.
|
PackedCertDateToTime(uint16_t packedDate)
|
NL_DLL_EXPORT uint32_t
Wandeln Sie das Datum eines gepackten Zertifikats in das entsprechende Datum und die entsprechende Uhrzeit um, wobei die Uhrzeit des Werts 00:00:00 ist.
|
PackedCertTimeToDate(uint32_t packedTime)
|
NL_DLL_EXPORT uint16_t
Wandeln Sie Datum/Uhrzeit eines gepackten Zertifikats in ein gepacktes Zertifikat um.
|
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
Rechnen Sie die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC in ein gepacktes Zertifikat mit Datum/Uhrzeit um.
|
TranslateOpenSSLError(WEAVE_ERROR defaultErr)
|
|
UnpackCertTime(uint32_t packedTime, ASN1UniversalTime & time)
|
NL_DLL_EXPORT WEAVE_ERROR
Entpacken Sie das Datum und die Uhrzeit eines gepackten Zertifikats in eine universelle ASN.1-Zeitstruktur.
|
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
|
Klassen |
|
---|---|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Erzeugt eine WeaveSignature mithilfe eines speicherinternen privaten Schlüssels. |
nl:: |
Bietet allgemeine Funktionen zum Generieren von WeaveSignatures. |
Namespaces |
|
---|---|
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für die Weave-Anwendungsschlüsselbibliothek im Weave-Sicherheitsprofil. |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für das CASE-Protokoll (Certificate Authenticated Session Setting) im Weave-Sicherheitsprofil. |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für das Weave Certificate Provisioning-Protokoll innerhalb des Weave-Sicherheitsprofils. |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für das Schlüsselexportprotokoll im Weave-Sicherheitsprofil. |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für das PASE-Protokoll (Password Authenticated Session Einrichtung) im Weave-Sicherheitsprofil. |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für die Weave-Sicherheitscode-Bibliothek im Weave-Sicherheitsprofil. |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave für das TAKE-Protokoll (Token Authenticated Key Exchange) im Weave-Profil Security. |
Aufzählungen
@235
@235
Flags für den Zweck des X.509-Zertifikatschlüssels.
@236
@236
Flags für die Nutzung des X.509-Zertifikatschlüssels
@237
@237
Weave Certificate Flags.
Enthält Informationen zu einem Zertifikat, das in ein WeaveCertSet-Objekt geladen wurde.
@238
@238
Flags zur Decodierung von Weave-Zertifikaten.
Enthält Informationen dazu, wie ein Zertifikat decodiert werden soll.
@239
@239
Flags zur Validierung des Weave-Zertifikats.
Enthält Informationen dazu, wie ein Zertifikat validiert werden soll.
@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)
Generieren Sie eine ECDSA-Signatur mit dem privaten Schlüssel des lokalen Weave-Knotens.
Wenn Implementierungen aufgerufen werden, müssen sie eine Signatur für den angegebenen Hashwert mithilfe des privaten Schlüssels des Knotens berechnen.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
Variablen
gProvisioningBundleKDFSalt
const char gProvisioningBundleKDFSalt[] = "Weave Provisioning Bundle v1"
Funktionen
CASECertInfoFromAccessToken
WEAVE_ERROR CASECertInfoFromAccessToken( const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen )
Liest ein Weave-Zugriffstoken und erstellt eine CASE-TLV-Struktur für Zertifikatsinformationen, die die Zertifikate aus dem Zugriffstoken enthält.
Mit dieser Funktion wird ein bestimmtes Weave-Zugriffstoken decodiert und der TLV für eine Struktur mit Informationen zum Weave CASE-Zertifikat codiert. Das EntityCertificate-Feld innerhalb der CertificateInfo-Struktur ist auf das Zugriffstoken-Zertifikat festgelegt und das RelatedCertificates-Feld (falls vorhanden) ist auf das entsprechende Feld im Zugriffstoken festgelegt.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
CASECertInfoFromAccessToken
WEAVE_ERROR CASECertInfoFromAccessToken( TLVReader & reader, TLVWriter & writer )
Liest ein Weave-Zugriffstoken und schreibt eine CASE-TLV-Struktur für Zertifikatsinformationen, die die Zertifikate aus dem Zugriffstoken enthält.
Diese Funktion liest ein Weave-Zugriffstoken aus einem bestimmten TLVReader und schreibt die TLV für eine Weave CASE-Zertifikatinformationsstruktur in einen TLVWriter. Das EntityCertificate-Feld in der CertificateInfo-Struktur ist auf das Zugriffstoken-Zertifikat festgelegt und das RelatedCertificates-Feld (falls vorhanden) ist auf das entsprechende Feld im Zugriffstoken festgelegt.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
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 )
Ermitteln Sie den allgemeinen Typ eines Weave-Zertifikats.
Diese Funktion führt eine allgemeine Bewertung des Zertifikatstyps anhand der Struktur seines DN (Subjekt-DN) und der vorhandenen Erweiterungen durch. Anwendungen können diese Bewertung überschreiben, indem sie für cert.CertType einen anderen Wert festlegen, einschließlich eines anwendungsdefinierten Werts.
Im Allgemeinen vertrauen Anwendungen dem Zertifikat eines Peers nur, wenn es mit einem vertrauenswürdigen Root-Zertifikat verkettet ist. Der Typ, der einem Zertifikat zugewiesen wird, kann jedoch die Art dieser Vertrauensstellung beeinflussen, z.B. um den Zugriff auf bestimmte Funktionen zu erlauben oder zu verbieten. Aus diesem Grund können Änderungen an diesem Algorithmus SEHR BEDEUTLICHE und POTENTIAL CATASTROPHIC Auswirkungen auf die allgemeine Systemsicherheit haben. Daher sollten Änderungen an diesem Algorithmus nicht vorgenommen werden, ohne die Auswirkungen im Klaren zu sein.
HINWEIS: Zugriffstoken-Zertifikate lassen sich nicht allein durch ihre Struktur unterscheiden. Daher legt diese Funktion niemals cert.CertType = kCertType_AccessToken fest.
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 )
Liest ein Weave-Zugriffstoken und extrahiert das Zugriffstoken-Zertifikat.
Diese Funktion liest ein Weave-Zugriffstoken aus einem TLVReader und schreibt das Zugriffstoken in einen angegebenen TLVWriter.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
ExtractPrivateKeyFromAccessToken
WEAVE_ERROR ExtractPrivateKeyFromAccessToken( const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen )
Liest ein Weave-Zugriffstoken und extrahiert den privaten Schlüssel.
Diese Funktion decodiert ein bestimmtes Weave-Zugriffstoken und extrahiert das Feld für den privaten Schlüssel aus dem Token.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
ExtractPrivateKeyFromAccessToken
WEAVE_ERROR ExtractPrivateKeyFromAccessToken( TLVReader & reader, TLVWriter & writer )
Liest ein Weave-Zugriffstoken und extrahiert den privaten Schlüssel.
Diese Funktion decodiert ein bestimmtes Weave-Zugriffstoken und extrahiert das Feld für den privaten Schlüssel aus dem Token.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
GenerateAndEncodeWeaveECDSASignature
WEAVE_ERROR GenerateAndEncodeWeaveECDSASignature( TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen )
Generieren und codieren Sie eine Weave-ECDSA-Signatur.
Berechnet eine ECDSA-Signatur mit einem bestimmten privaten Schlüssel und Nachrichten-Hash und schreibt die Signatur als Weave ECDSASignature-Struktur an den angegebenen TLV-Autor mit dem jeweiligen Tag.
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Rückgabewerte |
|
GenerateOperationalDeviceCert
NL_DLL_EXPORT WEAVE_ERROR GenerateOperationalDeviceCert( uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature )
Generieren Sie ein Weave-Betriebszertifikat für Geräte.
Diese Funktion generiert ein selbst signiertes Weave-Betriebszertifikat, das im Weave-TLV-Format codiert ist.
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Rückgabewerte |
|
GetWeaveSignatureAlgo
WEAVE_ERROR GetWeaveSignatureAlgo( const uint8_t *sig, uint16_t sigLen, OID & sigAlgoOID )
Einrücken
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 )
Laden Sie die Zertifikate in einem Zugriffstoken in einen Weave-Zertifikatsatz.
Diese Funktion decodiert ein bestimmtes Weave-Zugriffstoken und lädt die Zugriffstoken-Zertifikate in das angegebene Weave-Zertifikatssatz-Objekt. Wenn die Zugriffstokens ein oder mehrere zugehörige Zertifikate enthalten, werden diese ebenfalls in den Zertifikatsatz geladen.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabewerte |
|
LoadAccessTokenCerts
WEAVE_ERROR LoadAccessTokenCerts( TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert )
Laden Sie die Zertifikate in einem Zugriffstoken in einen Weave-Zertifikatsatz.
Diese Funktion liest ein Weave-Zugriffstoken von einem bestimmten TLVReader und lädt die Zugriffstoken-Zertifikate in das angegebene Weave-Zertifikatssatzobjekt. Wenn die Zugriffstokens ein oder mehrere zugehörige Zertifikate enthalten, werden diese ebenfalls in den Zertifikatsatz geladen.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
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 )
Generieren Sie einen Bestätigungs-Hash (im Base-64-Format) für einen vorgegebenen Satz von Anmeldedaten für das Thermostat-Gerät.
Details | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Rückgabewerte |
|
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 )
Generieren Sie einen Bestätigungs-Hash (im Base-64-Format) für einen bestimmten Satz an Weave-Bereitstellungsinformationen.
Details | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||||
Rückgabewerte |
|
OIDToWeaveCurveId
uint32_t OIDToWeaveCurveId( ASN1::OID curveOID )
PackCertTime
NL_DLL_EXPORT WEAVE_ERROR PackCertTime( const ASN1UniversalTime & time, uint32_t & packedTime )
Wandeln Sie Datum/Uhrzeit eines Zertifikats in Form einer universellen ASN.1-Zeitstruktur in Datum/Uhrzeit für gepacktes Zertifikat um.
Datum und Uhrzeit des gepackten Zertifikats bieten eine kompakte Darstellung der Zeitwerte in einem Zertifikat (notBefore und notAfter), für die keine vollständigen Kalenderberechnungen erforderlich sind.
Ein gepacktes Datum/Uhrzeit in einem Zertifikat enthält die Felder eines Kalenderdatums/einer Kalenderuhrzeit. Jahr, Monat, Tag, Stunde, Minute, sekundengenau in eine vorzeichenlose Ganzzahl gepackt. Die Bitdarstellung ist so organisiert, dass Ordinalvergleiche von verpackten Datums-/Uhrzeitwerten der natürlichen Reihenfolge der entsprechenden Uhrzeiten entsprechen. Um ihre Größe zu reduzieren, dürfen Datum und Uhrzeiten für das gepackte Zertifikat nur Zeiten ab dem 01.01.2000 um 00:00:00 darstellen. Bei einer 32-Bit-Ganzzahl ohne Vorzeichen können Datum und Uhrzeit des gepackten Zertifikats bis zum Jahr 2133 dargestellt werden.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
PackedCertDateToTime
NL_DLL_EXPORT uint32_t PackedCertDateToTime( uint16_t packedDate )
Wandeln Sie das Datum eines gepackten Zertifikats in das entsprechende Datum und die entsprechende Uhrzeit um, wobei die Uhrzeit des Werts 00:00:00 ist.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Datum/Uhrzeit des entsprechenden Paketzertifikats.
|
PackedCertTimeToDate
NL_DLL_EXPORT uint16_t PackedCertTimeToDate( uint32_t packedTime )
Wandeln Sie Datum/Uhrzeit eines gepackten Zertifikats in ein gepacktes Zertifikat um.
Ein gepacktes Zertifikatsdatum enthält die Felder eines Kalenderdatumsjahrs und -monats, tagverpackt in einer vorzeichenlosen Ganzzahl. Die Bits sind so organisiert, dass Ordinalvergleiche gepackter Datumswerte der natürlichen Reihenfolge der entsprechenden Datumsangaben entsprechen. Um ihre Größe zu reduzieren, dürfen gepackte Zertifikatsdaten nur für Daten ab dem 01.01.2000 verwendet werden. Wenn es sich um eine 16-Bit-Ganzzahl ohne Vorzeichen handelt, können gepackte Zertifikatsdaten Daten bis zum Jahr 2176 darstellen.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Ein entsprechendes Paketzertifikatsdatum.
|
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 )
Rechnen Sie die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC in ein gepacktes Zertifikat mit Datum/Uhrzeit um.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
Datum/Uhrzeit des entsprechenden Paketzertifikats.
|
TranslateOpenSSLError
WEAVE_ERROR TranslateOpenSSLError( WEAVE_ERROR defaultErr )
UnpackCertTime
NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime( uint32_t packedTime, ASN1UniversalTime & time )
Entpacken Sie das Datum und die Uhrzeit eines gepackten Zertifikats in eine universelle ASN.1-Zeitstruktur.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
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 )