public KerberosArmoredRequest(IFastArmor fastArmor, Checksum checkSum, EncryptedData encFastReq)
 {
     FastArmor  = fastArmor;
     CheckSum   = checkSum;
     ArmorKey   = null;
     EType      = (long)encFastReq.etype.Value;
     EncFastReq = encFastReq;
 }
 public KerberosArmoredRequest(IFastArmor fastArmor, Checksum checkSum, long etype, byte[] armorKey, KerberosFastRequest fastReq)
 {
     FastArmor = fastArmor;
     CheckSum  = checkSum;
     ArmorKey  = armorKey;
     EType     = etype;
     FastReq   = fastReq;
 }
 public KerberosArmoredRequest(IFastArmor fastArmor, Checksum checkSum, EncryptedData encFastReq)
 {
     FastArmor = fastArmor;
     CheckSum = checkSum;
     ArmorKey = null;
     EType = (long) encFastReq.etype.Value;
     EncFastReq = encFastReq;
 }
 public KerberosArmoredRequest(IFastArmor fastArmor, Checksum checkSum, long etype, byte[] armorKey, KerberosFastRequest fastReq)
 {
     FastArmor = fastArmor;
     CheckSum = checkSum;
     ArmorKey = armorKey;
     EType = etype;
     FastReq = fastReq;
 }
        public PaFxFastReq CreateTgsPaFxFast(
            EncryptionKey armorKey,
            KerberosTicket armorTicket,
            FastOptions fastOptions,
            ApOptions apOptions,
            Asn1SequenceOf<PA_DATA> seqPaData,
            string sName,
            byte[] apReq,
            IFastArmor armor = null
            )
        {
            string domain = this.Context.Realm.Value;
            PrincipalName sname = new PrincipalName(new KerbInt32((int)PrincipalType.NT_SRV_INST),
                KerberosUtility.String2SeqKerbString(sName.Split('/')));

            KDC_REQ_BODY innerKdcReqBody = CreateKdcRequestBody(KdcOptions.CANONICALIZE | KdcOptions.FORWARDABLE | KdcOptions.RENEWABLE, sname);

            //Generate checksum
            var checksumType = KerberosUtility.GetChecksumType(Context.SelectedEType);
            var chksum = KerberosUtility.GetChecksum(
                armorKey.keyvalue.ByteArrayValue,
                apReq,
                (int)KeyUsageNumber.FAST_REQ_CHECKSUM,
                checksumType);
            Checksum checkSum = new Checksum(new KerbInt32((int)checksumType), new Asn1OctetString(chksum));

            KerberosFastRequest fastReq = new KerberosFastRequest(fastOptions, seqPaData, innerKdcReqBody);
            KerberosArmoredRequest armoredReq
                = new KerberosArmoredRequest(armor, checkSum, (long)Context.SelectedEType, armorKey.keyvalue.ByteArrayValue, fastReq);
            PA_FX_FAST_REQUEST paFxFastReq = new PA_FX_FAST_REQUEST();
            paFxFastReq.SetData(PA_FX_FAST_REQUEST.armored_data, armoredReq.FastArmoredReq);
            PaFxFastReq paFxfast = new PaFxFastReq(paFxFastReq);
            return paFxfast;
        }