Fix PrivateKeyBytes to error out and fail tests on error.

This commit is contained in:
Tobias Weingartner 2016-04-17 13:17:42 -07:00 committed by Matt Holt
parent a682100c5e
commit 376e1090a3

View File

@ -8,6 +8,7 @@ import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"errors"
"os"
"runtime"
"testing"
@ -95,22 +96,25 @@ func TestSaveAndLoadECCPrivateKey(t *testing.T) {
// PrivateKeysSame compares the bytes of a and b and returns true if they are the same.
func PrivateKeysSame(a, b crypto.PrivateKey) bool {
return bytes.Equal(PrivateKeyBytes(a), PrivateKeyBytes(b))
var abytes, bbytes []byte
var err error
if abytes, err = PrivateKeyBytes(a); err != nil {
return false
}
if bbytes, err = PrivateKeyBytes(b); err != nil {
return false
}
return bytes.Equal(abytes, bbytes)
}
// PrivateKeyBytes returns the bytes of DER-encoded key.
func PrivateKeyBytes(key crypto.PrivateKey) []byte {
var keyBytes []byte
func PrivateKeyBytes(key crypto.PrivateKey) ([]byte, error) {
switch key := key.(type) {
case *rsa.PrivateKey:
keyBytes = x509.MarshalPKCS1PrivateKey(key)
return x509.MarshalPKCS1PrivateKey(key), nil
case *ecdsa.PrivateKey:
var err error
var t *testing.T
keyBytes, err = x509.MarshalECPrivateKey(key)
if err != nil {
t.Error(err)
}
return x509.MarshalECPrivateKey(key)
}
return keyBytes
return nil, errors.New("Bad juju")
}