package go_pgp import ( "testing" "github.com/ProtonMail/go-crypto/openpgp" ) const ( testPayload = `test data` ) func TestCreateSignature(t *testing.T) { initTest() if sig, err := CreateSignature([]byte(testPayload), nil); err == nil || len(sig) > 0 { t.Error("TestCreateSignature: test case 1: if the signer entity is undefined the function should not succeed") } if sig, err := CreateSignature([]byte(testPayload), testSenderEntity); err != nil || len(sig) == 0 { t.Error("TestCreateSignature: test case 2: if the signer entity is defined the function should succeed") } } func TestCreateTextSignature(t *testing.T) { initTest() if sig, err := CreateTextSignature(testPayload, nil); err == nil || len(sig) > 0 { t.Error("TestCreateTextSignature: test case 1: if the signer entity is undefined the function should not succeed") } if sig, err := CreateTextSignature(testPayload, testSenderEntity); err != nil || len(sig) == 0 { t.Error("TestCreateTextSignature: test case 2: if the signer entity is defined the function should succeed") } } func TestCreateArmoredSignature(t *testing.T) { initTest() if sig, err := CreateArmoredSignature([]byte(testPayload), nil); err == nil || len(sig) > 0 { t.Error("TestCreateArmoredSignature: test case 1: if the signer entity is undefined the function should not succeed") } if sig, err := CreateArmoredSignature([]byte(testPayload), testSenderEntity); err != nil || len(sig) == 0 { t.Error("TestCreateArmoredSignature: test case 2: if the signer entity is defined the function should succeed") } } func TestCreateArmoredTextSignature(t *testing.T) { initTest() if sig, err := CreateArmoredTextSignature(testPayload, nil); err == nil || len(sig) > 0 { t.Error("TestCreateArmoredTextSignature: test case 1: if the signer entity is undefined the function should not succeed") } if sig, err := CreateArmoredTextSignature(testPayload, testSenderEntity); err != nil || len(sig) == 0 { t.Error("TestCreateArmoredTextSignature: test case 2: if the signer entity is defined the function should succeed") } } func TestCheckSignature(t *testing.T) { initTest() armoredSignature, _ := CreateArmoredSignature([]byte(testPayload), testSenderEntity) e, err := CheckSignature(EntityList{EntityList: openpgp.EntityList{&testSenderEntity.Entity}}, []byte(testPayload), []byte(armoredSignature)) if e == nil || err != nil { t.Error("TestCheckSignature: test case 1: verification of the signature should have succeeded") } e, err = CheckSignature(EntityList{EntityList: openpgp.EntityList{&testReceiverEntity.Entity}}, []byte(testPayload), []byte(armoredSignature)) if e != nil || err == nil { t.Error("TestCheckSignature: test case 2: verification of the signature should not have succeeded") } }