Google is committed to advancing racial equity for Black communities. See how.

এনএল :: তাঁত :: প্ল্যাটফর্ম :: সুরক্ষা

এই নামস্থান বুনা জন্য বুনা মধ্যে সব ইন্টারফেসগুলি অন্তর্ভুক্ত সিকিউরিটি মনিটর মেমরি ম্যানেজার।

সারসংক্ষেপ

এই নেমস্পেসের কাজগুলি নির্দিষ্ট পরিবেশের প্রয়োজন / সীমাবদ্ধতা অনুযায়ী ওয়েভ ব্যবহার করে এমন প্ল্যাটফর্মগুলির মাধ্যমে প্রয়োগ করা উচিত।

গণনা

BlockSetParamFields {
kBlockSetSizeMask = 0x07,
kBlockSetSizeShift = 0,
kBlockSetSizeValueShift = 7,
kBlockSetCountMask = 0x18,
kBlockSetCountShift = 3,
kBlockSetBufferIndexMask = 0x60,
kBlockSetBufferIndexShift = 5,
kBlockSetIsLongTermMask = 0x80,
kBlockSetIsLongTermShift = 7
}
এনাম
8-বিট এনকোডড ফর্মটিতে সেট পরামিতি ক্ষেত্রগুলির অবস্থানটি অবরোধ করুন।
BlockSetParams {
kNumberOfNetworkBuffers = 2,
kNumberOfBlockSets = 4,
kNetworkBuffer0BlockAllocationMask = 0x07,
kNetworkBuffer1BlockAllocationMask = 0x18,
kBlockSet1Size = 1,
kBlockSet1Count = 1,
kBlockSet1BufferIndex = 0,
kBlockSet1isLongTerm = 1,
kBlockSet2Size = 4,
kBlockSet2Count = 1,
kBlockSet2BufferIndex = 0,
kBlockSet2isLongTerm = 1,
kBlockSet3Size = 4,
kBlockSet3Count = 1,
kBlockSet3BufferIndex = 0,
kBlockSet3isLongTerm = 0,
kBlockSet4Size = 5,
kBlockSet4Count = 2,
kBlockSet4BufferIndex = 1,
kBlockSet4isLongTerm = 0,
kTotalMemorySize = (kBlockSet1Size * kBlockSet1Count + kBlockSet2Size * kBlockSet2Count + kBlockSet3Size * kBlockSet3Count + kBlockSet4Size * kBlockSet4Count) << kBlockSetSizeValueShift,
kMaxBlockSize = 600,
kMinBufferSize = 1240
}
এনাম
ব্লক সেট পরামিতিগুলি সংজ্ঞায়িত করে।

টাইপডেফস

BlockMark_t টাইপডেফ
uint8_t
বর্তমানে কোন ব্লকটি বরাদ্দ / অবিকৃত নয় তা চিহ্নিত করতে ব্যবহৃত টাইপ।
BlockSetParams_t টাইপডেফ
uint8_t
এই ধরণের ব্লক সেট তথ্য এনকোড করতে ব্যবহৃত হয়।

পরিবর্তনশীল

sBlockSetParams = { ((kBlockSet1Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet1Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet1BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet1isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet2Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet2Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet2BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet2isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet3Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet3Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet3BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet3isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet4Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet4Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet4BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet4isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), }[kNumberOfBlockSets]
এনকোডড ব্লক পরামিতি সেট করে।
sBufferAllocationMask = { kNetworkBuffer0BlockAllocationMask, kNetworkBuffer1BlockAllocationMask, }[kNumberOfNetworkBuffers]
বাফার ব্লক মুখোশগুলির সেট।
sMemBlocksAllocated = 0
কোন ব্লকটি বরাদ্দ / অপরিবর্তিত রয়েছে তা নির্দেশ করে।
sMemBufs = { NULL }[kNumberOfNetworkBuffers]
void *
মেমরি বাফারগুলিতে পয়েন্টারগুলি NUL এ শুরু হয়েছিল।
sNetworkBuffersUsed = true
bool
সরল অলোকেটর দ্বারা নেটওয়ার্ক বাফারগুলি (সত্য) বা না (মিথ্যা) কিনা তা নির্দেশ করে এমন একটি বুলিয়ান।

কার্যাদি

DecodeBlockSetParams ( BlockSetParams_t blockSetParams, uint16_t & blockSize, uint8_t & blockCount, uint8_t & blockBufferIndex, bool & blockIsLongTerm)
void
GetSecureRandomData (uint8_t *buf, uint16_t len)
এই ফাংশনটিকে এলোমেলো স্তর দ্বারা এলোমেলো ডেটা উত্পন্ন করার জন্য ডাকা হয়।
InitSecureRandomDataSource ( nl::Weave::Crypto::EntropyFunct entropyFunct, uint16_t entropyLen, const uint8_t *personalizationData, uint16_t perDataLen)
এই ফাংশনটি এলোমেলো স্তর দ্বারা এলোমেলো ডেটা উত্স সূচনা করার জন্য ডাকা হয়।
MemoryAlloc (size_t size)
void *
এই ফাংশনটি ওয়েভ স্তর দ্বারা "আকার" বাইটের মেমরির একটি ব্লক বরাদ্দ করতে ডাকা হয়।
MemoryAlloc (size_t size, bool isLongTermAlloc)
void *
এই ফাংশনটি ওয়েভ স্তর দ্বারা "আকার" বাইটের মেমরির একটি ব্লক বরাদ্দ করে।
MemoryFree (void *p)
void
এই ফাংশনটি মেমরিএলোক () ফাংশন দ্বারা বরাদ্দকৃত একটি মেমরি ব্লক প্রকাশের জন্য ওয়েভ স্তর দ্বারা ডাকা হয়।
MemoryInit (void *buf, size_t bufSize)
এই ফাংশনটি আরম্ভ মেমরি এবং বুনা যথাযথ কার্যকারিতার জন্য প্রয়োজন সম্পদ বুনা স্তর দ্বারা বলা হয় নিরাপত্তা ম্যানেজার মেমরির বরাদ্দকরণ।
MemoryShutdown (void)
void
এই ফাংশনটি রিলিজ সব সম্পদের দ্বারা বরাদ্দ ছিল বুনা স্তর দ্বারা বলা হয় MemoryInit () ফাংশন।
OnTimeConsumingCryptoDone (void)
void
একটি সময় গ্রহণকারী ক্রিপ্টোগ্রাফিক অপারেশন সবেমাত্র শেষ হয়ে গেলে এই ফাংশনটি অ্যাপ্লিকেশনটি অবহিত করার জন্য ডাকা হয়।
OnTimeConsumingCryptoStart (void)
void
একটি সময় গ্রহণকারী ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপ শুরু হওয়ার সময় এই ফাংশনটি অ্যাপ্লিকেশনটি অবহিত করার জন্য ডাকা হয়।

ক্লাস

nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: AES128BlockCipher
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: AES128BlockCipherDec
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: AES128BlockCipherEnc
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: AES256BlockCipher
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: AES256BlockCipherDec
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: AES256BlockCipherEnc
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: SHA1 এ
nl এর :: বুনা :: প্ল্যাটফর্ম :: নিরাপত্তা :: ভিন্ন ধরনের SHA256

গণনা

ব্লকসেটপারামফিল্ডস

 BlockSetParamFields

8-বিট এনকোডড ফর্মটিতে সেট পরামিতি ক্ষেত্রগুলির অবস্থানটি অবরোধ করুন।

সম্পত্তি
kBlockSetBufferIndexMask

বাফার সূচক ক্ষেত্রের মুখোশ।

kBlockSetBufferIndexShift

বাফার সূচক ফিল্ড শিফট।

kBlockSetCountMask

ক্ষেত্রের মুখোশ গণনা করুন।

kBlockSetCountShift

ক্ষেত্রের শিফ্ট গণনা করুন।

kBlockSetIsLongTermMask

ক্ষেত্রের মুখোশটি টাইপ করুন।

kBlockSetIsLongTermShift

ফিল্ড শিফট টাইপ করুন।

kBlockSetSizeMask

আকার ক্ষেত্রের মুখোশ।

kBlockSetSizeShift

সাইজ ফিল্ড শিফট।

kBlockSetSizeValueShift

আকারের ক্ষেত্রের ডিকোডিং শিফ্ট (128 দিয়ে গুণ করুন)।

ব্লকসেটপ্যারামস

 BlockSetParams

ব্লক সেট পরামিতিগুলি সংজ্ঞায়িত করে।

সম্পত্তি
kBlockSet1BufferIndex

সেট # 1 বাফার সূচক 0 হয়।

kBlockSet1Count

সেট # 1 ব্লক গণনা 1।

kBlockSet1Size

# 1 আকার সেট করুন 128 বাইট।

kBlockSet1isLongTerm

সেট # 1 টাইপ দীর্ঘমেয়াদী।

kBlockSet2BufferIndex

সেট # 2 বাফার সূচক 0 হয়।

kBlockSet2Count

সেট # 2 ব্লক গণনা 1।

kBlockSet2Size

# 2 আকার সেট করুন 512 বাইট।

kBlockSet2isLongTerm

সেট # 2 টাইপ দীর্ঘমেয়াদী।

kBlockSet3BufferIndex

সেট # 3 বাফার সূচক 0 হয়।

kBlockSet3Count

সেট # 3 ব্লক গণনা 1।

kBlockSet3Size

সেট # 3 আকার 512 বাইট।

kBlockSet3isLongTerm

সেট # 3 টাইপ স্বল্প মেয়াদী।

kBlockSet4BufferIndex

সেট # 4 বাফার সূচকটি 1।

kBlockSet4Count

সেট # 4 ব্লক গণনা 2।

kBlockSet4Size

সেট # 4 আকার 640 বাইট।

kBlockSet4isLongTerm

সেট # 4 টাইপ স্বল্প মেয়াদী।

kMaxBlockSize

সিম্পল অলোকেটর দ্বারা সমর্থিত সর্বাধিক ব্লকের আকার।

kMinBufferSize

সাধারণ বরাদ্দকারী ব্যবহারের ক্ষেত্রে সমর্থন করতে সর্বনিম্ন নেটওয়ার্ক বাফার আকার প্রয়োজন।

এই প্যারামিটারটি নেটওয়ার্ক বাফার # 1 এ বরাদ্দ করা দুটি মেমরি ব্লক (640 + 600) আকারের থেকে প্রাপ্ত।

kNetworkBuffer0BlockAllocationMask

এই মাস্কটি নেটওয়ার্ক বাফার # 0 থেকে বরাদ্দকৃত সমস্ত মেমরি ব্লক সনাক্ত করে।

kNetworkBuffer1BlockAllocationMask

এই মাস্কটি নেটওয়ার্ক বাফার # 1 থেকে বরাদ্দকৃত সমস্ত মেমরি ব্লক সনাক্ত করে।

kNumberOfBlockSets

সাধারণ বরাদ্দকারী দ্বারা ব্যবহৃত ব্লক সেটগুলির সংখ্যা।

kNumberOfNetworkBuffers

সাধারণ বরাদ্দকারী দ্বারা ব্যবহৃত নেটওয়ার্ক বাফারের সংখ্যা।

kTotalMemorySize

সরল বরাদ্দকারী দ্বারা ব্যবহৃত মোট স্মৃতি।

টাইপডেফস

ব্লকমার্ক_টি

uint8_t BlockMark_t

বর্তমানে কোন ব্লকটি বরাদ্দ / অবিকৃত নয় তা চিহ্নিত করতে ব্যবহৃত টাইপ।

uint8_t - মোট 8 মেমরি ব্লক মোট uint16_t পর্যন্ত সমর্থন করে - মোট 16 মেমরি ব্লক uint32_t পর্যন্ত সমর্থন করে - মোট 32 মেমরি ব্লক পর্যন্ত সমর্থন করে

ব্লকসেটপ্যারাম_টি

uint8_t BlockSetParams_t

এই ধরণের ব্লক সেট তথ্য এনকোড করতে ব্যবহৃত হয়।

একটি ব্লক সেট হ'ল মেমরি খণ্ডগুলির একটি গ্রুপ যাগুলির একই বৈশিষ্ট্য রয়েছে (আকার, প্রকার এবং একই বাফারের সাথে সম্পর্কিত)। নীচের চিত্রটি কীভাবে 8-বিট ফর্ম্যাটে ব্লক সেট তথ্য এনকোডযুক্ত উপস্থাপন করেছে:

দীর্ঘমেয়াদী ব্লক সূচক ব্লকের সংখ্যা ব্লক আকার
[]] [:: ৫] [৪: ৩] [২: ০]
[2: 0] - একটি সেটে মেমরির ব্লকের আকার। আকারের মানটি 128-বাইট গ্রানুলারিটির সাথে এনকোড করা হয়েছে।
[২: ০] ডিকোডিং
000 0 বাইট
001 128 বাইট
010 256 বাইট
... -
111 896 বাইট
[4: 3] - একটি সেটে ব্লকের সংখ্যা।
[৪: ৩] ডিকোডিং
00 4 টি ব্লক
01 1 ব্লক
10 2 টি ব্লক
11 3 ব্লক
[:: ৫] - নেটওয়ার্ক বাফার সূচক যেখানে মেমরি ব্লকগুলি থাকে। নোট করুন যে যখন ডেডিকেটেড বাফার ব্যবহার করা হয় তখন সমস্ত মেমরি ব্লক ডেডিকেটেড বাফার থেকে বরাদ্দ করা হয় এবং এই সূচক পরামিতি উপেক্ষা করা হয়।
[:: ৫] ডিকোডিং
00 নেটওয়ার্ক বাফার # 0
... -
11 নেটওয়ার্ক বাফার # 3
[]] - ব্লকগুলি দীর্ঘ / স্বল্পমেয়াদী স্টোরেজের জন্য কিনা তা নির্দিষ্ট করে।
[]] ডিকোডিং
0 স্বল্পমেয়াদী মেমরি ব্লক
দীর্ঘমেয়াদী মেমরি ব্লক

পরিবর্তনশীল

sBlockSetParams

const BlockSetParams_t sBlockSetParams[kNumberOfBlockSets] = {
    
    ((kBlockSet1Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet1Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet1BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet1isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),
    
    ((kBlockSet2Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet2Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet2BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet2isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),
    
    ((kBlockSet3Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet3Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet3BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet3isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),
    
    ((kBlockSet4Size << kBlockSetSizeShift) & kBlockSetSizeMask) | 
    ((kBlockSet4Count << kBlockSetCountShift) & kBlockSetCountMask) | 
    ((kBlockSet4BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | 
    ((kBlockSet4isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask),







}

এনকোডড ব্লক পরামিতি সেট করে।

sBufferAlocationMask

const BlockMark_t sBufferAllocationMask[kNumberOfNetworkBuffers] = {
                                                   kNetworkBuffer0BlockAllocationMask,
                                                   kNetworkBuffer1BlockAllocationMask,




                                                                                       }

বাফার ব্লক মুখোশগুলির সেট।

বাফারের সমস্ত ব্লক এবং তালিকাভুক্ত না হলে সনাক্ত করে এবং তারপরে বাফারকে মুক্তি দেওয়া যেতে পারে।

sMemBlocksAlocated

BlockMark_t sMemBlocksAllocated = 0

কোন ব্লকটি বরাদ্দ / অপরিবর্তিত রয়েছে তা নির্দেশ করে।

0 থেকে শুরু করা - এর অর্থ সমস্ত মেমরি ব্লক এবং অননুমোদিত।

sMemBufs

void * sMemBufs[kNumberOfNetworkBuffers] = { NULL }

মেমরি বাফারগুলিতে পয়েন্টারগুলি NUL এ শুরু হয়েছিল।

নেটওয়ার্ক বাফারগুলি যখন এসএমবেফগুলি ব্যবহার করা হয় তখন [প্যাককেট বাফার অবজেক্টগুলিতে নির্দেশ করুন। যখন ডেডিকেটেড বাফার ব্যবহার করা হয় তখন sMemBufs [0] সেই বাফার এবং অন্যান্য sMemBufs [] পয়েন্টারগুলিকে অগ্রাহ্য করা হয়।

sNetworkBuffersUsed

bool sNetworkBuffersUsed = true

সরল অলোকেটর দ্বারা নেটওয়ার্ক বাফারগুলি (সত্য) বা না (মিথ্যা) কিনা তা নির্দেশ করে এমন একটি বুলিয়ান।

যখন মিথ্যা - ডেডিকেটেড বাফার সাথে উপলব্ধ করা MemoryInit () ফাংশন ব্যবহার করা হয়।

কার্যাদি

ডিকোডব্লকসেটপ্যারামস

void DecodeBlockSetParams(
  BlockSetParams_t blockSetParams,
  uint16_t & blockSize,
  uint8_t & blockCount,
  uint8_t & blockBufferIndex,
  bool & blockIsLongTerm
)

GetSecureRandomData D

WEAVE_ERROR GetSecureRandomData(
  uint8_t *buf,
  uint16_t len
)

এই ফাংশনটিকে এলোমেলো স্তর দ্বারা এলোমেলো ডেটা উত্পন্ন করার জন্য ডাকা হয়।

বিশদ
পরামিতি
[in] buf
মেমোরি বাফারের পয়েন্টার, যেখানে অনুরোধ করা এলোমেলো ডেটা সংরক্ষণ করা উচিত।
[in] len
বাইটগুলিতে অনুরোধ করা এলোমেলো ডেটা আকার নির্দিষ্ট করে।
রিটার্ন মান
WEAVE_ERROR_DRBG_ENTROPY_SOURCE_FAILED
যদি এন্ট্রপি উত্সটি এলোমেলো ডেটা জেনারেটরের দ্বারা অনুরোধ করা এনট্রপি তৈরি করতে ব্যর্থ হয়।
WEAVE_ERROR_RANDOM_DATA_UNAVAILABLE
যদি এলোমেলো ডাটা উত্স এলোমেলো ডেটা উত্পন্ন করতে ব্যর্থ হয়।
WEAVE_ERROR_INCORRECT_STATE
যদি এলোমেলো ডেটা উত্সটি একটি ভুল অবস্থায় পাওয়া যায়।
WEAVE_NO_ERROR
সাফল্যের উপর।

ইনিশিকিউররেডম ডেটা সোর্স

WEAVE_ERROR InitSecureRandomDataSource(
  nl::Weave::Crypto::EntropyFunct entropyFunct,
  uint16_t entropyLen,
  const uint8_t *personalizationData,
  uint16_t perDataLen
)

এই ফাংশনটি এলোমেলো স্তর দ্বারা এলোমেলো ডেটা উত্স সূচনা করার জন্য ডাকা হয়।

এই ফাংশনটি প্ল্যাটফর্ম নির্দিষ্ট এবং এটি খালি হতে পারে যখন এলোমেলো ডেটা উত্সের কোনও আরম্ভের প্রয়োজন হয় না।

বিশদ
পরামিতি
[in] entropyFunct
একটি ক্রিয়াকলাপের নির্দেশক যা এলোমেলো ডেটা জেনারেটরের এনট্রপি তৈরি করে। যখন অ্যালগরিদ দ্বারা এন্ট্রপি ইনপুট প্রয়োজন হয় না তখন এই ইনপুটটি নুল হতে পারে, যা র্যান্ডম ডেটা জেনারেটরের ওপেনএসএসএল সংস্করণ ব্যবহার করা হয়।
[in] entropyLen
এনট্রপি আকারটি বাইটগুলিতে নির্দিষ্ট করে যা এটি ব্যবহৃত হয় এন্ট্রপি ফাংশন দ্বারা উত্পন্ন করা উচিত।
[in] personalizationData
ব্যক্তিগতকরণের ডেটা ইনপুট সঞ্চয় করে এমন মেমোরি বাফারের পয়েন্টার। এই ডেটা ইনপুটটি ডিভাইস নির্দিষ্ট হওয়া উচিত এবং এটি এলোমেলো ডেটার পরিসংখ্যানগত বৈশিষ্ট্যগুলি উন্নত করতে সহায়তা করে।
[in] perDataLen
বাইটগুলিতে ব্যক্তিগতকরণের ডেটা আকার নির্দিষ্ট করে।
রিটার্ন মান
WEAVE_ERROR_INVALID_ARGUMENT
যদি এই ফাংশনে একটি অবৈধ যুক্তি পাস করা হয়।
WEAVE_NO_ERROR
সাফল্যের উপর।

মেমরিআলোক

void * MemoryAlloc(
  size_t size
)

এই ফাংশনটি ওয়েভ স্তর দ্বারা "আকার" বাইটের মেমরির একটি ব্লক বরাদ্দ করে।

এই ফাংশনটি মেমরিআলোক (আকার, মিথ্যা) এর সমান।

বিশদ
পরামিতি
[in] size
বাইটগুলিতে অনুরোধ করা মেমরির আকার নির্দিষ্ট করে।
রিটার্ন মান
Pointer
সাফল্যের ক্ষেত্রে একটি মেমরি ব্লক।
NULL-pointer
যদি মেমরি বরাদ্দ ব্যর্থ হয়।

মেমরিআলোক

void * MemoryAlloc(
  size_t size,
  bool isLongTermAlloc
)

এই ফাংশনটি ওয়েভ স্তর দ্বারা "আকার" বাইটের মেমরির একটি ব্লক বরাদ্দ করতে ডাকা হয়।

বিশদ
পরামিতি
[in] size
বাইটগুলিতে অনুরোধ করা মেমরির আকার নির্দিষ্ট করে।
[in] isLongTermAlloc
অনুরোধকৃত মেমরি ব্লকটি দীর্ঘমেয়াদী ব্যবহারের জন্য (সত্য) আছে কি না (মিথ্যা) তা নির্দেশ করে এমন একটি বুলিয়ান। একটি দীর্ঘমেয়াদী বরাদ্দ মেমরি যা নিরাপদ অধিবেশন / হ্যান্ডশেক সম্পূর্ণ না হওয়া পর্যন্ত বরাদ্দ থাকা উচিত। দীর্ঘমেয়াদী বরাদ্দের উদাহরণগুলির মধ্যে CASE / PASE অবজেক্ট এবং তাদের প্রসঙ্গ ডেটাগুলির জন্য বরাদ্দকৃত ব্লক অন্তর্ভুক্ত রয়েছে। একটি স্বল্পমেয়াদী বরাদ্দ নির্দিষ্ট ক্রিয়াকলাপ সম্পাদনের জন্য প্রয়োজনীয় একটি মেমরি এবং এর পরে অবিলম্বে প্রকাশ করা যেতে পারে। এই ইনপুটটি একটি মেমরি সীমাবদ্ধ সিস্টেমে মেমরির ব্যবহারটি অনুকূলকরণ করতে সহায়তা করে। এই প্যারামিটার ব্যবহার স্বেচ্ছাসেবী এবং ফাংশন প্রয়োগকারী উপর নির্ভর করে। উদাহরণস্বরূপ, যখন সি স্ট্যান্ডার্ড লাইব্রেরি ম্যালোক () ব্যবহৃত হয় তখন এই প্যারামিটারটিকে উপেক্ষা করা হয়।
রিটার্ন মান
Pointer
সাফল্যের ক্ষেত্রে একটি মেমরি ব্লক।
NULL-pointer
যদি মেমরি বরাদ্দ ব্যর্থ হয়।

মেমরিফ্রি

void MemoryFree(
  void *p
)

এই ফাংশনটি মেমরিএলোক () ফাংশন দ্বারা বরাদ্দকৃত একটি মেমরি ব্লক প্রকাশের জন্য ওয়েভ স্তর দ্বারা ডাকা হয়।

বিশদ
পরামিতি
[in] p
মেমরি ব্লকের পয়েন্টার যা প্রকাশ করা উচিত।

মেমরিআইনিট

WEAVE_ERROR MemoryInit(
  void *buf,
  size_t bufSize
)

এই ফাংশনটি আরম্ভ মেমরি এবং বুনা যথাযথ কার্যকারিতার জন্য প্রয়োজন সম্পদ বুনা স্তর দ্বারা বলা হয় নিরাপত্তা ম্যানেজার মেমরির বরাদ্দকরণ।

এই ফাংশনটি প্ল্যাটফর্ম নির্দিষ্ট এবং সম্ভবত কিছু ক্ষেত্রে খালি থাকতে পারে। উদাহরণস্বরূপ, যখন সি স্ট্যান্ডার্ড লাইব্রেরি ম্যালোক () এবং ফ্রি () ফাংশন মেমরি বরাদ্দের জন্য ব্যবহৃত হয় তখন এই ফাংশনটি কিছুই করছে না।

বিশদ
পরামিতি
[in] buf
ডেডিকেটেড মেমরির বাফার, যা বুনা জন্য একটি মেমরি পুল হিসাবে ব্যবহার করা উচিত একটি পয়েন্টার সিকিউরিটি ম্যানেজার মেমরি অ্যালোকেশন। এই ইনপুটটি alচ্ছিক (এনএলএল-এর কাছে ডিফল্ট) এবং যদি ডেডিকেটেড মেমরি বাফার ব্যবহার না করা হয় তবে তা ব্যবহার করা উচিত নয়।
[in] bufSize
একটি উত্সর্গীকৃত মেমরি বাফারের আকার। এই ইনপুটটি alচ্ছিক (0 টিতে ডিফল্ট) এবং যদি ডেডিকেটেড মেমরি বাফার ব্যবহার না করা হয় তবে তা ব্যবহার করা উচিত নয়। ডেডিকেটেড মেমরির বাফার ফাংশন চেক ব্যবহার করা হয় এবং একটি ত্রুটি উত্পন্ন করা হলে যদি বাফারের আকার বড় যথেষ্ট বুনা সমর্থন করার জন্য নয় সিকিউরিটি ম্যানেজার ব্যবহারের ক্ষেত্রে।
রিটার্ন মান
WEAVE_ERROR_BUFFER_TOO_SMALL
ডেডিকেটেড ইনপুট বাফারের আকার বুনা সমর্থন করার জন্য যথেষ্ট না হয় সিকিউরিটি ম্যানেজার ব্যবহারের ক্ষেত্রে।
WEAVE_NO_ERROR
সাফল্যের উপর।
other
প্ল্যাটফর্ম-নির্দিষ্ট মেমরি শুরুর ফাংশন দ্বারা উত্পন্ন একটি ত্রুটি।

স্মৃতিশক্তি

void MemoryShutdown(
  void
)

এই ফাংশনটি রিলিজ সব সম্পদের দ্বারা বরাদ্দ ছিল বুনা স্তর দ্বারা বলা হয় MemoryInit () ফাংশন।

যদি সংস্থানগুলি ছেড়ে দেওয়ার প্রয়োজন না হয় তবে এই ফাংশনটি খালি কল হতে পারে। উদাহরণস্বরূপ, সি স্ট্যান্ডার্ড লাইব্রেরি ম্যালোক () এবং ফ্রি () ফাংশন মেমরি বরাদ্দের জন্য ব্যবহৃত হয় এমন ক্ষেত্রে এটি ঘটে।

অনটাইমকনসুমিংক্রিপ্টোডোন

void OnTimeConsumingCryptoDone(
  void
)

একটি সময় গ্রহণকারী ক্রিপ্টোগ্রাফিক অপারেশন সবেমাত্র শেষ হয়ে গেলে এই ফাংশনটি অ্যাপ্লিকেশনটি অবহিত করার জন্য ডাকা হয়।

OnTimeConsumingCryptoStart

void OnTimeConsumingCryptoStart(
  void
)

একটি সময় গ্রহণকারী ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপ শুরু হওয়ার সময় এই ফাংশনটি অ্যাপ্লিকেশনটি অবহিত করার জন্য ডাকা হয়।