45 lines
969 B
Go
45 lines
969 B
Go
package appcrypto
|
|
|
|
import "testing"
|
|
|
|
func TestSignAndVerifyWithPEM(t *testing.T) {
|
|
privatePEM, err := UstvariZasebniKljucECDSAP256PEM()
|
|
if err != nil {
|
|
t.Fatalf("generate key: %v", err)
|
|
}
|
|
|
|
message := []byte("hello world")
|
|
signature, err := PodpisiSporociloSPEM(privatePEM, message)
|
|
if err != nil {
|
|
t.Fatalf("sign: %v", err)
|
|
}
|
|
|
|
ok, err := PreveriPodpisSPEM(privatePEM, message, signature)
|
|
if err != nil {
|
|
t.Fatalf("verify error: %v", err)
|
|
}
|
|
if !ok {
|
|
t.Fatalf("expected valid signature")
|
|
}
|
|
}
|
|
|
|
func TestVerifyFailsForDifferentMessage(t *testing.T) {
|
|
privatePEM, err := UstvariZasebniKljucECDSAP256PEM()
|
|
if err != nil {
|
|
t.Fatalf("generate key: %v", err)
|
|
}
|
|
|
|
signature, err := PodpisiSporociloSPEM(privatePEM, []byte("a"))
|
|
if err != nil {
|
|
t.Fatalf("sign: %v", err)
|
|
}
|
|
|
|
ok, err := PreveriPodpisSPEM(privatePEM, []byte("b"), signature)
|
|
if err != nil {
|
|
t.Fatalf("verify error: %v", err)
|
|
}
|
|
if ok {
|
|
t.Fatalf("expected signature to fail")
|
|
}
|
|
}
|