Cette partie est un ensemble de commentaires pour aider un implémenteur, particulièrement avec des visées sur la compatibilité arrière. Les précédentes implémentations de PGP ne sont pas compatible avec OpenPGP. Souvent les différences sont petites, mais de petites différences sont souvent plus contrariantes que de grandes différences. D'où, cette liste de problèmes et de pièges potentiels est pour un développeur qui essaie d'être compatible vers l'arrière.
PGP 5.x n'accepte les signatures V4 que pour les clés matérielles.
PGP 5.x ne reconnaît pas les longueurs de cinq octets dans les nouveaux formats d'en-tête ou les longueurs des sous paquets de signature.
PGP 5.0 rejette une clé de session cryptée si la longueur de la clé diffère de l'algorithme symétrique S2K. Cela constitue un bug dans sa fonction de validation.
PGP 5.0 ne gère pas les multiples en-têtes et pied des signatures à un passage. Le fait d'en signer une compressera le libellé signé à un passage et mettra en-tête une signature V3 au lieu de faire une signature à un passage de sous programmes imbriqués.
En exportant une clé privée, PGP 2.x génère l'en-tête << début du bloc de clé secrète PGP >> [BEGIN PGP SECRET KEY BLOCK] au lieu de << début du bloc de clé privée PGP >> [Begin PGP private key block]. Toues les versions précédentes ignorent le type de données concernées, et regardent directement le type des données du paquet.
Dans une signature signée en clair, PGP 5.0 trouvera l'algorithme correct de hachage s'il n'y a pas l'en-tête << Hash: >>, mais il rejettera une disparité entre l'en-tête et l'algorithme effectivement utilisé. La version << standard >> (i.e. Zimmermann/Finney/ et al.) de PGP 2.x rejette l'en-tête << Hash: >> et utilise MD5. Il y a un nombre de variantes améliorées de PGP 2.6.x qui ont été modifiées pour les signatures SHA-1.
PGP 5.0 peut lire une clé RSA dans un format V4, mais peut seulement la reconnaître avec un identifiant de clé V3, et ne peut utiliser correctement qu'une clé RSA au format V3.
Ni PGP 5.x ni PGP 6.0 ne reconnaissent les clés de signature et cryptage Elgamal. Ils manipulent seulement des clés limitées au cryptage Elgamal.
Il y a beaucoup de façons possibles pour deux clés d'avoir le même contenu de clé, mais des empreintes différentes (et donc des identifiants de clés). Peut-être que le plus intéressant est une clé RSA qui a été mise à niveau au format V4, mais comme une empreinte V4 est construite en hachant le temps de création de la clé ainsi que d'autres choses, deux clés V4 crées à des moments différents, avec cependant le même contenu de clé, auront différentes empreintes.
Si une implémentation utilise zlib pour intéragir avec PGP 2.x, alors le paramètre << windowBits >> devra être mis à -13.