public byte[] DecryptData(byte[] data)
        {
            var cryptoService = new NetFXCryptoService(new GuessCryptoAlgorithmFactory(decryptionKey.KeyLength,
                                                                                       validationKey.KeyLength), decryptionKey, validationKey);

            var decryptedData = cryptoService.Unprotect(data);

            return(isGzipped ? Decompress(decryptedData) : decryptedData);
        }
        public FormsAuthenticationTicket Decrypt(string formsAuthCredential)
        {
            var derivedEncryptionKey = _purpose.GetDerivedEncryptionKey(_masterKeyProvider, SP800_108.DeriveKey);
            var derivedValidationKey = _purpose.GetDerivedValidationKey(_masterKeyProvider, SP800_108.DeriveKey);

            var cryptoService = new NetFXCryptoService(_cryptoAlgorithmFactory, derivedEncryptionKey, derivedValidationKey);

            SerializedTicket = cryptoService.Unprotect(CryptoUtil.HexToBinary(formsAuthCredential));

            return(FormsAuthenticationTicketSerializer.Deserialize(SerializedTicket, SerializedTicket.Length));
        }