コード例 #1
0
 private static void SetCadataTtlCookie(AesCryptoServiceProvider aes, int flags, HttpRequest httpRequest, HttpResponse httpResponse)
 {
     using (ICryptoTransform cryptoTransform = aes.CreateEncryptor())
     {
         FbaModule.DetermineKeyIntervalsIfNecessary();
         bool       flag       = (flags & 4) == 4;
         bool       flag2      = FbaModule.IsMowa(httpRequest, flag);
         ExDateTime exDateTime = ExDateTime.UtcNow.AddTicks(flag2 ? FbaModule.fbaMowaKeyTTL.Ticks : (flag ? FbaModule.fbaPrivateKeyTTL.Ticks : FbaModule.fbaPublicKeyTTL.Ticks));
         byte[]     array      = new byte[9];
         ExBitConverter.Write(exDateTime.UtcTicks, array, 0);
         array[8] = (byte)flags;
         byte[] inArray = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
         FbaModule.CreateAndAddCookieToResponse(httpRequest, httpResponse, "cadataTTL", Convert.ToBase64String(inArray));
     }
 }
コード例 #2
0
        internal static void SetCadataCookies(HttpApplication httpApplication)
        {
            HttpContext  context  = httpApplication.Context;
            HttpRequest  request  = context.Request;
            HttpResponse response = context.Response;

            byte[] rgb  = null;
            byte[] rgb2 = null;
            string s    = context.Items["Authorization"] as string;
            int    num  = (int)context.Items["flags"];
            HttpCookieCollection cookies = request.Cookies;

            using (AesCryptoServiceProvider aesCryptoServiceProvider = new AesCryptoServiceProvider())
            {
                aesCryptoServiceProvider.GenerateKey();
                aesCryptoServiceProvider.GenerateIV();
                rgb  = aesCryptoServiceProvider.Key;
                rgb2 = aesCryptoServiceProvider.IV;
                using (ICryptoTransform cryptoTransform = aesCryptoServiceProvider.CreateEncryptor())
                {
                    byte[] bytes   = Encoding.Unicode.GetBytes(s);
                    byte[] inArray = cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length);
                    FbaModule.CreateAndAddCookieToResponse(request, response, "cadata", Convert.ToBase64String(inArray));
                }
                FbaModule.SetCadataTtlCookie(aesCryptoServiceProvider, num, request, response);
            }
            X509Certificate2         sslCertificate           = FbaModule.GetSslCertificate(request);
            RSACryptoServiceProvider rsacryptoServiceProvider = sslCertificate.PublicKey.Key as RSACryptoServiceProvider;

            byte[] inArray2 = rsacryptoServiceProvider.Encrypt(rgb, true);
            byte[] inArray3 = rsacryptoServiceProvider.Encrypt(rgb2, true);
            FbaModule.CreateAndAddCookieToResponse(request, response, "cadataKey", Convert.ToBase64String(inArray2));
            FbaModule.CreateAndAddCookieToResponse(request, response, "cadataIV", Convert.ToBase64String(inArray3));
            byte[] bytes2   = Encoding.Unicode.GetBytes("Fba Rocks!");
            byte[] inArray4 = rsacryptoServiceProvider.Encrypt(bytes2, true);
            FbaModule.CreateAndAddCookieToResponse(request, response, "cadataSig", Convert.ToBase64String(inArray4));
        }