See ChangeLog: Tue Aug 31 17:20:44 CEST 1999 Werner Koch
[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.gnupg.org/rfc2440.html
6
7
8
9   Compatibility Notes
10   ===================
11    GnuPG (>0.4.5) is in compliance with RFC2440 despite these exceptions:
12
13     * (9.1) states that RSA SHOULD be implemented.  This is not done
14       (except with an extension, usable outside the U.S.) due to
15       patent problems.
16
17     * (9.2) states that IDEA SHOULD be implemented.  This is not done
18       due to patent problems.
19
20
21    All MAY features are implemented with this exception:
22
23     * multi-part armored messages are not supported.
24       MIME should be used instead.
25
26    Most of the OPTIONAL stuff is implemented.
27
28    There are a couple of options which can be used to override some
29    RFC requirements.  This is always mentioned with the description
30    of that options.
31
32    A special format of partial packet length exists for v3 packets
33    which can be considered to be in compliance with RFC1991;  this
34    format is only created if a special option is active.
35
36
37   Some Notes on OpenPGP / PGP Compatibility:
38   ==========================================
39
40      * PGP 5.x does not accept V4 signatures for anything other than
41        key material.  The GnuPG option --force-v3-sigs mimics this
42        behavior.
43
44      * PGP 5.x does not recognize the "five-octet" lengths in
45        new-format headers or in signature subpacket lengths.
46
47      * PGP 5.0 rejects an encrypted session key if the keylength
48        differs from the S2K symmetric algorithm. This is a bug in its
49        validation function.
50
51      * PGP 5.0 does not handle multiple one-pass signature headers and
52        trailers. Signing one will compress the one-pass signed literal
53        and prefix a V3 signature instead of doing a nested one-pass
54        signature.
55
56      * When exporting a private key, PGP 2.x generates the header
57        "BEGIN PGP SECRET KEY BLOCK" instead of "BEGIN PGP PRIVATE KEY
58        BLOCK". All previous versions ignore the implied data type, and
59        look directly at the packet data type.
60
61      * In a clear-signed signature, PGP 5.0 will figure out the correct
62        hash algorithm if there is no "Hash:" header, but it will reject
63        a mismatch between the header and the actual algorithm used. The
64        "standard" (i.e. Zimmermann/Finney/et al.) version of PGP 2.x
65        rejects the "Hash:" header and assumes MD5. There are a number
66        of enhanced variants of PGP 2.6.x that have been modified for
67        SHA-1 signatures.
68
69      * PGP 5.0 can read an RSA key in V4 format, but can only recognize
70        it with a V3 keyid, and can properly use only a V3 format RSA
71        key.
72
73      * Neither PGP 5.x nor PGP 6.0 recognize ElGamal Encrypt and Sign
74        keys. They only handle ElGamal Encrypt-only keys.
75
76
77   Parts of this document are taken from:
78   ======================================
79
80                          OpenPGP Message Format
81                    draft-ietf-openpgp-formats-07.txt
82
83
84    Copyright 1998 by The Internet Society. All Rights Reserved.
85
86    This document and translations of it may be copied and furnished to
87    others, and derivative works that comment on or otherwise explain it
88    or assist in its implementation may be prepared, copied, published
89    and distributed, in whole or in part, without restriction of any
90    kind, provided that the above copyright notice and this paragraph
91    are included on all such copies and derivative works.  However, this
92    document itself may not be modified in any way, such as by removing
93    the copyright notice or references to the Internet Society or other
94    Internet organizations, except as needed for the purpose of
95    developing Internet standards in which case the procedures for
96    copyrights defined in the Internet Standards process must be
97    followed, or as required to translate it into languages other than
98    English.
99
100    The limited permissions granted above are perpetual and will not be
101    revoked by the Internet Society or its successors or assigns.
102
103