crypto: golang.org/x/crypto/openpgp/armor Index | Files

package armor

import "golang.org/x/crypto/openpgp/armor"

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

Index

Package Files

armor.go encode.go

Variables

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

func Encode

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

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-----
Headers

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

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 33 packages. Updated about 8 hours ago. Refresh now. Tools for package owners.