Exemplo n.º 1
0
        public KerberosFastResponse(KrbFastResponse fastResponse)
        {
            FastResponse = fastResponse;
            int len = fastResponse.padata.Elements.Length;

            PaData = new IPaData[len];
            for (int i = 0; i < len; i++)
            {
                PaData[i] = PaDataParser.ParseRepPaData(fastResponse.padata.Elements[i]);
            }
        }
        public void Decrypt(byte[] armorKey)
        {
            ArmorKey = armorKey;
            var decrypted = KerberosUtility.Decrypt(
                (Cryptographic.EncryptionType)EncFastRep.etype.Value,
                armorKey,
                EncFastRep.cipher.ByteArrayValue,
                (int)KeyUsageNumber.FAST_ENC);
            KrbFastResponse krbFastRep = new KrbFastResponse();

            krbFastRep.BerDecode(new Asn1DecodingBuffer(decrypted));
            FastRep = new KerberosFastResponse(krbFastRep);
        }
Exemplo n.º 3
0
        public KerberosFastResponse GetKerberosFastRep(EncryptionKey key)
        {
            var armoredRep = GetArmoredRep();
            var decrypted  = KerberosUtility.Decrypt((EncryptionType)key.keytype.Value,
                                                     key.keyvalue.ByteArrayValue,
                                                     armoredRep.enc_fast_rep.cipher.ByteArrayValue,
                                                     (int)KeyUsageNumber.FAST_REP
                                                     );

            KerberosUtility.OnDumpMessage("KRB5:KrbFastArmoredRep(enc-fast-req)",
                                          "An encrypted KrbFastRep in PA_FX_FAST_REPLY",
                                          KerberosUtility.DumpLevel.PartialMessage,
                                          decrypted);

            KrbFastResponse fastrep = new KrbFastResponse();

            fastrep.BerDecode(new Asn1DecodingBuffer(decrypted));
            return(new KerberosFastResponse(fastrep));
        }