এই মডিউলটি ক্রিপ্টোর জন্য প্ল্যাটফর্ম বিমূর্ততা অন্তর্ভুক্ত করে।
সারসংক্ষেপ গণনা 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 মূল প্রকারগুলি সংজ্ঞায়িত করে।
ফাংশন 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 অপারেশন আপডেট করুন।
গণনা বেনামী 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 otCryptoKeyRef uint32_t otCryptoKeyRef এই ডেটাটাইপ মূল রেফারেন্স প্রতিনিধিত্ব করে.
otPlatCryptoSha256Hash struct otPlatCryptoSha256Hash otPlatCryptoSha256Hash একটি SHA-256 হ্যাশ প্রতিনিধিত্ব করে।
ভেরিয়েবল ফাংশন 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 অপারেশন শুরু করুন।
দ্রষ্টব্য: প্ল্যাটফর্ম ড্রাইভার প্রসঙ্গটিকে সঠিক বস্তুর দিকে নির্দেশ করবে যেমন psa_key_id বা mbedtls_aes_context_t।
বিস্তারিত পরামিতি [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-এ সংরক্ষিত একটি কী ধ্বংস করুন।
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [in] aKeyRef মূল রেফ ধ্বংস করা
রিটার্ন মান OT_ERROR_NONE সফলভাবে চাবি ধ্বংস.
OT_ERROR_FAILED চাবি ধ্বংস করতে ব্যর্থ হয়েছে.
otPlatCryptoEcdsaExportPublicKey otError otPlatCryptoEcdsaExportPublicKey(
otCryptoKeyRef aKeyRef,
otPlatCryptoEcdsaPublicKey *aPublicKey
) পাস করা কী রেফারেন্স থেকে সংশ্লিষ্ট পাবলিক কী পান।
ক্রিপ্টো ব্যাকএন্ড লাইব্রেরির (OPENTHREAD_CONFIG_CRYPTO_LIB) উপর নির্ভর করে সর্বজনীন কী আলাদাভাবে সংরক্ষণ করা হয়।
এই এপিআই অবশ্যই একটি আনকমপ্রেসড কার্ভ পয়েন্টের বাইট সিকোয়েন্স উপস্থাপনা হিসাবে সর্বজনীন কী ফেরত নিশ্চিত করতে হবে (RFC 6605 - সেকেন্ড 4)
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [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 কী-জোড়া তৈরি এবং আমদানি করুন।
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [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 থেকে ডিটারমিনিস্টিক ডিজিটাল সিগনেচার জেনারেশন পদ্ধতি ব্যবহার করে।
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [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 ব্যবহার করুন৷
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [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-এ সংরক্ষিত একটি কী রপ্তানি করুন।
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [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
) পাস করা কী রেফের পিএসএ আইটিএস-এ একটি সংশ্লিষ্ট কী আছে কিনা তা পরীক্ষা করুন।
দ্রষ্টব্য: OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE সক্ষম থাকা অবস্থায় এই API শুধুমাত্র OT কোর দ্বারা ব্যবহৃত হয়৷
বিস্তারিত পরামিতি [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 ছিল
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 প্রসঙ্গ শুরু করুন।
দ্রষ্টব্য: প্ল্যাটফর্ম ড্রাইভার প্রসঙ্গটি সঠিক বস্তুর দিকে নির্দেশ করবে যেমন psa_key_derivation_operation_t বা HmacSha256::Hash
বিস্তারিত পরামিতি [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 অপারেশন শুরু করুন।
দ্রষ্টব্য: প্ল্যাটফর্ম ড্রাইভার প্রসঙ্গটি সঠিক বস্তুর দিকে নির্দেশ করবে যেমন psa_mac_operation_t বা mbedtls_md_context_t।
বিস্তারিত পরামিতি [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_PERSISTENT পাস করা হয় তাহলে aKeyRef ইনপুট হয় এবং প্ল্যাটফর্মের দেওয়া aKeyRef ব্যবহার করা উচিত এবং এটি পরিবর্তন করা উচিত নয়। যদি 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 অপারেশন শুরু করুন।
দ্রষ্টব্য: প্ল্যাটফর্ম ড্রাইভার প্রসঙ্গটিকে সঠিক বস্তুর দিকে নির্দেশ করবে যেমন psa_hash_operation_t বা mbedtls_sha256_context।
বিস্তারিত পরামিতি [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- এ উপলব্ধ। আরও তথ্যের জন্য, বা আমাদের ডকুমেন্টেশনে অবদান রাখতে, সম্পদ দেখুন।