क्रिप्टो - प्लैटफ़ॉर्म

इस मॉड्यूल में, Crypto को प्लैटफ़ॉर्म ऐब्स्ट्रैक्शन के तौर पर शामिल किया गया है.

खास जानकारी

गिनती

anonymous enum{
  OT_CRYPTO_KEY_USAGE_NONE = 0,
  OT_CRYPTO_KEY_USAGE_EXPORT = 1 << 0,
  OT_CRYPTO_KEY_USAGE_ENCRYPT = 1 << 1,
  OT_CRYPTO_KEY_USAGE_DECRYPT = 1 << 2,
  OT_CRYPTO_KEY_USAGE_SIGN_HASH = 1 << 3,
  OT_CRYPTO_KEY_USAGE_VERIFY_HASH = 1 << 4
}
enum
इस्तेमाल के मुख्य फ़्लैग बताता है.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256,
  OT_CRYPTO_KEY_ALG_ECDSA
}
enum
यह मुख्य एल्गोरिदम के बारे में बताता है.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
इस नीति से, स्टोरेज के अलग-अलग टाइप के बारे में पता चलता है.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC,
  OT_CRYPTO_KEY_TYPE_ECDSA
}
enum
इस नीति से, कुंजी के टाइप के बारे में पता चलता है.

टाइपडेफ़

otCryptoContext Typedef
otCryptoKey Typedef
struct otCryptoKey
otCryptoKeyRef Typedef
uint32_t
यह डेटाटाइप, मुख्य रेफ़रंस के बारे में बताता है.
otPlatCryptoEcdsaKeyPair Typedef
otPlatCryptoEcdsaPublicKey Typedef
otPlatCryptoEcdsaSignature Typedef
otPlatCryptoSha256Hash Typedef
SHA-256 हैश का प्रतिनिधित्व करता है.

वैरिएबल

OT_TOOL_PACKED_END

फ़ंक्शन

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
दिए गए डेटा को एन्क्रिप्ट (सुरक्षित) करें.
otPlatCryptoAesFree(otCryptoContext *aContext)
AES कॉन्टेक्स्ट को फ़्री करें.
otPlatCryptoAesInit(otCryptoContext *aContext)
AES कार्रवाई शुरू करें.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
AES कार्रवाई के लिए कुंजी सेट करें.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
PSA ITS में संग्रहित कुंजी को नष्ट करें.
otPlatCryptoEcdsaExportPublicKey(otCryptoKeyRef aKeyRef, otPlatCryptoEcdsaPublicKey *aPublicKey)
पास किए गए पासकोड से सार्वजनिक कुंजी पाएं.
otPlatCryptoEcdsaGenerateAndImportKey(otCryptoKeyRef aKeyRef)
पास किए गए रेफ़रंस पर, एक नया ECDSA कुंजी-पेयर जनरेट और इंपोर्ट करें.
otPlatCryptoEcdsaGenerateKey(otPlatCryptoEcdsaKeyPair *aKeyPair)
ईसीडीएसए कुंजी वाले नए पेयर का इस्तेमाल करके, आउटपुट बफ़र जनरेट और पॉप्युलेट करें.
otPlatCryptoEcdsaGetPublicKey(const otPlatCryptoEcdsaKeyPair *aKeyPair, otPlatCryptoEcdsaPublicKey *aPublicKey)
इनपुट की संदर्भ से जुड़ी सार्वजनिक कुंजी पाएं.
otPlatCryptoEcdsaSign(const otPlatCryptoEcdsaKeyPair *aKeyPair, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
इनपुट के संदर्भ में से निजी कुंजी का इस्तेमाल करके हैश किए गए मैसेज के लिए ECDSA हस्ताक्षर की गणना करें.
otPlatCryptoEcdsaSignUsingKeyRef(otCryptoKeyRef aKeyRef, const otPlatCryptoSha256Hash *aHash, otPlatCryptoEcdsaSignature *aSignature)
पास किए गए कुंजी के संदर्भ का इस्तेमाल करके हैश किए गए मैसेज के लिए ECDSA हस्ताक्षर की गणना करें.
otPlatCryptoEcdsaVerify(const otPlatCryptoEcdsaPublicKey *aPublicKey, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
हैश किए गए मैसेज के ECDSA हस्ताक्षर की पुष्टि करने के लिए, इनपुट से जुड़ी कुंजी का इस्तेमाल करें.
otPlatCryptoEcdsaVerifyUsingKeyRef(otCryptoKeyRef aKeyRef, const otPlatCryptoSha256Hash *aHash, const otPlatCryptoEcdsaSignature *aSignature)
हैश किए गए मैसेज के ECDSA हस्ताक्षर की पुष्टि करने के लिए, keyref का इस्तेमाल करें.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
PSA आईटीएस में सेव की गई कुंजी को एक्सपोर्ट करें.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
देखें कि जांच की गई कुंजी की जानकारी, PSA आईटीएस से जुड़ी है या नहीं.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
HKDF संदर्भ की शुरुआत करें.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
HKDF एक्सपैंशन चरण पूरा करें.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
HKDF एक्सट्रैक्ट करना.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
HKDF संदर्भ शुरू करें.
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
एचएमएसी कार्रवाई को शुरू न करें.
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
एचएमएसी कार्रवाई पूरी करें.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
एचएमएसी कार्रवाई शुरू करें.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
एचएमएसी कार्रवाई शुरू करें.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
एचएमएसी कार्रवाई को नए इनपुट के साथ अपडेट करें.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
PSA आईटीएस में कोई कुंजी इंपोर्ट करें.
otPlatCryptoInit(void)
void
क्रिप्टो मॉड्यूल शुरू करें.
otPlatCryptoPbkdf2GenerateKey(const uint8_t *aPassword, uint16_t aPasswordLen, const uint8_t *aSalt, uint16_t aSaltLen, uint32_t aIterationCounter, uint16_t aKeyLen, uint8_t *aKey)
void
CMAC (AES-CMAC-PRF-128) का इस्तेमाल करके AVG#5 PBKDF2 करें.
otPlatCryptoRandomDeinit(void)
void
क्रिप्टोग्राफ़िक तरीके से सुरक्षित सूडोरैंडम नंबर जनरेटर (सीएसपीआरएनजी) को शुरू करें.
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
किसी बफ़र में क्रिप्टोग्राफ़िक तरीके से सुरक्षित रैंडम बाइट भरता है.
otPlatCryptoRandomInit(void)
void
क्रिप्टोग्राफ़िक तरीके से सुरक्षित सूडोरैंडम नंबर जनरेटर (सीएसपीआरएनजी) शुरू करें.
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
SHA-256 को शुरू नहीं करना है.
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
SHA-256 ऑपरेशन पूरा करें.
otPlatCryptoSha256Init(otCryptoContext *aContext)
SHA-256 ऑपरेशन शुरू करें.
otPlatCryptoSha256Start(otCryptoContext *aContext)
SHA-256 ऑपरेशन शुरू करें.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
नए इनपुट के साथ, SHA-256 कार्रवाई को अपडेट करें.

स्ट्रक्चर

otCryptoContext

प्लैटफ़ॉर्म एपीआई के लिए, संदर्भ ऑब्जेक्ट को स्टोर करता है.

otCryptoKey

यह क्रिप्टो ऑपरेशन के लिए ज़रूरी मुख्य कॉन्टेंट के बारे में बताता है.

otPlatCryptoEcdsaKeyपेयर

यह ECDSA कुंजी के जोड़े (सार्वजनिक और निजी कुंजी) को दिखाता है.

otPlatCryptoEcdsaPublicKey

ECDSA सार्वजनिक कुंजी दिखाता है.

otPlatCryptoEcdsaSignature

ECDSA हस्ताक्षर के बारे में बताता है.

otPlatCryptoSha256Hash

SHA-256 हैश का प्रतिनिधित्व करता है.

गिनती

अनाम

 anonymous enum

इस्तेमाल के मुख्य फ़्लैग बताता है.

प्रॉपर्टी
OT_CRYPTO_KEY_USAGE_DECRYPT

कुंजी का इस्तेमाल: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

मुख्य इस्तेमाल: एन्क्रिप्शन (वेंडर से तय किया गया).

OT_CRYPTO_KEY_USAGE_EXPORT

कुंजी का इस्तेमाल: कुंजी एक्सपोर्ट की जा सकती है.

OT_CRYPTO_KEY_USAGE_NONE

बटन का इस्तेमाल: कुंजी का इस्तेमाल नहीं किया गया है.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

कुंजी का इस्तेमाल: साइन हैश करें.

OT_CRYPTO_KEY_USAGE_VERIFY_HASH

मुख्य इस्तेमाल: हैश की पुष्टि करें.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

यह मुख्य एल्गोरिदम के बारे में बताता है.

प्रॉपर्टी
OT_CRYPTO_KEY_ALG_AES_ECB

मुख्य एल्गोरिदम: AES ECB.

OT_CRYPTO_KEY_ALG_ECDSA

मुख्य एल्गोरिदम: ECDSA.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

कुंजी एल्गोरिदम: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

मुख्य एल्गोरिदम: वेंडर के बारे में बताया गया है.

otCryptoKeyStorage

 otCryptoKeyStorage

इस नीति से, स्टोरेज के अलग-अलग टाइप के बारे में पता चलता है.

प्रॉपर्टी
OT_CRYPTO_KEY_STORAGE_PERSISTENT

कुंजी परसिस्टेंस: कुंजी लगातार होती है.

OT_CRYPTO_KEY_STORAGE_VOLATILE

परसिस्टेंस: कुंजी का डेटा बार-बार अपडेट होता है.

otCryptoKeyType

 otCryptoKeyType

इस नीति से, कुंजी के टाइप के बारे में पता चलता है.

प्रॉपर्टी
OT_CRYPTO_KEY_TYPE_AES

कुंजी का टाइप: AES.

OT_CRYPTO_KEY_TYPE_ECDSA

कुंजी का टाइप: ECDSA.

OT_CRYPTO_KEY_TYPE_HMAC

कुंजी का टाइप: एचएमएसी.

OT_CRYPTO_KEY_TYPE_RAW

कुंजी का टाइप: रॉ डेटा.

टाइपडेफ़

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

यह डेटाटाइप, मुख्य रेफ़रंस के बारे में बताता है.

otPlatCryptoEcdsaKeyपेयर

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsaSignature

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256हैश

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

SHA-256 हैश का प्रतिनिधित्व करता है.

वैरिएबल

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

फ़ंक्शन

otPlatCryptoAesएन्क्रिप्ट

otError otPlatCryptoAesEncrypt(
  otCryptoContext *aContext,
  const uint8_t *aInput,
  uint8_t *aOutput
)

दिए गए डेटा को एन्क्रिप्ट (सुरक्षित) करें.

ब्यौरा
पैरामीटर
[in] aContext
AES कार्रवाई के लिए कॉन्टेक्स्ट.
[in] aInput
इनपुट बफ़र की ओर पॉइंटर.
[in] aOutput
आउटपुट बफ़र में कर्सर ले जाएं.
लौटाने की वैल्यू
OT_ERROR_NONE
aInput को एन्क्रिप्ट (सुरक्षित) किया गया.
OT_ERROR_FAILED
aInput को एन्क्रिप्ट (सुरक्षित) नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext या aKey या aOutput शून्य थे

otPlatCryptoAesमुफ़्त

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

AES कॉन्टेक्स्ट को फ़्री करें.

ब्यौरा
पैरामीटर
[in] aContext
AES कार्रवाई के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
AES कॉन्टेक्स्ट सफलतापूर्वक बनाया गया.
OT_ERROR_FAILED
AES संदर्भ को खाली नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoAesit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES कार्रवाई शुरू करें.

ब्यौरा
पैरामीटर
[in] aContext
AES कार्रवाई के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
AES कार्रवाई शुरू हो गई.
OT_ERROR_FAILED
AES कार्रवाई शुरू नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext शून्य था
OT_ERROR_NO_BUFS
संदर्भ असाइन नहीं किया जा सकता.

otPlatCryptoAesSetKey

otError otPlatCryptoAesSetKey(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

AES कार्रवाई के लिए कुंजी सेट करें.

ब्यौरा
पैरामीटर
[in] aContext
AES कार्रवाई के लिए कॉन्टेक्स्ट.
[out] aKey
AES कार्रवाई के लिए इस्तेमाल करने वाली कुंजी.
लौटाने की वैल्यू
OT_ERROR_NONE
AES कार्रवाई के लिए बटन सेट किया गया.
OT_ERROR_FAILED
AES कार्रवाई के लिए कुंजी सेट नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext या aKey शून्य था

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

PSA ITS में संग्रहित कुंजी को नष्ट करें.

ब्यौरा
पैरामीटर
[in] aKeyRef
की के रेफ़री को खत्म कर दिया जाएगा
लौटाने की वैल्यू
OT_ERROR_NONE
डिजिटल बटन मिटाया गया.
OT_ERROR_FAILED
डिजिटल बटन मिटाया नहीं जा सका.

otPlatCryptoEcdsaexportPublicKey

otError otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef aKeyRef,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

पास किए गए पासकोड से सार्वजनिक कुंजी पाएं.

सार्वजनिक कुंजी को अलग-अलग तरीके से सेव किया जाता है. यह इस बात पर निर्भर करता है कि क्रिप्टो बैकएंड लाइब्रेरी का इस्तेमाल किस तरह किया जा रहा है (OpenLEARN_CONFIG_CRYPTO_LIB).

इस एपीआई को सार्वजनिक कुंजी को बिना कंप्रेस किए गए कर्व पॉइंट के बाइट सीक्वेंस के रूप में दिखाना ज़रूरी है (RFC 6605 - सेकेंड 4)

ब्यौरा
पैरामीटर
[in] aKeyRef
उस स्लॉट की जानकारी जहां कुंजी की जोड़ी सेव की गई है.
[out] aPublicKey
सार्वजनिक कुंजी स्टोर करने के लिए, ECDSA सार्वजनिक कुंजी स्ट्रक्चर के लिए एक पॉइंटर.
लौटाने की वैल्यू
OT_ERROR_NONE
सार्वजनिक कुंजी वापस मिल गई है और aBuffer अपडेट हो गया है.
OT_ERROR_PARSE
की-पेयर DER फ़ॉर्मैट को पार्स नहीं किया जा सका (अमान्य फ़ॉर्मैट).
OT_ERROR_INVALID_ARGS
aContext, NULL है.

otPlatCryptoEcdsaGenerateAndImportKey

otError otPlatCryptoEcdsaGenerateAndImportKey(
  otCryptoKeyRef aKeyRef
)

पास किए गए रेफ़रंस पर, एक नया ECDSA कुंजी-पेयर जनरेट और इंपोर्ट करें.

ब्यौरा
पैरामीटर
[in] aKeyRef
उस स्लॉट की जानकारी जहां कुंजी की जोड़ी सेव की गई है.
लौटाने की वैल्यू
OT_ERROR_NONE
नई कुंजी के जोड़े को जनरेट किया गया.
OT_ERROR_NO_BUFS
कुंजी जनरेट करने के लिए बफ़र असाइन नहीं किया जा सका.
OT_ERROR_NOT_CAPABLE
यह सुविधा, इस नेटवर्क पर काम नहीं करती है.
OT_ERROR_FAILED
कुंजी का जोड़ा जनरेट नहीं किया जा सका.

otPlatCryptoEcdsagenerateKey

otError otPlatCryptoEcdsaGenerateKey(
  otPlatCryptoEcdsaKeyPair *aKeyPair
)

ईसीडीएसए कुंजी वाले नए पेयर का इस्तेमाल करके, आउटपुट बफ़र जनरेट और पॉप्युलेट करें.

ब्यौरा
पैरामीटर
[out] aKeyPair
जनरेट किए गए बटन के जोड़े को स्टोर करने के लिए, ईसीडीएसए कुंजी के जोड़े वाले स्ट्रक्चर का पॉइंटर.
लौटाने की वैल्यू
OT_ERROR_NONE
नई कुंजी के जोड़े को जनरेट किया गया.
OT_ERROR_NO_BUFS
कुंजी जनरेट करने के लिए बफ़र असाइन नहीं किया जा सका.
OT_ERROR_NOT_CAPABLE
यह सुविधा, इस नेटवर्क पर काम नहीं करती है.
OT_ERROR_FAILED
कुंजी का जोड़ा जनरेट नहीं किया जा सका.

otPlatCryptoEcdsaGetPublicKey

otError otPlatCryptoEcdsaGetPublicKey(
  const otPlatCryptoEcdsaKeyPair *aKeyPair,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

इनपुट की संदर्भ से जुड़ी सार्वजनिक कुंजी पाएं.

ब्यौरा
पैरामीटर
[in] aKeyPair
ईसीडीएसए कुंजी के जोड़े के स्ट्रक्चर की जानकारी देने वाला पॉइंटर, जहां कुंजी का जोड़ा सेव किया जाता है.
[out] aPublicKey
सार्वजनिक कुंजी स्टोर करने के लिए, ECDSA सार्वजनिक कुंजी स्ट्रक्चर के लिए एक पॉइंटर.
लौटाने की वैल्यू
OT_ERROR_NONE
सार्वजनिक कुंजी वापस मिल गई है और aBuffer अपडेट हो गया है.
OT_ERROR_PARSE
की-पेयर DER फ़ॉर्मैट को पार्स नहीं किया जा सका (अमान्य फ़ॉर्मैट).
OT_ERROR_INVALID_ARGS
aContext, NULL है.

otPlatCryptoEcdsaSign

otError otPlatCryptoEcdsaSign(
  const otPlatCryptoEcdsaKeyPair *aKeyPair,
  const otPlatCryptoSha256Hash *aHash,
  otPlatCryptoEcdsaSignature *aSignature
)

इनपुट के संदर्भ में से निजी कुंजी का इस्तेमाल करके हैश किए गए मैसेज के लिए ECDSA हस्ताक्षर की गणना करें.

आरएफ़सी 6979 से, डेटरमिनिस्टिक डिजिटल सिग्नेचर जनरेशन प्रोसेस का इस्तेमाल करता है.

ब्यौरा
पैरामीटर
[in] aKeyPair
ईसीडीएसए कुंजी के जोड़े के स्ट्रक्चर की जानकारी देने वाला पॉइंटर, जहां कुंजी का जोड़ा सेव किया जाता है.
[in] aHash
SHA-256 हैश स्ट्रक्चर का एक पॉइंटर जहां हस्ताक्षर की गिनती के लिए हैश वैल्यू स्टोर की जाती है.
[out] aSignature
यह आपके दिए गए फ़ॉर्मूला के आधार पर तैयार किए गए हस्ताक्षर को आउटपुट करने के लिए, ECDSA हस्ताक्षर की संरचना का पॉइंटर है.
लौटाने की वैल्यू
OT_ERROR_NONE
हस्ताक्षर का हिसाब लगाया जा चुका है, aSignature अपडेट किया गया था.
OT_ERROR_PARSE
की-पेयर DER फ़ॉर्मैट को पार्स नहीं किया जा सका (अमान्य फ़ॉर्मैट).
OT_ERROR_NO_BUFS
हस्ताक्षर की गिनती के लिए, बफ़र असाइन नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext, NULL है.

otPlatCryptoEcdsaSignUsageKeyReRef

otError otPlatCryptoEcdsaSignUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  otPlatCryptoEcdsaSignature *aSignature
)

पास किए गए कुंजी के संदर्भ का इस्तेमाल करके हैश किए गए मैसेज के लिए ECDSA हस्ताक्षर की गणना करें.

आरएफ़सी 6979 से, डेटरमिनिस्टिक डिजिटल सिग्नेचर जनरेशन प्रोसेस का इस्तेमाल करता है.

ब्यौरा
पैरामीटर
[in] aKeyRef
उस स्लॉट की जानकारी जहां कुंजी की जोड़ी सेव की गई है.
[in] aHash
SHA-256 हैश स्ट्रक्चर का एक पॉइंटर जहां हस्ताक्षर की गिनती के लिए हैश वैल्यू स्टोर की जाती है.
[out] aSignature
यह आपके दिए गए फ़ॉर्मूला के आधार पर तैयार किए गए हस्ताक्षर को आउटपुट करने के लिए, ECDSA हस्ताक्षर की संरचना का पॉइंटर है.
लौटाने की वैल्यू
OT_ERROR_NONE
हस्ताक्षर का हिसाब लगाया जा चुका है, aSignature अपडेट किया गया था.
OT_ERROR_PARSE
की-पेयर DER फ़ॉर्मैट को पार्स नहीं किया जा सका (अमान्य फ़ॉर्मैट).
OT_ERROR_NO_BUFS
हस्ताक्षर की गिनती के लिए, बफ़र असाइन नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext, NULL है.

otPlatCryptoEcdsaVerify

otError otPlatCryptoEcdsaVerify(
  const otPlatCryptoEcdsaPublicKey *aPublicKey,
  const otPlatCryptoSha256Hash *aHash,
  const otPlatCryptoEcdsaSignature *aSignature
)

हैश किए गए मैसेज के ECDSA हस्ताक्षर की पुष्टि करने के लिए, इनपुट से जुड़ी कुंजी का इस्तेमाल करें.

ब्यौरा
पैरामीटर
[in] aPublicKey
ईसीडीएसए सार्वजनिक कुंजी स्ट्रक्चर का एक पॉइंटर जहां हस्ताक्षर की पुष्टि के लिए सार्वजनिक कुंजी सेव की जाती है.
[in] aHash
SHA-256 हैश स्ट्रक्चर का एक पॉइंटर जहां हस्ताक्षर की पुष्टि के लिए हैश वैल्यू स्टोर की जाती है.
[in] aSignature
ईसीडीएसए हस्ताक्षर की संरचना का एक पॉइंटर जहां पुष्टि की जाने वाली हस्ताक्षर की वैल्यू सेव की जाती है.
लौटाने की वैल्यू
OT_ERROR_NONE
हस्ताक्षर की पुष्टि हो गई है.
OT_ERROR_SECURITY
हस्ताक्षर गलत है.
OT_ERROR_INVALID_ARGS
कुंजी या हैश अमान्य है.
OT_ERROR_NO_BUFS
हस्ताक्षर की पुष्टि के लिए बफ़र असाइन नहीं किया जा सका.

otPlatCryptoEcdsaVerifyUseKeyReF

otError otPlatCryptoEcdsaVerifyUsingKeyRef(
  otCryptoKeyRef aKeyRef,
  const otPlatCryptoSha256Hash *aHash,
  const otPlatCryptoEcdsaSignature *aSignature
)

हैश किए गए मैसेज के ECDSA हस्ताक्षर की पुष्टि करने के लिए, keyref का इस्तेमाल करें.

ब्यौरा
पैरामीटर
[in] aKeyRef
उस स्लॉट की जानकारी जहां कुंजी की जोड़ी सेव की गई है.
[in] aHash
SHA-256 हैश स्ट्रक्चर का एक पॉइंटर जहां हस्ताक्षर की पुष्टि के लिए हैश वैल्यू स्टोर की जाती है.
[in] aSignature
ईसीडीएसए हस्ताक्षर की संरचना का एक पॉइंटर जहां पुष्टि की जाने वाली हस्ताक्षर की वैल्यू सेव की जाती है.
लौटाने की वैल्यू
OT_ERROR_NONE
हस्ताक्षर की पुष्टि हो गई है.
OT_ERROR_SECURITY
हस्ताक्षर गलत है.
OT_ERROR_INVALID_ARGS
कुंजी या हैश अमान्य है.
OT_ERROR_NO_BUFS
हस्ताक्षर की पुष्टि के लिए बफ़र असाइन नहीं किया जा सका.

otPlatCryptoexportKey

otError otPlatCryptoExportKey(
  otCryptoKeyRef aKeyRef,
  uint8_t *aBuffer,
  size_t aBufferLen,
  size_t *aKeyLen
)

PSA आईटीएस में सेव की गई कुंजी को एक्सपोर्ट करें.

ब्यौरा
पैरामीटर
[in] aKeyRef
क्रिप्टो ऑपरेशन के लिए इस्तेमाल होने वाली कुंजी का संदर्भ.
[out] aBuffer
उस बफ़र की ओर संकेत करें जहां कुंजी को एक्सपोर्ट करना है.
[in] aBufferLen
एक्सपोर्ट की गई कुंजी को स्टोर करने के लिए, बफ़र की अवधि.
[out] aKeyLen
एक्सपोर्ट की गई कुंजी की लंबाई दिखाने के लिए पॉइंटर.
लौटाने की वैल्यू
OT_ERROR_NONE
aKeyRef एक्सपोर्ट किया गया.
OT_ERROR_FAILED
aKeyRef को एक्सपोर्ट नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aBuffer शून्य था

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

देखें कि जांच की गई कुंजी की जानकारी, PSA आईटीएस से जुड़ी है या नहीं.

ब्यौरा
पैरामीटर
[in] aKeyRef
जांच करने के लिए कुंजी का संदर्भ
लौटाने की वैल्यू
TRUE
aKeyRef से जुड़ी एक कुंजी मौजूद है.
FALSE
aKeyRef से जुड़ी कोई कुंजी नहीं है.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

HKDF संदर्भ की शुरुआत करें.

ब्यौरा
पैरामीटर
[in] aContext
HKDF कार्रवाई के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
HKDF कार्रवाई शुरू नहीं की गई.
OT_ERROR_FAILED
HKDF कार्रवाई शुरू नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoHkdfexpand

otError otPlatCryptoHkdfExpand(
  otCryptoContext *aContext,
  const uint8_t *aInfo,
  uint16_t aInfoLength,
  uint8_t *aOutputKey,
  uint16_t aOutputKeyLength
)

HKDF एक्सपैंशन चरण पूरा करें.

ब्यौरा
पैरामीटर
[in] aContext
HKDF कार्रवाई के लिए ऑपरेशन का कॉन्टेक्स्ट.
[in] aInfo
जानकारी के क्रम का संकेत.
[in] aInfoLength
जानकारी के क्रम की लंबाई.
[out] aOutputKey
आउटपुट कुंजी पर कर्सर ले जाएं.
[in] aOutputKeyLength
आउटपुट कुंजी बफ़र का आकार.
लौटाने की वैल्यू
OT_ERROR_NONE
HKDF एक्सपैंशन सफल रहा.
OT_ERROR_FAILED
HKDF एक्सपैंशन नहीं हो सका.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoHkdfनिकालें

otError otPlatCryptoHkdfExtract(
  otCryptoContext *aContext,
  const uint8_t *aSalt,
  uint16_t aSaltLength,
  const otCryptoKey *aInputKey
)

HKDF एक्सट्रैक्ट करना.

ब्यौरा
पैरामीटर
[in] aContext
HKDF कार्रवाई के लिए ऑपरेशन का कॉन्टेक्स्ट.
[in] aSalt
HKDF के लिए नमक की ओर संकेत.
[in] aSaltLength
नमक की लंबाई.
[in] aInputKey
इनपुट कुंजी पर कर्सर ले जाएं.
लौटाने की वैल्यू
OT_ERROR_NONE
HKDF एक्सट्रैक्ट किया गया.
OT_ERROR_FAILED
HKDF एक्सट्रैक्ट नहीं किया जा सका.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

HKDF संदर्भ शुरू करें.

ब्यौरा
पैरामीटर
[in] aContext
HKDF कार्रवाई के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
AES कार्रवाई शुरू हो गई.
OT_ERROR_FAILED
AES कार्रवाई शुरू नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

एचएमएसी कार्रवाई को शुरू न करें.

ब्यौरा
पैरामीटर
[in] aContext
एचएमएसी कार्रवाई का संदर्भ.
लौटाने की वैल्यू
OT_ERROR_NONE
एचएमएसी कार्रवाई शुरू नहीं की गई.
OT_ERROR_FAILED
एचएमएसी कार्रवाई शुरू नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoHmacSha256Finish

otError otPlatCryptoHmacSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aBuf,
  size_t aBufLength
)

एचएमएसी कार्रवाई पूरी करें.

ब्यौरा
पैरामीटर
[in] aContext
एचएमएसी कार्रवाई का संदर्भ.
[out] aBuf
आउटपुट बफ़र का पॉइंटर.
[in] aBufLength
लंबाई aBuf बाइट है.
लौटाने की वैल्यू
OT_ERROR_NONE
एचएमएसी कार्रवाई पूरी हुई.
OT_ERROR_FAILED
एचएमएसी कार्रवाई पूरी नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext या aBuf शून्य था

otPlatCryptoHmacSha256it

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

एचएमएसी कार्रवाई शुरू करें.

ब्यौरा
पैरामीटर
[in] aContext
एचएमएसी कार्रवाई का संदर्भ.
लौटाने की वैल्यू
OT_ERROR_NONE
एचएमएसी कार्रवाई शुरू की गई.
OT_ERROR_FAILED
एचएमएसी कार्रवाई शुरू नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoHmacSha256शुरू करें

otError otPlatCryptoHmacSha256Start(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

एचएमएसी कार्रवाई शुरू करें.

ब्यौरा
पैरामीटर
[in] aContext
एचएमएसी कार्रवाई का संदर्भ.
[in] aKey
एचएमएसी कार्रवाई के लिए इस्तेमाल किया जाने वाला मुख्य कॉन्टेंट.
लौटाने की वैल्यू
OT_ERROR_NONE
एचएमएसी कार्रवाई शुरू की गई.
OT_ERROR_FAILED
HMAC कार्रवाई शुरू नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext या aKey शून्य था

otPlatCryptoHmacSha256 अपडेट

otError otPlatCryptoHmacSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

एचएमएसी कार्रवाई को नए इनपुट के साथ अपडेट करें.

ब्यौरा
पैरामीटर
[in] aContext
एचएमएसी कार्रवाई का संदर्भ.
[in] aBuf
इनपुट बफ़र का पॉइंटर.
[in] aBufLength
लंबाई aBuf बाइट है.
लौटाने की वैल्यू
OT_ERROR_NONE
नई इनपुट कार्रवाई के साथ HMAC अपडेट किया गया.
OT_ERROR_FAILED
एचएमएसी कार्रवाई अपडेट नहीं की जा सकी.
OT_ERROR_INVALID_ARGS
aContext या aBuf शून्य था

otPlatCryptoImportKey

otError otPlatCryptoImportKey(
  otCryptoKeyRef *aKeyRef,
  otCryptoKeyType aKeyType,
  otCryptoKeyAlgorithm aKeyAlgorithm,
  int aKeyUsage,
  otCryptoKeyStorage aKeyPersistence,
  const uint8_t *aKey,
  size_t aKeyLen
)

PSA आईटीएस में कोई कुंजी इंपोर्ट करें.

ध्यान दें:अगर AKeyPersence के लिए OT_CRYPTO_KEY_STORAGE_PERSISTENT को पास किया जाता है, तो aKeyRef इनपुट और प्लैटफ़ॉर्म का इस्तेमाल किया जाना चाहिए, न कि उसमें बदलाव करने के लिए. अगर AKeyPersistence के लिए OT_CRYPTO_KEY_STORAGE_VOLATILE पास हो जाता है, तो आउटपुट aKeyRef होता है. शुरुआती वैल्यू का कोई असर नहीं पड़ता और प्लैटफ़ॉर्म एपीआई को इसे नई कुंजी के रेफ़रंस के तौर पर अपडेट करना ज़रूरी है.

ब्यौरा
पैरामीटर
[in,out] aKeyRef
क्रिप्टो ऑपरेशन के लिए इस्तेमाल किए जाने वाले मुख्य रेफ़रर की ओर इशारा करना.
[in] aKeyType
कुंजी के लिए कोड में बदलने का तरीका.
[in] aKeyAlgorithm
कुंजी के लिए कुंजी एल्गोरिदम एन्कोडिंग.
[in] aKeyUsage
की (OT_CRYPTO_KEY_USAGE_* के संयोजन) के लिए कुंजी उपयोग एन्कोडिंग.
[in] aKeyPersistence
इस बटन के लिए परसिस्टेंस
[in] aKey
असल में इंपोर्ट किया जाने वाला बटन.
[in] aKeyLen
इंपोर्ट किए जाने वाले बटन का कुल समय.
लौटाने की वैल्यू
OT_ERROR_NONE
डिजिटल बटन इंपोर्ट किया गया.
OT_ERROR_FAILED
डिजिटल बटन को इंपोर्ट नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aKey को NULL के तौर पर सेट किया गया.

OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE के चालू होने पर ही, इस एपीआई को OT कोर पर इस्तेमाल किया जाता है.

otPlatCryptotoit

void otPlatCryptoInit(
  void
)

क्रिप्टो मॉड्यूल शुरू करें.

otPlatCryptoPbkdf2GenerateKey

void otPlatCryptoPbkdf2GenerateKey(
  const uint8_t *aPassword,
  uint16_t aPasswordLen,
  const uint8_t *aSalt,
  uint16_t aSaltLen,
  uint32_t aIterationCounter,
  uint16_t aKeyLen,
  uint8_t *aKey
)

CMAC (AES-CMAC-PRF-128) का इस्तेमाल करके AVG#5 PBKDF2 करें.

ब्यौरा
पैरामीटर
[in] aPassword
डिजिटल बटन जनरेट करते समय इस्तेमाल किया जाने वाला पासवर्ड.
[in] aPasswordLen
पासवर्ड की लंबाई.
[in] aSalt
कुंजी जनरेट करते समय इस्तेमाल किया जाने वाला नमक.
[in] aSaltLen
नमक की लंबाई.
[in] aIterationCounter
इटरेशन की संख्या.
[in] aKeyLen
बाइट में जनरेट की गई कुंजी की लंबाई.
[out] aKey
जनरेट की गई कुंजी के लिए पॉइंटर.

otPlatCryptoRomDeinit

void otPlatCryptoRandomDeinit(
  void
)

क्रिप्टोग्राफ़िक तरीके से सुरक्षित सूडोरैंडम नंबर जनरेटर (सीएसपीआरएनजी) को शुरू करें.

otPlatCryptoRomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

किसी बफ़र में क्रिप्टोग्राफ़िक तरीके से सुरक्षित रैंडम बाइट भरता है.

ब्यौरा
पैरामीटर
[out] aBuffer
किसी बफ़र के लिए माउस की जगह लेने के लिए एक पॉइंटर.
[in] aSize
बफ़र का साइज़ (भरे जाने वाले बाइट की संख्या).
लौटाने की वैल्यू
OT_ERROR_NONE
बफ़र को रैंडम वैल्यू से भरा गया.
OT_ERROR_FAILED
कार्रवाई नहीं की जा सकी.

otPlatCryptoRomInit

void otPlatCryptoRandomInit(
  void
)

क्रिप्टोग्राफ़िक तरीके से सुरक्षित सूडोरैंडम नंबर जनरेटर (सीएसपीआरएनजी) शुरू करें.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

SHA-256 को शुरू नहीं करना है.

ब्यौरा
पैरामीटर
[in] aContext
SHA-256 ऑपरेशन के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
SHA-256 को शुरू नहीं किया जा सका.
OT_ERROR_FAILED
SHA-256 को शुरू नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoSha256Finish

otError otPlatCryptoSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aHash,
  uint16_t aHashSize
)

SHA-256 ऑपरेशन पूरा करें.

ब्यौरा
पैरामीटर
[in] aContext
SHA-256 ऑपरेशन के लिए कॉन्टेक्स्ट.
[in] aHash
आउटपुट बफ़र का पॉइंटर, जहां हैश को स्टोर करना ज़रूरी होता है.
[in] aHashSize
लंबाई aHash बाइट है.
लौटाने की वैल्यू
OT_ERROR_NONE
SHA-256 ऑपरेशन सफलतापूर्वक पूरा हुआ.
OT_ERROR_FAILED
SHA-256 कार्रवाई पूरी नहीं हो सकी.
OT_ERROR_INVALID_ARGS
aContext या aHash शून्य था

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

SHA-256 ऑपरेशन शुरू करें.

ब्यौरा
पैरामीटर
[in] aContext
SHA-256 ऑपरेशन के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
SHA-256 ऑपरेशन को सफलतापूर्वक शुरू किया गया.
OT_ERROR_FAILED
SHA-256 को शुरू नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoSha256शुरू करें

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

SHA-256 ऑपरेशन शुरू करें.

ब्यौरा
पैरामीटर
[in] aContext
SHA-256 ऑपरेशन के लिए कॉन्टेक्स्ट.
लौटाने की वैल्यू
OT_ERROR_NONE
SHA-256 ऑपरेशन को सफलतापूर्वक शुरू किया गया.
OT_ERROR_FAILED
SHA-256 ऑपरेशन शुरू नहीं किया जा सका.
OT_ERROR_INVALID_ARGS
aContext शून्य था

otPlatCryptoSha256अपडेट

otError otPlatCryptoSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

नए इनपुट के साथ, SHA-256 कार्रवाई को अपडेट करें.

ब्यौरा
पैरामीटर
[in] aContext
SHA-256 ऑपरेशन के लिए कॉन्टेक्स्ट.
[in] aBuf
इनपुट बफ़र का पॉइंटर.
[in] aBufLength
लंबाई aBuf बाइट है.
लौटाने की वैल्यू
OT_ERROR_NONE
नई इनपुट कार्रवाई के साथ SHA-256 को अपडेट किया गया.
OT_ERROR_FAILED
SHA-256 ऑपरेशन को अपडेट करने में विफल.
OT_ERROR_INVALID_ARGS
aContext या aBuf शून्य था

मैक्रो

OT_CRYPTO_ECDSA_MAX_DER_SIZE

 OT_CRYPTO_ECDSA_MAX_DER_SIZE 125

DER फ़ॉर्मैट में EDCSA कुंजी-पेयर दिखाने के लिए, ज़्यादा से ज़्यादा बफ़र साइज़ (बाइट में).

OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE

 OT_CRYPTO_ECDSA_PUBLIC_KEY_SIZE 64

EDCSA सार्वजनिक कुंजी दिखाने के लिए बफ़र साइज़ (बाइट में).

OT_CRYPTO_ECDSA_SIGNATURE_SIZE

 OT_CRYPTO_ECDSA_SIGNATURE_SIZE 64

EDCSA हस्ताक्षर को दिखाने के लिए बफ़र साइज़ (बाइट में).

OT_CRYPTO_PBDKF2_MAX_SALT_SIZE

 OT_CRYPTO_PBDKF2_MAX_SALT_SIZE 30

ज़्यादा से ज़्यादा PBKDF2 SALT लंबाई: सॉल्ट प्रीफ़िक्स (6) + एक्सटेंडेड पैनिड (8) + नेटवर्क का नाम (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

SHA256 हैश की लंबाई (बाइट में).

रिसॉर्स

OpenThread एपीआई के संदर्भ विषय, सोर्स कोड से आते हैं और GitHub पर उपलब्ध होते हैं. ज़्यादा जानकारी पाने या हमारे दस्तावेज़ में योगदान देने के लिए, संसाधन देखें.