New gpg-agent command to list key information.
[gnupg.git] / doc / sysnotes.texi
blobd36c81b2f53d2efd73dec08c669d2471bc58f6c8
1 @c Copyright (C) 2004 Free Software Foundation, Inc.
2 @c This is part of the GnuPG manual.
3 @c For copying conditions, see the file gnupg.texi.
5 @node System Notes
6 @chapter Notes pertaining to certain OSes.
8 GnuPG has been developed on GNU/Linux systems and is know to work on
9 almost all Free OSes.  All modern POSIX systems should be supproted
10 right now, however there are probably a lot of smaller glitches we need
11 to fix first.  The major problem areas are:
13 @itemize
14 @item 
15 For logging to sockets and other internal operations the
16 @code{fopencookie} function (@code{funopen} under *BSD) is used.  This
17 is a very convient function which makes it possible to create outputs in
18 a structures and easy maintainable way.  The drawback however is that
19 most proprietary OSes don't support this function.  At g10@tie{}Code we
20 have looked into several ways on how to overcome this limitation but no
21 sufficiently easy and maintainable way has been found.  Porting
22 @emph{glibc} to a general POSIX system is of course an option and would
23 make writing portable software much easier; this it has not yet been
24 done and the system administrator wouldneed to cope with the GNU
25 specific admin things in addition to the generic ones of his system.
27 We have now settled to use explicit stdio wrappers with a functionality
28 similar to funopen.  Although the code for this has already been written
29 (@emph{libestream}), we have not yet changed GnuPG to use it.
31 This means that on systems not supporting either @code{funopen} or
32 @code{fopencookie}, logging to a socket won't work, prompts are not
33 formatted as pretty as theyshould be and @command{gpgsm}'s
34 @code{LISTKEYS} Assuan command does not work.
36 @item
37 We are planning to use file descriptor passing for interprocess
38 communication.  This will allow us save a lot of resources and improve
39 performance of certain operations a lot.  Systems not supporting this
40 won't gain these benefits but we try to keep them working the satndard
41 way as it is done today.
43 @item
44 We require more or less full POSIX compatibility.  This has been
45 arround for 15 years now and thus we don't believe it makes sense to
46 support non POSIX systems anymore.  Well, we of course the usual
47 workarounds for near POSIX systems well be applied.
49 There is one exception of this rule: Systems based the Microsoft Windows
50 API (called here @emph{W32}) will be supported to some extend.
52 @end itemize
55 @menu
56 * W32 Notes::             Microsoft Windows Notes
57 @end menu
60 @node W32 Notes
61 @section Microsoft Windows Notes
63 The port to Microsoft Windows based OSes is pretty new and has some
64 limitations we might remove over time.  Note, that we have not yet done
65 any security audit and you should not use any valuable private key.  In
66 particular, @strong{using it on a box with more than one user, might
67 lead to a key compromise}.
69 @strong{It is quite possible that the current version does not even
70 build.}
72 @noindent
73 Current limitations are:
75 @itemize
76 @item
77 The @code{LISTKEYS} Assuan command of @command{gpgsm} is not supported.
78 Using the command line options @option{--list-keys} or
79 @option{--list-secret-keys} does however work.
81 @item 
82 No support for CRL checks.  By default the option
83 @option{--disable-crl-checks} has been turned on and the log will show
84 an appropriate warning message.  The reason for this is that the
85 separate CRL checking daemin (@command{dirmngr}) has not been ported to
86 W32.
88 @item
89 @command{gpgconf} does not create backup files, so in case of trouble
90 your configuration file might get lost.
92 @item
93 @command{watchgnupg} is not available.  Logging to sockets is not
94 possible.
96 @item
97 The periodical smartcard status checking done by @command{scdaemon} is
98 not yet supported.
100 @item
101 Detached running of the gpg-agent is not directly supported.  It needs
102 to be started in a console and left alone then.
104 @end itemize