diff options
author | lloyd <[email protected]> | 2012-07-01 20:03:29 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2012-07-01 20:03:29 +0000 |
commit | c5c144de5b5dbb03b942178ad09a66ebf5cdcb9d (patch) | |
tree | a1c5c8ea850206eedd428ba52c273efeae48e989 /doc/secmem.txt | |
parent | f5f2c6d68bd31f72c5837ebc75d5a35741c3b664 (diff) |
Rename all text files that are actually reStructuredText to .rst
Diffstat (limited to 'doc/secmem.txt')
-rw-r--r-- | doc/secmem.txt | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/doc/secmem.txt b/doc/secmem.txt deleted file mode 100644 index 76751bb40..000000000 --- a/doc/secmem.txt +++ /dev/null @@ -1,31 +0,0 @@ - -Memory container -======================================== - -A major concern with mixing modern multiuser OSes and cryptographic -code is that at any time the code (including secret keys) could be -swapped to disk, where it can later be read by an attacker, or left -floating around in memory for later retreval. - -For this reason the library uses a ``std::vector`` with a custom -allocator that will zero memory before deallocation, named via typedef -as ``secure_vector``. Because it is simply a STL vector with a custom -allocator, it has an identical API to the ``std::vector`` you know and -love. - -Some operating systems offer the ability to lock memory into RAM, -preventing swapping from occuring. Typically this operation is -restricted to privledged users (root or admin), however some OSes -including Linux and FreeBSD allow normal users to lock a small amount -of memory. On these systems, allocations first attempt to allocate out -of this small locked pool, and then if that fails will fall back to -normal heap allocations. - -The ``secure_vector`` template is only meant for primitive data types -(bytes or ints): if you want a container of higher level Botan -objects, you can just use a ``std::vector``, since these objects know -how to clear themselves when they are destroyed. You cannot, however, -have a ``std::vector`` (or any other container) of ``Pipe`` objects or -filters, because these types have pointers to other filters, and -implementing copy constructors for these types would be both hard and -quite expensive (vectors of pointers to such objects is fine, though). |