package cert import ( "crypto/ecdsa" "fmt" "os" "testing" ) func TestCreateAndReadCert(t *testing.T) { kFile := "service.key" defer os.Remove(kFile) key, err := NewPrivateKey() if err != nil { t.Errorf("failed to create private key: %v", err) } if err := WriteKey(kFile, EncodePrivateKeyPEM(key)); err != nil { t.Errorf("failed to encode private key to pem: %v", err) } keyR, err := PrivateKeyFromFile(kFile) if err != nil { t.Errorf("failed to load private key from file: %v", err) } switch k := keyR.(type) { case *ecdsa.PrivateKey: fmt.Println("loaded back ecdsa private key") default: t.Errorf("load back a wrong private key %v", k) } buf := EncodePrivateKeyPEM(key) _, err = ParsePrivateKeyPEM(buf) if err != nil { t.Errorf("failed to parse private key from pem: %v", err) } }