Google is committed to advancing racial equity for Black communities. See how.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

nl :: Tecer:: Perfis :: Segurança

Este namespace inclui todas as interfaces do Weave para o perfil do Weave Security .

Resumo

Enumerações

@235 enum
Sinalizadores de finalidade de chave de certificado X.509.
@236 enum
Sinalizadores de uso de chave de certificado X.509.
@237 enum
Traçar sinalizadores de certificado.
@238 enum
Sinalizadores de decodificação de certificado de Weave.
@239 enum
Certificado Weave para validar sinalizadores.
@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
Gere uma assinatura ECDSA usando a chave privada do nó Weave local.

Variáveis

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

Funções

CASECertInfoFromAccessToken (const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen)
Lê um token de acesso Weave e constrói uma estrutura CASE Certificate Info TLV contendo os certificados do token de acesso.
CASECertInfoFromAccessToken ( TLVReader & reader, TLVWriter & writer)
Lê um Weave Access Token e grava uma estrutura CASE Certificate Info TLV contendo os certificados do token de acesso.
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)
Determine o tipo geral de um certificado 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)
Lê um Token de Acesso Weave e extrai o Certificado de Token de Acesso.
ExtractPrivateKeyFromAccessToken (const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
Lê um token de acesso Weave e extrai a chave privada.
ExtractPrivateKeyFromAccessToken ( TLVReader & reader, TLVWriter & writer)
Lê um token de acesso Weave e extrai a chave privada.
GenerateAndEncodeWeaveECDSASignature ( TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen)
Gere e codifique uma assinatura Weave ECDSA.
GenerateOperationalDeviceCert (uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature)
NL_DLL_EXPORT WEAVE_ERROR
Gerar certificado de dispositivo operacional 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)
Carregue os certificados em um token de acesso em um conjunto de certificados Weave.
LoadAccessTokenCerts ( TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
Carregue os certificados em um token de acesso em um conjunto de certificados 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
Gere um hash de verificação (no formato base 64) para um determinado conjunto de credenciais do dispositivo do termostato.
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
Gere um hash de verificação (no formato base 64) para um determinado conjunto de informações de provisionamento do Weave.
OIDToWeaveCurveId (ASN1::OID curveOID)
uint32_t
PackCertTime (const ASN1UniversalTime & time, uint32_t & packedTime)
NL_DLL_EXPORT WEAVE_ERROR
Converta uma data / hora de certificado (na forma de uma estrutura de tempo universal ASN.1) em uma data / hora de certificado compactado.
PackedCertDateToTime (uint16_t packedDate)
NL_DLL_EXPORT uint32_t
Converta a data de um certificado empacotado em uma data / hora de certificado empacotado correspondente, em que a parte de hora do valor é definida como 00:00:00.
PackedCertTimeToDate (uint32_t packedTime)
NL_DLL_EXPORT uint16_t
Converta uma data / hora de certificado empacotado em uma data de certificado empacotado.
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
Converta o número de segundos desde 01/01/1970 00:00:00 UTC em uma data / hora de certificado compactado
TranslateOpenSSLError ( WEAVE_ERROR defaultErr)
UnpackCertTime (uint32_t packedTime, ASN1UniversalTime & time)
NL_DLL_EXPORT WEAVE_ERROR
Descompacte uma data / hora de certificado compactado em uma estrutura de tempo universal 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

Aulas

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

Gera um WeaveSignature usando uma chave privada na memória.

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

Fornece funcionalidade genérica para gerar WeaveSignatures.

Namespaces

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

Este namespace inclui todas as interfaces dentro do Weave para a biblioteca de chaves do aplicativo Weave no perfil de segurança do Weave.

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

Este namespace inclui todas as interfaces do Weave para o protocolo CASE (Certificate Authenticated Session Establishment) no perfil de segurança do Weave.

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

Este namespace inclui todas as interfaces dentro do Weave para o protocolo de provisionamento de certificado do Weave no perfil de segurança do Weave.

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

Este namespace inclui todas as interfaces dentro do Weave para o protocolo de exportação chave dentro do perfil de segurança do Weave.

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

Este namespace inclui todas as interfaces do Weave para o protocolo PASE (Password Authenticated Session Establishment) no perfil de segurança do Weave.

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

Esse namespace inclui todas as interfaces do Weave para a biblioteca de senhas do Weave no perfil de segurança do Weave.

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

Este namespace inclui todas as interfaces dentro do Weave para o protocolo Token Authenticated Key Exchange ( TAKE ) no perfil do Weave Security .

Enumerações

@ 235

 @235

Sinalizadores de finalidade de chave de certificado X.509.

@ 236

 @236

Sinalizadores de uso de chave de certificado X.509.

@ 237

 @237

Traçar sinalizadores de certificado.

Contém informações sobre um certificado que foi carregado em um objeto WeaveCertSet.

@ 238

 @238

Sinalizadores de decodificação de certificado Weave.

Contém informações que especificam como um certificado deve ser decodificado.

@ 239

 @239

Certificado Weave para validar sinalizadores.

Contém informações que especificam como um certificado deve ser validado.

@ 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)

Gere uma assinatura ECDSA usando a chave privada do nó Weave local.

Quando chamadas, as implementações devem calcular uma assinatura no valor de hash fornecido usando a chave privada do nó.

Detalhes
Parâmetros
[in] hash
Um buffer contendo o hash do certificado a ser assinado.
[in] hashLen
O comprimento em bytes do hash.
[in] ecdsaSig
Uma referência ao objeto de assinatura ecdsa, onde o resultado desta função deve ser armazenado.
Valores Retornados
WEAVE_NO_ERROR
Se a operação for bem-sucedida.

Variáveis

gProvisioningBundleKDFSalt

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

Funções

CASECertInfoFromAccessToken

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

Lê um token de acesso Weave e constrói uma estrutura CASE Certificate Info TLV contendo os certificados do token de acesso.

Esta função decodifica um determinado token de acesso Weave e codifica o TLV para uma estrutura de informações de certificado CASE Weave. O campo EntityCertificate na estrutura CertificateInfo é definido como o certificado de token de acesso e o campo RelatedCertificates (se houver) é definido como o campo correspondente no token de acesso.

Detalhes
Parâmetros
accessToken
Um ponteiro para um buffer que contém um Token de Acesso Weave codificado.
accessTokenLen
O comprimento do token de acesso codificado.
certInfoBuf
Um ponteiro para um buffer no qual a estrutura de informações do certificado CASE deve ser codificada.
certInfoBufSize
O tamanho do buffer apontado por certInfoBuf.
certInfoLen
Uma referência a um inteiro será definida para o comprimento da estrutura de informações do certificado codificado. NOTA: Este valor só é definido quando a função retorna com sucesso.
Valores Retornados
WEAVE_NO_ERROR
Se a estrutura de informações do certificado CASE de acesso foi codificada com sucesso.
tlv-errors
Erros de tecer relacionados à leitura ou gravação de TLV .
cert-errors
Erros do Weave relacionados à decodificação de certificados do Weave.
platform-errors
Outros erros específicos da plataforma.

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Lê um token de acesso Weave e grava uma estrutura TLV de informações de certificado CASE contendo os certificados do token de acesso.

Esta função lê um Weave Access Token de um determinado TLVReader e grava o TLV para uma estrutura Weave CASE Certificate Info para um TLVWriter. O campo EntityCertificate na estrutura CertificateInfo é definido como o certificado de token de acesso e o campo RelatedCertificates (se houver) é definido como o campo correspondente no token de acesso.

Detalhes
Parâmetros
[in] reader
Um TLVReader posicionado no Weave Access Token.
[in] writer
Um TLVWriter a ser usado para registrar as informações do certificado CASE de saída.
Valores Retornados
WEAVE_NO_ERROR
Se a estrutura de informações do certificado CASE de acesso foi codificada com sucesso.
tlv-errors
Tecer erros relacionados à leitura ou gravação de TLV .
cert-errors
Erros do Weave relacionados à decodificação de certificados do Weave.
platform-errors
Outros erros específicos da plataforma.

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
)

Determine o tipo geral de um certificado Weave.

Esta função executa uma avaliação geral do tipo de um certificado com base na estrutura de seu DN de assunto e as extensões presentes. Os aplicativos são livres para substituir essa avaliação definindo cert.CertType com outro valor, incluindo um valor definido pelo aplicativo.

Em geral, os aplicativos só confiarão no certificado de um par se ele for vinculado a um certificado raiz confiável. No entanto, o tipo atribuído a um certificado pode influenciar a natureza dessa confiança, por exemplo, para permitir ou proibir o acesso a certos recursos. Por causa disso, as alterações nesse algoritmo podem ter efeitos MUITO SIGNIFICATIVOS e POTENCIALMENTE CATASTRÓFICOS na segurança geral do sistema e não devem ser feitas sem um entendimento completo das implicações.

NOTA: Os certificados de token de acesso não podem ser diferenciados apenas por sua estrutura. Portanto, essa função nunca define 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
)

Lê um Token de Acesso Weave e extrai o Certificado de Token de Acesso.

Esta função lê um Token de Acesso Weave de um TLVReader e grava o Certificado de Token de Acesso em um TLVWriter especificado.

Detalhes
Parâmetros
leitor
Um TLVReader posicionado no Weave Access Token.
[no] escritor
Um TLVWriter no qual o certificado será escrito.
tag [in]
A etiqueta TLV a ser usada ao escrever o certificado.
Valores Retornados
WEAVE_NO_ERROR
Se a estrutura de informações do certificado CASE de acesso foi codificada com sucesso.
erros tlv
Erros de tecer relacionados à leitura ou gravação de TLV.
erros-cert
Erros do Weave relacionados à decodificação de certificados do Weave.
erros de plataforma
Outros erros específicos da plataforma.

ExtractPrivateKeyFromAccessToken

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

Lê um Weave Access Token e extrai a chave privada.

Esta função decodifica um determinado token de acesso Weave e extrai o campo de chave privada do token.

Detalhes
Parâmetros
accessToken
Um ponteiro para um buffer que contém um Token de Acesso Weave codificado.
accessTokenLen
O comprimento do token de acesso codificado.
privKeyBuf
Um ponteiro para um buffer no qual a estrutura da chave privada deve ser codificada.
privKeyBufSize
O tamanho do buffer apontado por privKeyBuf.
privKeyLen
Uma referência a um inteiro será definida para o comprimento da chave privada. NOTA: Este valor só é definido quando a função retorna com sucesso.
Valores Retornados
WEAVE_NO_ERROR
Se a chave privada foi extraída com sucesso.
erros tlv
Erros de tecer relacionados à leitura ou gravação de TLV.
erros-cert
Erros do Weave relacionados à decodificação de certificados do Weave.
erros de plataforma
Outros erros específicos da plataforma.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Lê um token de acesso Weave e extrai a chave privada.

Esta função decodifica um determinado token de acesso Weave e extrai o campo de chave privada do token.

Detalhes
Parâmetros
leitor
Um TLVReader posicionado no Weave Access Token.
[no] escritor
Um TLVWriter no qual a chave privada será gravada.
Valores Retornados
WEAVE_NO_ERROR
Se a chave privada foi extraída com sucesso.
erros tlv
Erros de tecer relacionados à leitura ou gravação de TLV.
erros-cert
Erros do Weave relacionados à decodificação de certificados do Weave.
erros de plataforma
Outros erros específicos da plataforma.

GenerateAndEncodeWeaveECDSASignature

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

Gere e codifique uma assinatura Weave ECDSA.

Calcula uma assinatura ECDSA usando uma determinada chave privada e hash de mensagem e grava a assinatura como uma estrutura Weave ECDSASignature para o gravador TLV especificado com a tag fornecida.

Detalhes
Parâmetros
[no] escritor
O objeto TLVWriter no qual a assinatura codificada deve ser gravada.
tag [in]
Tag TLV a ser associada à estrutura de assinatura codificada.
[in] msgHash
Um buffer contendo o hash da mensagem a ser assinada.
[in] msgHashLen
O comprimento em bytes do hash da mensagem.
[in] signatureKey
Um buffer contendo a chave privada a ser usada para gerar a assinatura. A chave privada deverá ser codificada como uma estrutura Weave EllipticCurvePrivateKey TLV.
[in] signatureKeyLen
O comprimento em bytes da chave privada codificada.
Valores Retornados
WEAVE_NO_ERROR
Se a operação for bem-sucedida.
de outros
Outros códigos de erro de Weave relacionados à decodificação da chave privada, gerando a assinatura ou codificando a assinatura.

GenerateOperationalDeviceCert

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

Gerar certificado de dispositivo operacional Weave.

Esta função gera certificado operacional autoassinado Weave codificado no formato Weave TLV .

Detalhes
Parâmetros
ID de dispositivo
ID do dispositivo operacional do Weave.
devicePubKey
Tecle a chave pública do dispositivo operacional.
cert
Um ponteiro para um buffer onde o certificado gerado será gravado.
certBufSize
O comprimento em bytes do buffer de certificado fornecido.
certLen
O comprimento em bytes do certificado gerado.
genCertSignature
Um ponteiro para uma função que gera a assinatura ECDSA no hash de certificado fornecido usando a chave privada do dispositivo operacional.
Valores Retornados
WEAVE_NO_ERROR
Se o certificado Weave foi gerado com sucesso.

GetWeaveSignatureAlgo

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

Recuar

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
)

Carregue os certificados em um token de acesso em um conjunto de certificados Weave.

Esta função decodifica um determinado token de acesso Weave e carrega os certificados de token de acesso no objeto de conjunto de certificados Weave especificado. Se os tokens de acesso contiverem um ou mais certificados relacionados, eles também serão carregados no conjunto de certificados.

Detalhes
Parâmetros
accessToken
Um ponteiro para um buffer que contém um Token de Acesso Weave codificado.
accessTokenLen
O comprimento do token de acesso codificado.
certSet
O conjunto de certificados no qual os certificados de token de acesso devem ser carregados.
decodeFlags
O certificado decodifica sinalizadores que devem ser usados ​​ao carregar os certificados.
accessTokenCert
Uma referência a um ponteiro que será definido para a estrutura de dados do certificado Weave para o certificado de token de acesso. NOTA: Este ponteiro só será definido se a função retornar com sucesso.
Valores Retornados
WEAVE_NO_ERROR
Se os certificados de token de acesso foram carregados com sucesso.
erros tlv
Erros de tecer relacionados à leitura de TLV.
erros-cert
Erros do Weave relacionados à decodificação de certificados do Weave.
erros de plataforma
Outros erros específicos da plataforma.

LoadAccessTokenCerts

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

Carregue os certificados em um token de acesso em um conjunto de certificados Weave.

Esta função lê um token de acesso Weave de um determinado TLVReader e carrega os certificados de token de acesso no objeto de conjunto de certificados Weave especificado. Se os tokens de acesso contiverem um ou mais certificados relacionados, eles também serão carregados no conjunto de certificados.

Detalhes
Parâmetros
leitor
Um objeto TLVReader posicionado imediatamente antes de um Weave Access Token.
certSet
O conjunto de certificados no qual os certificados de token de acesso devem ser carregados.
decodeFlags
O certificado decodifica sinalizadores que devem ser usados ​​ao carregar os certificados.
accessTokenCert
Uma referência a um ponteiro que será definido para a estrutura de dados do certificado Weave para o certificado de token de acesso. NOTA: Este valor só é definido quando a função retorna com sucesso.
Valores Retornados
WEAVE_NO_ERROR
Se os certificados de token de acesso foram carregados com sucesso.
erros tlv
Erros de tecer relacionados à leitura de TLV.
erros-cert
Erros do Weave relacionados à decodificação de certificados do Weave.
erros de plataforma
Outros erros específicos da plataforma.

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
)

Gere um hash de verificação (no formato base 64) para um determinado conjunto de credenciais do dispositivo do termostato.

Detalhes
Parâmetros
[in] serialNum
Um ponteiro para um buffer que contém o número de série do dispositivo.
[in] serialNumLen
O comprimento da string do número de série.
[in] deviceId
Um ponteiro para um buffer que contém a id do dispositivo.
[in] deviceIdLen
O comprimento do id do dispositivo.
[in] deviceSecret
Um ponteiro para um buffer que contém o segredo do dispositivo.
[in] deviceSecretLen
O comprimento do segredo do dispositivo.
[entra, sai] hashBuf
Um ponteiro para um buffer que receberá o valor do hash de verificação, no formato base-64. A string de saída terá terminação nula. Este buffer deve ser pelo menos tão grande quanto kDeviceCredentialHashLength + 1.
[in] hashBufSize
O tamanho em bytes do buffer apontado por hashBuf.
Valores Retornados
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_STRING_LENGTH
Se um dos valores de entrada for muito longo (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer fornecido for muito pequeno para conter o valor de hash gerado.

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
)

Gere um hash de verificação (no formato base 64) para um determinado conjunto de informações de provisionamento do Weave.

Detalhes
Parâmetros
[in] nodeId
O ID do nó Weave do dispositivo.
[in] weaveCert
Um ponteiro para um buffer contendo o certificado do dispositivo Weave no formato base-64.
[in] weaveCertLen
O comprimento do valor do certificado apontado por weaveCert.
[in] weavePrivKey
Um ponteiro para um buffer que contém a chave privada do dispositivo Weave no formato base-64.
[in] weavePrivKeyLen
O comprimento do valor da chave privada apontado por weavePrivKey.
[in] pairingCode
Um ponteiro para um buffer que contém o código de emparelhamento do dispositivo.
[in] pairingCodeLen
O comprimento do valor do código de emparelhamento apontado por pairingCode.
[entra, sai] hashBuf
Um ponteiro para um buffer que receberá o valor do hash de verificação, no formato base-64. A string de saída terá terminação nula. Este buffer deve ser pelo menos tão grande quanto kWeaveProvisioningHashLength + 1.
[in] hashBufSize
O tamanho em bytes do buffer apontado por hashBuf.
Valores Retornados
WEAVE_NO_ERROR
Se o método for bem-sucedido.
WEAVE_ERROR_INVALID_STRING_LENGTH
Se um dos valores de entrada for muito longo (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer fornecido for muito pequeno para conter o valor de hash gerado.

OIDToWeaveCurveId

uint32_t OIDToWeaveCurveId(
  ASN1::OID curveOID
)

PackCertTime

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

Converta uma data / hora de certificado (na forma de uma estrutura de tempo universal ASN.1) em uma data / hora de certificado compactado.

As datas / horas do certificado empacotado fornecem uma representação compacta para os valores de hora dentro de um certificado (notBefore e notAfter) que não requer matemática completa do calendário para interpretar.

Uma data / hora do certificado embalado contém os campos de uma data / hora do calendário, ou seja, ano, mês, dia, hora, minuto, segundo compactado em um número inteiro sem sinal. A representação de bits é organizada de forma que as comparações ordinais de valores compactados de data / hora correspondam à ordem natural das horas correspondentes. Para reduzir seu tamanho, as datas / horas do certificado empacotado são limitadas a representar horários em ou após 01/01/2000 00:00:00. Quando alojado em um inteiro não assinado de 32 bits, as datas / horas do certificado compactado podem representar tempos até o ano 2133.

Detalhes
Parâmetros
Tempo
A data / hora do calendário a ser convertida.
PackedTime
Uma referência a um número inteiro que receberá a data / hora compactada.
Valores Retornados
WEAVE_NO_ERROR
Se a hora de entrada foi convertida com sucesso.
ASN1_ERROR_UNSUPPORTED_ENCODING
Se o tempo de entrada contiver um valor de ano que não pode ser representado em um valor de tempo de certificado compactado.

PackedCertDateToTime

NL_DLL_EXPORT uint32_t PackedCertDateToTime(
  uint16_t packedDate
)

Converta uma data de certificado empacotado em uma data / hora de certificado empacotado correspondente, onde a parte de hora do valor é definida como 00:00:00.

Detalhes
Parâmetros
packDate
A data do certificado embalado a ser convertido.
Devoluções
Uma data / hora de certificado de pacote correspondente.

PackedCertTimeToDate

NL_DLL_EXPORT uint16_t PackedCertTimeToDate(
  uint32_t packedTime
)

Converta uma data / hora de certificado embalado em uma data de certificado embalado

Uma data de certificado compactada contém os campos de uma data do calendário, ano, mês, dia compactada em um número inteiro não assinado. Os bits são organizados de forma que as comparações ordinais de valores de datas compactadas correspondam à ordem natural das datas correspondentes. Para reduzir seu tamanho, as datas dos certificados embalados são limitadas a representar datas em ou após 01/01/2000. Quando alojado em um inteiro não assinado de 16 bits, as datas do certificado empacotado podem representar datas até o ano 2176.

Detalhes
Parâmetros
PackedTime
A data / hora do certificado embalado a ser convertido.
Devoluções
Uma data de certificado de pacote correspondente.

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
)

Converta o número de segundos desde 01/01/1970 00:00:00 UTC em uma data / hora de certificado compactado.

Detalhes
Parâmetros
segundosSinceEpoch
Número de segundos desde 01/01/1970 00:00:00 UTC. Nota: este valor é compatível com valores positivos do valor POSIX time_t, até o ano 2105.
Devoluções
Uma data / hora de certificado de pacote correspondente.

TranslateOpenSSLError

WEAVE_ERROR TranslateOpenSSLError(
  WEAVE_ERROR defaultErr
)

UnpackCertTime

NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime(
  uint32_t packedTime,
  ASN1UniversalTime & time
)

Descompacte uma data / hora do certificado compactado em uma estrutura de tempo universal ASN.1.

Detalhes
Parâmetros
PackedTime
Um certificado embalado deve ser desempacotado.
Tempo
Uma referência a uma estrutura ASN1UniversalTime para receber a data / hora descompactada.
Valores Retornados
WEAVE_NO_ERROR
Se a hora de entrada foi descompactada com sucesso.

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
)