public PA_DATA(AsnElt body) { //if (body.Sub.Length != 2) //{ // throw new System.Exception("PA-DATA should contain two elements"); //} //Console.WriteLine("tag: {0}", body.Sub[0].Sub[1].TagString); type = (Interop.PADATA_TYPE)body.Sub[0].Sub[0].GetInteger(); byte[] valueBytes = body.Sub[1].Sub[0].GetOctetString(); if (type == Interop.PADATA_TYPE.PA_PAC_REQUEST) { value = new KERB_PA_PAC_REQUEST(AsnElt.Decode(body.Sub[1].Sub[0].CopyValue())); } else if (type == Interop.PADATA_TYPE.ENC_TIMESTAMP) { // TODO: parse PA-ENC-TIMESTAMP } else if (type == Interop.PADATA_TYPE.AP_REQ) { // TODO: parse AP_REQ } }