Skip to content

Commit 10f547f

Browse files
committed
failing test. lineReader.Read hangs forever
1 parent 80dd18f commit 10f547f

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

openpgp/keys_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@ package openpgp
22

33
import (
44
"bytes"
5+
"io"
56
"strings"
67
"testing"
78
"time"
89

10+
goerrors "errors"
11+
912
"github.com/keybase/go-crypto/openpgp/errors"
1013
"github.com/keybase/go-crypto/openpgp/packet"
14+
"golang.org/x/crypto/openpgp/armor"
1115
)
1216

1317
func TestKeyExpiry(t *testing.T) {
@@ -368,6 +372,30 @@ func TestOelna(t *testing.T) {
368372
testKey(t, oelna, "oelna")
369373
}
370374

375+
type timeoutReader struct {
376+
r io.Reader
377+
t time.Time
378+
}
379+
380+
var errTimeout = goerrors.New("timeout")
381+
382+
func (tr timeoutReader) Read(p []byte) (n int, err error) {
383+
if time.Now().After(tr.t) {
384+
return 0, errTimeout
385+
}
386+
return tr.r.Read(p)
387+
}
388+
389+
func TestCorrupt(t *testing.T) {
390+
sr := strings.NewReader(corrupt)
391+
tr := timeoutReader{sr, time.Now().Add(5 * time.Second)}
392+
393+
_, err := ReadArmoredKeyRing(tr)
394+
if err.Error() != armor.ArmorCorrupt.Error() {
395+
t.Fatal("expected armor.ArmorCorrupt, got ", err)
396+
}
397+
}
398+
371399
func TestBrentMaxwell(t *testing.T) {
372400
testKey(t, brentmaxwell, "brentmaxwell")
373401
}
@@ -3882,6 +3910,32 @@ CgkQPz43h/BcVhvFKACfXS4YmNzOAwDZqVUIIVJ83xpdcpgAoP3MfQMG2T+sCpzKClSgo9BdQ9SG
38823910
38833911
-----END PGP PUBLIC KEY BLOCK-----`
38843912

3913+
const corrupt = `-----BEGIN PGP PUBLIC KEY BLOCK-----
3914+
3915+
mQGiBEAP4PcRBADDRPKYk4zN+8bmKufn++lYvyRXy2QvT+CB5+eqlZu+ub5AQQdYXP440J1W22Fk
3916+
HCiMBRY8AK7XxNB7RfixHU57fLBHdj9QfpeeRdAr7z9QAAOtBdVwa9sjVJV5iJigIMgrDfzalfa+
3917+
4jfAyfgL7X5gSwMfbtSrGfjoGGmXxI5aEwCg/3BidcIrFxoscJI4imq/K+nNn2cD/RIT6kbdS0WK
3918+
Fc47ibu2/Y8xtV5G9vdhgdKUr1ujr2xJyRRC3Eb+4GhAFRXtqbTZ6thvFIdHjbwafKoeDSzcpgo+
3919+
nnFlPp0yfOC5WYJ+IiS2FEZbv9QBOw4L9t8T4y0vzD6eujcwSLO22/M5Q5yF2oanbk9Yp/8S7/m2
3920+
NdB3fNLLA/43kEJIgAYkSv51Rlci/nLVKrAYcyEMQt9D2W7LzIlR3JpxvFVjhfS1nyJuEqM2RRdQ
3921+
mJl6aL9WVQpqQxC1xO26A9puOWbhw232A1Gd7jRz77Ue74l3wKj/ZPXW90NaGQ8WK9V8PFrVxkOL
3922+
BGkf0F+pFAn32Vj8D0HOxGBxZbGpNbQWb2VsbmEgPG9lbG5hQG9lbG5hLmRlPohXBBARAgAXBQJA
3923+
D+D3BwsJCAcDAgoCGQEFGwMAAAAACgkQPz43h/BcVhsw3ACgjMu7dbscsEHTqUsgwY8bgFloDoUA
3924+
oL+YMsxdSLEij+RaS6Yq/1sHxZztuQINBEAP4PcQCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFu
3925+
uUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZ
3926+
zf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd
3927+
5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv88
3928+
4bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1Xp
3929+
Mgs7AAICB/9Hxkw9SnbtECQ2LXR0nvhagTaq2CXPqpDtJ4MwRD+oJL4DQaY7EK7hii8eDTq8umxT
3930+
nICdJcxC9hFgXA4ob0NpHwclbmyEHywj4T7gkwOe+jCzwP6MA965tg7O+pqiwdzAlPVTZFMoEMYz
3931+
dvkXNLamRcc1bVUv7YvpVTv+O/BrpZ6P+x4GHGfNl4W3PtQL+O8u2XmoZXh6+tx6PIgNNGxODrWx
3932+
0vYhLzBShsXMALrxmPe5DYPjAd2BR8frpDnawB0GNg5ll2gmoeJOLsYG2/MRa+7CobPja1Fnfop0
3933+
H/71ymWlaxPzMapNVQRw3vdBdGdp55srSFRDvLUHmm1tpHX3iEwEGBECAAwFAkAP4PcFGwwAAAAA
3934+
CgkQPz43h/BcVhvFKACfXS4YmNzOAwDZqVUIIVJ83xpdcpgAoP3MfQMG2T+sCpzKClSgo9BdQ9SG
3935+
=w6Zv
3936+
3937+
`
3938+
38853939
const brentmaxwell = `-----BEGIN PGP PUBLIC KEY BLOCK-----
38863940
Version: GnuPG v2
38873941

0 commit comments

Comments
 (0)