nl:: বুনা:: ক্রিপ্টো

এই নেমস্পেস শেয়ার্ড ক্রিপ্টোগ্রাফিক সমর্থনের জন্য উইভের মধ্যে সমস্ত ইন্টারফেস অন্তর্ভুক্ত করে।

সারাংশ

গণনা

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
মেমরি এলাকা buf এর প্রথম len বাইট সাফ করে।
ConstantTimeCompare (const uint8_t *buf1, const uint8_t *buf2, uint16_t len)
bool
মেমরি এরিয়া buf1 এবং মেমরি এরিয়া buf2 এর প্রথম len বাইটের তুলনা করে।
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)
একটি বুনা HMAC স্বাক্ষর তৈরি এবং এনকোড করুন।
GenerateAndEncodeWeaveRSASignature (OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
একটি উইভ 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)
একটি বুনা HMAC স্বাক্ষর যাচাই করুন।
VerifyRSASignature (OID sigAlgoOID, const uint8_t *hash, uint8_t hashLen, const EncodedRSASignature & sig, const uint8_t *certDER, uint16_t certDERLen)
একটি উইভ RSA স্বাক্ষর যাচাই করুন।

ক্লাস

nl:: ওয়েভ:: ক্রিপ্টো:: CTRMode
nl:: ওয়েভ:: ক্রিপ্টো:: CTR_DRBG
nl:: Weave:: Crypto:: EncodedECDSAS স্বাক্ষর
nl:: Weave:: Crypto:: EncodedECPrivateKey
nl:: Weave:: Crypto:: EncodedECPublicKey
nl:: বুনন:: Crypto:: EncodedHMACS স্বাক্ষর
nl:: বুনা:: Crypto:: EncodedRSAKey
nl:: বুনা:: Crypto:: EncodedRSAS স্বাক্ষর
nl:: ওয়েভ:: ক্রিপ্টো:: HKDF
nl:: ওয়েভ:: ক্রিপ্টো:: HKDFSHA1Or256
nl:: বুনন:: Crypto:: HMAC

গণনা

X963EncodedPoint Format

 X963EncodedPointFormat

Typedefs

AES128CTRDRBG

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
)

মেমরি এলাকা buf এর প্রথম len বাইট সাফ করে।

এই বাস্তবায়নে প্রথমে মেমরি এরিয়া buf এর len বাইট শূন্য দিয়ে পূর্ণ হয়।

বিস্তারিত
পরামিতি
[in] buf
একটি মেমরি বাফারের দিকে নির্দেশক যা গোপন ডেটা ধারণ করে যা সাফ করা উচিত।
[in] len
বাইটে গোপন ডেটার আকার নির্দিষ্ট করে।

ConstantTime Compare

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

মেমরি এরিয়া buf1 এবং মেমরি এরিয়া buf2 এর প্রথম len বাইটের তুলনা করে।

এই ফাংশন দ্বারা নেওয়া সময় buf1 এবং buf2 মেমরি এলাকার ডেটা থেকে স্বাধীন।

বিস্তারিত
পরামিতি
[in] buf1
একটি মেমরি ব্লক নির্দেশক.
[in] buf2
একটি মেমরি ব্লক নির্দেশক.
[in] len
বাইটে তুলনা করার জন্য মেমরি এলাকার আকার।
রিটার্ন মান
true
যদি মেমরি এলাকার buf1 এবং buf2 এর প্রথম len বাইট সমান হয়।
false
অন্যথায়

DecodeBIGNUMValueLE

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

ডিকোডইসিডিএসএসিইনেচার

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

ডিকোডইকি

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
)

ECDH ComputeSharedSecret

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
)

ECDH ComputeSharedSecret

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
)

BIGNUMValueLE এনকোড করুন

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

এনকোডইসিডিএসএসিইনেচার

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
)

জেনারেটএন্ডএনকোডওয়েভএইচএমএসিসিগনেচার

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

একটি বুনা HMAC স্বাক্ষর তৈরি এবং এনকোড করুন।

গোপন কী ব্যবহার করে একটি প্রদত্ত ডেটার জন্য একটি HMAC স্বাক্ষর গণনা করে এবং প্রদত্ত ট্যাগ সহ নির্দিষ্ট TLV লেখকের কাছে একটি বুনা HMACS স্বাক্ষর কাঠামো হিসাবে স্বাক্ষর লেখে।

বিস্তারিত
পরামিতি
[in] sigAlgoOID
HMAC স্বাক্ষর তৈরি করতে অ্যালগরিদম OID ব্যবহার করা হবে।
[in] writer
TLVWriter অবজেক্ট যেখানে এনকোড করা স্বাক্ষর লেখা উচিত।
[in] tag
TLV ট্যাগ এনকোডেড স্বাক্ষর কাঠামোর সাথে যুক্ত হতে হবে।
[in] data
সাইন করার জন্য ডেটা ধারণকারী একটি বাফার।
[in] dataLen
ডেটার বাইটে দৈর্ঘ্য।
[in] key
HMAC স্বাক্ষর তৈরি করতে ব্যবহৃত গোপন কী ধারণকারী একটি বাফার।
[in] keyLen
গোপন কীটির বাইটে দৈর্ঘ্য।
রিটার্ন মান
WEAVE_NO_ERROR
অপারেশন সফল হলে।
other
স্বাক্ষর এনকোডিং সম্পর্কিত অন্যান্য বুনা ত্রুটি কোড।

জেনারেটএন্ডএনকোডওয়েভারআরএসএসিইনেচার

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

একটি উইভ RSA স্বাক্ষর তৈরি এবং এনকোড করুন।

একটি প্রদত্ত X509 এনকোডেড RSA প্রাইভেট কী এবং বার্তা হ্যাশ ব্যবহার করে একটি RSA স্বাক্ষর গণনা করে এবং প্রদত্ত ট্যাগ সহ নির্দিষ্ট TLV লেখকের কাছে একটি উইভ RSAS স্বাক্ষর কাঠামো হিসাবে স্বাক্ষর লেখে।

বিস্তারিত
পরামিতি
[in] sigAlgoOID
RSA স্বাক্ষর তৈরি করতে অ্যালগরিদম OID ব্যবহার করা হবে।
[in] writer
TLVWriter অবজেক্ট যেখানে এনকোড করা স্বাক্ষর লেখা উচিত।
[in] tag
TLV ট্যাগ এনকোডেড স্বাক্ষর কাঠামোর সাথে যুক্ত হতে হবে।
[in] hash
সাইন করার জন্য ডেটার হ্যাশ ধারণকারী একটি বাফার।
[in] hashLen
ডেটা হ্যাশের বাইটে দৈর্ঘ্য।
[in] keyDER
স্বাক্ষর তৈরি করতে ব্যবহৃত ব্যক্তিগত কী ধারণকারী একটি বাফার। ব্যক্তিগত কী একটি X509 RSA ব্যক্তিগত কী কাঠামো হিসাবে এনকোড করা হবে বলে আশা করা হচ্ছে৷
[in] keyDERLen
এনকোড করা ব্যক্তিগত কী-এর বাইটে দৈর্ঘ্য।
রিটার্ন মান
WEAVE_NO_ERROR
অপারেশন সফল হলে।
other
প্রাইভেট কী ডিকোডিং, স্বাক্ষর তৈরি করা বা স্বাক্ষর এনকোডিং সম্পর্কিত অন্যান্য বুনা ত্রুটি কোড।

ECDHKey তৈরি করুন

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 যদি নির্দিষ্ট কার্ভওআইডি অসমর্থিত উপবৃত্তাকার বক্ররেখা হয়। অন্যথায়, বাইটে বক্ররেখার আকার প্রদান করে।

GetECGroupForCurve

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

রিভার্সবাইটস

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

SigAlgoOID থেকে ShaNID

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
)

একটি বুনা HMAC স্বাক্ষর যাচাই করুন।

প্রদত্ত ডেটা ব্যবহার করে একটি HMAC স্বাক্ষর যাচাই করে এবং স্বাক্ষর যাচাই করতে ব্যবহৃত একটি গোপন কী।

বিস্তারিত
পরামিতি
[in] sigAlgoOID
HMAC স্বাক্ষর তৈরি করতে অ্যালগরিদম OID ব্যবহার করা হবে।
[in] data
সাইন করার জন্য ডেটা ধারণকারী একটি বাফার।
[in] dataLen
ডেটার বাইটে দৈর্ঘ্য।
[in] sig
এনকোড করা HMAC স্বাক্ষর যাচাই করা হবে।
[in] key
HMAC স্বাক্ষর তৈরি করতে ব্যবহৃত গোপন কী ধারণকারী একটি বাফার।
[in] keyLen
গোপন কীটির বাইটে দৈর্ঘ্য।
রিটার্ন মান
WEAVE_NO_ERROR
যদি HMAC স্বাক্ষর যাচাইকরণ সফল হয়।
WEAVE_ERROR_INVALID_SIGNATURE
যদি HMAC স্বাক্ষর যাচাইকরণ ব্যর্থ হয়।

RSAS স্বাক্ষর যাচাই করুন

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

একটি উইভ RSA স্বাক্ষর যাচাই করুন।

প্রদত্ত ডেটা হ্যাশ ব্যবহার করে একটি RSA স্বাক্ষর যাচাই করে এবং স্বাক্ষর যাচাই করতে ব্যবহৃত পাবলিক কী ধারণকারী X509 এনকোড করা RSA শংসাপত্র।

বিস্তারিত
পরামিতি
[in] sigAlgoOID
RSA স্বাক্ষর তৈরি করতে অ্যালগরিদম OID ব্যবহার করা হবে।
[in] hash
সাইন করার জন্য ডেটার হ্যাশ ধারণকারী একটি বাফার।
[in] hashLen
ডেটা হ্যাশের বাইটে দৈর্ঘ্য।
[in] sig
এনকোড করা RSA স্বাক্ষর যাচাই করতে হবে।
[in] certDER
স্বাক্ষর যাচাই করতে ব্যবহার করার জন্য সর্বজনীন কী সহ সার্টিফিকেট ধারণকারী একটি বাফার। শংসাপত্রটি একটি X509 RSA কাঠামো DER এনকোড করা হবে বলে আশা করা হচ্ছে৷
[in] certDERLen
এনকোড করা শংসাপত্রের বাইটে দৈর্ঘ্য।
রিটার্ন মান
WEAVE_NO_ERROR
অপারেশন সফল হলে।