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 Error message "Error: java.lang.IllegalArgumentException: Window boundary must be positive" in the RSA SecurID Authenticat… 120Number of Views AFX failure when Proxy is enabled without defining Proxy Host or Port values in RSA Governance & Lifecycle 143Number of Views How to capture packets (pcap) using SilverTap for RSA Web Threat Detection 58Number of Views How to correctly handle New PIN Rejected in custom RSA Authentication Agent 27Number of Views
Trending Articles
How to manipulate imported RSA SecurID Software Token(s) on an iPhone or iPad device How to implement SAML SSO Authentication with Microsoft Azure Active Directory and RSA Identity Governance & Lifecycle RSA Authentication Manager 8.9 Patches and Hotfixes Readme "No decryption codes were found in the zip file" error when decrypting RSA SecurID tokens How to download full kits, service packs, and patches from RSA Link for RSA Identity Governance & Lifecycle
Don't see what you're looking for?