summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2003-12-03 13:31:42 +0000
committerWerner Koch <wk@gnupg.org>2003-12-03 13:31:42 +0000
commite10f57ee25eb22cb076f2d4dc231e5c1e6fd5a11 (patch)
treeea1d2a08e28ecb8c28b8eda3e04bb36f78844b7c /doc
parent78531373a342aeb847950f404343a05e36022065 (diff)
downloadlibgcrypt-e10f57ee25eb22cb076f2d4dc231e5c1e6fd5a11.tar.gz
* gcrypt.texi: Changed license from FDL to GPL because this is a
reference manual only useful along with actual code. * fdl.texi: Removed. * gcrypt.texi: Minor cleanups (Working with keys): Clarified generation of RSA's E parameter. (Multi Threading): Clarified.
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog10
-rw-r--r--doc/fdl.texi402
-rw-r--r--doc/gcrypt.texi220
3 files changed, 116 insertions, 516 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 314dc1e9..537d73bd 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,13 @@
+2003-12-03 Werner Koch <wk@gnupg.org>
+
+ * gcrypt.texi: Changed license from FDL to GPL because this is a
+ reference manual only useful along with actual code.
+ * fdl.texi: Removed.
+
+ * gcrypt.texi: Minor cleanups
+ (Working with keys): Clarified generation of RSA's E parameter.
+ (Multi Threading): Clarified.
+
2003-11-11 Werner Koch <wk@gnupg.org>
* gcrypt.texi (Working with S-expressions): Added "%b".
diff --git a/doc/fdl.texi b/doc/fdl.texi
deleted file mode 100644
index 50028ab5..00000000
--- a/doc/fdl.texi
+++ /dev/null
@@ -1,402 +0,0 @@
-@node Free Documentation License
-@appendix GNU Free Documentation License
-
-@cindex FDL, GNU Free Documentation License
-@center Version 1.1, March 2000
-
-@display
-Copyright @copyright{} 2000 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-@end display
-
-@enumerate 0
-@item
-PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-written document @dfn{free} in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially. Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
-
-This License is a kind of ``copyleft'', which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-@item
-APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License. The ``Document'', below, refers to any
-such manual or work. Any member of the public is a licensee, and is
-addressed as ``you''.
-
-A ``Modified Version'' of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A ``Secondary Section'' is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The ``Invariant Sections'' are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
-
-The ``Cover Texts'' are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
-
-A ``Transparent'' copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent. A copy that is
-not ``Transparent'' is called ``Opaque''.
-
-Examples of suitable formats for Transparent copies include plain
-@sc{ascii} without markup, Texinfo input format, La@TeX{} input format,
-@acronym{SGML} or @acronym{XML} using a publicly available
-@acronym{DTD}, and standard-conforming simple @acronym{HTML} designed
-for human modification. Opaque formats include PostScript,
-@acronym{PDF}, proprietary formats that can be read and edited only by
-proprietary word processors, @acronym{SGML} or @acronym{XML} for which
-the @acronym{DTD} and/or processing tools are not generally available,
-and the machine-generated @acronym{HTML} produced by some word
-processors for output purposes only.
-
-The ``Title Page'' means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, ``Title Page'' means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-@item
-VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-@item
-COPYING IN QUANTITY
-
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols. If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-@item
-MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-@enumerate A
-@item
-Use in the Title Page (and on the covers, if any) a title distinct
-from that of the Document, and from those of previous versions
-(which should, if there were any, be listed in the History section
-of the Document). You may use the same title as a previous version
-if the original publisher of that version gives permission.
-
-@item
-List on the Title Page, as authors, one or more persons or entities
-responsible for authorship of the modifications in the Modified
-Version, together with at least five of the principal authors of the
-Document (all of its principal authors, if it has less than five).
-
-@item
-State on the Title page the name of the publisher of the
-Modified Version, as the publisher.
-
-@item
-Preserve all the copyright notices of the Document.
-
-@item
-Add an appropriate copyright notice for your modifications
-adjacent to the other copyright notices.
-
-@item
-Include, immediately after the copyright notices, a license notice
-giving the public permission to use the Modified Version under the
-terms of this License, in the form shown in the Addendum below.
-
-@item
-Preserve in that license notice the full lists of Invariant Sections
-and required Cover Texts given in the Document's license notice.
-
-@item
-Include an unaltered copy of this License.
-
-@item
-Preserve the section entitled ``History'', and its title, and add to
-it an item stating at least the title, year, new authors, and
-publisher of the Modified Version as given on the Title Page. If
-there is no section entitled ``History'' in the Document, create one
-stating the title, year, authors, and publisher of the Document as
-given on its Title Page, then add an item describing the Modified
-Version as stated in the previous sentence.
-
-@item
-Preserve the network location, if any, given in the Document for
-public access to a Transparent copy of the Document, and likewise
-the network locations given in the Document for previous versions
-it was based on. These may be placed in the ``History'' section.
-You may omit a network location for a work that was published at
-least four years before the Document itself, or if the original
-publisher of the version it refers to gives permission.
-
-@item
-In any section entitled ``Acknowledgments'' or ``Dedications'',
-preserve the section's title, and preserve in the section all the
-substance and tone of each of the contributor acknowledgments
-and/or dedications given therein.
-
-@item
-Preserve all the Invariant Sections of the Document,
-unaltered in their text and in their titles. Section numbers
-or the equivalent are not considered part of the section titles.
-
-@item
-Delete any section entitled ``Endorsements''. Such a section
-may not be included in the Modified Version.
-
-@item
-Do not retitle any existing section as ``Endorsements''
-or to conflict in title with any Invariant Section.
-@end enumerate
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section entitled ``Endorsements'', provided it contains
-nothing but endorsements of your Modified Version by various
-parties---for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-@item
-COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections entitled ``History''
-in the various original documents, forming one section entitled
-``History''; likewise combine any sections entitled ``Acknowledgments'',
-and any sections entitled ``Dedications''. You must delete all sections
-entitled ``Endorsements.''
-
-@item
-COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-@item
-AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation. Such a compilation is called an ``aggregate'', and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-
-@item
-TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License provided that you also include the
-original English version of this License. In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
-
-@item
-TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-@item
-FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-@uref{http://www.gnu.org/copyleft/}.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License ``or any later version'' applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-@end enumerate
-
-@page
-@appendixsubsec ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-@smallexample
-@group
- Copyright (C) @var{year} @var{your name}.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with the Invariant Sections being @var{list their titles}, with the
- Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
- A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-@end group
-@end smallexample
-
-If you have no Invariant Sections, write ``with no Invariant Sections''
-instead of saying which ones are invariant. If you have no
-Front-Cover Texts, write ``no Front-Cover Texts'' instead of
-``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
-@c Local Variables:
-@c ispell-local-pdict: "ispell-dict"
-@c End:
-
diff --git a/doc/gcrypt.texi b/doc/gcrypt.texi
index 83d04b65..3fd22635 100644
--- a/doc/gcrypt.texi
+++ b/doc/gcrypt.texi
@@ -4,11 +4,10 @@
@c This file is part of the Libgcrypt.
@c
@c Permission is granted to copy, distribute and/or modify this document
-@c under the terms of the GNU Free Documentation License, Version 1.1 or
-@c any later version published by the Free Software Foundation; with no
-@c Invariant Sections, with no the Front-Cover texts, and with no
-@c Back-Cover Texts.
-@c A copy of the license is included in the file 'fdl.texi'.
+@c under the terms of the GNU General Public License as published by the
+@c Free Software Foundation; either version 2 of the License, or (at your
+@c option) any later version. A copy of the license is included in the
+@c file 'gpl.texi'.
@c
@setfilename gcrypt.info
@settitle The `Libgcrypt' Reference Manual
@@ -34,11 +33,10 @@ This is Edition @value{EDITION}, last updated @value{UPDATED}, of
Copyright @copyright{} 2000, 2002, 2003 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no the Front-Cover texts, and with no
-Back-Cover Texts. A copy of the license is included in the section
-entitled ``GNU Free Documentation License''.
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version. The text of the license can be found in the
+section entitled ``Copying''.
@end ifinfo
@c @iftex
@@ -59,12 +57,13 @@ entitled ``GNU Free Documentation License''.
Copyright @copyright{} 2000, 2002, 2003 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no the Front-Cover texts, and with no
-Back-Cover Texts. A copy of the license is included in the section
-entitled ``GNU Free Documentation License''.
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version. The text of the license can be found in the
+section entitled ``Copying''.
@end titlepage
+@summarycontents
+@contents
@page
@ifnottex
@@ -73,6 +72,15 @@ entitled ``GNU Free Documentation License''.
This is Edition @value{EDITION}, last updated @value{UPDATED}, of
@cite{The `Libgcrypt' Reference Manual}, for Version
@value{VERSION} of the @acronym{Libgcrypt} library.
+
+Copyright @copyright{} 2000, 2002, 2003 Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version. The text of the license can be found in the
+section entitled ``Copying''.
+
@end ifnottex
@menu
@@ -92,11 +100,9 @@ This is Edition @value{EDITION}, last updated @value{UPDATED}, of
Appendices
* Library Copying:: The GNU Lesser General Public License
- says how you can copy and share `@acronym{Libgcrypt}'.
+ says how you can copy and share `Libgcrypt'.
* Copying:: The GNU General Public License says how you
- can copy and share some parts of `@acronym{Libgcrypt}'.
-* Free Documentation License:: This manual is under the GNU Free
- Documentation License.
+ can copy and share some parts of `Libgcrypt'.
Indices
@@ -171,7 +177,7 @@ MPI library
* Calculations:: Performing MPI calculations.
* Comparisons:: How to compare MPI values.
* Bit manipulations:: How to access single bits of MPI values.
-* Misc:: Misc, fixme.
+* Misc:: Miscellaneous MPI functions.
Utilities
* Memory allocation:: Functions related with memory allocation.
@@ -180,6 +186,8 @@ Utilities
@end menu
+
+
@c **********************************************************
@c ******************* Introduction ***********************
@c **********************************************************
@@ -267,11 +275,11 @@ library is initialized, and how the requirements of the library are
verified.
@menu
-* Header:: What header file you need to include.
-* Building sources:: How to build sources using the library.
-* Building sources using Automake:: How to build sources with the help auf Automake.
-* Initializing the library:: How to initialize the library.
-* Multi Threading:: How @acronym{Libgcrypt} can be used in a MT environment.
+* Header:: What header file you need to include.
+* Building sources:: How to build sources using the library.
+* Building sources using Automake:: How to build sources with the help auf Automake.
+* Initializing the library:: How to initialize the library.
+* Multi Threading:: How @acronym{Libgcrypt} can be used in a MT environment.
@end menu
@@ -400,63 +408,48 @@ make use of the other functions of @acronym{Libgcrypt}.
@node Multi Threading
@section Multi Threading
-As mentioned earlier, the `@acronym{Libgcrypt}' library is fully thread-safe;
-the library automagically detects whether an applications uses no
-threading, pthreads or GNU Pth.
-
-If you link your program dynamically to @acronym{Libgcrypt} and your
-supported thread library, @acronym{Libgcrypt} will automatically
-detect the presence of this library and activate its use. You must
-link to the thread library before linking to @acronym{Libgcrypt}. If
-you link to both pthread and GNU Pth, @acronym{Libgcrypt} will use the
-pthread support. This feature requires weak symbol support.
-
-If you link your program statically to @acronym{Libgcrypt}, or your
-system does not support weak symbols, there is currently no easy way
-to make sure that @acronym{Libgcrypt} detects the presence of the
-thread library. This will be solved in a future version.
-
+As mentioned earlier, the `@acronym{Libgcrypt}' library is
+thread-safe if you adhere to the following requirements:
+
+@itemize @bullet
+@item
+@acronym{Libgcrypt} supports the thread libraries pthread and GNU Pth.
+The support for this has to be enabled at compile time.
+@acronym{Libgcrypt} will automatically detect the location in which the
+thread libraries are installed and activate the support for them at
+build time.
+
+Support for other thread libraries is very easy to add. Please
+contact us if you have the need.
+
+@item
+If you want to use @acronym{Libgcrypt} with threads, you must link to
+the right version of the library. The name of the right library is
+@code{libgcrypt-} followed by the name of the thread package you use.
+For example, if you use GNU Pth, the right name is
+@code{libgcrypt-pth}. Use the Automake macros or
+@command{libgcrypt-config} program for simplicity.
+
+@item
The function @code{gcry_check_version} must be called before any other
function in the library, because it initializes the thread support
-subsystem in @acronym{Libgcrypt}. To achieve this in all generality,
-it is necessary to synchronize the call to this function with all
-other calls to functions in the library, using the synchronization
-mechanisms available in your thread library. Otherwise, specific
-compiler or CPU memory cache optimizations could lead to the situation
-where a thread is started and uses @acronym{Libgcrypt} before the
-effects of the initialization are visible for this thread. It doesn't
-even suffice to call @code{gcry_check_version} before creating this
-other thread@footnote{In SMP systems the new thread could be started
-on another CPU before the effects of the initialization are seen by
-that CPU's memory cache. Not doing proper synchronization here leads
-to the same problems the double-checked locking idiom has. You might
-find that if you don't do proper synchronization, it still works in
-most configurations. Don't let this fool you. Someday it might lead
-to subtle bugs when someone tries it on a DEC Alpha or an SMP
-machine.}.
-
-For example, if you are using POSIX threads, each thread that wants to
-call functions in @acronym{Libgcrypt} could call the following
-function before any function in the library:
+subsystem in @acronym{Libgcrypt}. To achieve this in
+multi-threaded programs, you must synchronize the memory with respect
+to other threads that also want to use @acronym{Libgcrypt}. For this, it
+is sufficient to call @code{gcry_check_version} before creating the
+other threads using @acronym{Libgcrypt}@footnote{At least this is true for
+POSIX threads, as @code{pthread_create} is a function that
+synchronizes memory with respects to other threads. There are many
+functions which have this property, a complete list can be found in
+POSIX, IEEE Std 1003.1-2003, Base Definitions, Issue 6, in the
+definition of the term ``Memory Synchronization''. For other thread
+packages other, more relaxed or more strict rules may apply.}.
+
+@item
+As with the function @code{gpg_strerror}, @code{gcry_strerror} is not
+thread safe. You have to use @code{gpg_strerror_r} instead.
+@end itemize
-@example
-#include <pthread.h>
-
-void
-initialize_gcrypt (void)
-@{
- static int gcrypt_init;
- static pthread_mutext_t gcrypt_init_lock = PTHREAD_MUTEX_INITIALIZER;
-
- pthread_mutex_lock (&gcrypt_init_lock);
- if (! gcrypt_init)
- @{
- gcry_check_version ();
- gcrypt_init = 1;
- @}
- pthread_mutex_unlock (&gcrypt_init_lock);
-@}
-@end example
@c **********************************************************
@c ******************* General ****************************
@@ -549,10 +542,10 @@ libgpg-error to provide a common error handling scheme. For more
information on libgpg-error, see the according manual.
@menu
-* Error Values:: The error value and what it means.
-* Error Sources:: A list of important error sources.
-* Error Codes:: A list of important error codes.
-* Error Strings:: How to get a descriptive string from a value.
+* Error Values:: The error value and what it means.
+* Error Sources:: A list of important error sources.
+* Error Codes:: A list of important error codes.
+* Error Strings:: How to get a descriptive string from a value.
@end menu
@@ -601,21 +594,21 @@ error code part of an error value. The error source is left
unspecified and might be anything.
@end deftp
-@deftypefun {static __inline__ gcry_err_code_t} gcry_err_code (@w{gcry_error_t @var{err}})
+@deftypefun {gcry_err_code_t} gcry_err_code (@w{gcry_error_t @var{err}})
The static inline function @code{gcry_err_code} returns the
@code{gcry_err_code_t} component of the error value @var{err}. This
function must be used to extract the error code from an error value in
order to compare it with the @code{GPG_ERR_*} error code macros.
@end deftypefun
-@deftypefun {static __inline__ gcry_err_source_t} gcry_err_source (@w{gcry_error_t @var{err}})
+@deftypefun {gcry_err_source_t} gcry_err_source (@w{gcry_error_t @var{err}})
The static inline function @code{gcry_err_source} returns the
@code{gcry_err_source_t} component of the error value @var{err}. This
function must be used to extract the error source from an error value in
order to compare it with the @code{GPG_ERR_SOURCE_*} error source macros.
@end deftypefun
-@deftypefun {static __inline__ gcry_error_t} gcry_err_make (@w{gcry_err_source_t @var{source}}, @w{gcry_err_code_t @var{code}})
+@deftypefun {gcry_error_t} gcry_err_make (@w{gcry_err_source_t @var{source}}, @w{gcry_err_code_t @var{code}})
The static inline function @code{gcry_err_make} returns the error
value consisting of the error source @var{source} and the error code
@var{code}.
@@ -624,7 +617,7 @@ This function can be used in callback functions to construct an error
value to return it to the library.
@end deftypefun
-@deftypefun {static __inline__ gcry_error_t} gcry_error (@w{gcry_err_code_t @var{code}})
+@deftypefun {gcry_error_t} gcry_error (@w{gcry_err_code_t @var{code}})
The static inline function @code{gcry_error} returns the error value
consisting of the default error source and the error code @var{code}.
@@ -1027,11 +1020,11 @@ an open/process/close paradigm and is in that similar to other
building blocks provided by @acronym{Libgcrypt}.
@menu
-* Available ciphers:: List of ciphers supported by the library.
-* Cipher modules:: How to work with cipher modules.
-* Available cipher modes:: List of cipher modes supported by the library.
+* Available ciphers:: List of ciphers supported by the library.
+* Cipher modules:: How to work with cipher modules.
+* Available cipher modes:: List of cipher modes supported by the library.
* Working with cipher handles:: How to perform operations related to cipher handles.
-* General cipher functions:: General cipher functions independent of cipher handles.
+* General cipher functions:: General cipher functions independent of cipher handles.
@end menu
@node Available ciphers
@@ -1497,9 +1490,9 @@ For convenience reasons, a few cyclic redudancy check value operations
are also supported.
@menu
-* Available hash algorithms:: List of hash algorithms supported by the library.
-* Hash algorithm modules:: How to work with hash algorithm modules.
-* Working with hash algorithms:: List of functions related to hashing.
+* Available hash algorithms:: List of hash algorithms supported by the library.
+* Hash algorithm modules:: How to work with hash algorithm modules.
+* Working with hash algorithms:: List of functions related to hashing.
@end menu
@node Available hash algorithms
@@ -1956,10 +1949,10 @@ public key cryptography, this chapter explains the one based on
S-expressions.
@menu
-* Used S-expressions:: Introduction into the used S-expression.
-* Available algorithms:: Algorithms supported by the library.
-* Public key modules:: How to work with public key modules.
-* Cryptographic Functions:: Functions for performing the cryptographic actions.
+* Available algorithms:: Algorithms supported by the library.
+* Used S-expressions:: Introduction into the used S-expression.
+* Public key modules:: How to work with public key modules.
+* Cryptographic Functions:: Functions for performing the cryptographic actions.
* General public-key related Functions:: General functions, not implementing any cryptography.
@end menu
@@ -1981,14 +1974,13 @@ do.
The following information are stored in S-expressions:
@table @asis
-@item Keys
+@item keys
@item plain text data
@item encrypted data
@item signatures
-...
@end table
@@ -2650,12 +2642,12 @@ former chapter, this one follows an open/use/close paradigm like other
building blocks of the library.
@menu
-* Available asymmetric algorithms:: List of algorithms supported by the library.
-* Working with sets of data:: How to work with sets of data.
-* Working with handles:: How to use handles.
-* Working with keys:: How to work with keys.
-* Using cryptographic functions:: How to perform cryptographic operations.
-* Handle-independent functions:: General functions independent of handles.
+* Available asymmetric algorithms:: List of algorithms supported by the library.
+* Working with sets of data:: How to work with sets of data.
+* Working with handles:: How to use handles.
+* Working with keys:: How to work with keys.
+* Using cryptographic functions:: How to perform cryptographic operations.
+* Handle-independent functions:: General functions independent of handles.
@end menu
@node Available asymmetric algorithms
@@ -2822,10 +2814,14 @@ has the following meanings:
@item = 0
Let @acronym{Libgcrypt} device what exponent should be used.
@item = 1
-Request the use of a ``secure'' exponent; this is required by sosme
+Request the use of a ``secure'' exponent; this is required by some
specification to be 65537.
@item > 2
-Try starting at this value until a working exponent is found.
+Try starting at this value until a working exponent is found. Note,
+that the current implementation leaks some information about the
+private key because the incrementation used is not randomized. Thus,
+this function will be changed in the future to return a random
+exponent of the given size.
@end table
@end table
@end table
@@ -3001,8 +2997,8 @@ to parse and construct them. For detailed information, see
@uref{http://theory.lcs.mit.edu/~rivest/sexp.html}}.
@menu
-* Data types for S-expressions:: Data types related with S-expressions.
-* Working with S-expressions:: How to work with S-expressions.
+* Data types for S-expressions:: Data types related with S-expressions.
+* Working with S-expressions:: How to work with S-expressions.
@end menu
@node Data types for S-expressions
@@ -3653,8 +3649,6 @@ Release the memory area pointed to by @var{p}.
@include gpl.texi
-@include fdl.texi
-
@node Concept Index
@unnumbered Concept Index
@@ -3665,8 +3659,6 @@ Release the memory area pointed to by @var{p}.
@printindex fn
-@summarycontents
-@contents
@bye
/* Version check should be the very first gcry call because it