private PopoPrivKey(Asn1TaggedObject obj)
        {
            this.tagNo = obj.TagNo;

            switch (tagNo)
            {
            case thisMessage:
                this.obj = DerBitString.GetInstance(obj, false);
                break;

            case subsequentMessage:
                this.obj = SubsequentMessage.ValueOf(DerInteger.GetInstance(obj, false).Value.IntValue);
                break;

            case dhMAC:
                this.obj = DerBitString.GetInstance(obj, false);
                break;

            case agreeMAC:
                this.obj = PKMacValue.GetInstance(obj, false);
                break;

            case encryptedKey:
                this.obj = EnvelopedData.GetInstance(obj, false);
                break;

            default:
                throw new ArgumentException("unknown tag in PopoPrivKey", "obj");
            }
        }
 public PopoPrivKey(SubsequentMessage msg)
 {
     this.tagNo = subsequentMessage;
     this.obj   = msg;
 }