main
Raw Download raw file
 1package packet
 2
 3import (
 4	"io"
 5
 6	"github.com/ProtonMail/go-crypto/openpgp/errors"
 7)
 8
 9type Marker struct{}
10
11const markerString = "PGP"
12
13// parse just checks if the packet contains "PGP".
14func (m *Marker) parse(reader io.Reader) error {
15	var buffer [3]byte
16	if _, err := io.ReadFull(reader, buffer[:]); err != nil {
17		return err
18	}
19	if string(buffer[:]) != markerString {
20		return errors.StructuralError("invalid marker packet")
21	}
22	return nil
23}
24
25// SerializeMarker writes a marker packet to writer.
26func SerializeMarker(writer io.Writer) error {
27	err := serializeHeader(writer, packetTypeMarker, len(markerString))
28	if err != nil {
29		return err
30	}
31	_, err = writer.Write([]byte(markerString))
32	return err
33}