aboutsummaryrefslogtreecommitdiffstats
path: root/doc/secmem.txt
diff options
context:
space:
mode:
authorlloyd <[email protected]>2012-07-01 20:03:29 +0000
committerlloyd <[email protected]>2012-07-01 20:03:29 +0000
commitc5c144de5b5dbb03b942178ad09a66ebf5cdcb9d (patch)
treea1c5c8ea850206eedd428ba52c273efeae48e989 /doc/secmem.txt
parentf5f2c6d68bd31f72c5837ebc75d5a35741c3b664 (diff)
Rename all text files that are actually reStructuredText to .rst
Diffstat (limited to 'doc/secmem.txt')
-rw-r--r--doc/secmem.txt31
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).