aboutsummaryrefslogtreecommitdiffstats
path: root/doc/manual/firststep.rst
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2015-07-29 23:44:39 -0400
committerJack Lloyd <[email protected]>2015-07-29 23:44:39 -0400
commitfbcb17f2151a8408cd4de8de82ba77926c80b135 (patch)
treecb63008f63b21cab4d408b426d67923d4f383d63 /doc/manual/firststep.rst
parenta22ae26ce0bdfe32f6e9076ca3a2e1a0a763b0a4 (diff)
Remove references to removed APIs and algos
LibraryInitializer, PK filters, Algorithm base class, PGP S2K
Diffstat (limited to 'doc/manual/firststep.rst')
-rw-r--r--doc/manual/firststep.rst53
1 files changed, 0 insertions, 53 deletions
diff --git a/doc/manual/firststep.rst b/doc/manual/firststep.rst
index 8010789d6..2f998687d 100644
--- a/doc/manual/firststep.rst
+++ b/doc/manual/firststep.rst
@@ -11,62 +11,9 @@ All library headers are included like so::
#include <botan/auto_rng.h>
-Initializing the Library
-----------------------------------------
-
-There is a set of core services that the library needs access to while
-it is performing requests. To ensure these are set up, you must create
-an object of type
-
-.. cpp:class:: LibraryInitializer
-
-prior to making any other library calls. Typically this will be named
-something like ``init`` or ``botan_init``. The object lifetime must
-exceed that of all other Botan objects your application creates; for
-this reason the best place to create the ``LibraryInitializer`` is at
-the start of your ``main`` function, since this guarantees that it
-will be created first and destroyed last (via standard C++ RAII
-rules). The initializer does things like setting up the memory
-allocation system and algorithm lookup tables, finding out if there is
-a high resolution timer available to use, and similar such
-matters. With no arguments, the library is initialized with various
-default settings. So (unless you are writing threaded code; see
-below), all you need is::
-
- Botan::LibraryInitializer init;
-
-at the start of your ``main``.
-
-If you do not create a ``LibraryInitializer`` object, all library
-operations will fail, because it will be unable to do basic things
-like allocate memory or get random bits. You should never create more
-than one ``LibraryInitializer``.
-
Pitfalls
----------------------------------------
-There are a few things to watch out for to prevent problems when using
-the library.
-
-Never allocate any kind of Botan object globally. The problem with
-doing this is that the constructor for such an object will be called
-before the library is initialized. Many Botan objects will, in their
-constructor, make one or more calls into the library global state
-object. Access to this object is checked, so an exception should be
-thrown (rather than a memory access violation or undetected
-uninitialized object access). A rough equivalent that will work is to
-keep a global pointer to the object, initializing it after creating
-your ``LibraryInitializer``. Merely making the
-``LibraryInitializer`` also global will probably not help, because
-C++ does not make very strong guarantees about the order that such
-objects will be created.
-
-The same rule applies for making sure the destructors of all your
-Botan objects are called before the ``LibraryInitializer`` is
-destroyed. This implies you can't have static variables that are Botan
-objects inside functions or classes; in many C++ runtimes, these
-objects will be destroyed after main has returned.
-
Use a ``try``/``catch`` block inside your ``main`` function, and catch
any ``std::exception`` throws (remember to catch by reference, as
``std::exception::what`` is polymorphic)::