Commit 376e1090 authored by Tobias Weingartner's avatar Tobias Weingartner Committed by Matt Holt

Fix PrivateKeyBytes to error out and fail tests on error.

parent a682100c
......@@ -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")
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment