Skip to content

Commit b01f065

Browse files
Emit armor headers in deterministically sorted order (#255)
1 parent 5521d83 commit b01f065

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

openpgp/armor/encode.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package armor
77
import (
88
"encoding/base64"
99
"io"
10+
"sort"
1011
)
1112

1213
var armorHeaderSep = []byte(": ")
@@ -159,8 +160,15 @@ func encode(out io.Writer, blockType string, headers map[string]string, checksum
159160
return
160161
}
161162

162-
for k, v := range headers {
163-
err = writeSlices(out, []byte(k), armorHeaderSep, []byte(v), newline)
163+
keys := make([]string, len(headers))
164+
i := 0
165+
for k := range headers {
166+
keys[i] = k
167+
i++
168+
}
169+
sort.Strings(keys)
170+
for _, k := range keys {
171+
err = writeSlices(out, []byte(k), armorHeaderSep, []byte(headers[k]), newline)
164172
if err != nil {
165173
return
166174
}

0 commit comments

Comments
 (0)