diff options
author | Werner Koch <wk@gnupg.org> | 2003-12-03 13:31:42 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2003-12-03 13:31:42 +0000 |
commit | e10f57ee25eb22cb076f2d4dc231e5c1e6fd5a11 (patch) | |
tree | ea1d2a08e28ecb8c28b8eda3e04bb36f78844b7c | |
parent | 78531373a342aeb847950f404343a05e36022065 (diff) | |
download | libgcrypt-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.
-rw-r--r-- | doc/ChangeLog | 10 | ||||
-rw-r--r-- | doc/fdl.texi | 402 | ||||
-rw-r--r-- | doc/gcrypt.texi | 220 |
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 |