public virtual DeviceProfile UnpackAndVerify() {
var Text = Encoding.UTF8.GetString(SignedData.Payload);
//Goedel.Debug.Trace.WriteLine("Data as signed {0}", Text);
var Unpacked = DeviceProfile.FromTagged (Text);
Unpacked.Unpack();
var SigningKey = Unpacked.DeviceSignatureKey.KeyPair;
var Verify = SignedData.Verify(Unpacked.UDF, SigningKey);
Throw.IfNot(Verify, "Device signature does not verify");
_Signed = Unpacked;
return Unpacked;
}