60fede3e02fdc8f2fcda38ac9df4a7e8da8b6433
[gnupg.git] / doc / OpenPGP
1                     GnuPG and OpenPGP
2                     =================
3
4    See RFC2440 for a description of OpenPGP.  I have an annotated version
5    of this RFC online:  http://www.d.shuttle.de/isil/gnupg/rfc2440.html
6
7
8
9   Compatibility Notes
10   ===================
11    GnuPG (>=0.4.1) is in compliance with RFC2440 despite these exeptions:
12
13     ===> Please can someone check this <=========
14
15     * (5.1) The critical bit in signature subpackets is currently
16       ignored.  This will be fixed soon.
17
18
19     * (5.2) GnuPG generates V4 signatures for all V4 keys.  The option
20       --force-v3-sigs allows to override.
21
22     * (5.3) GnuPG has an option to use simple S2K for "Symmetric-Key
23       Encrypted Session-Key Packets"; however a warning message is
24       issued if this option is active.
25
26     * (5.5.2) states that an implementaion MUST NOT create a v3 key
27       with an algorithm other than RSA.  GnuPG has an option to
28       create an ElGamal key in a v3 packet; the properties of such
29       a key are as good as a v4 key.  RFC1991 does not specifiy how
30       to create fingerprints for algorithms other than RSA and so it
31       is okay to choose a special format for ElGamal.
32
33     * (9.1) states that RSA SHOULD be implemented.  This is not done
34       (except with an extension, usable outside the U.S.) due to
35       patent problems.
36
37     * (9.2) states that IDEA SHOULD be implemented.  This is not done
38       due to patent problems.
39
40     * (12.1) states that an implementaion MUST NOT use a symmetric
41       algorithm which is not in the preference list.  GnuPG has an
42       option to override this.
43
44     * A special format of partial packet length exists for v3 packets
45       which can be considered to be in compliance with RFC1991;  this
46       format is only created if a special option is active.
47
48    All MAY features are implemented with this exception:
49
50     * multi-part armored messages are not supported.
51       MIME should be used instead.
52
53    Most of the OPTIONAL stuff is implemented.
54
55
56
57
58   Some Notes on OpenPGP / PGP Compatibility:
59   ==========================================
60
61      * PGP 5.x does not accept V4 signatures for anything other than
62        key material.
63
64      * PGP 5.x does not recognize the "five-octet" lengths in
65        new-format headers or in signature subpacket lengths.
66
67      * PGP 5.0 rejects an encrypted session key if the keylength
68        differs from the S2K symmetric algorithm. This is a bug in its
69        validation function.
70
71      * PGP 5.0 does not handle multiple one-pass signature headers and
72        trailers. Signing one will compress the one-pass signed literal
73        and prefix a V3 signature instead of doing a nested one-pass
74        signature.
75
76      * When exporting a private key, PGP 2.x generates the header
77        "BEGIN PGP SECRET KEY BLOCK" instead of "BEGIN PGP PRIVATE KEY
78        BLOCK". All previous versions ignore the implied data type, and
79        look directly at the packet data type.
80
81      * In a clear-signed signature, PGP 5.0 will figure out the correct
82        hash algorithm if there is no "Hash:" header, but it will reject
83        a mismatch between the header and the actual algorithm used. The
84        "standard" (i.e. Zimmermann/Finney/et al.) version of PGP 2.x
85        rejects the "Hash:" header and assumes MD5. There are a number
86        of enhanced variants of PGP 2.6.x that have been modified for
87        SHA-1 signatures.
88
89      * PGP 5.0 can read an RSA key in V4 format, but can only recognize
90        it with a V3 keyid, and can properly use only a V3 format RSA
91        key.
92
93      * Neither PGP 5.x nor PGP 6.0 recognize Elgamal Encrypt and Sign
94        keys. They only handle Elgamal Encrypt-only keys.
95
96
97   Parts of this document are taken from:
98   ======================================
99
100                          OpenPGP Message Format
101                    draft-ietf-openpgp-formats-07.txt
102
103
104    Copyright 1998 by The Internet Society. All Rights Reserved.
105
106    This document and translations of it may be copied and furnished to
107    others, and derivative works that comment on or otherwise explain it
108    or assist in its implementation may be prepared, copied, published
109    and distributed, in whole or in part, without restriction of any
110    kind, provided that the above copyright notice and this paragraph
111    are included on all such copies and derivative works.  However, this
112    document itself may not be modified in any way, such as by removing
113    the copyright notice or references to the Internet Society or other
114    Internet organizations, except as needed for the purpose of
115    developing Internet standards in which case the procedures for
116    copyrights defined in the Internet Standards process must be
117    followed, or as required to translate it into languages other than
118    English.
119
120    The limited permissions granted above are perpetual and will not be
121    revoked by the Internet Society or its successors or assigns.
122
123