diff --git a/security/serialization/serialization_test.go b/security/serialization/serialization_test.go
index 0ee4df8..5a4dcd4 100644
--- a/security/serialization/serialization_test.go
+++ b/security/serialization/serialization_test.go
@@ -50,19 +50,16 @@
 	return ioutil.ReadAll(vr)
 }
 
-type signerAdapter struct {
-	s security.Signer
-}
-
-func (s signerAdapter) Sign(message []byte) (security.Signature, error) { return s.s.Sign(nil, message) }
-func (s signerAdapter) PublicKey() security.PublicKey                   { return s.s.PublicKey() }
-
 func newSigner() Signer {
 	key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
 	if err != nil {
 		panic(err)
 	}
-	return signerAdapter{security.NewInMemoryECDSASigner(key)}
+	p, err := security.CreatePrincipal(security.NewInMemoryECDSASigner(key), nil, nil)
+	if err != nil {
+		panic(err)
+	}
+	return p
 }
 
 func matchesErrorPattern(err error, pattern string) bool {
