En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido:: Perfiles: Seguridad

Este espacio de nombres incluye todas las interfaces dentro de la armadura de la armadura de la Seguridad perfil.

Resumen

Enumeraciones

@235 enumeración
Indicadores de propósito de clave de certificado X.509.
@236 enumeración
Indicadores de uso de clave de certificado X.509.
@237 enumeración
Tejer banderas de certificado.
@238 enumeración
Banderas de decodificación de certificado de tejido.
@239 enumeración
Certificado de tejido validar banderas.
@240 enumeración
@280 enumeración
@281 enumeración
@282 enumeración
@283 enumeración
@284 enumeración
@285 enumeración
@286 enumeración
@287 enumeración
@288 enumeración
@289 enumeración

Typedefs

GenerateECDSASignatureFunct )(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig) typedef
Genere una firma ECDSA utilizando la clave privada del nodo Weave local.

Variables

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

Funciones

CASECertInfoFromAccessToken (const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen)
Lee una armadura de acceso de emergencia y construye una CASO Información Certificado TLV estructura que contiene los certificados del token de acceso.
CASECertInfoFromAccessToken (TLVReader & reader,TLVWriter & writer)
Lee una armadura de acceso de emergencia y escribe una CASO Información Certificado TLV estructura que contiene los certificados del token de acceso.
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 el tipo general de certificado de tejido.
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)
Lee un token de acceso de Weave y extrae el certificado del token de acceso.
ExtractPrivateKeyFromAccessToken (const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
Lee un token de acceso de Weave y extrae la clave privada.
ExtractPrivateKeyFromAccessToken (TLVReader & reader,TLVWriter & writer)
Lee un token de acceso de Weave y extrae la clave privada.
GenerateAndEncodeWeaveECDSASignature (TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen)
Genere y codifique una firma Weave ECDSA.
GenerateOperationalDeviceCert (uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature)
NL_DLL_EXPORT WEAVE_ERROR
Generar certificado de dispositivo operativo 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)
Cargue los certificados en un token de acceso en un conjunto de certificados Weave.
LoadAccessTokenCerts (TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
Cargue los certificados en un token de acceso en un 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
Genere un hash de verificación (en formato base 64) para un conjunto determinado de credenciales de dispositivo de 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
Genere un hash de verificación (en formato base 64) para un conjunto determinado de información de aprovisionamiento de Weave.
OIDToWeaveCurveId (ASN1::OID curveOID)
uint32_t
PackCertTime (const ASN1UniversalTime & time, uint32_t & packedTime)
NL_DLL_EXPORT WEAVE_ERROR
Convierta la fecha / hora de un certificado (en forma de una estructura de tiempo universal ASN.1) en una fecha / hora de certificado empaquetado.
PackedCertDateToTime (uint16_t packedDate)
NL_DLL_EXPORT uint32_t
Convierta una fecha de certificado empaquetado en una fecha / hora de certificado empaquetado correspondiente, donde la parte de tiempo del valor se establece en 00:00:00.
PackedCertTimeToDate (uint32_t packedTime)
NL_DLL_EXPORT uint16_t
Convierta la fecha / hora de un certificado empaquetado en una fecha de certificado empaquetado.
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
Convierta el número de segundos desde 1970-01-01 00:00:00 UTC a una fecha / hora de certificado empaquetado.
TranslateOpenSSLError ( WEAVE_ERROR defaultErr)
UnpackCertTime (uint32_t packedTime, ASN1UniversalTime & time)
NL_DLL_EXPORT WEAVE_ERROR
Desempaquete la fecha / hora de un certificado empaquetado en una estructura de tiempo 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

Clases

nl :: Armadura :: Perfiles :: Seguridad :: CertificateKeyId
nl :: Armadura :: Perfiles :: Seguridad :: ValidationContext
nl :: Armadura :: Perfiles :: Seguridad :: WeaveCertificateData
nl :: Armadura :: Perfiles :: Seguridad :: WeaveCertificateSet
nl :: Armadura :: Perfiles :: Seguridad :: WeaveDN
nl :: Armadura :: Perfiles :: Seguridad :: WeaveProvisioningBundle
nl :: Armadura :: Perfiles :: Seguridad :: WeaveSignatureGenerator

Genera una WeaveSignature utilizando una clave privada en memoria.

nl :: Armadura :: Perfiles :: Seguridad :: WeaveSignatureGeneratorBase

Proporciona una funcionalidad genérica para generar WeaveSignatures.

Espacios de nombres

nl :: Armadura :: Perfiles :: Seguridad :: AppKeys

Este espacio de nombres incluye todas las interfaces dentro de Weave para la biblioteca de claves de la aplicación Weave dentro del perfil de seguridad de Weave.

nl :: Armadura :: Perfiles :: Seguridad :: CASO

Este espacio de nombres incluye todas las interfaces dentro de la armadura para el Certificado Sesión autenticada Establecimiento ( CASO protocolo) en el perfil de seguridad de la armadura.

nl :: Armadura :: Perfiles :: Seguridad :: CertProvisioning

Este espacio de nombres incluye todas las interfaces dentro de Weave para el protocolo de aprovisionamiento de certificados de Weave dentro del perfil de seguridad de Weave.

nl :: Armadura :: Perfiles :: Seguridad :: KeyExport

Este espacio de nombres incluye todas las interfaces dentro de Weave para el protocolo de exportación de claves dentro del perfil de seguridad de Weave.

nl :: Armadura :: Perfiles :: Seguridad :: PASE

Este espacio de nombres incluye todas las interfaces dentro de la armadura de la contraseña Sesión autenticada Establecimiento ( PASE protocolo) en el perfil de seguridad de la armadura.

nl :: armadura :: Perfiles :: Seguridad :: Los códigos de acceso

Este espacio de nombres incluye todas las interfaces dentro de Weave para la biblioteca de códigos de acceso de Weave dentro del perfil de seguridad de Weave.

nl :: Armadura :: Perfiles :: Seguridad :: TOMA

Este espacio de nombres incluye todas las interfaces dentro de la armadura para el símbolo autenticado Key Exchange ( TOMA protocolo) dentro de la armadura de Seguridad de perfil.

Enumeraciones

@ 235

 @235

Indicadores de propósito de clave de certificado X.509.

@ 236

 @236

Indicadores de uso de clave de certificado X.509.

@ 237

 @237

Tejer banderas de certificado.

Contiene información sobre un certificado que se ha cargado en un objeto WeaveCertSet.

@ 238

 @238

Banderas de decodificación de certificado de tejido.

Contiene información que especifica cómo se debe decodificar un certificado.

@ 239

 @239

Certificado de tejido validar banderas.

Contiene información que especifica cómo se debe validar un certificado.

@ 240

 @240

@ 280

 @280

@ 281

 @281

@ 282

 @282

@ 283

 @283

@ 284

 @284

@ 285

 @285

@ 286

 @286

@ 287

 @287

@ 288

 @288

@ 289

 @289

Typedefs

Generar ECDSA Firma Función

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

Genere una firma ECDSA utilizando la clave privada del nodo Weave local.

Cuando se invoca, las implementaciones deben calcular una firma en el valor hash dado utilizando la clave privada del nodo.

Detalles
Parámetros
[in] hash
Un búfer que contiene el hash del certificado que se va a firmar.
[in] hashLen
La longitud en bytes del hash.
[in] ecdsaSig
Una referencia al objeto de firma ecdsa, donde se almacenará el resultado de esta función.
Valores devueltos
WEAVE_NO_ERROR
Si la operación tuvo éxito.

Variables

gProvisioningBundleKDFSalt

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

Funciones

CASECertInfoFromAccessToken

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

Lee una armadura de acceso de emergencia y construye una CASO Información Certificado TLV estructura que contiene los certificados del token de acceso.

Esta función descodifica un determinado armadura de acceso de emergencia y codifica el TLV de la armadura CASO estructura info del certificado. El campo EntityCertificate dentro de la estructura CertificateInfo se establece en el certificado del token de acceso, y el campo RelatedCertificates (si está presente) se establece en el campo correspondiente dentro del token de acceso.

Detalles
Parámetros
accessToken
Un puntero a un búfer que contiene un token de acceso de tejido codificado.
accessTokenLen
La longitud del token de acceso codificado.
certInfoBuf
Un puntero a un búfer en el que el CASO estructura info certificado debe ser codificada.
certInfoBufSize
El tamaño del búfer al que apunta certInfoBuf.
certInfoLen
Se establecerá una referencia a un número entero a la longitud de la estructura de información del certificado codificado. NOTA: Este valor solo se establece cuando la función regresa correctamente.
Valores devueltos
WEAVE_NO_ERROR
Si el acceso CASO fue codificada con éxito la estructura de información de certificado.
tlv-errors
Armadura de errores relacionados con la lectura o escritura TLV .
cert-errors
Errores de tejido relacionados con la decodificación de certificados de tejido.
platform-errors
Otros errores específicos de la plataforma.

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Lee una armadura de acceso de emergencia y escribe una CASO Información Certificado TLV estructura que contiene los certificados del token de acceso.

Esta función lee un token de acceso de la armadura de un determinado TLVReader y escribe el TLV de la armadura CASO estructura info del certificado a un TLVWriter. El campo EntityCertificate dentro de la estructura CertificateInfo se establece en el certificado del token de acceso, y el campo RelatedCertificates (si está presente) se establece en el campo correspondiente dentro del token de acceso.

Detalles
Parámetros
[in] reader
Un TLVReader colocado en el token de acceso de Weave.
[in] writer
Un TLVWriter que se utiliza para registrar la salida CASO información del certificado.
Valores devueltos
WEAVE_NO_ERROR
Si el acceso CASO fue codificada con éxito la estructura de información de certificado.
tlv-errors
Armadura de errores relacionados con la lectura o escritura TLV .
cert-errors
Errores de tejido relacionados con la decodificación de certificados de tejido.
platform-errors
Otros errores específicos de la 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
)

DecodeConvertECDSA Firma

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
)

DecodificarTejidoCert

WEAVE_ERROR DecodeWeaveCert(
  const uint8_t *weaveCert,
  uint32_t weaveCertLen,
  WeaveCertificateData & certData
)

DecodificarTejidoCert

WEAVE_ERROR DecodeWeaveCert(
  TLVReader & reader,
  WeaveCertificateData & certData
)

DecodeWeaveDN

WEAVE_ERROR DecodeWeaveDN(
  TLVReader & reader,
  WeaveDN & dn
)

DecodificarTejidoECDSA Firma

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 el tipo general de certificado de tejido.

Esta función realiza una evaluación general del tipo de certificado en función de la estructura de su DN de sujeto y las extensiones presentes. Las aplicaciones pueden anular esta evaluación configurando cert.CertType en otro valor, incluido uno definido por la aplicación.

En general, las aplicaciones solo confiarán en el certificado de un par si se encadena a un certificado raíz de confianza. Sin embargo, el tipo asignado a un certificado puede influir en la naturaleza de esta confianza, por ejemplo, para permitir o no permitir el acceso a determinadas funciones. Debido a esto, los cambios en este algoritmo pueden tener efectos MUY SIGNIFICATIVOS y POTENCIALMENTE CATASTRÓFICOS en la seguridad general del sistema, y ​​no deben realizarse sin una comprensión profunda de las implicaciones.

NOTA: Los certificados de token de acceso no se pueden distinguir únicamente por su estructura. Por lo tanto, esta función nunca establece cert.CertType = kCertType_AccessToken.

CodificarTejidoECDSA Firma

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
)

Lee un token de acceso de Weave y extrae el certificado del token de acceso.

Esta función lee un token de acceso de tejido de un TLVReader y escribe el certificado de token de acceso en un TLVWriter especificado.

Detalles
Parámetros
[en] lector
Un TLVReader colocado en el token de acceso de Weave.
[en] escritor
Un TLVWriter en el que se escribirá el certificado.
[en] etiqueta
La etiqueta TLV para ser utilizado al escribir el certificado.
Valores devueltos
WEAVE_NO_ERROR
Si se ha codificado con éxito la estructura de información del certificado de acceso CASO.
tlv-errores
Armadura de errores relacionados con la lectura o escritura TLV.
cert-errores
Errores de tejido relacionados con la decodificación de certificados de tejido.
errores de plataforma
Otros errores específicos de la plataforma.

ExtractPrivateKeyFromAccessToken

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

Lee un token de acceso de Weave y extrae la clave privada.

Esta función decodifica un token de acceso de tejido determinado y extrae el campo de clave privada del token.

Detalles
Parámetros
accessToken
Un puntero a un búfer que contiene un token de acceso de tejido codificado.
accessTokenLen
La longitud del token de acceso codificado.
privKeyBuf
Un puntero a un búfer en el que se debe codificar la estructura de la clave privada.
privKeyBufSize
El tamaño del búfer al que apunta privKeyBuf.
privKeyLen
Se establecerá una referencia a un número entero a la longitud de la clave privada. NOTA: Este valor solo se establece cuando la función regresa correctamente.
Valores devueltos
WEAVE_NO_ERROR
Si la clave privada se extrajo correctamente.
tlv-errores
Armadura de errores relacionados con la lectura o escritura TLV.
cert-errores
Errores de tejido relacionados con la decodificación de certificados de tejido.
errores de plataforma
Otros errores específicos de la plataforma.

ExtractPrivateKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Lee un token de acceso de Weave y extrae la clave privada.

Esta función decodifica un token de acceso de tejido determinado y extrae el campo de clave privada del token.

Detalles
Parámetros
[en] lector
Un TLVReader colocado en el token de acceso de Weave.
[en] escritor
Un TLVWriter en el que se escribirá la clave privada.
Valores devueltos
WEAVE_NO_ERROR
Si la clave privada se extrajo correctamente.
tlv-errores
Armadura de errores relacionados con la lectura o escritura TLV.
cert-errores
Errores de tejido relacionados con la decodificación de certificados de tejido.
errores de plataforma
Otros errores específicos de la plataforma.

GenerateAndEncodeWeaveECDSASignature

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

Genere y codifique una firma Weave ECDSA.

Calcula una firma ECDSA utilizando una clave privada y el mensaje de hash dado y escribir la firma como una estructura de tejido ECDSASignature a la especificada TLV escritor con la etiqueta dada.

Detalles
Parámetros
[en] escritor
El objeto TLVWriter en el que se debe escribir la firma codificada.
[en] etiqueta
Etiqueta TLV a estar asociado con la estructura de firma codificada.
[in] msgHash
Un búfer que contiene el hash del mensaje que se va a firmar.
[in] msgHashLen
La longitud en bytes del hash del mensaje.
[in] signingKey
Un búfer que contiene la clave privada que se utilizará para generar la firma. Se espera que la clave privada para ser codificado como una estructura de tejido EllipticCurvePrivateKey TLV.
[in] signingKeyLen
La longitud en bytes de la clave privada codificada.
Valores devueltos
WEAVE_NO_ERROR
Si la operación tuvo éxito.
otro
Otros códigos de error de Weave relacionados con la decodificación de la clave privada, la generación de la firma o la codificación de la firma.

GenerateOperationalDeviceCert

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

Generar certificado de dispositivo operativo Weave.

Esta función genera la armadura del certificado autofirmado operativo codificado en la armadura del TLV formato.

Detalles
Parámetros
ID del dispositivo
ID del dispositivo operativo de tejido.
devicePubKey
Tejer la clave pública del dispositivo operativo.
cert
Un puntero a un búfer donde se generará el certificado que se va a escribir.
certBufSize
La longitud en bytes del búfer de certificado proporcionado.
certLen
La longitud en bytes del certificado generado.
genCertSignature
Un puntero a una función que genera la firma ECDSA en el hash de certificado dado utilizando la clave privada del dispositivo operativo.
Valores devueltos
WEAVE_NO_ERROR
Si el certificado de Weave se generó correctamente.

GetWeaveSignatureAlgo

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

Sangrar

void Indent(
  FILE *out,
  uint16_t count
)

InsertarCertificados relacionados enTejerFirma

WEAVE_ERROR InsertRelatedCertificatesIntoWeaveSignature(
  uint8_t *sigBuf,
  uint16_t sigLen,
  uint16_t sigBufLen,
  const uint8_t *relatedCerts,
  uint16_t relatedCertsLen,
  uint16_t & outSigLen
)

IsCertificateExtensionTag

l10n-placeholder = 63

IsCurveInSet

l10n-placeholder = 64

IsSupportedCurve

l10n-placeholder = 65

IsWeaveIdX509Attr

l10n-placeholder = 66

IsWeaveX509Attr

l10n-placeholder = 67

LoadAccessTokenCerts

l10n-placeholder = 68

Cargue los certificados en un token de acceso en un conjunto de certificados Weave.

Esta función decodifica un token de acceso Weave dado y carga los certificados del token de acceso en el objeto de conjunto de certificados Weave especificado. Si los tokens de acceso contienen uno o más certificados relacionados, estos también se cargan en el conjunto de certificados.

Detalles
Parámetros
accessToken
Un puntero a un búfer que contiene un token de acceso de tejido codificado.
accessTokenLen
La longitud del token de acceso codificado.
certSet
El conjunto de certificados en el que se deben cargar los certificados del token de acceso.
decodeFlags
Los indicadores de decodificación de certificados que se deben utilizar al cargar los certificados.
accessTokenCert
Una referencia a un puntero que se establecerá en la estructura de datos del certificado Weave para el certificado del token de acceso. NOTA: Este puntero solo se establecerá si la función regresa correctamente.
Valores devueltos
WEAVE_NO_ERROR
Si los certificados del token de acceso se cargaron correctamente.
tlv-errores
Armadura de errores relacionados con la lectura de TLV.
cert-errores
Errores de tejido relacionados con la decodificación de certificados de tejido.
errores de plataforma
Otros errores específicos de la plataforma.

LoadAccessTokenCerts

l10n-placeholder = 69

Cargue los certificados en un token de acceso en un conjunto de certificados Weave.

Esta función lee un token de acceso Weave de un TLVReader determinado y carga los certificados del token de acceso en el objeto de conjunto de certificados Weave especificado. Si los tokens de acceso contienen uno o más certificados relacionados, estos también se cargan en el conjunto de certificados.

Detalles
Parámetros
lector
Un objeto TLVReader que se coloca inmediatamente antes de un token de acceso de tejido.
certSet
El conjunto de certificados en el que se deben cargar los certificados del token de acceso.
decodeFlags
Los indicadores de decodificación de certificados que se deben utilizar al cargar los certificados.
accessTokenCert
Una referencia a un puntero que se establecerá en la estructura de datos del certificado Weave para el certificado del token de acceso. NOTA: Este valor solo se establece cuando la función regresa correctamente.
Valores devueltos
WEAVE_NO_ERROR
Si los certificados del token de acceso se cargaron correctamente.
tlv-errores
Armadura de errores relacionados con la lectura de TLV.
cert-errores
Errores de tejido relacionados con la decodificación de certificados de tejido.
errores de plataforma
Otros errores específicos de la plataforma.

MakeDeviceCredentialHash

l10n-placeholder = 70

Genere un hash de verificación (en formato base 64) para un conjunto determinado de credenciales de dispositivo de termostato.

Detalles
Parámetros
[in] serialNum
Un puntero a un búfer que contiene el número de serie del dispositivo.
[in] serialNumLen
La longitud de la cadena del número de serie.
[in] deviceId
Un puntero a un búfer que contiene la identificación del dispositivo.
[in] deviceIdLen
La longitud de la identificación del dispositivo.
[in] deviceSecret
Un puntero a un búfer que contiene el secreto del dispositivo.
[in] deviceSecretLen
La longitud del secreto del dispositivo.
[dentro, fuera] hashBuf
Un puntero a un búfer que recibirá el valor hash de verificación, en formato base-64. La cadena de salida terminará en nulo. Este búfer debe ser al menos tan grande como kDeviceCredentialHashLength + 1.
[in] hashBufSize
El tamaño en bytes del búfer al que apunta hashBuf.
Valores devueltos
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_STRING_LENGTH
Si uno de los valores de entrada es demasiado largo (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer proporcionado es demasiado pequeño para contener el valor hash generado.

MakeWeaveProvisioningHash

l10n-placeholder = 71

Genere un hash de verificación (en formato base 64) para un conjunto determinado de información de aprovisionamiento de Weave.

Detalles
Parámetros
[in] nodeId
La identificación del nodo Weave del dispositivo.
[en] weaveCert
Un puntero a un búfer que contiene el certificado del dispositivo Weave en formato base 64.
[in] weaveCertLen
La longitud del valor del certificado apuntado por weaveCert.
[in] weavePrivKey
Un puntero a un búfer que contiene la clave privada del dispositivo Weave en formato base-64.
[in] weavePrivKeyLen
La longitud del valor de la clave privada apuntada por weavePrivKey.
[in] pairingCode
Un puntero a un búfer que contiene el código de emparejamiento del dispositivo.
[in] pairingCodeLen
La longitud del valor del código de emparejamiento apuntado por pairingCode.
[dentro, fuera] hashBuf
Un puntero a un búfer que recibirá el valor hash de verificación, en formato base-64. La cadena de salida terminará en nulo. Este búfer debe ser al menos tan grande como kWeaveProvisioningHashLength + 1.
[in] hashBufSize
El tamaño en bytes del búfer al que apunta hashBuf.
Valores devueltos
WEAVE_NO_ERROR
Si el método tuvo éxito.
WEAVE_ERROR_INVALID_STRING_LENGTH
Si uno de los valores de entrada es demasiado largo (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer proporcionado es demasiado pequeño para contener el valor hash generado.

OIDToWeaveCurveId

l10n-placeholder = 72

PackCertTime

l10n-placeholder = 73

Convierta la fecha / hora de un certificado (en forma de una estructura de tiempo universal ASN.1) en una fecha / hora de certificado empaquetado.

La fecha / hora del certificado empaquetado proporciona una representación compacta de los valores de tiempo dentro de un certificado (notBefore y notAfter) que no requiere matemáticas de calendario completo para su interpretación.

Una fecha / hora de certificado empaquetado contiene los campos de una fecha / hora del calendario, es decir. año, mes, día, hora, minuto, segundo empaquetado en un entero sin signo. La representación de bits está organizada de manera que las comparaciones ordinales de los valores de fecha / hora empaquetados correspondan al orden natural de las horas correspondientes. Para reducir su tamaño, las fechas y horas de los certificados empaquetados se limitan a representar las horas posteriores a 2000/01/01 00:00:00. Cuando se aloja dentro de un entero sin signo de 32 bits, la fecha / hora del certificado empaquetado puede representar tiempos hasta el año 2133.

Detalles
Parámetros
hora
La fecha / hora del calendario que se va a convertir.
empaquetado
Una referencia a un número entero que recibirá la fecha / hora empaquetadas.
Valores devueltos
WEAVE_NO_ERROR
Si la hora de entrada se convirtió correctamente.
ASN1_ERROR_UNSUPPORTED_ENCODING
Si el tiempo de entrada contenía un valor de año que no se pudo representar en un valor de tiempo de certificado empaquetado.

PackedCertDateToTime

l10n-placeholder = 74

Convierta una fecha de certificado empaquetado en una fecha / hora de certificado empaquetado correspondiente, donde la parte de tiempo del valor se establece en 00:00:00.

Detalles
Parámetros
fecha de empaque
La fecha del certificado empaquetado que se va a convertir.
Devoluciones
Una fecha / hora del certificado de paquete correspondiente.

PackedCertTimeToDate

l10n-placeholder = 75

Convierta la fecha / hora de un certificado empaquetado en una fecha de certificado empaquetado.

Una fecha de certificado empaquetada contiene los campos de una fecha de calendario año, mes, día empaquetados en un entero sin firmar. Los bits están organizados de manera que las comparaciones ordinales de los valores de fecha empaquetados correspondan al orden natural de las fechas correspondientes. Para reducir su tamaño, las fechas de los certificados empaquetados se limitan a representar fechas posteriores al 2000/01/01. Cuando se encuentran dentro de un entero sin signo de 16 bits, las fechas de los certificados empaquetados pueden representar fechas hasta el año 2176.

Detalles
Parámetros
empaquetado
La fecha / hora del certificado empaquetado que se va a convertir.
Devoluciones
La fecha del certificado del paquete correspondiente.

ParseWeaveIdAttribute

l10n-placeholder = 76

PrintCert

l10n-placeholder = 77

PrintCertArray

l10n-placeholder = 78

PrintCertReference

l10n-placeholder = 79

PrintCertType

l10n-placeholder = 80

PrintCertValidationResults

l10n-placeholder = 81

ImprimirECDSA Firma

l10n-placeholder = 82

PrintHexField

l10n-placeholder = 83

PrintPackedDate

l10n-placeholder = 84

PrintPackedTime

l10n-placeholder = 85

PrintWeaveDN

l10n-placeholder = 86

PrintWeaveDN

l10n-placeholder = 87

ImprimirTejerFirma

l10n-placeholder = 88

SegundosDesdeEpochToPackedCertTime

l10n-placeholder = 89

Convierta el número de segundos desde 1970-01-01 00:00:00 UTC a una fecha / hora de certificado empaquetado.

Detalles
Parámetros
segundosDesdeEpoch
Número de segundos desde 1970-01-01 00:00:00 UTC. Nota: este valor es compatible con los valores positivos del valor time_t POSIX, hasta el año 2105.
Devoluciones
Una fecha / hora del certificado de paquete correspondiente.

TraducirOpenSSLError

l10n-placeholder = 90

UnpackCertTime

l10n-placeholder = 91

Desempaquete la fecha / hora de un certificado empaquetado en una estructura de tiempo universal ASN.1.

Detalles
Parámetros
empaquetado
Un certificado lleno de tiempo para desempacar.
hora
Una referencia a una estructura ASN1UniversalTime para recibir la fecha / hora descomprimida.
Valores devueltos
WEAVE_NO_ERROR
Si la hora de entrada se descomprimió correctamente.

VerifyWeaveSignature

l10n-placeholder = 92

VerifyWeaveSignature

l10n-placeholder = 93

WeaveCurveIdToOID

l10n-placeholder = 94