nl::Weave::Profiles::Security

Ta przestrzeń nazw obejmuje wszystkie interfejsy weave dla profilu zabezpieczeń Weave.

Podsumowanie

Wyliczenia

@235 enum | typ wyliczeniowy
Flagi głównych celów certyfikatu X.509.
@236 enum | typ wyliczeniowy
Flagi użycia klucza certyfikatu X.509.
@237 enum | typ wyliczeniowy
Flagi certyfikatów Weave.
@238 enum | typ wyliczeniowy
Flagi dekodowania certyfikatów Weave.
@239 enum | typ wyliczeniowy
Flagi weryfikacji certyfikatów Weave.
@240 enum | typ wyliczeniowy
@280 enum | typ wyliczeniowy
@281 enum | typ wyliczeniowy
@282 enum | typ wyliczeniowy
@283 enum | typ wyliczeniowy
@284 enum | typ wyliczeniowy
@285 enum | typ wyliczeniowy
@286 enum | typ wyliczeniowy
@287 enum | typ wyliczeniowy
@288 enum | typ wyliczeniowy
@289 enum | typ wyliczeniowy

Definicje typów

GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig) typedef
Wygeneruj podpis ECDSA przy użyciu klucza prywatnego lokalnego węzła Weave.

Zmienne

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

Funkcje

CASECertInfoFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen)
Odczytuje token dostępu Weave i tworzy strukturę TLV informacji o certyfikacie CASE zawierającą certyfikaty z tokena dostępu.
CASECertInfoFromAccessToken(TLVReader & reader, TLVWriter & writer)
Odczytuje token dostępu Weave i zapisuje strukturę TLV informacji o certyfikacie CASE zawierającą certyfikaty z tokena dostępu.
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)
Określ ogólny typ certyfikatu 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)
Odczytuje token dostępu Weave i wyodrębnia certyfikat tokena dostępu.
ExtractPrivateKeyFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
Odczytuje token dostępu Weave i wyodrębnia klucz prywatny.
ExtractPrivateKeyFromAccessToken(TLVReader & reader, TLVWriter & writer)
Odczytuje token dostępu Weave i wyodrębnia klucz prywatny.
GenerateAndEncodeWeaveECDSASignature(TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen)
Generowanie i kodowanie podpisu Weave ECDSA.
GenerateOperationalDeviceCert(uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature)
NL_DLL_EXPORT WEAVE_ERROR
Wygeneruj certyfikat działającego urządzenia 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)
Wczytaj certyfikaty z tokena dostępu do zestawu certyfikatów Weave.
LoadAccessTokenCerts(TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
Wczytaj certyfikaty z tokena dostępu do zestawu certyfikatów 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
Wygeneruj hasz weryfikacyjny (w formacie base-64) dla danego zestawu danych logowania na urządzenie termostatu.
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
Wygeneruj hasz weryfikacji (w formacie base-64) dla danego zestawu informacji o obsłudze administracyjnej Weave.
OIDToWeaveCurveId(ASN1::OID curveOID)
uint32_t
PackCertTime(const ASN1UniversalTime & time, uint32_t & packedTime)
NL_DLL_EXPORT WEAVE_ERROR
Przekonwertuj datę i godzinę certyfikatu (w postaci uniwersalnej struktury czasu ASN.1) na datę i godzinę spakowanego certyfikatu.
PackedCertDateToTime(uint16_t packedDate)
NL_DLL_EXPORT uint32_t
Przekonwertuj datę i godzinę zapakowanego certyfikatu na odpowiednią datę i godzinę zapakowanego certyfikatu, w której jako część godziny podana jest godzina 00:00:00.
PackedCertTimeToDate(uint32_t packedTime)
NL_DLL_EXPORT uint16_t
Przekonwertuj datę i godzinę spakowanego certyfikatu na datę zapakowanego certyfikatu.
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
Przekonwertuj liczbę sekund od 01.01.01 00:00:00 czasu UTC na datę i godzinę spakowanego certyfikatu.
TranslateOpenSSLError(WEAVE_ERROR defaultErr)
UnpackCertTime(uint32_t packedTime, ASN1UniversalTime & time)
NL_DLL_EXPORT WEAVE_ERROR
Rozpakuj datę i godzinę certyfikatu w uniwersalnej strukturze czasu 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

Zajęcia

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

Generuje podpis WeaveSignature przy użyciu klucza prywatnego w pamięci.

nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase

Udostępnia ogólną funkcję generowania podpisów WeaveSignature.

Przestrzenie nazw

nl::Weave::Profiles::Security::AppKeys

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla biblioteki kluczy aplikacji Weave w profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave na potrzeby protokołu CASE (Certificate Authenticated Session Embed) w ramach profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy weave na potrzeby protokołu udostępniania certyfikatów Weave w ramach profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla protokołu eksportu kluczy w profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla protokołu PASE (hasła uwierzytelnionego) w profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy weave biblioteki haseł do Weave w profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla protokołu Taked Key Exchange (JWT) w profilu zabezpieczeń Weave.

Wyliczenia

@235

 @235

Flagi głównych celów certyfikatu X.509.

@236

 @236

Flagi użycia klucza certyfikatu X.509.

@237

 @237

Flagi certyfikatów Weave.

Zawiera informacje o certyfikacie, który został załadowany do obiektu WeaveCertSet.

@238

 @238

Flagi dekodowania certyfikatów Weave.

Zawiera informacje określające sposób dekodowania certyfikatu.

@239

 @239

Flagi weryfikacji certyfikatów Weave.

Zawiera informacje określające sposób weryfikacji certyfikatu.

240

 @240

@280

 @280

@281

 @281

@282

 @282

@283

 @283

@284

 @284

@285

 @285

@286

 @286

@287

 @287

@288

 @288

@289

 @289

Definicje typów

GenerateECDSASignatureFunct

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

Wygeneruj podpis ECDSA przy użyciu klucza prywatnego lokalnego węzła Weave.

Po wywołaniu implementacje muszą obliczyć podpis dla danej wartości skrótu za pomocą klucza prywatnego węzła.

Szczegóły
Parametry
[in] hash
Bufor zawierający hasz certyfikatu do podpisania.
[in] hashLen
Długość haszowania w bajtach.
[in] ecdsaSig
Odwołanie do obiektu podpisu ecdsa, w którym zapisany jest wynik tej funkcji.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli operacja się udała.

Zmienne

gProvisioningBundleKDFSalt

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

Funkcje

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  uint8_t *certInfoBuf,
  uint16_t certInfoBufSize,
  uint16_t & certInfoLen
)

Odczytuje token dostępu Weave i tworzy strukturę TLV informacji o certyfikacie CASE zawierającą certyfikaty z tokena dostępu.

Ta funkcja dekoduje dany token dostępu Weave i koduje TLV na potrzeby struktury informacji o certyfikacie Weave CASE. Pole EntityCertificate (Certyfikat jednostki) w strukturze CertificateInfo jest ustawione na certyfikat tokena dostępu, a pole RelatedCertificates (jeśli istnieje) – odpowiednie pole w tokenie dostępu.

Szczegóły
Parametry
accessToken
Wskaźnik do bufora zawierającego zakodowany token dostępu Weave.
accessTokenLen
Długość zakodowanego tokena dostępu.
certInfoBuf
Wskaźnik do bufora, w którym powinna być zakodowana struktura informacji o certyfikacie CASE.
certInfoBufSize
Rozmiar bufora wskazywany przez parametr certInfoBuf.
certInfoLen
Odwołanie do liczby całkowitej zostanie ustawione na długość zakodowanej struktury informacji certyfikatu. UWAGA: tę wartość ustawia się tylko wtedy, gdy funkcja jest zwracana pomyślnie.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli struktura informacji o certyfikacie dostępu (CASE) została zakodowana.
tlv-errors
Błędy splotu związane z odczytem lub pisaniem TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Odczytuje token dostępu Weave i zapisuje strukturę TLV informacji o certyfikacie CASE zawierającą certyfikaty z tokena dostępu.

Ta funkcja odczytuje token dostępu Weave z danego czytnika TLVReader i zapisuje w klasy TLVWriter wartość TLV struktury informacji o certyfikacie Weave CASE. Pole EntityCertificate (Certyfikat jednostki) w strukturze CertificateInfo jest ustawione na certyfikat tokena dostępu, a pole RelatedCertificates (jeśli istnieje) – odpowiednie pole w tokenie dostępu.

Szczegóły
Parametry
[in] reader
Odczytujący TLVReader znajdujący się w tokenie dostępu Weave.
[in] writer
Obiekt TLVWriter, który ma służyć do rejestrowania wyjściowych informacji o certyfikacie CASE.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli struktura informacji o certyfikacie dostępu (CASE) została zakodowana.
tlv-errors
Błędy splotu związane z odczytem lub pisaniem TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

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
)

Określ ogólny typ certyfikatu Weave.

Ta funkcja przeprowadza ogólną ocenę typu certyfikatu na podstawie struktury jego nazwy wyróżniającej podmiotu i obecnych rozszerzeń. Aplikacje mogą zastąpić ten ocenę przez ustawienie parametru cert.CertType na inną wartość, w tym na określoną przez aplikację.

Ogólnie aplikacje ufają certyfikatowi peera tylko wtedy, gdy jest on połączony z zaufanym certyfikatem głównym. Jednak typ przypisany do certyfikatu może wpływać na charakter tego zaufania, na przykład zezwalać na dostęp do niektórych funkcji lub go blokować. Z tego powodu zmiany w tym algorytmie mogą mieć BARDZO ZNACZNY i POTENCJALNIE KATASTROFICZNY wpływ na ogólne bezpieczeństwo systemu. Nie należy wprowadzać tych zmian bez dokładnego zrozumienia ich konsekwencji.

UWAGA: certyfikatów tokenów dostępu nie można rozróżnić wyłącznie według struktury. Z tego względu funkcja ta nigdy nie ustawia 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
)

Odczytuje token dostępu Weave i wyodrębnia certyfikat tokena dostępu.

Ta funkcja odczytuje token dostępu Weave z odczytu TLVReader i zapisuje certyfikat tokena dostępu w określonym obiekcie TLVWriter.

Szczegóły
Parametry
[in] reader
Odczytujący TLVReader znajdujący się w tokenie dostępu Weave.
[in] writer
Dokument TLVWriter, w którym zostanie zapisany certyfikat.
[in] tag
Tag TLV używany podczas zapisywania certyfikatu.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli struktura informacji o certyfikacie dostępu (CASE) została zakodowana.
tlv-errors
Błędy splotu związane z odczytem lub pisaniem TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

ExtractPrivateKeyFromAccessToken

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

Odczytuje token dostępu Weave i wyodrębnia klucz prywatny.

Ta funkcja dekoduje dany token dostępu Weave i wyodrębnia pole klucza prywatnego z tokena.

Szczegóły
Parametry
accessToken
Wskaźnik do bufora zawierającego zakodowany token dostępu Weave.
accessTokenLen
Długość zakodowanego tokena dostępu.
privKeyBuf
Wskaźnik do bufora, w którym powinna być zakodowana struktura klucza prywatnego.
privKeyBufSize
Rozmiar bufora wskazywany przez privKeyBuf.
privKeyLen
Odwołanie do liczby całkowitej zostanie ustawione na długość klucza prywatnego. UWAGA: tę wartość ustawia się tylko wtedy, gdy funkcja jest zwracana pomyślnie.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli klucz prywatny został wyodrębniony.
tlv-errors
Błędy splotu związane z odczytem lub pisaniem TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Odczytuje token dostępu Weave i wyodrębnia klucz prywatny.

Ta funkcja dekoduje dany token dostępu Weave i wyodrębnia pole klucza prywatnego z tokena.

Szczegóły
Parametry
[in] reader
Odczytujący TLVReader znajdujący się w tokenie dostępu Weave.
[in] writer
Obiekt TLVWriter, w którym zostanie zapisany klucz prywatny.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli klucz prywatny został wyodrębniony.
tlv-errors
Błędy splotu związane z odczytem lub pisaniem TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

GenerateAndEncodeWeaveECDSASignature

WEAVE_ERROR GenerateAndEncodeWeaveECDSASignature(
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *signingKey,
  uint16_t signingKeyLen
)

Generowanie i kodowanie podpisu Weave ECDSA.

Oblicza podpis ECDSA przy użyciu podanego klucza prywatnego i skrótu wiadomości oraz zapisuje podpis jako strukturę Weave ECDSASignature dla określonego zapisującego TLV z danym tagiem.

Szczegóły
Parametry
[in] writer
Obiekt TLVWriter, w którym powinien być zapisany zakodowany podpis.
[in] tag
Tag TLV, który ma być powiązany z zakodowaną strukturą podpisu.
[in] msgHash
Bufor zawierający hasz wiadomości do podpisania.
[in] msgHashLen
Długość skrótu wiadomości w bajtach.
[in] signingKey
Bufor zawierający klucz prywatny, który ma zostać użyty do wygenerowania podpisu. Klucz prywatny powinien być zakodowany w postaci struktury TLV Weave EllipticCurvePrivateKey.
[in] signingKeyLen
Długość zakodowanego klucza prywatnego w bajtach.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli operacja się udała.
other
Inne kody błędów Weave związane z dekodowaniem klucza prywatnego, generowaniem podpisu lub kodowania podpisu.

GenerateOperationalDeviceCert

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

Wygeneruj certyfikat działającego urządzenia Weave.

Ta funkcja generuje samodzielnie podpisany certyfikat operacyjny Weave zakodowany w formacie TLV Weave.

Szczegóły
Parametry
deviceId
Identyfikator urządzenia operacyjnego Weave.
devicePubKey
Wepnij klucz publiczny urządzenia operacyjnego.
cert
Wskaźnik do bufora, w którym ma zostać zapisany wygenerowany certyfikat.
certBufSize
Długość udostępnionego bufora certyfikatów w bajtach.
certLen
Długość wygenerowanego certyfikatu w bajtach.
genCertSignature
Wskaźnik funkcji, która generuje podpis ECDSA na danym skrócie certyfikatu przy użyciu klucza prywatnego urządzenia operacyjnego.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli certyfikat Weave został wygenerowany.

GetWeaveSignatureAlgo

WEAVE_ERROR GetWeaveSignatureAlgo(
  const uint8_t *sig,
  uint16_t sigLen,
  OID & sigAlgoOID
)

Dodaj wcięcie

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
)

Wczytaj certyfikaty z tokena dostępu do zestawu certyfikatów Weave.

Ta funkcja dekoduje dany token dostępu Weave i wczytuje te certyfikaty do określonego obiektu zestawu certyfikatów Weave. Jeśli tokeny dostępu zawierają co najmniej jeden powiązany certyfikat, zostaną one również wczytane do zestawu certyfikatów.

Szczegóły
Parametry
accessToken
Wskaźnik do bufora zawierającego zakodowany token dostępu Weave.
accessTokenLen
Długość zakodowanego tokena dostępu.
certSet
Certyfikat, do którego mają być ładowane certyfikaty tokenów dostępu.
decodeFlags
Flagi dekodowania certyfikatów, które powinny być używane podczas wczytywania certyfikatów.
accessTokenCert
Odwołanie do wskaźnika, który zostanie ustawiony na strukturę danych certyfikatu Weave dla certyfikatu tokena dostępu. UWAGA: ten wskaźnik zostanie ustawiony tylko wtedy, gdy funkcja zostanie zwrócona.
Zwracane wartości
WEAVE_NO_ERROR
Informacje o tym, czy certyfikaty tokenów dostępu zostały wczytane.
tlv-errors
Błędy splotu związane z odczytywaniem danych TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

LoadAccessTokenCerts

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

Wczytaj certyfikaty z tokena dostępu do zestawu certyfikatów Weave.

Ta funkcja odczytuje token dostępu Weave z danego czytnika TLVReader i wczytuje certyfikaty tokenów dostępu do określonego obiektu zestawu certyfikatów Weave. Jeśli tokeny dostępu zawierają co najmniej jeden powiązany certyfikat, zostaną one również wczytane do zestawu certyfikatów.

Szczegóły
Parametry
reader
Obiekt TLVReader, który znajduje się bezpośrednio przed tokenem dostępu Weave.
certSet
Certyfikat, do którego mają być ładowane certyfikaty tokenów dostępu.
decodeFlags
Flagi dekodowania certyfikatów, które powinny być używane podczas wczytywania certyfikatów.
accessTokenCert
Odwołanie do wskaźnika, który zostanie ustawiony na strukturę danych certyfikatu Weave dla certyfikatu tokena dostępu. UWAGA: tę wartość ustawia się tylko wtedy, gdy funkcja jest zwracana pomyślnie.
Zwracane wartości
WEAVE_NO_ERROR
Informacje o tym, czy certyfikaty tokenów dostępu zostały wczytane.
tlv-errors
Błędy splotu związane z odczytywaniem danych TLV.
cert-errors
Błędy splotu związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z platformą.

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
)

Wygeneruj hasz weryfikacyjny (w formacie base-64) dla danego zestawu danych logowania na urządzenie termostatu.

Szczegóły
Parametry
[in] serialNum
Wskaźnik do bufora zawierającego numer seryjny urządzenia.
[in] serialNumLen
Długość ciągu z numerem seryjnym.
[in] deviceId
Wskaźnik do bufora zawierającego identyfikator urządzenia.
[in] deviceIdLen
Długość identyfikatora urządzenia.
[in] deviceSecret
Wskaźnik do bufora zawierającego tajny klucz urządzenia.
[in] deviceSecretLen
Długość klucza tajnego urządzenia.
[in,out] hashBuf
Wskaźnik do bufora, który otrzyma wartość skrótu weryfikacji w formacie base-64. Ciąg wyjściowy będzie miał wartość null. Ten bufor powinien mieć co najmniej kDeviceCredentialHashLength + 1.
[in] hashBufSize
Rozmiar bufora w bajtach wskazywany przez hashBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_STRING_LENGTH
Jeśli jedna z wartości wejściowych jest za długa (> 65 535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli dostarczony bufor jest zbyt mały, by zapisać wygenerowaną wartość skrótu.

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
)

Wygeneruj hasz weryfikacji (w formacie base-64) dla danego zestawu informacji o obsłudze administracyjnej Weave.

Szczegóły
Parametry
[in] nodeId
Identyfikator węzła Weave urządzenia.
[in] weaveCert
Wskaźnik do bufora zawierającego certyfikat urządzenia Weave w formacie base-64.
[in] weaveCertLen
Długość wartości certyfikatu wskazana przez weaveCert.
[in] weavePrivKey
Wskaźnik do bufora zawierającego klucz prywatny urządzenia Weave w formacie base-64.
[in] weavePrivKeyLen
Długość wartości klucza prywatnego, na którą wskazuje weavePrivKey.
[in] pairingCode
Wskaźnik do bufora zawierającego kod parowania urządzenia.
[in] pairingCodeLen
Długość wartości kodu parowania wskazywanej przez kod parowania.
[in,out] hashBuf
Wskaźnik do bufora, który otrzyma wartość skrótu weryfikacji w formacie base-64. Ciąg wyjściowy będzie miał wartość null. Ten bufor powinien mieć co najmniej kWeaveProvisioningHashLength + 1.
[in] hashBufSize
Rozmiar bufora w bajtach wskazywany przez hashBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_STRING_LENGTH
Jeśli jedna z wartości wejściowych jest za długa (> 65 535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli dostarczony bufor jest zbyt mały, by zapisać wygenerowaną wartość skrótu.

Identyfikator OID do krzywej splotu

uint32_t OIDToWeaveCurveId(
  ASN1::OID curveOID
)

PackCertTime

NL_DLL_EXPORT WEAVE_ERROR PackCertTime(
  const ASN1UniversalTime & time,
  uint32_t & packedTime
)

Przekonwertuj datę i godzinę certyfikatu (w postaci uniwersalnej struktury czasu ASN.1) na datę i godzinę spakowanego certyfikatu.

Spakowane daty i godziny certyfikatu zawierają kompaktową reprezentację wartości czasu w certyfikacie (notBefore i notAfter), która nie wymaga do interpretacji pełnej funkcji matematycznej.

Spakowane dane z datą i godziną certyfikatu zawierają pola daty i godziny (rok, miesiąc, dzień, godzina, minuta) i są umieszczone w postaci nieoznaczonej liczby całkowitej. Reprezentacja bitowa jest uporządkowana w taki sposób, że porównania porządkowe zapakowanych wartości daty i godziny odpowiadają naturalnej kolejności odpowiednich czasów. Aby zredukować rozmiar, daty i godziny zapakowanych certyfikatów są ograniczone do godzin do godziny 00:00:00 1 stycznia 2000 roku lub później. W przypadku 32-bitowej nieoznaczonej liczby całkowitej spakowane daty i godziny zapakowanych certyfikatów mogą przedstawiać czasy do roku 2133.

Szczegóły
Parametry
time
Data i godzina w kalendarzu do skonwertowania.
packedTime
Odwołanie do liczby całkowitej, która otrzyma pakiet zawierający datę/godzinę.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli czas wejściowy został przekonwertowany.
ASN1_ERROR_UNSUPPORTED_ENCODING
Jeśli czas wejściowy zawierał wartość roku, której nie można przedstawić w pakiecie wartości czasu certyfikatu.

PackedCertDateToTime

NL_DLL_EXPORT uint32_t PackedCertDateToTime(
  uint16_t packedDate
)

Przekonwertuj datę i godzinę zapakowanego certyfikatu na odpowiednią datę i godzinę zapakowanego certyfikatu, w której jako część godziny podana jest godzina 00:00:00.

Szczegóły
Parametry
packedDate
Data spakowanego certyfikatu do skonwertowania.
Zwroty
Odpowiednia data i godzina w certyfikacie pakietu.

PackedCertTimeToDate

NL_DLL_EXPORT uint16_t PackedCertTimeToDate(
  uint32_t packedTime
)

Przekonwertuj datę i godzinę spakowanego certyfikatu na datę zapakowanego certyfikatu.

Data spakowania certyfikatu zawiera pola kalendarza datarok i miesiąc ujęte w dzień nieoznaczoną liczbą całkowitą. Bity są uporządkowane w taki sposób, aby porządkowe porównania wartości pakietów dat odpowiadały naturalnej kolejności odpowiednich dat. Aby zmniejszyć rozmiar, zakres dat zapakowanych certyfikatów musi być datą przypadającą na 1 stycznia 2000 roku lub później. Jeśli daty mieszczą się w 16-bitowej niepodpisanej liczbie całkowitej, daty spakowanego certyfikatu mogą obejmować daty do 2176 roku.

Szczegóły
Parametry
packedTime
Data i godzina spakowanego certyfikatu do skonwertowania.
Zwroty
Odpowiednia data certyfikatu pakietu.

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
)

Przekonwertuj liczbę sekund od 01.01.01 00:00:00 czasu UTC na datę i godzinę spakowanego certyfikatu.

Szczegóły
Parametry
secondsSinceEpoch
Liczba sekund od 1970-01-01 00:00:00 czasu UTC. Uwaga: ta wartość jest zgodna z wartościami dodatnimi parametru time_t POSIX do 2105 r.
Zwroty
Odpowiednia data i godzina w certyfikacie pakietu.

TranslateOpenSSLError

WEAVE_ERROR TranslateOpenSSLError(
  WEAVE_ERROR defaultErr
)

UnpackCertTime

NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime(
  uint32_t packedTime,
  ASN1UniversalTime & time
)

Rozpakuj datę i godzinę certyfikatu w uniwersalnej strukturze czasu ASN.1.

Szczegóły
Parametry
packedTime
Czas spakowania certyfikatu do rozpakowania.
time
Odwołanie do struktury ASN1UniversalTime w celu otrzymania rozpakowanej daty/godziny.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli czas wprowadzania danych został rozpakowany.

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
)