Attesation.ValidateSigner() in attesation.go verifies the identity of the issuer of an attestation. Currently the issuer is either a "key" (e.g. the public policy key) or a "tpm"; this check and verification of the signature are hard-coded into the routine. We could make this more flexible by overloading the auth.Prin type to implement signature verification:
type Verifier interface {
Verify(text [] bytes) bool
}
type Prin struct {
Verifier
Type string,
Key Bytes,
}