nl::Doku::Kripto

Bu ad alanı, paylaşılan kriptografik destek için Weave'deki tüm arayüzleri içerir.

Özet

Sıralamalar

X963EncodedPointFormat enum

Türler

AES128CTRDRBG Tür
AES128CTRMode Tür
AES256CTRMode Tür
EntropyFunct)(uint8_t *buf, size_t bufSize) Tür
int(*
Bir entropi kaynağından rastgele veri toplamak için kullanılan işlevin imzası.
HKDFSHA1 Tür
HKDFSHA256 Tür
HMACSHA1 Tür
HMACSHA256 Tür

İşlevler

ClearSecretData(uint8_t *buf, uint32_t len)
NL_DLL_EXPORT void
buf ilk len baytlık bellek alanını temizler.
ConstantTimeCompare(const uint8_t *buf1, const uint8_t *buf2, uint16_t len)
bool
İlk len bayt bellek buf1 ile buf2 bellek alanını karşılaştırır.
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)
Weave HMAC imzası oluşturun ve kodlayın.
GenerateAndEncodeWeaveRSASignature(OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
Weave RSA imzası oluşturma ve kodlama.
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
Elips Biçimli Eğri boyutunu (bayt cinsinden) alın.
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)
Weave HMAC imzasını doğrulayın.
VerifyRSASignature(OID sigAlgoOID, const uint8_t *hash, uint8_t hashLen, const EncodedRSASignature & sig, const uint8_t *certDER, uint16_t certDERLen)
Weave RSA imzasını doğrulama.

Sınıflar

nl::Kıvılcım::Kripto::TOMode
nl::Akmak::Kripto::CTRL_DRBG
nl::Weave::Crypto::EncodingECDSASignature
nl::Weave::Crypto::EncodingECPrivateKey
nl::Weave::Crypto::EncodingECPublicKey
nl::Weave::Crypto::EncodingHMACSignature
nl::Aksiyon::Şifreleme::EncodingRSAKey
nl::Weave::Crypto::EnencodedRSASignature
nl::Weave::Hrypto::HKDF
nl::Weave::Kripto::HKDFSHA1Or256
nl::Doku::Kripto::HMAC

Sıralamalar

X963EncodingPointBiçim

 X963EncodedPointFormat

Türler

AES128TODRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

AES128TOMod

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

AES256TOMod

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

EntropiFunct

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

Bir entropi kaynağından rastgele veri toplamak için kullanılan işlevin imzası.

HKDFSHA1

HKDF< Platform::Security::SHA1 > HKDFSHA1

HKDFSHA256

HKDF< Platform::Security::SHA256 > HKDFSHA256

HMACSHA1

HMAC< Platform::Security::SHA1 > HMACSHA1

HMACSHA256

HMAC< Platform::Security::SHA256 > HMACSHA256

İşlevler

ClearSecretVerileri

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

buf ilk len baytlık bellek alanını temizler.

Bu uygulamada len baytlık alan buf sıfır ile doldurulur.

Ayrıntılar
Parametreler
[in] buf
Silinmesi gereken gizli verileri içeren bellek arabelleğine işaret eden resim.
[in] len
Gizli veri boyutunu bayt cinsinden belirtir.

ConstantTimeCompare

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

İlk len bayt bellek buf1 ile buf2 bellek alanını karşılaştırır.

Bu işlevin harcadığı süre, buf1 ve buf2 bellek alanlarındaki verilerden bağımsızdır.

Ayrıntılar
Parametreler
[in] buf1
Bellek bloğunun üzerine gelin.
[in] buf2
Bellek bloğunun üzerine gelin.
[in] len
Bayt cinsinden karşılaştırılacak bellek alanının boyutu.
Döndürülen Değerler
true
buf1 ve buf2 ilk len baytlık bellek alanı eşitse.
false
Aksi takdirde.

Kod çözmeBIGNUMValueLE

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

Kod Çözme İmzası

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

Kod Çözme Anahtarı

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

Kod Çözme X962ECNokta

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

Kod Çözme X962ECNokta

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

ECDHComputePaylaşılan Gizli Anahtar

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
)

ECDHComputePaylaşılan Gizli Anahtar

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
)

KodlamaBIGNUMValueLE

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

Kodlama

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
)

Sabit LenSigToECDSASig

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
)

Weave HMAC imzası oluşturun ve kodlayın.

Gizli anahtar kullanarak belirli bir veri için HMAC imzasını hesaplar ve belirtilen etiketi kullanarak belirtilen TLV yazarına Weave HMACSignature yapısı olarak imzayı yazar.

Ayrıntılar
Parametreler
[in] sigAlgoOID
HMAC imzası oluşturmak için kullanılacak algoritma OID'si.
[in] writer
Kodlanmış imzanın yazılması gereken TLVWriter nesnesi.
[in] tag
Kodlanmış imza yapısıyla ilişkilendirilecek TLV etiketi.
[in] data
İmzalanacak verileri içeren bir arabellek.
[in] dataLen
Verilerin bayt cinsinden uzunluğu.
[in] key
HMAC imzası oluşturmak için kullanılacak gizli anahtarı içeren bir arabellek.
[in] keyLen
Gizli anahtar anahtarının bayt cinsinden uzunluğu.
Döndürülen Değerler
WEAVE_NO_ERROR
İşlem başarılı olduysa.
other
İmza kodlamasıyla ilgili diğer Weave hata kodları.

GenerateAndEncodeWeaveRSASignature

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

Weave RSA imzası oluşturma ve kodlama.

Bir R5 imzasını belirli bir X509 kodlu RSA özel anahtarı ve ileti karmasını kullanarak hesaplar ve söz konusu etiketi, belirtilen TLV yazarına Weave RSASignature yapısı olarak yazar.

Ayrıntılar
Parametreler
[in] sigAlgoOID
RSA imzası oluşturmak için kullanılacak algoritma kimliği.
[in] writer
Kodlanmış imzanın yazılması gereken TLVWriter nesnesi.
[in] tag
Kodlanmış imza yapısıyla ilişkilendirilecek TLV etiketi.
[in] hash
İmzalanacak verilerin karmasını içeren bir arabellek.
[in] hashLen
Veri karmasının bayt cinsinden uzunluğu.
[in] keyDER
İmzayı oluşturmak için kullanılacak özel anahtarı içeren bir arabellek. Özel anahtarın X509 RSA özel anahtar yapısı olarak kodlanması beklenir.
[in] keyDERLen
Kodlanmış özel anahtarın bayt cinsinden uzunluğu.
Döndürülen Değerler
WEAVE_NO_ERROR
İşlem başarılı olduysa.
other
Özel anahtarın kodunu çözme, imza oluşturma veya imzayı kodlamayla ilgili diğer Weave hata kodları.

GenerateECDHKey

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

GenerateECDSASignature

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

GenerateECDSASignature

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

GetCurveG

WEAVE_ERROR GetCurveG(
  OID curveOID,
  EncodedECPublicKey & encodedPubKey
)

GetCurveSize

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

GetCurveSize

int GetCurveSize(
  const OID curveOID
)

Elips Biçimli Eğri boyutunu (bayt cinsinden) alın.

Ayrıntılar
Parametreler
[in] curveOID
Belirtilen Elips Biçimli Eğri OID'si.
Döndürülen Değerler
Returns
Belirtilen eğri OID'si Elips Biçimli Eğri desteklenmiyorsa 0. Aksi takdirde, bayt cinsinden bayt cinsinden boyut döndürür.

GetECGroupForCurve

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

Ters Baytlar

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

ShaNIDGönderenSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

VerificationECDSASignature

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

VerificationECDSASignature

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

DoğrulamaHMACİmza

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

Weave HMAC imzasını doğrulayın.

Sağlanan verileri ve imzayı doğrulamak için kullanılacak gizli bir anahtarı kullanarak HMAC imzasını doğrular.

Ayrıntılar
Parametreler
[in] sigAlgoOID
HMAC imzası oluşturmak için kullanılacak algoritma OID'si.
[in] data
İmzalanacak verileri içeren bir arabellek.
[in] dataLen
Verilerin bayt cinsinden uzunluğu.
[in] sig
Doğrulanacak HMAC imzası kodlandı.
[in] key
HMAC imzası oluşturmak için kullanılacak gizli anahtarı içeren bir arabellek.
[in] keyLen
Gizli anahtar anahtarının bayt cinsinden uzunluğu.
Döndürülen Değerler
WEAVE_NO_ERROR
HMAC imza doğrulaması başarılı oldu.
WEAVE_ERROR_INVALID_SIGNATURE
HMAC imza doğrulaması başarısız oldu.

DoğrulamaRSAİmzası

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

Weave RSA imzasını doğrulama.

Verilen veri karmasını ve imzayı doğrulamak için kullanılacak ortak anahtarı içeren X509 kodlamalı RSA sertifikasını kullanarak RSA imzasını doğrular.

Ayrıntılar
Parametreler
[in] sigAlgoOID
RSA imzası oluşturmak için kullanılacak algoritma kimliği.
[in] hash
İmzalanacak verilerin karmasını içeren bir arabellek.
[in] hashLen
Veri karmasının bayt cinsinden uzunluğu.
[in] sig
Doğrulanacak RSA imzası kodlandı.
[in] certDER
İmzayı doğrulamak için kullanılacak, ortak anahtara sahip sertifikayı içeren bir arabellek. Sertifikanın DER tarafından X509 RSA yapısı olarak kodlanması beklenir.
[in] certDERLen
Kodlanmış sertifikanın bayt cinsinden uzunluğu.
Döndürülen Değerler
WEAVE_NO_ERROR
İşlem başarılı olduysa.