go_pgp/Signatures_test.go
2024-05-10 22:24:14 +02:00

77 lines
2.7 KiB
Go

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")
}
}