• Adam Langley's avatar
    encoding/pem: be more permissive about decoding empty blocks. · b8c87a11
    Adam Langley authored
    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/10516Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Adam Langley <agl@golang.org>
    b8c87a11
pem.go 7.17 KB