* gpg.sgml: Add bkuptocard command for --edit-key.
[gnupg.git] / doc / HACKING
index 8b285cf..811179e 100644 (file)
@@ -10,12 +10,13 @@ CVS Access
 ==========
 Anonymous read-only CVS access is available:
 
-  cvs -z6 -d :pserver:anonymous@ftp.guug.de:/home/koch/cvs login
+  cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/gnupg login
 
-use the password "anonymous".  To check out the the complete
+use the password "anoncvs".  To check out the the complete
 archive use:
 
-  cvs -z6 -d :pserver:anonymous@ftp.guug.de:/home/koch/cvs checkout gnupg
+  cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/gnupg \
+        checkout -R STABLE-BRANCH-1-0 gnupg
 
 This service is provided to help you in hunting bugs and not to deliver
 stable snapshots; it may happen that it even does not compile, so please
@@ -30,7 +31,10 @@ by sending a mail with subject "subscribe" to
     gnupg-commit-watchers-request@gnupg.org
 
 
-Please run scripts/autogen.sh to create some required files.
+You must run scripts/autogen.sh before doing the ./configure,
+as this creates some needed while which are not in the CVS.
+autogen.sh should checks that you have all required tools
+installed.
 
 
 RSYNC access
@@ -41,6 +45,17 @@ of the CVS head revision is also available.  See rsync(1) and try
 
 
 
+Special Tools
+=============
+Documentation is based on the docbook DTD.  Actually we have only the
+man page for now.  To build a man page you need the docbook-to-man
+tool and all the other thinks needed for SGML processing.  Debian
+comes with the docbook tools and you only need this docbook-to-man
+script which is comes with gtk-doc or download it from
+ftp.openit.de:/pub/devel/sgml. If you don't have it everything
+should still work fine but you will have only a dummy man page.
+
+
 RFCs
 ====
 
@@ -98,6 +113,74 @@ Directory Layout
   ./gcrypt     Stuff needed to build libgcrypt (under construction)
 
 
+Detailed Roadmap
+----------------
+g10/g10.c      Main module with option parsing and all the stuff you have
+               to do on startup.  Also has the exout handler and some
+               helper functions.
+g10/sign.c      Create signature and optionally encrypt
+
+g10/parse-packet.c
+g10/build-packet.c
+g10/free-packet.c
+               Parsing and creating of OpenPGP message packets.
+
+g10/getkey.c    Key selection code
+g10/pkclist.c   Build a list of public keys
+g10/skclist.c   Build a list of secret keys
+g10/ringedit.c  Keyring I/O
+g10/keydb.h
+
+g10/keyid.c    Helper functions to get the keyid, fingerprint etc.
+
+
+g10/trustdb.c    
+g10/trustdb.h
+g10/tdbdump.c
+               Management of the trustdb.gpg
+
+g10/compress.c Filter to handle compression
+g10/filter.h   Declarations for all filter functions
+g10/delkey.c   Delete a key
+g10/kbnode.c   Helper for the KBNODE linked list
+g10/main.h     Prototypes and some constants
+g10/mainproc.c Message processing
+g10/armor.c    Ascii armor filter 
+g10/mdfilter.c Filter to calculate hashs
+g10/textfilter.c Filter to handle CR/LF and trailing white space
+g10/cipher.c   En-/Decryption filter
+g10/misc.c     Utlity functions
+g10/options.h  Structure with all the command line options
+               and related constants
+g10/openfile.c Create/Open Files
+g10/tdbio.c    I/O handling for the trustdb.gpg
+g10/tdbio.h
+g10/hkp.h      Keyserver access
+g10/hkp.c
+g10/packet.h   Defintion of OpenPGP structures.
+g10/passphrase.c  Passphrase handling code
+g10/pubkey-enc.c  
+g10/seckey-cert.c
+g10/seskey.c
+g10/import.c
+g10/export.c
+g10/comment.c
+g10/status.c
+g10/status.h
+g10/sign.c
+g10/plaintext.c
+g10/encr-data.c
+g10/encode.c
+g10/revoke.c
+g10/keylist.c
+g10/sig-check.c
+g10/signal.c
+g10/helptext.c
+g10/verify.c
+g10/decrypt.c
+g10/keyedit.c
+g10/dearmor.c
+g10/keygen.c
 
 
 
@@ -189,7 +272,7 @@ How to use the cipher functions
 cipher/cipher.c implements the interface to symmetric encryption functions.
 As usual you have a function to open a cipher (which returns a handle to be used
 with all other functions), some functions to set the key and other stuff and
-a encrypt and decrypt function which does the real work.  YOu probably know
+a encrypt and decrypt function which does the real work.  You probably know
 how to work with files - so it should really be easy to work with these
 functions.  Here is an example:
 
@@ -197,7 +280,7 @@ functions.  Here is an example:
 
     hd = cipher_open( CIPHER_ALGO_TWOFISH, CIPHER_MODE_CFB, 0 );
     if( !hd )
-       oops( use other funtion to check for the real error );
+       oops( use other function to check for the real error );
     rc = cipher_setkey( hd, key256bit, 32 ) )
     if( rc )
        oops( weak key or something like this );