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