nl:: बुनाई:क्रिप्टो

इस नेमस्पेस में क्रिप्टोग्राफ़िक सहायता को शेयर करने के लिए, Weave में सभी इंटरफ़ेस शामिल हैं.

खास जानकारी

गिनती

X963EncodedPointFormat enum

टाइपडेफ़

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
इससे, मेमोरी एरिया buf के पहले len बाइट डेटा मिट जाते हैं.
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)
वीव आरएसए सिग्नेचर जनरेट और कोड करें.
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)
वीवा आरएसए हस्ताक्षर की पुष्टि करें.

क्लास

nl::वेव::Crypto::CTRMode
nl:: बुनाई::क्रिप्टो::सीटीआर_डीआरबीजी
nl:: बुनाई::क्रिप्टो::एनकोडेडईसीडीएसए हस्ताक्षर
nl:: बुनाई::क्रिप्टो::एनकोडेडईसीई
nl:: बुनाई::क्रिप्टो::एनकोडेडईसी की
nl:: बुनाई::क्रिप्टो::कोड में बदला गया
nl:: बुनाई::क्रिप्टो::एनकोडेडआरएसए कुंजी
nl:: बुनाई::क्रिप्टो::एनकोड किया गया आरएसए सिग्नेचर
nl:: बुनाई::क्रिप्टो::एचकेडीएफ़
nl::बुनती::आभासी::HKDFSHA1OR256
nl::वेव::आभासी::HMAC

गिनती

X963EncodePointPointफ़ॉर्मैट

 X963EncodedPointFormat

टाइपडेफ़

AES128CTRDRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

AES128CTRमोड

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

AES256 सीटीआर मोड

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

एंट्रॉपीफ़ंट

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

एंट्रोपी सोर्स से रैंडम डेटा इकट्ठा करने के लिए इस्तेमाल किए जाने वाले फ़ंक्शन का हस्ताक्षर.

हॉन्ग कॉन्ग

HKDF< Platform::Security::SHA1 > HKDFSHA1

HKDFSHA256

HKDF< Platform::Security::SHA256 > HKDFSHA256

एचएमएएसएएच

HMAC< Platform::Security::SHA1 > HMACSHA1

HMACSHA256

HMAC< Platform::Security::SHA256 > HMACSHA256

फ़ंक्शन

मिटाएंSecretData

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

इससे, मेमोरी एरिया buf के पहले len बाइट डेटा मिट जाते हैं.

इस इंप्लीमेंटेशन में पहले len मेमोरी एरिया के buf ज़ीरो की जानकारी दी जाती है.

ब्यौरा
पैरामीटर
[in] buf
मेमोरी बफ़र की ओर किसी ऐसे गुप्त डेटा का संकेत होता है जिसे हटाया जाना चाहिए.
[in] len
यह बाइट में सीक्रेट डेटा का साइज़ बताता है.

ConstantTimeतुलना

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
नहीं तो

डिकोड करेंBBIValueLE

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

DecodeECDSAहस्ताक्षर

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
)

डिकोडX962ECपॉइंट

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

डिकोडX962ECपॉइंट

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
)

एनकोडBIGNUMValueLE

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

EncodeECDSAहस्ताक्षर

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

EncodeX962ECपॉइंट

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

फ़िक्स्डLenSigToECDSASig

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

GenerateAndEncodeWeaveHMACहस्ताक्षर

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 सिग्नेचर की गिनती करता है. साथ ही, दिए गए टैग के साथ खास TLV लेखक के लिए, Weave HMAC सिग्नेचर के तौर पर सिग्नेचर बनाता है.

ब्यौरा
पैरामीटर
[in] sigAlgoOID
HMAC हस्ताक्षर जनरेट करने के लिए इस्तेमाल किया जाने वाला एल्गोरिदम OID.
[in] writer
TLVWriter ऑब्जेक्ट जिस पर कोड में बदला गया हस्ताक्षर लिखा जाना चाहिए.
[in] tag
कोड में बदले गए हस्ताक्षर के स्ट्रक्चर से जोड़ने के लिए, TLV टैग इस्तेमाल करें.
[in] data
बफ़र, जिसमें साइन किया जाने वाला डेटा शामिल होता है.
[in] dataLen
डेटा के बाइट में लंबाई.
[in] key
ऐसा बफ़र जिसमें HMAC का हस्ताक्षर जनरेट करने के लिए, सीक्रेट कुंजी का इस्तेमाल किया जाता है.
[in] keyLen
सीक्रेट कुंजी की बाइट में लंबाई.
सामान लौटाने की वैल्यू
WEAVE_NO_ERROR
अगर कार्रवाई पूरी हो गई है.
other
सिग्नेचर एन्कोडिंग से जुड़े अन्य Weave गड़बड़ी कोड.

GenerateAndEncodeWeaveRSAहस्ताक्षर

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

वीव आरएसए सिग्नेचर जनरेट और कोड करें.

किसी दिए गए X509 कोड में बदले गए आरएसए निजी कुंजी और मैसेज हैश का इस्तेमाल करके आरएसए हस्ताक्षर की गणना करता है. साथ ही, दिए गए टैग के साथ खास TLV लेखक के लिए वीव आरएसए सिग्नेचर स्ट्रक्चर के रूप में हस्ताक्षर लिखता है.

ब्यौरा
पैरामीटर
[in] sigAlgoOID
आरएसए हस्ताक्षर जनरेट करने के लिए इस्तेमाल किया जाने वाला एल्गोरिदम ओआईडी.
[in] writer
TLVWriter ऑब्जेक्ट जिस पर कोड में बदला गया हस्ताक्षर लिखा जाना चाहिए.
[in] tag
कोड में बदले गए हस्ताक्षर के स्ट्रक्चर से जोड़ने के लिए, TLV टैग इस्तेमाल करें.
[in] hash
वह बफ़र जिसमें साइन किए जाने वाले डेटा का हैश शामिल हो.
[in] hashLen
डेटा हैश के बाइट में लंबाई.
[in] keyDER
ऐसा बफ़र जिसमें हस्ताक्षर जनरेट करने के लिए निजी कुंजी का इस्तेमाल किया जाएगा. निजी कुंजी को X509 आरएसए निजी कुंजी स्ट्रक्चर के रूप में एन्कोड किया जाना चाहिए.
[in] keyDERLen
कोड में बदली गई निजी कुंजी के बाइट में लंबाई.
सामान लौटाने की वैल्यू
WEAVE_NO_ERROR
अगर कार्रवाई पूरी हो गई है.
other
निजी कुंजी को डीकोड करने, हस्ताक्षर जनरेट करने या हस्ताक्षर को कोड में बदलने से जुड़े अन्य Weave गड़बड़ी कोड.

GenerateECDHKey

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

ECECDSAहस्ताक्षर

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

ECECDSAहस्ताक्षर

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
एलिप्टिक कर्व ओआईडी तय किया गया.
सामान लौटाने की वैल्यू
Returns
अगर बताए गए कर्वआईडी का इस्तेमाल नहीं किया जा सकता, तो यह एलिप्टिक कर्व के साथ काम नहीं करता. नहीं तो, बाइट में कर्व साइज़ दिखाता है.

GetECGroupForCurve

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

रिवर्स बाइट

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

SchNIDFromSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

ECDSAहस्ताक्षर

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

ECDSAहस्ताक्षर

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

पुष्टि करेंHHMAC हस्ताक्षर

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
HMAC हस्ताक्षर जनरेट करने के लिए इस्तेमाल किया जाने वाला एल्गोरिदम OID.
[in] data
बफ़र, जिसमें साइन किया जाने वाला डेटा शामिल होता है.
[in] dataLen
डेटा के बाइट में लंबाई.
[in] sig
पुष्टि करने के लिए, HMAC के हस्ताक्षर को कोड में बदला गया.
[in] key
ऐसा बफ़र जिसमें HMAC का हस्ताक्षर जनरेट करने के लिए, सीक्रेट कुंजी का इस्तेमाल किया जाता है.
[in] keyLen
सीक्रेट कुंजी की बाइट में लंबाई.
सामान लौटाने की वैल्यू
WEAVE_NO_ERROR
अगर HMAC पर हस्ताक्षर की पुष्टि हो गई है.
WEAVE_ERROR_INVALID_SIGNATURE
अगर HMAC की पुष्टि नहीं हो पाई.

RSAA हस्ताक्षर की पुष्टि करें

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

वीवा आरएसए हस्ताक्षर की पुष्टि करें.

दिए गए डेटा हैश और X509 कोड में बदले गए आरएसए प्रमाणपत्र के इस्तेमाल से आरएसए हस्ताक्षर की पुष्टि करता है. इसमें सार्वजनिक कुंजी शामिल होती है, जिसका इस्तेमाल हस्ताक्षर की पुष्टि करने के लिए किया जाता है.

ब्यौरा
पैरामीटर
[in] sigAlgoOID
आरएसए हस्ताक्षर जनरेट करने के लिए इस्तेमाल किया जाने वाला एल्गोरिदम ओआईडी.
[in] hash
वह बफ़र जिसमें साइन किए जाने वाले डेटा का हैश शामिल हो.
[in] hashLen
डेटा हैश के बाइट में लंबाई.
[in] sig
कोड में बदला गया आरएसए हस्ताक्षर.
[in] certDER
बफ़र का वह प्रमाणपत्र जिसमें सार्वजनिक कुंजी वाला प्रमाणपत्र होता है, ताकि हस्ताक्षर की पुष्टि की जा सके. प्रमाणपत्र को X509 आरएसए संरचना के तौर पर DER कोड में बदला जाना चाहिए.
[in] certDERLen
एन्कोड किए गए प्रमाणपत्र की बाइट में लंबाई.
सामान लौटाने की वैल्यू
WEAVE_NO_ERROR
अगर कार्रवाई पूरी हो गई है.