# Goals of this document ``` Target audience: developers (not end users) Prior knowledge of the reader? - Software development - Basics of encryption Entry point to writing software that uses OpenPGP Help to getting started as a user of any implementation (OpenPGP JS, Sequoia PGP, ...) The RFC explains lots of details (which bit goes where) that are crucial for implementers, but unimportant for software developers who use OpenPGP through a library. This text aims to describe OpenPGP at the "library-level." ``` ## A companion for the OpenPGP RFC The [OpenPGP Standard](https://www.rfc-editor.org/rfc/rfc4880.html) defines *"format and methods"* to *"provide services including confidentiality, key management, authentication, and digital signatures"*. This chapter is intended as a companion to the RFC. It does not aim to teach cryptographic concepts. The idea is to go over various common OpenPGP artifacts, as they are currently used, to get an overview. There are lots of details that these notes will not cover. Among these omitted details are differences between current v4 artifacts and older variants, which were used in previous incarnations of (Open)PGP. (Note: OpenPGP v3 artifacts are still in use as of this writing, the RFC requires implementations to accept them. v3 artifacts are still very much relevant for real world OpenPGP usage and implementations) We will also ignore most details about how OpenPGP artifacts are encoded, as well as how OpenPGP data is arranged to allow for streaming operation.