package openpgp

Import Path
	golang.org/x/crypto/openpgp (on go.dev)

Dependency Relation
	imports 11 packages, and imported by 2 packages

Involved Source Files canonical_text.go keys.go Package openpgp implements high level operations on OpenPGP messages. write.go
Package-Level Type Names (total 15, in which 9 are exported)
/* sort exporteds by: | */
An Entity represents the components of an OpenPGP key: a primary public key (which must be a signing key), one or more identities claimed by that key, and zero or more subkeys, which may be encryption keys. // indexed by Identity.Name PrimaryKey *packet.PublicKey PrivateKey *packet.PrivateKey Revocations []*packet.Signature Subkeys []Subkey Serialize writes the public part of the given Entity to w, including signatures from other entities. No private key material will be output. SerializePrivate serializes an Entity, including private key material, but excluding signatures from other entities, to the given Writer. Identities and subkeys are re-signed in case they changed since NewEntry. If config is nil, sensible defaults will be used. SignIdentity adds a signature to e, from signer, attesting that identity is associated with e. The provided identity must already be an element of e.Identities and the private key of signer must have been decrypted if necessary. If config is nil, sensible defaults will be used. func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) func ReadEntity(packets *packet.Reader) (*Entity, error) func github.com/go-git/go-git/v5/plumbing/object.(*Commit).Verify(armoredKeyRing string) (*Entity, error) func github.com/go-git/go-git/v5/plumbing/object.(*Tag).Verify(armoredKeyRing string) (*Entity, error) func ArmoredDetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) (err error) func ArmoredDetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error func DetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error func DetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) func Sign(output io.Writer, signed *Entity, hints *FileHints, config *packet.Config) (input io.WriteCloser, err error) func (*Entity).SignIdentity(identity string, signer *Entity, config *packet.Config) error
An EntityList contains one or more Entities. DecryptionKeys returns all private keys that are valid for decryption. KeysById returns the set of keys that have the given key id. KeysByIdAndUsage returns the set of keys with the given id that also meet the key usage given by requiredUsage. The requiredUsage is expressed as the bitwise-OR of packet.KeyFlag* values. T : KeyRing func ReadArmoredKeyRing(r io.Reader) (EntityList, error) func ReadKeyRing(r io.Reader) (el EntityList, err error)
FileHints contains metadata about encrypted files. This metadata is, itself, encrypted. FileName hints at the name of the file that should be written. It's truncated to 255 bytes if longer. It may be empty to suggest that the file should not be written to disk. It may be equal to "_CONSOLE" to suggest the data should not be written to disk. IsBinary can be set to hint that the contents are binary data. ModTime contains the modification time of the file, or the zero time if not applicable. func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) func Sign(output io.Writer, signed *Entity, hints *FileHints, config *packet.Config) (input io.WriteCloser, err error) func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error)
An Identity represents an identity claimed by an Entity and zero or more assertions by other entities about that claim. // by convention, has the form "Full Name (comment) <email@example.com>" SelfSignature *packet.Signature Signatures []*packet.Signature UserId *packet.UserId
A Key identifies a specific public key in an Entity. This is either the Entity's primary key or a subkey. Entity *Entity PrivateKey *packet.PrivateKey PublicKey *packet.PublicKey SelfSignature *packet.Signature func EntityList.DecryptionKeys() (keys []Key) func EntityList.KeysById(id uint64) (keys []Key) func EntityList.KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) func KeyRing.DecryptionKeys() []Key func KeyRing.KeysById(id uint64) []Key func KeyRing.KeysByIdUsage(id uint64, requiredUsage byte) []Key
A KeyRing provides access to public and private keys. DecryptionKeys returns all private keys that are valid for decryption. KeysById returns the set of keys that have the given key id. KeysByIdAndUsage returns the set of keys with the given id that also meet the key usage given by requiredUsage. The requiredUsage is expressed as the bitwise-OR of packet.KeyFlag* values. EntityList func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error)
MessageDetails contains the result of parsing an OpenPGP encrypted and/or signed message. // the private key used to decrypt the message, if any. // the list of recipient key ids. // true if the message was encrypted. // true if the message is signed. // true if a passphrase could have decrypted the message. // the metadata of the contents // the signature packet itself, if v4 (default) If IsSigned is true and SignedBy is non-zero then the signature will be verified as UnverifiedBody is read. The signature cannot be checked until the whole of UnverifiedBody is read so UnverifiedBody must be consumed until EOF before the data can be trusted. Even if a message isn't signed (or the signer is unknown) the data may contain an authentication code that is only checked once UnverifiedBody has been consumed. Once EOF has been seen, the following fields are valid. (An authentication code failure is reported as a SignatureError error when reading from UnverifiedBody.) // nil if the signature is good. // the signature packet if it is a v2 or v3 signature // the key of the signer, if available. // the key id of the signer, if any. // the contents of the message. func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error)
A PromptFunction is used as a callback by functions that may need to decrypt a private key, or prompt for a passphrase. It is called with a list of acceptable, encrypted private keys and a boolean that indicates whether a passphrase is usable. It should either decrypt a private key or return a passphrase to try. If the decrypted private key or given passphrase isn't correct, the function will be called again, forever. Any error returned will be passed up. func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error)
A Subkey is an additional public key in an Entity. Subkeys can be used for encryption. PrivateKey *packet.PrivateKey PublicKey *packet.PublicKey Sig *packet.Signature
Package-Level Functions (total 27, in which 15 are exported)
ArmoredDetachSign signs message with the private key from signer (which must already have been decrypted) and writes an armored signature to w. If config is nil, sensible defaults will be used.
ArmoredDetachSignText signs message (after canonicalising the line endings) with the private key from signer (which must already have been decrypted) and writes an armored signature to w. If config is nil, sensible defaults will be used.
CheckArmoredDetachedSignature performs the same actions as CheckDetachedSignature but expects the signature to be armored.
CheckDetachedSignature takes a signed file and a detached signature and returns the signer if the signature is valid. If the signer isn't known, ErrUnknownIssuer is returned.
DetachSign signs message with the private key from signer (which must already have been decrypted) and writes the signature to w. If config is nil, sensible defaults will be used.
DetachSignText signs message (after canonicalising the line endings) with the private key from signer (which must already have been decrypted) and writes the signature to w. If config is nil, sensible defaults will be used.
Encrypt encrypts a message to a number of recipients and, optionally, signs it. hints contains optional information, that is also encrypted, that aids the recipients in processing the message. The resulting WriteCloser must be closed after the contents of the file have been written. If config is nil, sensible defaults will be used.
NewCanonicalTextHash reformats text written to it into the canonical form and then applies the hash h. See RFC 4880, section 5.2.1.
NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a single identity composed of the given full name, comment and email, any of which may be empty but must not contain any of "()<>\x00". If config is nil, sensible defaults will be used.
ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file.
ReadEntity reads an entity (public key, identities, subkeys etc) from the given Reader.
ReadKeyRing reads one or more public/private keys. Unsupported keys are ignored as long as at least a single valid key is found.
ReadMessage parses an OpenPGP message that may be signed and/or encrypted. The given KeyRing should contain both public keys (for signature verification) and, possibly encrypted, private keys for decrypting. If config is nil, sensible defaults will be used.
Sign signs a message. The resulting WriteCloser must be closed after the contents of the file have been written. hints contains optional information that aids the recipients in processing the message. If config is nil, sensible defaults will be used.
SymmetricallyEncrypt acts like gpg -c: it encrypts a file with a passphrase. The resulting WriteCloser must be closed after the contents of the file have been written. If config is nil, sensible defaults will be used.
Package-Level Variables (total 4, in which 3 are exported)
PrivateKeyType is the armor type for a PGP private key.
PublicKeyType is the armor type for a PGP public key.
SignatureType is the armor type for a PGP signature.
Package-Level Constants (only one, which is unexported)