Decrypt Error Occurred While Decoding Oaep Padding
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have system.security.cryptography.cryptographicexception: error occurred while decoding oaep padding Meta Discuss the workings and policies of this site About Us error occurred while decoding oaep padding powershell Learn more about Stack Overflow the company Business Learn more about hiring developers or posting ads with error occurred while decoding oaep padding rsacryptoserviceprovider us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just rsa oaep padding c# like you, helping each other. Join them; it only takes a minute: Sign up RSACryptoServiceProvider error occurred while decoding OAEP padding up vote -1 down vote favorite I've read many articles regarding this problem and I cannot seem to find an answer that solves my bug. I have a WCF service; my app sends the public
Oaep Padding Example
RSA key generated and the service returns a set of AES key+IV encrypted with the public key, but when my app then tries to decrypt the keys, I either get "Error occurred while decoding OAEP padding" (if I pass true to useOAEP) or "The parameter is incorrect" (if I pass false to useOAEP). For simplicity, this is the entire code used put together, leaving Exception handling aside: public static string EncryptAES(byte[] aesKey, byte[] aesIV, string publicRSAKey) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(publicRSAKey); byte[] encryptedKey = rsa.Encrypt(aesKey, true); byte[] encryptedIV = rsa.Encrypt(aesIV, true); return string.Format("{0}{1}{2}", Convert.ToBase64String(encryptedKey), "\n", Convert.ToBase64String(encryptedIV)); } } public static byte[] Decrypt(string aesKeyorIV) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { byte[] buffer = Convert.FromBase64String(aesKeyorIV); rsa.FromXmlString(RSA_Private_Key); return rsa.Decrypt(buffer, true); //Exception thrown here } } (RSA_Private_Key is generated in the static constructor using rsa.ToXmlString(true)) (publicRSAKey is passed to the service by sending rsa.ToXmlString(false) in the static constuctor) I tried using Encrypt/Decrypt(byte[], false) but it didn't make any difference. I also tried Array.Reverse(encryptedKey) a
here for a quick overview of the site Help Center Detailed answers to any questions you might have
Sviconfig Finished With An Error. Exit Code: 4
Meta Discuss the workings and policies of this site About Us Learn rsacryptoserviceprovider oaep padding more about Stack Overflow the company Business Learn more about hiring developers or posting ads with us error occurred while decoding oaep padding saml Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like http://stackoverflow.com/questions/32322113/rsacryptoserviceprovider-error-occurred-while-decoding-oaep-padding you, helping each other. Join them; it only takes a minute: Sign up Error occurred while decoding OAEP Padding C# up vote -3 down vote favorite Below is my code and error is in the Title. I encrypted using private key but I decrypt using the same private key I ran into the error mentioned in http://stackoverflow.com/questions/37758733/error-occurred-while-decoding-oaep-padding-c-sharp the title, not really sure what is the underlying cause of the error. Any help in that regard will be highly appreciated. Class Program { static void Main(string[] args) { string thumbPrint = "SomeValue"; EncryptUserName("Steve", thumbPrint, true, true); } public static void EncryptUserName(string textToEncript, string certificateThumbprint, bool searchLocalMachine, bool searchUser) { X509Certificate2 cert = FindCertificate(certificateThumbprint, searchLocalMachine, searchUser); RSACryptoServiceProvider rsaEncryptor = (RSACryptoServiceProvider)cert.PublicKey.Key; byte[] cipherData = rsaEncryptor.Encrypt(Encoding.UTF8.GetBytes(textToEncript), true); var encryptedString = Convert.ToBase64String(cipherData); Console.WriteLine(encryptedString); } public static byte[] Decrypt(byte[] encryptedData, bool fOAEP, X509Certificate2 certificate) { if (encryptedData == null) { throw new ArgumentNullException("encryptedData"); } if (certificate == null) { throw new ArgumentNullException("certificate"); } if (certificate.PrivateKey == null) { throw new ApplicationException("Certificate provided has no private key"); } Console.WriteLine(certificate.PrivateKey); using (RSACryptoServiceProvider provider = (RSACryptoServiceProvider)certificate.PrivateKey) { return provider.Decrypt(encryptedData, fOAEP); } } public static string CertificateDecrypt(string textToDecript, string certificateThumbprint, bool searchLocalMachine, bool searchUser) { X509Certificate2 certificate = FindCertificate(certificateThumbprint, searchLocalMachine, searchUser); byte[] bytesArray = Convert.FromBase64String(textToDecript); //Decrypt(bytesArray, true, certificate); return Encoding.UTF8.GetString(Decrypt(bytesArray, true, certificate)); } public static X509Certificate2 LoadCertificate(StoreName storeName, StoreLocation storeLocation, string thumbprint) { X509Store st
ASP.NET Community Standup Forums Help Home/ASP.NET Forums/General ASP.NET/Security/Error occurred http://forums.asp.net/t/1430677.aspx?Error+occurred+while+decoding+OAEP+padding while decoding OAEP padding Error occurred while decoding http://beachbc.blogspot.com/2008/12/rsa-in-c-net.html OAEP padding RSS 11 replies Last post Jan 29, 2010 01:13 PM by anvilis ‹ Previous Thread|Next Thread › Print Share Twitter Facebook Email Shortcuts Active Threads Unanswered Threads Unresolved Threads Support Options Advanced Search oaep padding Related Links GuidanceSamples Reply Meetu Choudh... Member 278 Points 269 Posts Error occurred while decoding OAEP padding Jun 03, 2009 02:32 AM|Meetu Choudhary|LINK Hi, Iam half th way of my problem,,. Please Help I have succesfuly encrypted the text using public key of digital error occurred while signatures but while decrypting it. i am getting error Error occurred while decoding OAEP padding my piece of code #region Test Encryption public void a() { using (var rsa = new RSACryptoServiceProvider()) { // This String consists only Public Key Information String publicKeyOnly = rsa.ToXmlString(false); // This String consists both Private/Public Key information String publicPrivate = rsa.ToXmlString(true); } } //encrypt public byte[] b(String publicKeyOnly) { String s = "
encrypted string.Decrypt: takes an encrypted string and returns a plain text string.1)Server:Generate a RSA public and private key.Pass the public key in plain text to the client2)Client:Pass a plain string to RSAObjectPass encrypted string from RSAObject to Server.3)Server:Pass encrypted string to RSAObjectUse decrypted string from RSAObject.PROBLEMS:My origional code for encrypting and decrypting data:public string Encrypt(string plainText) { try { byte[] plainData = Encoding.UTF32.GetBytes(plainText); byte[] encryptedData = crypto.Encrypt(plainData, true); return Encoding.UTF32.GetString(encryptedData); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return ""; } } public string Decrypt(string encryptedText) { try { byte[] encryptedData = Encoding.UTF32.GetString(encryptedText); byte[] plainData = crypto.Decrypt(encryptedData, true); return Encoding.UTF32.GetString(plainData); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return ""; } }All I would get during decryption from crypto, a RSACryptoServiceProvider object, was one of two exceptions:Bad LengthError occurred while decoding OAEP padding.After reading up more on RSA I discovered that a UTF32(32bit) can't properly handle the data returned by crypto.Encrypt, therefore some of my bytes were being changed in the conversion process to UTF32, and therefor could not be decrypted. use Convert.ToBase64String(string)SOLUTION:Encrypt method needs to convert to a 64bit string.Decrypt method needs to convert from a 64bit string.fixed and working source code:public string Encrypt(string plainText) { try { byte[] plainData = Encoding.UTF32.GetBytes(plainText); byte[] encryptedData = crypto.Encrypt(plainData, true); return Convert.ToBase64String(encryptedData); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return ""; } } public string Decrypt(string encryptedText) { try { byte[] encryptedData = Convert.FromBase64String(encryptedText); byte[] plainData = crypto.Decrypt(encryptedData, true); return Encoding.UTF32.GetString(plainData); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return ""; } }cheers,-bb Posted by Bradley Beach at 3:38 PM Labels: .NET, c#, cryptogrophy, Network, programmi