ক্রিপ্টো - প্ল্যাটফর্ম

এই মডিউলটি ক্রিপ্টোর জন্য প্ল্যাটফর্ম বিমূর্ততা অন্তর্ভুক্ত করে।

সারসংক্ষেপ

গণনা

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
মূল প্রকারগুলি সংজ্ঞায়িত করে।

Typedefs

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)
একটি নতুন ECDSA কী-জোড়া দিয়ে আউটপুট বাফার তৈরি এবং পপুলেট করুন।
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 ITS-এ সংরক্ষিত একটি কী রপ্তানি করুন।
otPlatCryptoHasKey ( otCryptoKeyRef aKeyRef)
bool
পাস করা কী রেফের পিএসএ আইটিএস-এ একটি সংশ্লিষ্ট কী আছে কিনা তা পরীক্ষা করুন।
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)
HMAC অপারেশন সম্পূর্ণ করুন।
otPlatCryptoHmacSha256Init ( otCryptoContext *aContext)
HMAC অপারেশন শুরু করুন।
otPlatCryptoHmacSha256Start ( otCryptoContext *aContext, const otCryptoKey *aKey)
HMAC অপারেশন শুরু করুন।
otPlatCryptoHmacSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
নতুন ইনপুট সহ HMAC অপারেশন আপডেট করুন।
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
PSA ITS-এ একটি কী আমদানি করুন।
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)
CMAC (AES-CMAC-PRF-128) ব্যবহার করে PKCS#5 PBKDF2 সম্পাদন করুন।
otPlatCryptoRandomDeinit (void)
void
ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত সিউডোর্যান্ডম নম্বর জেনারেটর (CSPRNG) ডিইনিশিয়ালাইজ করুন।
otPlatCryptoRandomGet (uint8_t *aBuffer, uint16_t aSize)
ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম বাইট দিয়ে একটি প্রদত্ত বাফার পূরণ করে।
otPlatCryptoRandomInit (void)
void
ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত সিউডোর্যান্ডম নম্বর জেনারেটর (CSPRNG) শুরু করুন।
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 অপারেশন আপডেট করুন।

কাঠামো

#CryptoContext

প্ল্যাটফর্ম API-এর জন্য প্রসঙ্গ বস্তু সংরক্ষণ করে।

otCryptoKey

ক্রিপ্টো অপারেশনের জন্য প্রয়োজনীয় মূল উপাদানের প্রতিনিধিত্ব করে।

otPlatCryptoEcdsaKeyPair

একটি ECDSA কী জোড়া প্রতিনিধিত্ব করে (সর্বজনীন এবং ব্যক্তিগত কী)।

otPlatCryptoEcdsaPublicKey

একটি ECDSA পাবলিক কী প্রতিনিধিত্ব করে।

otPlatCryptoEcdsa স্বাক্ষর

একটি ECDSA স্বাক্ষর প্রতিনিধিত্ব করে।

otPlatCryptoSha256Hash

একটি SHA-256 হ্যাশ প্রতিনিধিত্ব করে।

গণনা

বেনামী enum

 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

কী ব্যবহার: হ্যাশ যাচাই করুন।

#CryptoKeyAlgorithm

 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

কী প্রকার: HMAC।

OT_CRYPTO_KEY_TYPE_RAW

কী প্রকার: কাঁচা ডেটা।

Typedefs

#CryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

এই ডেটাটাইপ মূল রেফারেন্স প্রতিনিধিত্ব করে.

otPlatCryptoEcdsaKeyPair

struct otPlatCryptoEcdsaKeyPair otPlatCryptoEcdsaKeyPair

otPlatCryptoEcdsaPublicKey

struct otPlatCryptoEcdsaPublicKey otPlatCryptoEcdsaPublicKey

otPlatCryptoEcdsa স্বাক্ষর

struct otPlatCryptoEcdsaSignature otPlatCryptoEcdsaSignature

otPlatCryptoSha256Hash

struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash

একটি SHA-256 হ্যাশ প্রতিনিধিত্ব করে।

ভেরিয়েবল

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otPlatCryptoSha256Hash OT_TOOL_PACKED_END

ফাংশন

otPlatCryptoAesEncrypt

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 ছিল NULL

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

AES প্রসঙ্গ বিনামূল্যে.

বিস্তারিত
পরামিতি
[in] aContext
AES অপারেশন জন্য প্রসঙ্গ.
রিটার্ন মান
OT_ERROR_NONE
AES প্রসঙ্গ সফলভাবে মুক্ত করা হয়েছে।
OT_ERROR_FAILED
AES প্রসঙ্গ মুক্ত করতে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext NULL ছিল

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES অপারেশন শুরু করুন।

বিস্তারিত
পরামিতি
[in] aContext
AES অপারেশন জন্য প্রসঙ্গ.
রিটার্ন মান
OT_ERROR_NONE
AES অপারেশন সফলভাবে শুরু হয়েছে।
OT_ERROR_FAILED
AES অপারেশন শুরু করতে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext NULL ছিল
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 ছিল NULL

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

PSA ITS-এ সংরক্ষিত একটি কী ধ্বংস করুন।

বিস্তারিত
পরামিতি
[in] aKeyRef
মূল রেফ ধ্বংস করা
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে চাবি ধ্বংস.
OT_ERROR_FAILED
চাবি ধ্বংস করতে ব্যর্থ হয়েছে.

otPlatCryptoEcdsaExportPublicKey

otError otPlatCryptoEcdsaExportPublicKey(
  otCryptoKeyRef aKeyRef,
  otPlatCryptoEcdsaPublicKey *aPublicKey
)

পাস করা কী রেফারেন্স থেকে সংশ্লিষ্ট পাবলিক কী পান।

ক্রিপ্টো ব্যাকএন্ড লাইব্রেরির (OPENTHREAD_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
)

একটি নতুন ECDSA কী-জোড়া দিয়ে আউটপুট বাফার তৈরি এবং পপুলেট করুন।

বিস্তারিত
পরামিতি
[out] aKeyPair
উৎপন্ন কী-জোড়া সংরক্ষণ করার জন্য একটি ECDSA কী-জোড়া কাঠামোর একটি পয়েন্টার।
রিটার্ন মান
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 স্বাক্ষর গণনা করুন।

RFC 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.

otPlatCryptoEcdsaSignUsingKeyRef

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

পাস করা কী রেফারেন্স ব্যবহার করে হ্যাশ করা বার্তার জন্য ECDSA স্বাক্ষর গণনা করুন।

RFC 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
একটি ECDSA পাবলিক কী কাঠামোর একটি পয়েন্টার যেখানে স্বাক্ষর যাচাইয়ের জন্য সর্বজনীন কী সংরক্ষণ করা হয়।
[in] aHash
একটি SHA-256 হ্যাশ কাঠামোর একটি পয়েন্টার যেখানে স্বাক্ষর যাচাইকরণের জন্য হ্যাশ মান সংরক্ষণ করা হয়।
[in] aSignature
একটি ECDSA স্বাক্ষর কাঠামোর একটি পয়েন্টার যেখানে স্বাক্ষরের মান যাচাই করা হবে।
রিটার্ন মান
OT_ERROR_NONE
স্বাক্ষর সফলভাবে যাচাই করা হয়েছে.
OT_ERROR_SECURITY
স্বাক্ষরটি অবৈধ।
OT_ERROR_INVALID_ARGS
কী বা হ্যাশ অবৈধ।
OT_ERROR_NO_BUFS
স্বাক্ষর যাচাইয়ের জন্য বাফার বরাদ্দ করতে ব্যর্থ হয়েছে৷

otPlatCryptoEcdsaVerifyUsingKeyRef

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

একটি হ্যাশ করা বার্তার ECDSA স্বাক্ষর যাচাই করতে keyref ব্যবহার করুন৷

বিস্তারিত
পরামিতি
[in] aKeyRef
স্লটের মূল রেফারেন্স যেখানে কী-জোড়া সংরক্ষণ করা হয়।
[in] aHash
একটি SHA-256 হ্যাশ কাঠামোর একটি পয়েন্টার যেখানে স্বাক্ষর যাচাইকরণের জন্য হ্যাশ মান সংরক্ষণ করা হয়।
[in] aSignature
একটি ECDSA স্বাক্ষর কাঠামোর একটি পয়েন্টার যেখানে স্বাক্ষরের মান যাচাই করা হবে।
রিটার্ন মান
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 ITS-এ সংরক্ষিত একটি কী রপ্তানি করুন।

বিস্তারিত
পরামিতি
[in] aKeyRef
ক্রিপ্টো অপারেশনের জন্য ব্যবহৃত মূল রেফ।
[out] aBuffer
বাফারের দিকে নির্দেশক যেখানে কী রপ্তানি করতে হবে।
[in] aBufferLen
রপ্তানি করা কী সংরক্ষণ করতে বাফারের দৈর্ঘ্য পাস হয়েছে।
[out] aKeyLen
রপ্তানি করা কীটির দৈর্ঘ্য ফেরত দিতে পয়েন্টার।
রিটার্ন মান
OT_ERROR_NONE
aKeyRef সফলভাবে রপ্তানি করা হয়েছে।
OT_ERROR_FAILED
aKeyRef রপ্তানি করতে ব্যর্থ।
OT_ERROR_INVALID_ARGS
aBuffer ছিল NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

পাস করা কী রেফের পিএসএ আইটিএস-এ একটি সংশ্লিষ্ট কী আছে কিনা তা পরীক্ষা করুন।

বিস্তারিত
পরামিতি
[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 NULL ছিল

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 NULL ছিল

otPlatCryptoHkdfExtract

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 NULL ছিল

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

এইচএমএসি অপারেশনটি চালু করুন।

বিস্তারিত
পরামিতি
[in] aContext
HMAC অপারেশনের প্রসঙ্গ।
রিটার্ন মান
OT_ERROR_NONE
HMAC অপারেশন সফলভাবে চালু করা হয়েছে।
OT_ERROR_FAILED
শুরু না করা HMAC অপারেশনে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext NULL ছিল

otPlatCryptoHmacSha256Finish

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

HMAC অপারেশন সম্পূর্ণ করুন।

বিস্তারিত
পরামিতি
[in] aContext
HMAC অপারেশনের প্রসঙ্গ।
[out] aBuf
আউটপুট বাফার একটি পয়েন্টার.
[in] aBufLength
বাইটে aBuf এর দৈর্ঘ্য।
রিটার্ন মান
OT_ERROR_NONE
HMAC অপারেশন সফলভাবে সম্পন্ন হয়েছে।
OT_ERROR_FAILED
HMAC অপারেশন সম্পূর্ণ করতে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext বা aBuf NULL ছিল

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

HMAC অপারেশন শুরু করুন।

বিস্তারিত
পরামিতি
[in] aContext
HMAC অপারেশনের প্রসঙ্গ।
রিটার্ন মান
OT_ERROR_NONE
HMAC অপারেশন সফলভাবে শুরু হয়েছে৷
OT_ERROR_FAILED
HMAC অপারেশন শুরু করতে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext NULL ছিল

otPlatCryptoHmacSha256Start

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

HMAC অপারেশন শুরু করুন।

বিস্তারিত
পরামিতি
[in] aContext
HMAC অপারেশনের প্রসঙ্গ।
[in] aKey
HMAC অপারেশনের জন্য ব্যবহার করা মূল উপাদান।
রিটার্ন মান
OT_ERROR_NONE
HMAC অপারেশন সফলভাবে শুরু হয়েছে।
OT_ERROR_FAILED
HMAC অপারেশন শুরু করতে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext বা aKey ছিল NULL

otPlatCryptoHmacSha256আপডেট

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

নতুন ইনপুট সহ HMAC অপারেশন আপডেট করুন।

বিস্তারিত
পরামিতি
[in] aContext
HMAC অপারেশনের প্রসঙ্গ।
[in] aBuf
ইনপুট বাফার একটি পয়েন্টার.
[in] aBufLength
বাইটে aBuf এর দৈর্ঘ্য।
রিটার্ন মান
OT_ERROR_NONE
নতুন ইনপুট অপারেশন সহ সফলভাবে HMAC আপডেট করা হয়েছে৷
OT_ERROR_FAILED
HMAC অপারেশন আপডেট করতে ব্যর্থ হয়েছে৷
OT_ERROR_INVALID_ARGS
aContext বা aBuf NULL ছিল

otPlatCryptoImportKey

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

PSA ITS-এ একটি কী আমদানি করুন।

যদি aKeyPersistence-এর জন্য OT_CRYPTO_KEY_STORAGE_VOLATILE পাস করা হয় তাহলে aKeyRef হল আউটপুট, প্রাথমিক মান কোন ব্যাপার নয় এবং নতুন কী রেফ ফেরত দিতে প্ল্যাটফর্ম API অবশ্যই আপডেট করতে হবে।

বিস্তারিত
পরামিতি
[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 সক্ষম হলেই এই APIটি OT কোর দ্বারা ব্যবহৃত হয়৷

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

ক্রিপ্টো মডিউল শুরু করুন।

otPlatCryptoPbkdf2GenerateKey

otError 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) ব্যবহার করে PKCS#5 PBKDF2 সম্পাদন করুন।

বিস্তারিত
পরামিতি
[in] aPassword
কী তৈরি করার সময় ব্যবহার করার জন্য পাসওয়ার্ড।
[in] aPasswordLen
পাসওয়ার্ডের দৈর্ঘ্য।
[in] aSalt
কী তৈরি করার সময় ব্যবহার করতে লবণ।
[in] aSaltLen
লবণের দৈর্ঘ্য।
[in] aIterationCounter
পুনরাবৃত্তি গণনা।
[in] aKeyLen
বাইটে উৎপন্ন কী-এর দৈর্ঘ্য।
[out] aKey
উৎপন্ন কী-এর একটি পয়েন্টার।
রিটার্ন মান
OT_ERROR_NONE
একটি নতুন কী-জোড়া সফলভাবে তৈরি হয়েছে৷
OT_ERROR_NO_BUFS
কী জেনারেশনের জন্য বাফার বরাদ্দ করতে ব্যর্থ হয়েছে৷
OT_ERROR_NOT_CAPABLE
বৈশিষ্ট্য সমর্থিত নয়।
OT_ERROR_FAILED
কী তৈরি করতে ব্যর্থ হয়েছে৷

otPlatCryptoRandomDeinit

void otPlatCryptoRandomDeinit(
  void
)

ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত সিউডোর্যান্ডম নম্বর জেনারেটর (CSPRNG) ডিইনিশিয়ালাইজ করুন।

otPlatCryptoRandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম বাইট দিয়ে একটি প্রদত্ত বাফার পূরণ করে।

বিস্তারিত
পরামিতি
[out] aBuffer
এলোমেলো বাইট পূরণ করার জন্য একটি বাফারে একটি পয়েন্টার।
[in] aSize
বাফারের আকার (পূরণ করার জন্য বাইটের সংখ্যা)।
রিটার্ন মান
OT_ERROR_NONE
এলোমেলো মান দিয়ে সফলভাবে বাফার পূরণ করা হয়েছে।
OT_ERROR_FAILED
অপারেশন ব্যর্থ হয়েছে.

otPlatCryptoRandomInit

void otPlatCryptoRandomInit(
  void
)

ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত সিউডোর্যান্ডম নম্বর জেনারেটর (CSPRNG) শুরু করুন।

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 NULL ছিল

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 ছিল NULL

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 NULL ছিল

otPlatCryptoSha256Start

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 NULL ছিল

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 NULL ছিল

ম্যাক্রো

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 সল্ট দৈর্ঘ্য: লবণ উপসর্গ (6) + বর্ধিত প্যানিড (8) + নেটওয়ার্ক নাম (16)

OT_CRYPTO_SHA256_HASH_SIZE

 OT_CRYPTO_SHA256_HASH_SIZE 32

SHA256 হ্যাশের দৈর্ঘ্য (বাইটে)।

সম্পদ

OpenThread API রেফারেন্স বিষয়গুলি উৎস কোড থেকে উদ্ভূত হয়, যা GitHub- এ উপলব্ধ। আরও তথ্যের জন্য, বা আমাদের ডকুমেন্টেশনে অবদান রাখতে, সম্পদ দেখুন।