|
@@ -177,6 +177,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
}
|
|
}
|
|
|
|
|
|
func TestUnmarshalPublicKeyFromPEM(t *testing.T) {
|
|
func TestUnmarshalPublicKeyFromPEM(t *testing.T) {
|
|
|
|
+ t.Parallel()
|
|
pubKey := []byte(`# A good key
|
|
pubKey := []byte(`# A good key
|
|
-----BEGIN NEBULA ED25519 PUBLIC KEY-----
|
|
-----BEGIN NEBULA ED25519 PUBLIC KEY-----
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
@@ -230,6 +231,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
}
|
|
}
|
|
|
|
|
|
func TestUnmarshalX25519PublicKey(t *testing.T) {
|
|
func TestUnmarshalX25519PublicKey(t *testing.T) {
|
|
|
|
+ t.Parallel()
|
|
pubKey := []byte(`# A good key
|
|
pubKey := []byte(`# A good key
|
|
-----BEGIN NEBULA X25519 PUBLIC KEY-----
|
|
-----BEGIN NEBULA X25519 PUBLIC KEY-----
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
@@ -240,6 +242,12 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAAAAAAA=
|
|
AAAAAAAAAAAAAAAAAAAAAAA=
|
|
-----END NEBULA P256 PUBLIC KEY-----
|
|
-----END NEBULA P256 PUBLIC KEY-----
|
|
|
|
+`)
|
|
|
|
+ oldPubP256Key := []byte(`# A good key
|
|
|
|
+-----BEGIN NEBULA ECDSA P256 PUBLIC KEY-----
|
|
|
|
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
|
|
+AAAAAAAAAAAAAAAAAAAAAAA=
|
|
|
|
+-----END NEBULA ECDSA P256 PUBLIC KEY-----
|
|
`)
|
|
`)
|
|
shortKey := []byte(`# A short key
|
|
shortKey := []byte(`# A short key
|
|
-----BEGIN NEBULA X25519 PUBLIC KEY-----
|
|
-----BEGIN NEBULA X25519 PUBLIC KEY-----
|
|
@@ -256,15 +264,22 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
|
-END NEBULA X25519 PUBLIC KEY-----`)
|
|
-END NEBULA X25519 PUBLIC KEY-----`)
|
|
|
|
|
|
- keyBundle := appendByteSlices(pubKey, pubP256Key, shortKey, invalidBanner, invalidPem)
|
|
|
|
|
|
+ keyBundle := appendByteSlices(pubKey, pubP256Key, oldPubP256Key, shortKey, invalidBanner, invalidPem)
|
|
|
|
|
|
// Success test case
|
|
// Success test case
|
|
k, rest, curve, err := UnmarshalPublicKeyFromPEM(keyBundle)
|
|
k, rest, curve, err := UnmarshalPublicKeyFromPEM(keyBundle)
|
|
assert.Len(t, k, 32)
|
|
assert.Len(t, k, 32)
|
|
require.NoError(t, err)
|
|
require.NoError(t, err)
|
|
- assert.Equal(t, rest, appendByteSlices(pubP256Key, shortKey, invalidBanner, invalidPem))
|
|
|
|
|
|
+ assert.Equal(t, rest, appendByteSlices(pubP256Key, oldPubP256Key, shortKey, invalidBanner, invalidPem))
|
|
assert.Equal(t, Curve_CURVE25519, curve)
|
|
assert.Equal(t, Curve_CURVE25519, curve)
|
|
|
|
|
|
|
|
+ // Success test case
|
|
|
|
+ k, rest, curve, err = UnmarshalPublicKeyFromPEM(rest)
|
|
|
|
+ assert.Len(t, k, 65)
|
|
|
|
+ require.NoError(t, err)
|
|
|
|
+ assert.Equal(t, rest, appendByteSlices(oldPubP256Key, shortKey, invalidBanner, invalidPem))
|
|
|
|
+ assert.Equal(t, Curve_P256, curve)
|
|
|
|
+
|
|
// Success test case
|
|
// Success test case
|
|
k, rest, curve, err = UnmarshalPublicKeyFromPEM(rest)
|
|
k, rest, curve, err = UnmarshalPublicKeyFromPEM(rest)
|
|
assert.Len(t, k, 65)
|
|
assert.Len(t, k, 65)
|