nl:: বুনা:: প্ল্যাটফর্ম:: নিরাপত্তা

এই নেমস্পেসটি উইভ সিকিউরিটি মনিটর মেমরি ম্যানেজারের জন্য উইভ-এর মধ্যে সমস্ত ইন্টারফেস অন্তর্ভুক্ত করে।

সারসংক্ষেপ

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

গণনা

BlockSetParamFields {
kBlockSetSizeMask = 0x07,
kBlockSetSizeShift = 0,
kBlockSetSizeValueShift = 7,
kBlockSetCountMask = 0x18,
kBlockSetCountShift = 3,
kBlockSetBufferIndexMask = 0x60,
kBlockSetBufferIndexShift = 5,
kBlockSetIsLongTermMask = 0x80,
kBlockSetIsLongTermShift = 7
}
enum
একটি 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
}
enum
ব্লক সেট প্যারামিটার সংজ্ঞায়িত করে।

Typedefs

BlockMark_t typedef
uint8_t
বর্তমানে কোন ব্লকটি বরাদ্দ/অবরাদ্দ করা হয়েছে তা চিহ্নিত করতে ব্যবহৃত প্রকার।
BlockSetParams_t typedef
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 *
মেমরি বাফারের পয়েন্টার NULL তে আরম্ভ করা হয়েছে।
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
MemeoryAlloc() ফাংশন দ্বারা বরাদ্দ করা একটি মেমরি ব্লক প্রকাশ করার জন্য এই ফাংশনটিকে Weave লেয়ার দ্বারা ডাকা হয়।
MemoryInit (void *buf, size_t bufSize)
ওয়েভ সিকিউরিটি ম্যানেজার মেমরি বরাদ্দকারীর সঠিক কার্যকারিতার জন্য প্রয়োজনীয় মেমরি এবং সংস্থানগুলি শুরু করার জন্য এই ফাংশনটিকে ওয়েভ লেয়ার দ্বারা ডাকা হয়।
MemoryShutdown (void)
void
MemoryInit() ফাংশন দ্বারা বরাদ্দ করা সমস্ত সংস্থান প্রকাশ করার জন্য এই ফাংশনটিকে Weave স্তর দ্বারা বলা হয়।
OnTimeConsumingCryptoDone (void)
void
একটি সময়সাপেক্ষ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপ সবেমাত্র শেষ হলে অ্যাপ্লিকেশনটিকে অবহিত করার জন্য এই ফাংশনটিকে বলা হয়৷
OnTimeConsumingCryptoStart (void)
void
একটি সময়সাপেক্ষ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপ যখন শুরু হতে চলেছে তখন অ্যাপ্লিকেশনটিকে অবহিত করার জন্য এই ফাংশনটিকে বলা হয়৷

ক্লাস

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

গণনা

BlockSetParamFields

 BlockSetParamFields

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

বৈশিষ্ট্য
kBlockSetBufferIndexMask

বাফার ইনডেক্স ফিল্ড মাস্ক।

kBlockSetBufferIndexShift

বাফার সূচক ক্ষেত্র স্থানান্তর.

kBlockSetCountMask

ক্ষেত্র মাস্ক গণনা.

kBlockSetCountShift

ক্ষেত্র স্থানান্তর গণনা.

kBlockSetIsLongTermMask

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

kBlockSetIsLongTermShift

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

kBlockSetSizeMask

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

kBlockSetSizeShift

আকার ক্ষেত্রের স্থানান্তর।

kBlockSetSizeValueShift

সাইজ ফিল্ড ডিকোডিং শিফট (128 দ্বারা গুণ করুন)।

BlockSetParams

 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

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

Typedefs

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

uint8_t BlockMark_t

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

uint8_t - মোট 8টি মেমরি ব্লক সমর্থন করে

BlockSetParams_t

uint8_t BlockSetParams_t

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

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

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

ভেরিয়েবল

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),







}

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

sBufferAllocationMask

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




                                                                                       }

বাফার ব্লক মাস্কের সেট।

বাফারের সমস্ত ব্লক এবং বরাদ্দ না থাকলে সনাক্ত করে এবং তারপরে বাফারটি রিলিজ করা যেতে পারে।

sMemBlocks বরাদ্দ

BlockMark_t sMemBlocksAllocated = 0

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

0-তে সূচনা করা হয়েছে - এর অর্থ হল সমস্ত মেমরি ব্লক এবং অনির্বাণ।

sMemBufs

void * sMemBufs[kNumberOfNetworkBuffers] = { NULL }

মেমরি বাফারের পয়েন্টার NULL তে আরম্ভ করা হয়েছে।

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

sNetworkBuffers ব্যবহার করা হয়েছে

bool sNetworkBuffersUsed = true

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

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

ফাংশন

DecodeBlockSetParams

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

GetSecureRandomData

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
সাফল্যের উপর।

InitSecureRandomDataSource

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

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

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

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

MemoryAlloc

void * MemoryAlloc(
  size_t size
)

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

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

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

MemoryAlloc

void * MemoryAlloc(
  size_t size,
  bool isLongTermAlloc
)

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

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

মেমরি ফ্রি

void MemoryFree(
  void *p
)

MemeoryAlloc() ফাংশন দ্বারা বরাদ্দ করা একটি মেমরি ব্লক প্রকাশ করার জন্য এই ফাংশনটিকে Weave লেয়ার দ্বারা ডাকা হয়।

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

MemoryInit

WEAVE_ERROR MemoryInit(
  void *buf,
  size_t bufSize
)

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

এই ফাংশনটি প্ল্যাটফর্ম নির্দিষ্ট এবং কিছু ক্ষেত্রে খালি হতে পারে। উদাহরণস্বরূপ, যখন C Standard Library malloc() এবং free() ফাংশন মেমরি বরাদ্দকরণের জন্য ব্যবহার করা হয় তখন এই ফাংশন কিছুই করে না।

বিস্তারিত
পরামিতি
[in] buf
একটি ডেডিকেটেড মেমরি বাফারের একটি পয়েন্টার, যা ওয়েভ সিকিউরিটি ম্যানেজার মেমরি বরাদ্দের জন্য একটি মেমরি পুল হিসাবে ব্যবহার করা উচিত। এই ইনপুটটি ঐচ্ছিক (ডিফল্ট থেকে NULL) এবং একটি ডেডিকেটেড মেমরি বাফার ব্যবহার করা না হলে ব্যবহার করা উচিত নয়।
[in] bufSize
একটি ডেডিকেটেড মেমরি বাফারের আকার। এই ইনপুটটি ঐচ্ছিক (0 থেকে ডিফল্ট) এবং ডেডিকেটেড মেমরি বাফার ব্যবহার করা না হলে ব্যবহার করা উচিত নয়। যখন একটি ডেডিকেটেড মেমরি বাফার ব্যবহার করা হয় তখন ফাংশন চেক করে এবং একটি ত্রুটি তৈরি করে যদি বাফারের আকার ওয়েভ সিকিউরিটি ম্যানেজার ব্যবহারের ক্ষেত্রে সমর্থন করার জন্য যথেষ্ট বড় না হয়।
রিটার্ন মান
WEAVE_ERROR_BUFFER_TOO_SMALL
ডেডিকেটেড ইনপুট বাফার সাইজ ওয়েভ সিকিউরিটি ম্যানেজার ব্যবহারের ক্ষেত্রে সমর্থন করার জন্য যথেষ্ট না হলে।
WEAVE_NO_ERROR
সাফল্যের উপর।
other
প্ল্যাটফর্ম-নির্দিষ্ট মেমরি ইনিশিয়ালাইজেশন ফাংশন দ্বারা উত্পন্ন একটি ত্রুটি৷

মেমরি শাটডাউন

void MemoryShutdown(
  void
)

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

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

OnTimeConsumingCryptoDone

void OnTimeConsumingCryptoDone(
  void
)

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

OnTimeConsumingCryptoStart

void OnTimeConsumingCryptoStart(
  void
)

একটি সময়সাপেক্ষ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপ যখন শুরু হতে চলেছে তখন অ্যাপ্লিকেশনটিকে অবহিত করার জন্য এই ফাংশনটিকে বলা হয়৷