nl:: بافت:: رمزنگاری

این فضای نام شامل تمام رابط‌های درون Weave برای پشتیبانی رمزنگاری مشترک است.

خلاصه

شمارش ها

X963EncodedPointFormat enum

Typedefs

AES128CTRDRBG typedef
AES128CTRMode typedef
AES256CTRMode typedef
EntropyFunct )(uint8_t *buf, size_t bufSize) typedef
int(*
امضای تابعی که برای جمع آوری داده های تصادفی از منبع آنتروپی استفاده می شود.
HKDFSHA1 typedef
HKDFSHA256 typedef
HMACSHA1 typedef
HMACSHA256 typedef

کارکرد

ClearSecretData (uint8_t *buf, uint32_t len)
NL_DLL_EXPORT void
اولین بایت های len از buf ناحیه حافظه را پاک می کند.
ConstantTimeCompare (const uint8_t *buf1, const uint8_t *buf2, uint16_t len)
bool
اولین بایت های len ناحیه حافظه buf1 و ناحیه حافظه 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)
امضای Weave HMAC را تولید و کدگذاری کنید.
GenerateAndEncodeWeaveRSASignature (OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
امضای Weave RSA را تولید و کدگذاری کنید.
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
اندازه منحنی بیضوی (به بایت) را دریافت کنید.
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 را تأیید کنید.
VerifyRSASignature (OID sigAlgoOID, const uint8_t *hash, uint8_t hashLen, const EncodedRSASignature & sig, const uint8_t *certDER, uint16_t certDERLen)
امضای Weave RSA را تأیید کنید.

کلاس ها

nl:: بافت:: Crypto:: CTRMode
nl:: بافت:: رمزنگاری:: CTR_DRBG
nl:: بافت:: رمزگذاری:: EncodedECDSASignature
nl:: بافت:: Crypto:: EncodedECPrivateKey
nl:: بافت:: Crypto:: EncodedECPublicKey
nl:: بافت:: رمزگذاری:: EncodedHMACSignature
nl:: بافت:: Crypto:: EncodedRSAKey
nl:: Weave:: Crypto:: EncodedRSASignature
nl:: بافت:: Crypto:: HKDF
nl:: بافت:: Crypto:: HKDFSHA1Or256
nl:: بافت:: Crypto:: HMAC

شمارش ها

X963EncodedPointFormat

 X963EncodedPointFormat

Typedefs

AES128CTDRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

حالت AES128CTRM

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

حالت AES256CTRM

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

EntropyFunct

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

امضای تابعی که برای جمع آوری داده های تصادفی از منبع آنتروپی استفاده می شود.

HKDFSHA1

HKDF< Platform::Security::SHA1 > HKDFSHA1

HKDFSHA256

HKDF< Platform::Security::SHA256 > HKDFSHA256

HMACSHA1

HMAC< Platform::Security::SHA1 > HMACSHA1

HMACSHA256

HMAC< Platform::Security::SHA256 > HMACSHA256

کارکرد

ClearSecretData

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

اولین بایت های len از buf ناحیه حافظه را پاک می کند.

در این پیاده سازی، اولین بایت های len از ناحیه حافظه buf با صفر پر می شوند.

جزئیات
مولفه های
[in] buf
اشاره گر به یک بافر حافظه حاوی داده های سری است که باید پاک شود.
[in] len
اندازه داده های مخفی را بر حسب بایت مشخص می کند.

ConstantTimeCompare

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

اولین بایت های len ناحیه حافظه buf1 و ناحیه حافظه buf2 را مقایسه می کند.

زمان صرف شده توسط این تابع مستقل از داده های مناطق حافظه buf1 و buf2 است.

جزئیات
مولفه های
[in] buf1
اشاره گر به یک بلوک حافظه
[in] buf2
اشاره گر به یک بلوک حافظه
[in] len
اندازه ناحیه حافظه برای مقایسه بر حسب بایت.
ارزش های بازگشتی
true
اگر len بایت اول مساحت حافظه buf1 و buf2 برابر باشد.
false
در غیر این صورت.

رمزگشاییBIGNUMValueLE

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

رمزگشاییECDSASامضا

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

DecodeECKey

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
)

EncodeBIGNUMValueLE

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

EncodeECDSASsignature

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
)

FixedLenSigToECDSASig

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 را تولید و کدگذاری کنید.

یک امضای HMAC را برای یک داده معین با استفاده از کلید مخفی محاسبه می کند و امضا را به عنوان ساختار Weave HMACSignature در رایتر TLV مشخص شده با تگ داده شده می نویسد.

جزئیات
مولفه های
[in] sigAlgoOID
الگوریتم OID برای تولید امضای HMAC .
[in] writer
شی TLVWriter که امضای کدگذاری شده باید روی آن نوشته شود.
[in] tag
برچسب TLV با ساختار امضای کدگذاری شده مرتبط شود.
[in] data
یک بافر حاوی داده هایی که باید امضا شود.
[in] dataLen
طول داده ها بر حسب بایت
[in] key
یک بافر حاوی کلید مخفی برای تولید امضای HMAC .
[in] keyLen
طول کلید مخفی بر حسب بایت.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر عملیات موفقیت آمیز بود.
other
سایر کدهای خطای Weave مربوط به رمزگذاری امضا.

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 را تولید و کدگذاری کنید.

یک امضای RSA را با استفاده از یک کلید خصوصی رمزگذاری شده X509 RSA و هش پیام محاسبه می‌کند و امضا را به عنوان ساختار Weave RSASignature برای نویسنده TLV مشخص شده با تگ داده شده می‌نویسد.

جزئیات
مولفه های
[in] sigAlgoOID
الگوریتم OID برای تولید امضای RSA.
[in] writer
شی TLVWriter که امضای کدگذاری شده باید روی آن نوشته شود.
[in] tag
برچسب TLV با ساختار امضای کدگذاری شده مرتبط شود.
[in] hash
یک بافر حاوی هش داده هایی که باید امضا شود.
[in] hashLen
طول هش داده بر حسب بایت.
[in] keyDER
یک بافر حاوی کلید خصوصی که برای تولید امضا استفاده می شود. انتظار می رود کلید خصوصی به عنوان ساختار کلید خصوصی X509 RSA کدگذاری شود.
[in] keyDERLen
طول کلید خصوصی رمزگذاری شده بر حسب بایت.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر عملیات موفقیت آمیز بود.
other
سایر کدهای خطای Weave مربوط به رمزگشایی کلید خصوصی، تولید امضا یا رمزگذاری امضا است.

GenerateECDHKey

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

امضایECDSAS را ایجاد کنید

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

امضایECDSAS را ایجاد کنید

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
)

اندازه منحنی بیضوی (به بایت) را دریافت کنید.

جزئیات
مولفه های
[in] curveOID
OID منحنی بیضی مشخص شده.
ارزش های بازگشتی
Returns
0 اگر curveOID مشخص شده منحنی بیضی پشتیبانی نمی شود. در غیر این صورت، اندازه منحنی را بر حسب بایت برمی گرداند.

GetECGroupForCurve

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

ReverseBytes

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

ShaNIDFromSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

تأیید ECDSASامضا

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

تأیید ECDSASامضا

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

تأیید HMACS امضا

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

امضای Weave HMAC را تأیید کنید.

یک امضای HMAC را با استفاده از داده های داده شده و یک کلید مخفی برای تأیید امضا تأیید می کند.

جزئیات
مولفه های
[in] sigAlgoOID
الگوریتم OID برای تولید امضای HMAC .
[in] data
یک بافر حاوی داده هایی که باید امضا شود.
[in] dataLen
طول داده ها بر حسب بایت
[in] sig
امضای HMAC رمزگذاری شده برای تأیید.
[in] key
یک بافر حاوی کلید مخفی برای تولید امضای HMAC .
[in] keyLen
طول کلید مخفی بر حسب بایت.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر تأیید امضای HMAC با موفقیت انجام شد.
WEAVE_ERROR_INVALID_SIGNATURE
اگر تأیید امضای HMAC ناموفق بود.

VerifyRSASsignature

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

امضای Weave RSA را تأیید کنید.

امضای RSA را با استفاده از هش داده‌ها و یک گواهی RSA رمزگذاری‌شده X509 حاوی کلید عمومی برای تأیید امضا تأیید می‌کند.

جزئیات
مولفه های
[in] sigAlgoOID
الگوریتم OID برای تولید امضای RSA.
[in] hash
یک بافر حاوی هش داده هایی که باید امضا شود.
[in] hashLen
طول هش داده بر حسب بایت.
[in] sig
امضای RSA رمزگذاری شده برای تأیید.
[in] certDER
یک بافر حاوی گواهی با کلید عمومی که برای تأیید امضا استفاده می شود. انتظار می رود این گواهینامه دارای ساختار X509 RSA با کد DER باشد.
[in] certDERLen
طول گواهی کدگذاری شده بر حسب بایت.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر عملیات موفقیت آمیز بود.