nl::Weave::Profiles::Security

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla profilu Weave Security.

Podsumowanie

Wyliczenia

@235 enum | typ wyliczeniowy
Flagi zastosowania klucza 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 certyfikatu 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

Definiuje typ

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 z informacjami 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 z certyfikatami 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śla 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)
Wygeneruj i zakoduj podpis 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 urządzenia operacyjnego 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 base64) dla danego zestawu danych logowania do urządzenia 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 weryfikacyjny (w formacie base-64) dla danego zbioru 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 czasowej ASN.1) na spakowaną datę i godzinę certyfikatu.
PackedCertDateToTime(uint16_t packedDate)
NL_DLL_EXPORT uint32_t
Konwertuj datę w spakowanym certyfikacie na odpowiednią datę/godzinę certyfikatu w spakowanym pliku, gdy część czasową wartości jest ustawiona na 00:00:00.
PackedCertTimeToDate(uint32_t packedTime)
NL_DLL_EXPORT uint16_t
Przekonwertuj datę i godzinę w spakowanym certyfikacie na datę i godzinę w spakowanym certyfikacie.
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 godziny 00:00:00 czasu UTC 1970-01-01 na spakowaną datę/godzinę certyfikatu.
TranslateOpenSSLError(WEAVE_ERROR defaultErr)
UnpackCertTime(uint32_t packedTime, ASN1UniversalTime & time)
NL_DLL_EXPORT WEAVE_ERROR
Rozpakuj spakowaną datę i godzinę certyfikatu do uniwersalnej struktury czasowej 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 weaveSignature przy użyciu klucza prywatnego w pamięci.

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

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

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 zawiera wszystkie interfejsy Weave dla protokołu Certificate Authenticated Session kroku CASE) w profilu zabezpieczeń Weave.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla protokołu udostępniania certyfikatów Weave w 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 (Password Authenticated Session kroku) w profilu zabezpieczeń Weave.

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

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

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave dla protokołu Token Authenticated Key Exchange (take) w profilu Weave Security.

Wyliczenia

@235

 @235

Flagi zastosowania klucza 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ł wczytany do obiektu WeaveCertSet.

@238

 @238

Flagi dekodowania certyfikatów Weave.

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

@239

 @239

Flagi weryfikacji certyfikatu 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

Definiuje typ

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ść skrótu (w bajtach).
[in] ecdsaSig
Odwołanie do obiektu podpisu ecdsa, w którym ma być zapisany 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 z informacjami o certyfikacie CASE zawierającą certyfikaty z tokena dostępu.

Ta funkcja dekoduje określony token dostępu Weave i koduje TLV struktury informacji o certyfikacie Weave CASE. Pole EntityCertificate w strukturze CertificateInfo jest ustawione na certyfikat tokena dostępu, a pole RelatedCertificates (jeśli istnieje) jest ustawione na 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 wskazywanego przez atrybut certInfoBuf.
certInfoLen
Odwołanie do liczby całkowitej zostanie ustawione na długość zakodowanej struktury informacji o certyfikacie. UWAGA: ta wartość jest ustawiana tylko wtedy, gdy funkcja zwróci poprawne wyniki.
Zwracane wartości
WEAVE_NO_ERROR
Czy struktura informacji o certyfikatach dostępu CASE została zakodowana.
tlv-errors
Weź pod uwagę błędy związane z odczytem lub zapisem TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną platformą.

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

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

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

Szczegóły
Parametry
[in] reader
TLVReader umieszczony na tokenie dostępu Weave.
[in] writer
TLVWriter, który służy do zapisywania danych wyjściowych certyfikatu CASE.
Zwracane wartości
WEAVE_NO_ERROR
Czy struktura informacji o certyfikatach dostępu CASE została zakodowana.
tlv-errors
Weź pod uwagę błędy związane z odczytem lub zapisem TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną 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śla ogólny typ certyfikatu Weave.

Ta funkcja przeprowadza ogólną ocenę typu certyfikatu na podstawie struktury jego nazwy wyróżniającej oraz występujących rozszerzeń. Aplikacje mogą zastąpić tę ocenę przez ustawienie atrybutu cert.CertType na inną wartość, w tym wartość definiowaną przez aplikację.

Ogólnie rzecz biorąc, aplikacje ufają certyfikatowi peera tylko wtedy, gdy jest on powiązany z zaufanym certyfikatem głównym. Jednak typ przypisany do certyfikatu może wpływać na charakter tego zaufania, np. aby zezwolić na dostęp do pewnych funkcji lub go zablokować. Z tego względu zmiany w tym algorytmie mogą mieć BARDZO ZNACZNY i POTENCJALNY wpływ na ogólne bezpieczeństwo systemu i nie powinny być wprowadzane bez dokładnego zrozumienia tych skutków.

UWAGA: certyfikatów tokenów dostępu nie można odróżnić wyłącznie za pomocą ich struktury. Dlatego ta funkcja 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 TLVReader i zapisuje certyfikat tokena dostępu w określonym obiekcie TLVWriter.

Szczegóły
Parametry
[in] reader
TLVReader umieszczony na tokenie dostępu Weave.
[in] writer
Element TLVWriter, w którym zostanie zapisany certyfikat.
[in] tag
Tag TLV używany podczas zapisywania certyfikatu.
Zwracane wartości
WEAVE_NO_ERROR
Czy struktura informacji o certyfikatach dostępu CASE została zakodowana.
tlv-errors
Weź pod uwagę błędy związane z odczytem lub zapisem TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną 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 określony 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 zostać zakodowana struktura klucza prywatnego.
privKeyBufSize
Rozmiar bufora, na który wskazuje privKeyBuf.
privKeyLen
Odwołanie do liczby całkowitej zostanie ustawione na długość klucza prywatnego. UWAGA: ta wartość jest ustawiana tylko wtedy, gdy funkcja zwróci poprawne wyniki.
Zwracane wartości
WEAVE_NO_ERROR
o tym, czy udało się wyodrębnić klucz prywatny.
tlv-errors
Weź pod uwagę błędy związane z odczytem lub zapisem TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną platformą.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

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

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

Szczegóły
Parametry
[in] reader
TLVReader umieszczony na tokenie dostępu Weave.
[in] writer
Element TLVWriter, w którym zostanie zapisany klucz prywatny.
Zwracane wartości
WEAVE_NO_ERROR
o tym, czy udało się wyodrębnić klucz prywatny.
tlv-errors
Weź pod uwagę błędy związane z odczytem lub zapisem TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną platformą.

GenerateAndEncodeWeaveECDSASignature

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

Wygeneruj i zakoduj podpis Weave ECDSA.

Oblicza podpis ECDSA przy użyciu danego klucza prywatnego i skrótu wiadomości, a następnie zapisuje podpis w postaci struktury Weave ECDSASignature dla określonego zapisującego TLV z podanym tagiem.

Szczegóły
Parametry
[in] writer
Obiekt TLVWriter, w którym należy zapisać zakodowany podpis.
[in] 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 będzie używany do generowania podpisu. Klucz prywatny powinien być kodowany jako struktura Weave EllipticCurvePrivateKey TLV.
[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 kodowaniem 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 urządzenia operacyjnego Weave.

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

Szczegóły
Parametry
deviceId
Identyfikator działającego urządzenia
devicePubKey
Weave publiczny klucz operacyjny urządzenia.
cert
Wskaźnik do bufora, w którym należy zapisać wygenerowany certyfikat.
certBufSize
Długość podanego bufora certyfikatów (w bajtach).
certLen
Długość wygenerowanego certyfikatu (w bajtach).
genCertSignature
Wskaźnik do funkcji, która generuje podpis ECDSA dla danego skrótu certyfikatu przy użyciu działającego klucza prywatnego urządzenia.
Zwracane wartości
WEAVE_NO_ERROR
Informacje o tym, czy 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 określony token dostępu Weave i wczytuje certyfikaty tokenów dostępu do określonego obiektu zestawu certyfikatów Weave. Jeśli tokeny dostępu zawierają co najmniej 1 powiązany certyfikat, one również zostaną 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
Zbiór certyfikatów, do którego mają zostać wczytane 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 certyfikatów weave dla certyfikatu tokena dostępu. UWAGA: ten wskaźnik zostanie ustawiony tylko wtedy, gdy funkcja zostanie poprawnie zwrócona.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli certyfikaty tokena dostępu zostały wczytane.
tlv-errors
Wejść na błędy związane z odczytem wartości TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną 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 TLVReader i wczytuje certyfikaty tokenów dostępu do określonego obiektu zestawu certyfikatów Weave. Jeśli tokeny dostępu zawierają co najmniej 1 powiązany certyfikat, one również zostaną wczytane do zestawu certyfikatów.

Szczegóły
Parametry
reader
Obiekt TLVReader, który znajduje się bezpośrednio przed tokenem dostępu Weave.
certSet
Zbiór certyfikatów, do którego mają zostać wczytane 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 certyfikatów weave dla certyfikatu tokena dostępu. UWAGA: ta wartość jest ustawiana tylko wtedy, gdy funkcja zwróci poprawne wyniki.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli certyfikaty tokena dostępu zostały wczytane.
tlv-errors
Wejść na błędy związane z odczytem wartości TLV.
cert-errors
Błędy Weave związane z dekodowaniem certyfikatów Weave.
platform-errors
Inne błędy związane z konkretną 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 base64) dla danego zestawu danych logowania do urządzenia termostatu.

Szczegóły
Parametry
[in] serialNum
Wskaźnik do bufora z numerem seryjnym urządzenia.
[in] serialNumLen
Długość ciągu numeru seryjnego.
[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ść obiektu tajnego urządzenia.
[in,out] hashBuf
Wskaźnik do bufora, do którego zostanie odebrana wartość skrótu weryfikacyjnego w formacie base-64. Ciąg wyjściowy będzie miał wartość null. Ten bufor powinien być co najmniej równy kDeviceCredentialHashLength + 1.
[in] hashBufSize
Wyrażony w bajtach rozmiar bufora wskazywany przez wartość hashBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_STRING_LENGTH
Jeśli jedna z wartości wejściowych jest zbyt długa (> 65 535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli podany bufor jest zbyt mały, aby 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 weryfikacyjny (w formacie base-64) dla danego zbioru 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 wskazywana 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 wskazywanej przez klucz weavePrivKey.
[in] pairingCode
Wskaźnik do bufora zawierającego kod parowania urządzenia.
[in] pairingCodeLen
Długość wartości kodu parowania wskazywanej przez wartość parowaniaCode.
[in,out] hashBuf
Wskaźnik do bufora, do którego zostanie odebrana wartość skrótu weryfikacyjnego w formacie base-64. Ciąg wyjściowy będzie miał wartość null. Ten bufor powinien być co najmniej tak duży, jak kWeave ProvisioningingHashLength + 1.
[in] hashBufSize
Wyrażony w bajtach rozmiar bufora wskazywany przez wartość hashBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli przy użyciu metody się udało:
WEAVE_ERROR_INVALID_STRING_LENGTH
Jeśli jedna z wartości wejściowych jest zbyt długa (> 65 535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli podany bufor jest zbyt mały, aby zapisać wygenerowaną wartość skrótu.

OIDToWeaveCurveId

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 czasowej ASN.1) na spakowaną datę i godzinę certyfikatu.

Zapakowane daty i godziny certyfikatu to kompaktowa reprezentacja wartości czasu w certyfikacie (notBefore i notAfter), która nie wymaga pełnej interpretacji obliczeń matematycznych.

Pakiet daty i godziny certyfikatu zawiera pola daty/godziny kalendarzowej, tj. rok, miesiąc, dzień, godzina, minuta, secondpack na nieoznaczoną liczbę całkowitą. Reprezentacja bitów jest zorganizowana w taki sposób, że porównania porządkowe zapakowanych wartości daty i godziny odpowiadają naturalnej kolejności odpowiednich czasów. Aby zmniejszyć ich rozmiar, w pakietach daty i godziny certyfikatu są ograniczone do reprezentowania czasu przypadającego na 1.01.2000 r. o godz. 00:00:00 lub później. Zapakowane daty i godziny certyfikatu umieszczone w 32-bitowej niepodpisanej liczbie całkowitej mogą przedstawiać czas do roku 2133.

Szczegóły
Parametry
time
Data/godzina kalendarzowa do przekonwertowania.
packedTime
Odwołanie do liczby całkowitej, która otrzyma spakowaną datę/godzinę.
Zwracane wartości
WEAVE_NO_ERROR
Czy podany czas został przekonwertowany.
ASN1_ERROR_UNSUPPORTED_ENCODING
Czas wejściowy zawierał wartość roku, której nie można przedstawić w spakowanej wartości czasu certyfikatu.

PackedCertDateToTime

NL_DLL_EXPORT uint32_t PackedCertDateToTime(
  uint16_t packedDate
)

Konwertuj datę w spakowanym certyfikacie na odpowiednią datę/godzinę certyfikatu w spakowanym pliku, gdzie część czasową wartości jest ustawiona na 00:00:00.

Szczegóły
Parametry
packedDate
Data spakowanego certyfikatu do przekonwertowania.
Zwroty
Data i godzina odpowiedniego certyfikatu pakietu.

PackedCertTimeToDate

NL_DLL_EXPORT uint16_t PackedCertTimeToDate(
  uint32_t packedTime
)

Przekonwertuj datę i godzinę w spakowanym certyfikacie na datę i godzinę w spakowanym certyfikacie.

Data w pakiecie daty certyfikatu zawiera pola kalendarzowego typu datarok i miesiąc, podane w postaci niepodpisanej liczby całkowitej. Bity są uporządkowane w taki sposób, że porządkowe porównania spakowanych wartości dat odpowiadają naturalnej kolejności odpowiednich dat. Aby zmniejszyć swój rozmiar, daty w pakietach certyfikatów są ograniczone do dat przypadających na 1 stycznia 2000 r. lub później. Jeśli daty certyfikatu są umieszczone w 16-bitowej niepodpisanej liczbie całkowitej, daty w pakietach mogą przypadać do 2176 roku.

Szczegóły
Parametry
packedTime
Data/godzina spakowanego certyfikatu do przekonwertowania.
Zwroty
Data odpowiedniego 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 godziny 00:00:00 czasu UTC 1970-01-01 na spakowaną datę/godzinę certyfikatu.

Szczegóły
Parametry
secondsSinceEpoch
Liczba sekund od 1970-01-01 00:00:00 UTC. Uwaga: ta wartość jest zgodna z dodatnimi wartościami parametru POSIX time_t (do 2105 roku).
Zwroty
Data i godzina odpowiedniego certyfikatu pakietu.

TranslateOpenSSLError

WEAVE_ERROR TranslateOpenSSLError(
  WEAVE_ERROR defaultErr
)

UnpackCertTime

NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime(
  uint32_t packedTime,
  ASN1UniversalTime & time
)

Rozpakuj spakowaną datę i godzinę certyfikatu do uniwersalnej struktury czasowej ASN.1.

Szczegóły
Parametry
packedTime
Czas na rozpakowanie spakowanego certyfikatu.
time
Odwołanie do struktury ASN1UniversalTime, która otrzymuje niespakowaną datę/godzinę.
Zwracane wartości
WEAVE_NO_ERROR
Informacja o tym, czy 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
)