packer-cn/helper/communicator/sshkey/generate_test.go

41 lines
803 B
Go

package sshkey
import (
"testing"
"github.com/google/go-cmp/cmp"
"golang.org/x/crypto/ssh"
)
func TestGeneratePair_parseable(t *testing.T) {
tests := []struct {
t Algorithm
}{
{DSA},
{RSA},
{ECDSA},
{ED25519},
}
for _, tt := range tests {
t.Run(tt.t.String(), func(t *testing.T) {
got, err := GeneratePair(tt.t, nil, 0)
if err != nil {
t.Errorf("GeneratePair() error = %v", err)
return
}
privateKey, err := ssh.ParsePrivateKey(got.Private)
if err != nil {
t.Fatal(err)
}
publicKey, _, _, _, err := ssh.ParseAuthorizedKey(got.Public)
if err != nil {
t.Fatalf("%v: %s", err, got.Public)
}
if diff := cmp.Diff(privateKey.PublicKey().Marshal(), publicKey.Marshal()); diff != "" {
t.Fatalf("wrong public key: %s", diff)
}
})
}
}