main
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}