prevector_sとは?

prevectorに::mlock、::mprotect、Secure ZeroMemoryを加えたセキュア版となります。
prevectorと同じように扱えるように調整しております。
ただ、メモリロックを解除するのに作用が必要となりますゆえ、その部分は「メソッド」となります。
以下のような使い方はat経由、またはstd::vector、prevectorでお願いいたします。
prevector_s<28, uint8_t> buffer;
buffer.resize(16);
::memcpy(&buffer[0], data, 16); // Error (Memory No Access)
auto mi = buffer.at(0);
::memcpy(&(*mi), data, 16); // OK (mi is iterator)
※ iteratorがメモリを解除します。そして、iteratorが解体されるときに自動ロックされる仕組みです。

サンプルコード

prevector_s<28, uint8_t> test2; // prevector + ::mlock + ::mprotect
test2.push_back('h');
test2.push_back('o');
test2.push_back('g');
test2.push_back('o');
test2.push_back('n');
test2.push_back('e');
test2.push_back('k');
test2.push_back('o');
for(auto mi = test2.begin(); mi!=test2.end(); ++mi)
	::fprintf(stdout, "%c\n", *mi);
	
□ 本ページをご覧いただきました方は、以下のページもよくご覧いただいております。
■ 集計中.....