Google is committed to advancing racial equity for Black communities. See how.

এনএল :: তাঁত :: ক্রিপ্টো

এই নেমস্পেসে ভাগ করা ক্রিপ্টোগ্রাফিক সহায়তার জন্য ওয়েভের সমস্ত ইন্টারফেস অন্তর্ভুক্ত।

সারসংক্ষেপ

গণনা

X963EncodedPointFormat এনাম

টাইপডেফস

AES128CTRDRBG টাইপডেফ
AES128CTRMode টাইপডেফ
AES256CTRMode টাইপডেফ
EntropyFunct )(uint8_t *buf, size_t bufSize) টাইপডেফ
int(*
কোনও এন্ট্রপি উত্স থেকে এলোমেলো ডেটা সংগ্রহ করতে ব্যবহৃত কোনও ফাংশনের স্বাক্ষর।
HKDFSHA1 টাইপডেফ
HKDFSHA256 টাইপডেফ
HMACSHA1 টাইপডেফ
HMACSHA256 টাইপডেফ

কার্যাদি

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)
জেনারেট করুন এবং বুনা এনকোড HMAC স্বাক্ষর।
GenerateAndEncodeWeaveRSASignature (OID sigAlgoOID,TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
একটি ওয়েভ আরএসএ স্বাক্ষর তৈরি এবং এনকোড করুন।
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)
একটি ওয়েভ আরএসএ স্বাক্ষর যাচাই করুন।

ক্লাস

nl এর :: বুনা :: ক্রিপ্টো :: CTRMode
nl এর :: বুনা :: ক্রিপ্টো :: CTR_DRBG
nl এর :: বুনা :: ক্রিপ্টো :: EncodedECDSASignature
nl এর :: বুনা :: ক্রিপ্টো :: EncodedECPrivateKey
nl এর :: বুনা :: ক্রিপ্টো :: EncodedECPublicKey
nl এর :: বুনা :: ক্রিপ্টো :: EncodedHMACSignature
nl এর :: বুনা :: ক্রিপ্টো :: EncodedRSAKey
nl এর :: বুনা :: ক্রিপ্টো :: EncodedRSASignature
nl এর :: বুনা :: ক্রিপ্টো :: HKDF
nl এর :: বুনা :: ক্রিপ্টো :: HKDFSHA1Or256
nl এর :: বুনা :: ক্রিপ্টো :: HMAC

গণনা

X963 এনকোডডপয়েন্ট ফরমেট

 X963EncodedPointFormat

টাইপডেফস

AES128CTRDRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

AES128CTRMode

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

AES256CTRMode

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

এন্ট্রপিফ্যান্ট

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

কোনও এন্ট্রপি উত্স থেকে এলোমেলো ডেটা সংগ্রহ করতে ব্যবহৃত কোনও ফাংশনের স্বাক্ষর।

এইচডিডিএফএসএএইচ 1

HKDF< Platform::Security::SHA1 > HKDFSHA1

এইচকেডিএফএসএইচ 256

HKDF< Platform::Security::SHA256 > HKDFSHA256

এইচএমএএসএএসএএসএ 1

HMAC< Platform::Security::SHA1 > HMACSHA1

এইচএমএসিএএসএসিএ 25

HMAC< Platform::Security::SHA256 > HMACSHA256

কার্যাদি

ক্লিয়ারসেক্রেটডাটা

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

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

এই বাস্তবায়ন প্রথম len মেমরির এলাকার বাইট buf শূন্য সঙ্গে ভরা হয়।

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

কনস্ট্যান্টটাইমকম্পারে

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
অন্যথায়

ডিকোডবিগনুমভ্যালুয়েলে

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
)

ডিকোডএক্স 962 এপয়েন্ট

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

ডিকোডএক্স 962 এপয়েন্ট

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

ECDHComputeSredredececret

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
)

ECDHComputeSredredececret

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

ইসিডিএসসিআইজিটিওফিক্সডলেনসিগ

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

ইসিডিএসএএসআইজি_গেট0

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

ইসিডিএসএএসআইজি_সেট ০

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

এনকোডবিগনুমভ্যালুয়েলে

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

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

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

এনকোডএক্স 962ECPoint

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

ফিক্সডলেনসিগটিওইসিডিএসএসি

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 গোপন চাবি ব্যবহার একটি প্রদত্ত ডেটার জন্য স্বাক্ষর এবং নিদিষ্ট করার জন্য একটি বুনা HMACSignature কাঠামো হিসাবে স্বাক্ষর লিখেছেন TLV দেওয়া ট্যাগ দিয়ে লেখক।

বিশদ
পরামিতি
[in] sigAlgoOID
অ্যালগরিদম OID জেনারেট করতে ব্যবহার করা হবে HMAC স্বাক্ষর।
[in] writer
TLVWriter অবজেক্টে এনকোডযুক্ত স্বাক্ষরটি লিখতে হবে।
[in] tag
TLV ট্যাগ এনকোডেড স্বাক্ষর গঠন সঙ্গে যুক্ত করা হবে।
[in] data
ডেটাযুক্ত একটি বাফার সই করতে হবে।
[in] dataLen
ডেটার বাইটে দৈর্ঘ্য।
[in] key
গোপন কীটি ধারণকারী একটি বাফার জেনারেট করতে ব্যবহার করা হবে HMAC স্বাক্ষর।
[in] keyLen
গোপন কীটির দৈর্ঘ্য length
রিটার্ন মান
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 ব্যক্তিগত কী এবং বার্তা হ্যাশ নির্ণয় করে এবং নিদিষ্ট করার জন্য একটি বুনা RSASignature কাঠামো হিসাবে স্বাক্ষর লিখেছেন TLV দেওয়া ট্যাগ দিয়ে লেখক।

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

জেনারেট EECDHKey

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

জেনারেট করুনডিসিএসসিগেইচার

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

জেনারেট করুনডিসিএসসিগেইচার

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

গেট কারভেভেজি

WEAVE_ERROR GetCurveG(
  OID curveOID,
  EncodedECPublicKey & encodedPubKey
)

গেট কারভেভসাইজ করুন

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

গেট কারভেভসাইজ করুন

int GetCurveSize(
  const OID curveOID
)

উপবৃত্তাকার কার্ভের আকার (বাইটে) পান।

বিশদ
পরামিতি
[in] curveOID
উল্লিখিত উপবৃত্তাকার কার্ভ ওআইডি।
রিটার্ন মান
Returns
0 যদি নির্দিষ্ট কার্ভঅআইডি অসমর্থিত এলিপটিক বক্ররেখা হয়। অন্যথায়, বাইটে বক্রাকার আকার প্রদান করে।

গেটইগ্রুপফোর্ড কর্কভে

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

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

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

ShaNIDFromSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

যাচাই করুন ডিগ্রি স্বাক্ষর

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

যাচাই করুন ডিগ্রি স্বাক্ষর

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

যাচাই করুনএইচএমএএস সিগনেচার

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
অ্যালগরিদম OID জেনারেট করতে ব্যবহার করা হবে HMAC স্বাক্ষর।
[in] data
স্বাক্ষরিত করতে ডেটা সমেত একটি বাফার।
[in] dataLen
ডেটার বাইটে দৈর্ঘ্য।
[in] sig
এনকোড HMAC স্বাক্ষর যাচাই করা হবে।
[in] key
গোপন কীটি ধারণকারী একটি বাফার জেনারেট করতে ব্যবহার করা হবে HMAC স্বাক্ষর।
[in] keyLen
গোপন কীটির দৈর্ঘ্য length
রিটার্ন মান
WEAVE_NO_ERROR
তাহলে HMAC স্বাক্ষর যাচাই সফল হয়েছে।
WEAVE_ERROR_INVALID_SIGNATURE
তাহলে HMAC স্বাক্ষর যাচাই ব্যর্থ হয়েছে।

যাচাই করুন

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

একটি ওয়েভ আরএসএ স্বাক্ষর যাচাই করুন।

স্বাক্ষরটি যাচাই করার জন্য প্রদত্ত ডেটা হ্যাশ এবং একটি এক্স 509 এনকোডেড আরএসএ শংসাপত্র ব্যবহার করে একটি আরএসএ স্বাক্ষর যাচাই করে।

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