En Google, luchamos por la equidad racial de la comunidad negra. Más información
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

nl::Weave::Criptografía

Este espacio de nombres incluye todas las interfaces de Weave para admitir criptográficamente compartida.

Resumen

Enumeraciones

X963EncodedPointFormat enum

Typedefs

AES128CTRDRBG typedef
AES128CTRMode typedef
AES256CTRMode typedef
EntropyFunct)(uint8_t *buf, size_t bufSize) typedef
int(*
Firma de una función usada para recopilar datos aleatorios de una fuente de entropía.
HKDFSHA1 typedef
HKDFSHA256 typedef
HMACSHA1 typedef
HMACSHA256 typedef

Functions

ClearSecretData(uint8_t *buf, uint32_t len)
NL_DLL_EXPORT void
Borra los primeros len bytes del área de memoria buf.
ConstantTimeCompare(const uint8_t *buf1, const uint8_t *buf2, uint16_t len)
bool
Compara los primeros len bytes de las áreas de memoria buf1 y buf2.
DecodeBIGNUMValueLE(BIGNUM & val, uint16_t size, const uint8_t *& p)
DecodeECDSASignature(const EncodedECDSASignature & encodedSig, ECDSA_SIG *& sig)
DecodeECKey(OID curveOID, const EncodedECPrivateKey *encodedPrivKey, const EncodedECPublicKey *encodedPubKey, EC_KEY *& ecKey)
NL_DLL_EXPORT WEAVE_ERROR
DecodeX962ECPoint(const uint8_t *encodedPoint, uint16_t encodedPointLen, EC_GROUP *group, EC_POINT *& point)
NL_DLL_EXPORT WEAVE_ERROR
DecodeX962ECPoint(const uint8_t *encodedPoint, uint16_t encodedPointLen, BIGNUM *& x, BIGNUM *& y)
ECDHComputeSharedSecret(OID curveOID, const EC_GROUP *ecGroup, const EC_POINT *pubKeyPoint, const BIGNUM *privKeyBN, uint8_t *sharedSecretBuf, uint16_t sharedSecretBufSize, uint16_t & sharedSecretLen)
NL_DLL_EXPORT WEAVE_ERROR
ECDHComputeSharedSecret(OID curveOID, const EncodedECPublicKey & encodedPubKey, const EncodedECPrivateKey & encodedPrivKey, uint8_t *sharedSecretBuf, uint16_t sharedSecretBufSize, uint16_t & sharedSecretLen)
ECDSASigToFixedLenSig(OID curveOID, const ECDSA_SIG *ecSig, uint8_t *fixedLenSig)
ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
void
ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
int
EncodeBIGNUMValueLE(const BIGNUM & val, uint16_t size, uint8_t *& p)
EncodeECDSASignature(const ECDSA_SIG *sig, EncodedECDSASignature & encodedSig)
EncodeX962ECPoint(OID curveOID, EC_GROUP *ecGroup, const EC_POINT *point, uint8_t *buf, uint16_t bufSize, uint16_t & encodedPointLen)
NL_DLL_EXPORT WEAVE_ERROR
FixedLenSigToECDSASig(OID curveOID, const uint8_t *fixedLenSig, ECDSA_SIG *& ecSig)
GenerateAndEncodeWeaveHMACSignature(OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *data, uint16_t dataLen, const uint8_t *key, uint16_t keyLen)
Genera y codifica una firma HMAC de Weave.
GenerateAndEncodeWeaveRSASignature(OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
Genera y codifica una firma RSA de Weave.
GenerateECDHKey(OID curveOID, EncodedECPublicKey & encodedPubKey, EncodedECPrivateKey & encodedPrivKey)
GenerateECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const EncodedECPrivateKey & encodedPrivKey, EncodedECDSASignature & encodedSig)
GenerateECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const EncodedECPrivateKey & encodedPrivKey, uint8_t *fixedLenSig)
GetCurveG(OID curveOID, EncodedECPublicKey & encodedPubKey)
GetCurveSize(const OID curveOID, const EC_GROUP *ecGroup)
int
GetCurveSize(const OID curveOID)
int
Obtén el tamaño de curva elíptica (en bytes).
GetECGroupForCurve(OID curveOID, EC_GROUP *& ecGroup)
NL_DLL_EXPORT WEAVE_ERROR
ReverseBytes(uint8_t *buf, size_t len)
void
ShaNIDFromSigAlgoOID(OID sigAlgoOID)
int
VerifyECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const EncodedECDSASignature & encodedSig, const EncodedECPublicKey & encodedPubKey)
VerifyECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *fixedLenSig, const EncodedECPublicKey & encodedPubKey)
VerifyHMACSignature(OID sigAlgoOID, const uint8_t *data, uint16_t dataLen, const EncodedHMACSignature & sig, const uint8_t *key, uint16_t keyLen)
Verifica una firma de Weave HMAC.
VerifyRSASignature(OID sigAlgoOID, const uint8_t *hash, uint8_t hashLen, const EncodedRSASignature & sig, const uint8_t *certDER, uint16_t certDERLen)
Verifica una firma de RSA de Weave.

Clases

nl::Weave::Crypto::CTRMode
nl::Weave::Criptografía::CTR_DRBG
nl::Weave::Crypto::EncodedECDSASignature
nl::Weave::Crypto::EncodedECPrivateKey
nl::Weave::Crypto::EncodedECPublicKey
nl::Weave::Crypto::EncodedHMACSignature
nl::Weave::Crypto::EncodedRSAKey
nl::Weave::Crypto::EncodedRSASignature
nl::Weave::Crypto::HKDF
nl::Weave::Crypto::HKDFSHA1Or256
nl::Weave::Criptografía::HMAC

Enumeraciones

X963EncodedPointFormat

 X963EncodedPointFormat

Typedefs

AES128CTRDRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

Modo de AES128CTR

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

Modo de AES256CTR

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

EntropyFunct

int(* EntropyFunct)(uint8_t *buf, size_t bufSize)

Firma de una función usada para recopilar datos aleatorios de una fuente de entropía.

HKDFSHA1

HKDF< Platform::Security::SHA1 > HKDFSHA1

HKDFSHA256

HKDF< Platform::Security::SHA256 > HKDFSHA256

HMACSHA1

HMAC< Platform::Security::SHA1 > HMACSHA1

HMACSHA256

HMAC< Platform::Security::SHA256 > HMACSHA256

Functions

ClearSecretData

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

Borra los primeros len bytes del área de memoria buf.

En esta implementación, los primeros len bytes del área de memoria buf se rellenan con ceros.

Detalles
Parámetros
[in] buf
Es el puntero a un búfer de memoria que contiene datos secretos que deben borrarse.
[in] len
Especifica el tamaño de los datos secretos en bytes.

ConstantTimeCompare

bool ConstantTimeCompare(
  const uint8_t *buf1,
  const uint8_t *buf2,
  uint16_t len
)

Compara los primeros len bytes de las áreas de memoria buf1 y buf2.

El tiempo que toma esta función es independiente de los datos de las áreas de memoria buf1 y buf2.

Detalles
Parámetros
[in] buf1
Es un puntero a un bloque de memoria.
[in] buf2
Es un puntero a un bloque de memoria.
[in] len
Tamaño del área de memoria que se comparará en bytes
Valores que se muestran
true
si los primeros len bytes del área de memoria buf1 y buf2 son iguales.
false
de lo contrario.

DecodificaciónBIGNUMValorDELE

WEAVE_ERROR DecodeBIGNUMValueLE(
  BIGNUM & val,
  uint16_t size,
  const uint8_t *& p
)

Decodificación ECDSA

WEAVE_ERROR DecodeECDSASignature(
  const EncodedECDSASignature & encodedSig,
  ECDSA_SIG *& sig
)

Decodificación ECKey

NL_DLL_EXPORT WEAVE_ERROR DecodeECKey(
  OID curveOID,
  const EncodedECPrivateKey *encodedPrivKey,
  const EncodedECPublicKey *encodedPubKey,
  EC_KEY *& ecKey
)

DecodeX962ECPoint

NL_DLL_EXPORT WEAVE_ERROR DecodeX962ECPoint(
  const uint8_t *encodedPoint,
  uint16_t encodedPointLen,
  EC_GROUP *group,
  EC_POINT *& point
)

DecodeX962ECPoint

WEAVE_ERROR DecodeX962ECPoint(
  const uint8_t *encodedPoint,
  uint16_t encodedPointLen,
  BIGNUM *& x,
  BIGNUM *& y
)

ECDHComputeSharedSecret

NL_DLL_EXPORT WEAVE_ERROR ECDHComputeSharedSecret(
  OID curveOID,
  const EC_GROUP *ecGroup,
  const EC_POINT *pubKeyPoint,
  const BIGNUM *privKeyBN,
  uint8_t *sharedSecretBuf,
  uint16_t sharedSecretBufSize,
  uint16_t & sharedSecretLen
)

ECDHComputeSharedSecret

WEAVE_ERROR ECDHComputeSharedSecret(
  OID curveOID,
  const EncodedECPublicKey & encodedPubKey,
  const EncodedECPrivateKey & encodedPrivKey,
  uint8_t *sharedSecretBuf,
  uint16_t sharedSecretBufSize,
  uint16_t & sharedSecretLen
)

ECDSASigToFixedLenSig

WEAVE_ERROR ECDSASigToFixedLenSig(
  OID curveOID,
  const ECDSA_SIG *ecSig,
  uint8_t *fixedLenSig
)

ECDSA_SIG_get0

void ECDSA_SIG_get0(
  const ECDSA_SIG *sig,
  const BIGNUM **pr,
  const BIGNUM **ps
)

ECDSA_SIG_set0

int ECDSA_SIG_set0(
  ECDSA_SIG *sig,
  BIGNUM *r,
  BIGNUM *s
)

CodificaBIGNUMValorLE

WEAVE_ERROR EncodeBIGNUMValueLE(
  const BIGNUM & val,
  uint16_t size,
  uint8_t *& p
)

CodECECFirma

WEAVE_ERROR EncodeECDSASignature(
  const ECDSA_SIG *sig,
  EncodedECDSASignature & encodedSig
)

EncodeX962ECPoint

NL_DLL_EXPORT WEAVE_ERROR EncodeX962ECPoint(
  OID curveOID,
  EC_GROUP *ecGroup,
  const EC_POINT *point,
  uint8_t *buf,
  uint16_t bufSize,
  uint16_t & encodedPointLen
)

Corrección de la propiedad SigToECDSASig

WEAVE_ERROR FixedLenSigToECDSASig(
  OID curveOID,
  const uint8_t *fixedLenSig,
  ECDSA_SIG *& ecSig
)

GenerateAndEncodeWeaveHMACSignature

WEAVE_ERROR GenerateAndEncodeWeaveHMACSignature(
  OID sigAlgoOID,
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *data,
  uint16_t dataLen,
  const uint8_t *key,
  uint16_t keyLen
)

Genera y codifica una firma HMAC de Weave.

Calcula una firma HMAC para un dato determinado con la clave secreta y la escribe como una estructura Weave HMACSignature en el escritor TLV especificado con la etiqueta determinada.

Detalles
Parámetros
[in] sigAlgoOID
OID de algoritmo que se usará para generar la firma HMAC.
[in] writer
El objeto TLVWriter en el que se debe escribir la firma codificada.
[in] tag
TLV que se asociará a la estructura de firma codificada.
[in] data
Es un búfer que contiene los datos que se firmarán.
[in] dataLen
Longitud en bytes de los datos.
[in] key
Un búfer que contiene la clave secreta que se usará para generar la firma HMAC.
[in] keyLen
La longitud de bytes de la clave secreta.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realizó correctamente.
other
Otros códigos de error de Weave relacionados con la codificación de firmas

GenerateAndEncodeWeaveRSAFirma

WEAVE_ERROR GenerateAndEncodeWeaveRSASignature(
  OID sigAlgoOID,
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *hash,
  uint8_t hashLen,
  const uint8_t *keyDER,
  uint16_t keyDERLen
)

Genera y codifica una firma RSA de Weave.

Calcula una firma RSA con una clave privada y un hash de mensaje RSA determinados con codificación X509 y escribe la firma como una estructura RSAWeave de Weave en el escritor TLV especificado con la etiqueta determinada.

Detalles
Parámetros
[in] sigAlgoOID
OID de algoritmo que se usará para generar la firma RSA.
[in] writer
El objeto TLVWriter en el que se debe escribir la firma codificada.
[in] tag
TLV que se asociará a la estructura de firma codificada.
[in] hash
Es un búfer que contiene el hash de los datos que se firmarán.
[in] hashLen
Longitud en bytes del hash de datos.
[in] keyDER
Un búfer que contiene la clave privada que se usará para generar la firma. Se espera que la clave privada se codifique como una estructura de clave privada RSA X509.
[in] keyDERLen
La longitud de bytes de la clave privada codificada.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realizó correctamente.
other
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.

GenerarECDHKey

WEAVE_ERROR GenerateECDHKey(
  OID curveOID,
  EncodedECPublicKey & encodedPubKey,
  EncodedECPrivateKey & encodedPrivKey
)

Generar ECDSAFirma

WEAVE_ERROR GenerateECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const EncodedECPrivateKey & encodedPrivKey,
  EncodedECDSASignature & encodedSig
)

Generar ECDSAFirma

WEAVE_ERROR GenerateECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const EncodedECPrivateKey & encodedPrivKey,
  uint8_t *fixedLenSig
)

ObtenerCurveG

WEAVE_ERROR GetCurveG(
  OID curveOID,
  EncodedECPublicKey & encodedPubKey
)

GetCurveSize

int GetCurveSize(
  const OID curveOID,
  const EC_GROUP *ecGroup
)

GetCurveSize

int GetCurveSize(
  const OID curveOID
)

Obtén el tamaño de curva elíptica (en bytes).

Detalles
Parámetros
[in] curveOID
OID de curva elíptica especificado.
Valores que se muestran
Returns
0 si se especifica la curvaOID especificada; no se admite la curva elíptica. De lo contrario, muestra el tamaño de la curva en bytes.

GetECGroupForCurve

NL_DLL_EXPORT WEAVE_ERROR GetECGroupForCurve(
  OID curveOID,
  EC_GROUP *& ecGroup
)

Revertir bytes

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

ShaNIDFromSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

Verificar ECDSAFirma

WEAVE_ERROR VerifyECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const EncodedECDSASignature & encodedSig,
  const EncodedECPublicKey & encodedPubKey
)

Verificar ECDSAFirma

WEAVE_ERROR VerifyECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *fixedLenSig,
  const EncodedECPublicKey & encodedPubKey
)

Verificar HMACSignature

WEAVE_ERROR VerifyHMACSignature(
  OID sigAlgoOID,
  const uint8_t *data,
  uint16_t dataLen,
  const EncodedHMACSignature & sig,
  const uint8_t *key,
  uint16_t keyLen
)

Verifica una firma de Weave HMAC.

Verifica una firma HMAC con datos proporcionados y una clave secreta que se debe usar para verificar la firma.

Detalles
Parámetros
[in] sigAlgoOID
OID de algoritmo que se usará para generar la firma HMAC.
[in] data
Es un búfer que contiene los datos que se firmarán.
[in] dataLen
Longitud en bytes de los datos.
[in] sig
Firma HMAC codificada para verificar.
[in] key
Un búfer que contiene la clave secreta que se usará para generar la firma HMAC.
[in] keyLen
La longitud de bytes de la clave secreta.
Valores que se muestran
WEAVE_NO_ERROR
Si la verificación de firma HMAC se realizó correctamente.
WEAVE_ERROR_INVALID_SIGNATURE
Si falló la verificación de firma de HMAC

VerificaRSAFirma

WEAVE_ERROR VerifyRSASignature(
  OID sigAlgoOID,
  const uint8_t *hash,
  uint8_t hashLen,
  const EncodedRSASignature & sig,
  const uint8_t *certDER,
  uint16_t certDERLen
)

Verifica una firma de RSA de Weave.

Verifica una firma de RSA con un hash de datos determinado y un certificado de RSA con codificación X509 que contiene la clave pública que se usará para verificar la firma.

Detalles
Parámetros
[in] sigAlgoOID
OID de algoritmo que se usará para generar la firma RSA.
[in] hash
Es un búfer que contiene el hash de los datos que se firmarán.
[in] hashLen
Longitud en bytes del hash de datos.
[in] sig
Firma de RSA codificada para verificar.
[in] certDER
Un búfer que contiene el certificado con clave pública que se usa para verificar la firma. Se espera que el certificado esté codificado en DER para una estructura RSA de X509.
[in] certDERLen
Longitud en bytes del certificado codificado.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realizó correctamente.