]> Cypherpunks repositories - gostls13.git/commit
encoding/pem: be more permissive about decoding empty blocks.
authorAdam Langley <agl@golang.org>
Sat, 30 May 2015 16:40:17 +0000 (09:40 -0700)
committerAdam Langley <agl@golang.org>
Sun, 31 May 2015 18:14:29 +0000 (18:14 +0000)
commitb8c87a1155a12f624a5bc746fd6aab260fbaf20a
tree27e660f9e7a6283087162fe6215d0976474db639
parent8cd191b6caf506210bb50d0506c6354a2cb46a10
encoding/pem: be more permissive about decoding empty blocks.

As noted in bug #10980, an empty PEM block is encoded as
-----BEGIN foo-----
-----END foo-----

However, Decode failed to process this.

RFC 1421 doesn't answer what the encoding of the empty block should be
because PEM messages always contain at least one header. However, PEM
these days is just the encoding format – nobody uses the rest of PEM any
longer.

Having the empty block not contain a newline seems most correct because
https://tools.ietf.org/html/rfc1421#section-9 clearly says that the
optional “pemtext” carries the leading new-line with it. So if omitted,
the new-line should be omitted too.

None the less, this changes makes encoding/pem permissive, accepting any
number of blank lines in an empty PEM block.

Fixes #10980

Change-Id: If36bdfbf991ee281eccd50b56ddc95f24c6debb2
Reviewed-on: https://go-review.googlesource.com/10516
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Adam Langley <agl@golang.org>
src/encoding/pem/pem.go
src/encoding/pem/pem_test.go