forked from github/dynamiclistener
40 lines
822 B
Go
40 lines
822 B
Go
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)
|
|
}
|
|
}
|