Compiler Error Message: CS0103: The name 'ProtectedData' does not exist in the current context

c#, cryptography

Solution

You need to add a using statement for `System.Security.Cryptography` and you need a reference to `System.Security.dll`. From your question it appears you just added the reference and not the using statement.

Instead of the using statement you can also fully qualify the references like this:

byte[] encryptedData = System.Security.Cryptography.ProtectedData.Protect(
            Encoding.Unicode.GetBytes(ToInsecureString(input)), salt,
            System.Security.Cryptography.DataProtectionScope.CurrentUser);

Problem

I am getting a runtime error when trying to use System.Security's crypto code. I added a reference to System.Security and everything looks good but I am getting this error: "Compiler Error Message: CS0103: The name 'ProtectedData' does not exist in the current context" here is the code that is throwing the error. ``` public static string EncryptString(SecureString input, string entropy) { byte[] salt = Encoding.Unicode.GetBytes(entropy); byte[] encryptedData = ProtectedData.Protect( Encoding.Unicode.GetBytes(ToInsecureString(input)), salt, DataProtectionScope.CurrentUser); return Convert.ToBase64String(encryptedData); } ``` Thanks, Sam

Original source