ProtectedMemory.Protect Method
.NET Framework 3.0
Protects the userData parameter and returns a byte array.
Namespace: System.Security.Cryptography
Assembly: System.Security (in system.security.dll)
Assembly: System.Security (in system.security.dll)
public static void Protect ( byte[] userData, MemoryProtectionScope scope )
public static function Protect ( userData : byte[], scope : MemoryProtectionScope )
Not applicable.
Parameters
- userData
The byte array containing data in memory to protect. The array must be a multiple of 16 bytes.
- scope
One of the MemoryProtectionScope values.
This method can be used to protect data in memory. Note that the method does not make a copy of the data, but encrypts the byte array in place. The userData parameter must be 16 bytes in length or a multiple of 16 bytes.
Support for this method is available in Microsoft Windows XP and later operating systems.
The following code example shows how to use data protection.
using System; using System.Security.Cryptography; public class MemoryProtectionSample { // Create aditional entropy for use with the Protect method. static byte [] s_aditionalEntropy = { 9, 8, 7, 6, 5 }; public static void Main() { // Create the original data to be encrypted (The data length should be a multiple of 16). byte [] secret = { 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 }; // Encrypt the data in memory. The result is stored in the same same array as the original data. ProtectedMemory.Protect( secret, MemoryProtectionScope.SameLogon ); // Decrypt the data in memory and store in the original array. ProtectedMemory.Unprotect( secret, MemoryProtectionScope.SameLogon ); } }
import System.*;
import System.Security.Cryptography.*;
public class MemoryProtectionSample
{
// Create aditional entropy for use with the Protect method.
private static ubyte sAditionalEntropy[] = { 9, 8, 7, 6, 5 };
public static void main(String args[])
{
// Create the original data to be encrypted (The data length should
// be a multiple of 16).
ubyte secret[] = { 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 };
// Encrypt the data in memory. The result is stored in the same same
// array as the original data.
ProtectedMemory.Protect(secret, MemoryProtectionScope.SameLogon);
// Decrypt the data in memory and store in the original array.
ProtectedMemory.Unprotect(secret, MemoryProtectionScope.SameLogon);
} //main
} //MemoryProtectionSample
Community Additions
ADD
Show: