Blame doc/cha-support.texi

Packit 549fdc
@node Support
Packit 549fdc
@appendix Support
Packit 549fdc
Packit 549fdc
@menu
Packit 549fdc
* Getting help::
Packit 549fdc
* Commercial Support::
Packit 549fdc
* Bug Reports::
Packit 549fdc
* Contributing::
Packit 549fdc
* Certification::
Packit 549fdc
@end menu
Packit 549fdc
Packit 549fdc
@node Getting help
Packit 549fdc
@section Getting Help
Packit 549fdc
Packit 549fdc
A mailing list where users may help each other exists, and you can
Packit 549fdc
reach it by sending e-mail to @email{gnutls-help@@gnutls.org}.  Archives
Packit 549fdc
of the mailing list discussions, and an interface to manage
Packit 549fdc
subscriptions, is available through the World Wide Web at
Packit 549fdc
@url{http://lists.gnutls.org/pipermail/gnutls-help/}.
Packit 549fdc
Packit 549fdc
A mailing list for developers are also available, see
Packit 549fdc
@url{http://www.gnutls.org/lists.html}.
Packit 549fdc
Bug reports should be sent to @email{bugs@@gnutls.org}, see
Packit 549fdc
@ref{Bug Reports}.
Packit 549fdc
Packit 549fdc
@node Commercial Support
Packit 549fdc
@section Commercial Support
Packit 549fdc
Packit 549fdc
Commercial support is available for users of GnuTLS. See
Packit 549fdc
@url{http://www.gnutls.org/commercial.html} for more information.
Packit 549fdc
Packit 549fdc
Packit 549fdc
@node Bug Reports
Packit 549fdc
@section Bug Reports
Packit 549fdc
@cindex reporting bugs
Packit 549fdc
Packit 549fdc
If you think you have found a bug in GnuTLS, please investigate it and
Packit 549fdc
report it.
Packit 549fdc
Packit 549fdc
@itemize @bullet
Packit 549fdc
Packit 549fdc
@item Please make sure that the bug is really in GnuTLS, and
Packit 549fdc
preferably also check that it hasn't already been fixed in the latest
Packit 549fdc
version.
Packit 549fdc
Packit 549fdc
@item You have to send us a test case that makes it possible for us to
Packit 549fdc
reproduce the bug.
Packit 549fdc
Packit 549fdc
@item You also have to explain what is wrong; if you get a crash, or
Packit 549fdc
if the results printed are not good and in that case, in what way.
Packit 549fdc
Make sure that the bug report includes all information you would need
Packit 549fdc
to fix this kind of bug for someone else.
Packit 549fdc
Packit 549fdc
@end itemize
Packit 549fdc
Packit 549fdc
Please make an effort to produce a self-contained report, with
Packit 549fdc
something definite that can be tested or debugged.  Vague queries or
Packit 549fdc
piecemeal messages are difficult to act on and don't help the
Packit 549fdc
development effort.
Packit 549fdc
Packit 549fdc
If your bug report is good, we will do our best to help you to get a
Packit 549fdc
corrected version of the software; if the bug report is poor, we won't
Packit 549fdc
do anything about it (apart from asking you to send better bug
Packit 549fdc
reports).
Packit 549fdc
Packit 549fdc
If you think something in this manual is unclear, or downright
Packit 549fdc
incorrect, or if the language needs to be improved, please also send a
Packit 549fdc
note.
Packit 549fdc
Packit 549fdc
Send your bug report to:
Packit 549fdc
Packit 549fdc
@center @samp{bugs@@gnutls.org}
Packit 549fdc
Packit 549fdc
@node Contributing
Packit 549fdc
@section Contributing
Packit 549fdc
@cindex contributing
Packit 549fdc
@cindex hacking
Packit 549fdc
Packit 549fdc
If you want to submit a patch for inclusion -- from solving a typo you
Packit 549fdc
discovered, up to adding support for a new feature -- you should
Packit 549fdc
submit it as a bug report, using the process in @ref{Bug Reports}.  There are some
Packit 549fdc
things that you can do to increase the chances for it to be included
Packit 549fdc
in the official package.
Packit 549fdc
Packit 549fdc
Unless your patch is very small (say, under 10 lines) we require that
Packit 549fdc
you assign the copyright of your work to the Free Software Foundation.
Packit 549fdc
This is to protect the freedom of the project.  If you have not
Packit 549fdc
already signed papers, we will send you the necessary information when
Packit 549fdc
you submit your contribution.
Packit 549fdc
Packit 549fdc
For contributions that doesn't consist of actual programming code, the
Packit 549fdc
only guidelines are common sense.  
Packit 549fdc
For code contributions, a number of style guides will help you:
Packit 549fdc
Packit 549fdc
@itemize @bullet
Packit 549fdc
Packit 549fdc
@item Coding Style.
Packit 549fdc
Follow the GNU Standards document.
Packit 549fdc
@c (@pxref{top, GNU Coding Standards,,standards}).
Packit 549fdc
Packit 549fdc
If you normally code using another coding standard, there is no
Packit 549fdc
problem, but you should use @samp{indent} to reformat the code
Packit 549fdc
@c (@pxref{top, GNU Indent,, indent}) 
Packit 549fdc
before submitting your work.
Packit 549fdc
Packit 549fdc
@item Use the unified diff format @samp{diff -u}.
Packit 549fdc
Packit 549fdc
@item Return errors.
Packit 549fdc
No reason whatsoever should abort the execution of the library.  Even
Packit 549fdc
memory allocation errors, e.g. when malloc return NULL, should work
Packit 549fdc
although result in an error code.
Packit 549fdc
Packit 549fdc
@item Design with thread safety in mind.
Packit 549fdc
Don't use global variables.  Don't even write to per-handle global
Packit 549fdc
variables unless the documented behaviour of the function you write is
Packit 549fdc
to write to the per-handle global variable.
Packit 549fdc
Packit 549fdc
@item Avoid using the C math library.
Packit 549fdc
It causes problems for embedded implementations, and in most
Packit 549fdc
situations it is very easy to avoid using it.
Packit 549fdc
Packit 549fdc
@item Document your functions.
Packit 549fdc
Use comments before each function headers, that, if properly
Packit 549fdc
formatted, are extracted into Texinfo manuals and GTK-DOC web pages.
Packit 549fdc
Packit 549fdc
@item Supply a ChangeLog and NEWS entries, where appropriate.
Packit 549fdc
Packit 549fdc
@end itemize
Packit 549fdc
Packit 549fdc
@node Certification
Packit 549fdc
@section Certification
Packit 549fdc
@cindex certification
Packit 549fdc
Packit 549fdc
Many cryptographic libraries claim certifications from national or international bodies. These certifications are tied on a specific (and often restricted) version of the library or a 
Packit 549fdc
specific product using the library, and typically in the case of software they assure that the algorithms implemented are correct. The major certifications known are:
Packit 549fdc
@itemize
Packit 549fdc
@item USA's FIPS 140-2 at Level 1 which certifies that approved algorithms are used (see @url{http://en.wikipedia.org/wiki/FIPS_140-2});
Packit 549fdc
@item Common Criteria for Information Technology Security Evaluation (CC), an international standard for verification of elaborate security claims (see @url{http://en.wikipedia.org/wiki/Common_Criteria}).
Packit 549fdc
@end itemize
Packit 549fdc
Packit 549fdc
GnuTLS has support for FIPS 140-2 under Red Hat Enterprise Linux.
Packit 549fdc
See @ref{FIPS140-2 mode} for more information.