1package libkb
2
3import (
4	"testing"
5
6	keybase1 "github.com/keybase/client/go/protocol/keybase1"
7)
8
9type TestGenericKey struct {
10	GenericKey
11}
12
13func (k *TestGenericKey) SignToString(msg []byte) (sig string, id keybase1.SigIDBase, err error) {
14	sig = "TestSignature"
15	return
16}
17
18func InitTestKey(k *PGPKeyBundle) {
19	k.GPGFallbackKey = &TestGenericKey{k}
20}
21
22var gpgDummyKey = `-----BEGIN PGP PRIVATE KEY BLOCK-----
23Version: GnuPG v2
24
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
63=jcas
64-----END PGP PRIVATE KEY BLOCK-----
65`
66
67var msg = []byte("test")
68
69func TestSignWithTestKey(t *testing.T) {
70	k, _, err := ReadOneKeyFromString(gpgDummyKey)
71	if err != nil {
72		t.Fatal(err)
73	}
74
75	if _, _, err := k.SignToString(msg); err == nil {
76		t.Fatal("was able to sign with dummy skey")
77	}
78
79	// Set a fallback key to use when SimpleSign fails.
80	InitTestKey(k)
81	if _, _, err := k.SignToString(msg); err != nil {
82		t.Fatal(err)
83	}
84}
85