nl::Weave::Crypto

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

खास जानकारी

गिनती

X963EncodedPointFormat enum

टाइपडीफ़

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)
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::Weave::Crypto::CTRMode
nl::Weave::Crypto::CTR_DRBG
nl::Weave::Crypto::EncodedECDSASignature
nl::Weave::Crypto::EncodedECPrivateKey
nl::Weave::Crypto::EncodedECPublicKey
nl::Weave::Crypto::EncodedHMACSignature
nl::Weave::Crypto::EncodedRSAKey
nl::Weave::Crypto::EncodedRSASignature
nl::Weave::Crypto::HKDF
nl::Weave::Crypto::HKDFSHA1Or256
nl::Weave::Crypto::HMAC

गिनती

X963EncodedPointFormat

 X963EncodedPointFormat

टाइपडीफ़

AES128सीटीआरडीआरबीजी

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

AES128सीटीआर मोड

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

AES256सीटीआर मोड

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 बाइट को मिटाता है.

इस प्रोसेस को लागू करने के बाद, मेमोरी एरिया के पहले len बाइट में buf शून्य से भरा हुआ है.

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

ConstantTimeCompare

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
अगर मेमोरी एरिया के पहले len बाइट buf1 और buf2 बराबर हैं.
false
नहीं तो.

DecodeBIGNUMValueLE

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

DecodeECDSASignature

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
)

EncodeECDSASignature

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

कोडX962ECPoint

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

जानकारी
पैरामीटर
[in] sigAlgoOID
HMAC सिग्नेचर जनरेट करने के लिए इस्तेमाल किया जाने वाला एल्गोरिदम OID.
[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
)

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

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

जानकारी
पैरामीटर
[in] sigAlgoOID
आरएसए सिग्नेचर जनरेट करने के लिए, एल्गोरिदम OID का इस्तेमाल किया जाता है.
[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
)

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
)

एलिप्टिक कर्व का साइज़ (बाइट में) देखें.

जानकारी
पैरामीटर
[in] curveOID
तय किए गए एलिप्टिक कर्व का ओआईडी.
रिटर्न वैल्यू
Returns
0 अगर तय किया गया कर्वओआईडी, काम न करने वाला एलिप्टिक कर्व काम नहीं करता है. ऐसा न होने पर, कर्व साइज़ को बाइट में दिखाता है.

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
)

VerifyECDSASignature

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

VerifyECDSASignature

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

VerifyHMACSignature

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 हस्ताक्षर की पुष्टि नहीं हो पाती है.

VerifyRSASignature

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