public static ProofOfPossession GetInstance(object obj)
{
if (obj is ProofOfPossession)
return (ProofOfPossession)obj;
if (obj is Asn1TaggedObject)
return new ProofOfPossession((Asn1TaggedObject)obj);
throw new ArgumentException("Invalid object: " + obj.GetType().Name, "obj");
}