mirror of
https://github.com/go-i2p/go-i2p.git
synced 2025-07-04 13:32:52 -04:00

* add initial ed25519 (not done) * fix common.Certificate compile error * add more functions to crypto.SigningPrivateKey interface, not everyone implements them yet
47 lines
784 B
Go
47 lines
784 B
Go
package crypto
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestDSA(t *testing.T) {
|
|
var sk DSAPrivateKey
|
|
var pk DSAPublicKey
|
|
var err error
|
|
sk, err = sk.Generate()
|
|
if err == nil {
|
|
zeros := 0
|
|
for b, _ := range sk {
|
|
if b == 0 {
|
|
zeros ++
|
|
}
|
|
}
|
|
if zeros == len(sk) {
|
|
t.Logf("key generation yielded all zeros")
|
|
t.Fail()
|
|
}
|
|
pk, err = sk.Public()
|
|
if err == nil {
|
|
data := make([]byte, 512)
|
|
var sig []byte
|
|
var signer Signer
|
|
signer, err = sk.NewSigner()
|
|
if err == nil {
|
|
sig, err = signer.Sign(data)
|
|
if err == nil {
|
|
t.Logf("sig=%q", sig)
|
|
var verify Verifier
|
|
verify, err = pk.NewVerifier()
|
|
if err == nil {
|
|
err = verify.Verify(data, sig)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if err != nil {
|
|
t.Logf("failed: %s", err.Error())
|
|
t.Fail()
|
|
}
|
|
}
|