crypto: Index | Files

package armor

import ""

Package armor implements OpenPGP ASCII Armor, see RFC 4880. OpenPGP Armor is very similar to PEM except that it has an additional CRC checksum.


Package Files

armor.go encode.go


var ArmorCorrupt error = errors.StructuralError("armor invalid")

func Encode Uses

func Encode(out io.Writer, blockType string, headers map[string]string) (w io.WriteCloser, err error)

Encode returns a WriteCloser which will encode the data written to it in OpenPGP armor.

type Block Uses

type Block struct {
    Type   string            // The type, taken from the preamble (i.e. "PGP SIGNATURE").
    Header map[string]string // Optional headers.
    Body   io.Reader         // A Reader from which the contents can be read
    // contains filtered or unexported fields

A Block represents an OpenPGP armored structure.

The encoded form is:

-----BEGIN Type-----

base64-encoded Bytes
'=' base64 encoded checksum
-----END Type-----

where Headers is a possibly empty sequence of Key: Value lines.

Since the armored data can be very large, this package presents a streaming interface.

func Decode Uses

func Decode(in io.Reader) (p *Block, err error)

Decode reads a PGP armored block from the given Reader. It will ignore leading garbage. If it doesn't find a block, it will return nil, io.EOF. The given Reader is not usable after calling this function: an arbitrary amount of data may have been read past the end of the block.

Package armor imports 5 packages (graph) and is imported by 242 packages. Updated 2020-08-21. Refresh now. Tools for package owners.