public async Task <IActionResult> EmailConfirm(string cEmail) { string email = StringCipher.DecryptString(cEmail); /* * Creo que el protocolo http eventualmente cambia el cEmail porque a veces * salta la siguiente execpión al desencriptar el email * FormatException: * The input is not a valid Base-64 string as it contains a non-base 64 character, * more than two padding characters, or an illegal character among the padding characters. * * He reparado en que remplaza el '+' por un espacio * puede que haya más casos, hasta que sepa cómo solucionarlo solo queda hacer más * pruebas e ir corrigiendo los casos * * cEmail = cEmail.Replace(" ", "+"); * */ bool result = await _dbAccess.ConfirmEmail(email); if (result) { return(View("EmailConfirmado")); } else { return(RedirectToAction("Login")); } }
public IActionResult EditarPassword(string cEmail) { string email = StringCipher.DecryptString(cEmail); HttpContext.Session.SetString("email", email); return(View()); }
public void DecryptString_ThrowsException_WhenPassPhraseIsNotBase64() { const string text = "100% fluffy goodness"; const string phrase = "!incorrect!"; Assert.Throws <FormatException>( () => StringCipher.DecryptString(text, phrase)); }
public void EncryptString_CanEncryptAndDecryptString() { const string text = "100% fluffy goodness"; const string phrase = "cfVMjtOJ8/eJx0037MHNym3awHj9iAUBdM/bmiLUvlc="; var cipher = StringCipher.EncryptString(text, phrase); var decrypted = StringCipher.DecryptString(cipher, phrase); Assert.Equal(text, decrypted); }
public void DecryptString_ThrowsException_WhenIncorrectPassPhraseIsUsed() { const string text = "100% fluffy goodness"; var phrase = StringCipher.CreateRandomKey(); var cipher = StringCipher.EncryptString(text, phrase); var newPhrase = StringCipher.CreateRandomKey(); Assert.Throws <CryptographicException>( () => StringCipher.DecryptString(cipher, newPhrase)); }
public void DecryptString_ThrowsException_WhenPassPhraseIsNull() { const string goodText = "100% fluffy goodness"; const string badText = null; const string goodPhrase = "cfVMjtOJ8/eJx0037MHNym3awHj9iAUBdM/bmiLUvlc="; const string badPhrase = null; Assert.Throws <ArgumentNullException>( () => StringCipher.DecryptString(goodText, badPhrase)); Assert.Throws <ArgumentNullException>( () => StringCipher.DecryptString(badText, goodPhrase)); }