System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
Originally Published: 2015-07-13
Article Number
Applies To
RSA Product/Service Type: C# Client
Issue
System.OutOfMemoryException: Insufficient memory to continue the execution of the program. at System.Runtime.InteropServices.Marshal.AllocCoTaskMem(Int32 cb) at Rsa.KeyManagerClient.RkmBase.CreateKM_CS_IF_DATA(String string_data, Int32 int_data, Byte[] in_data, Int32 in_data_len, Byte[] in_data2, Int32 in_data2_len) at Rsa.KeyManagerClient.RkmBase.SetCSInterfaceData(SWIGTYPE_p_r_km_key_ctx_st key_ctx, SWIGTYPE_p_r_km_key_st key, String string_data, Int32 int_data, Byte[] in_data, Int32 in_data_len, Byte[] in_data2, Int32 in_data2_len) at Rsa.KeyManagerClient.RkmContext.EncryptByClass(String keyClass, Byte[] plainText, RkmCryptoFormatIdentifier format, RkmKey& key) at rkmcs_threaded.Program.singleEncrypt(RkmKey& key, Byte[] plainText) at System.Runtime.InteropServices.Marshal.AllocCoTaskMem(Int32 cb) at Rsa.KeyManagerClient.RkmBase.CreateKM_CS_IF_DATA(String string_data, Int32 int_data, Byte[] in_data, Int32 in_data_len, Byte[] in_data2, Int32 in_data2_len) at Rsa.KeyManagerClient.RkmBase.SetCSInterfaceData(SWIGTYPE_p_r_km_key_ctx_st key_ctx, SWIGTYPE_p_r_km_key_st key, String string_data, Int32 int_data, Byte[] in_data, Int32 in_data_len, Byte[] in_data2, Int32 in_data2_len) at Rsa.KeyManagerClient.RkmContext.EncryptByClass(String keyClass, Byte[] plainText, RkmCryptoFormatIdentifier format, RkmKey& key) at rkmcs_threaded.Program.singleEncrypt(RkmKey& key, Byte[] plainText)
Cause
Resolution
public static void EncryptionAndDecryptionReusingKey()
{
byte[] cipherText1;
byte[] decryptedData1;
byte[] cipherText2;
byte[] decryptedData2;
RkmKey encryptionKey;
RkmKey decryptionKey;
// Encrypt the first plaintext using a key retrieved by Key Class.
cipherText1 = kmContext.EncryptByClass(SampleUtility.SampleKeyClass, plainText, RkmCryptoFormatIdentifier.Default,
out encryptionKey);
// Encrypt the second plaintext using the key from the first encryption.
cipherText2 = encryptionKey.Encrypt(plainText2);
// Decrypt the first ciphertext using the key retrieved by key ID.
decryptedData1 = kmContext.DecryptByCipherText(cipherText1, out decryptionKey);
// Decrypt the second ciphertext using the key from the first decryption.
decryptedData2 = decryptionKey.Decrypt(cipherText2);
// Output the results.
DumpData("Result1", SampleUtility.StringToByteArray(plainText), cipherText1, decryptedData1);
DumpData("Result2", SampleUtility.StringToByteArray(plainText2), cipherText2, decryptedData2);
if (SampleUtility.ByteArrayToString(decryptedData1).CompareTo(plainText) != 0 ||
SampleUtility.ByteArrayToString(decryptedData2).CompareTo(plainText2) != 0)
{
throw new Exception("Decryption failed");
}
else
{
Console.WriteLine("Decryption succeeded");
}
// Clean up the extracted keys
encryptionKey.Dispose();
decryptionKey.Dispose();
}
Related Articles
RSA Identity Governance & Lifecycle Entitlements Data Collector (EDC) failure EC[31002] 112Number of Views AFX failure when Proxy is enabled without defining Proxy Host or Port values in RSA Governance & Lifecycle 142Number of Views Error message "Error: java.lang.IllegalArgumentException: Window boundary must be positive" in the RSA SecurID Authenticat… 120Number of Views Unable to create RADIUS profiles via the RSA Authentication Manager Security Console 397Number of Views Get Java Auth API sample code to authenticate consistently with 'Requires Name Lock' enabled 37Number of Views
Trending Articles
How to manipulate imported RSA SecurID Software Token(s) on an iPhone or iPad device RSA-2026-10: RSA Authentication Manager Security Update for Third-Party Component Vulnerabilities RSA SecurID Desktop Token 5.0.3 for Windows Administrator's Guide RSA SecurID Software Token 4.2.1 for Mac OS X Administrator's Guide Authentication Manager Security Console and Operations Console Inaccessible After Certificate Update
Don't see what you're looking for?