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)); } }
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)); }