System.Security.Cryptography.RSACryptoServiceProvider.Dispose C# (CSharp) Method

Dispose() protected method

Dispose the key handles
protected Dispose ( bool disposing ) : void
disposing bool
return void
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (_safeKeyHandle != null && !_safeKeyHandle.IsClosed)
            {
                _safeKeyHandle.Dispose();
            }
            if (_safeProvHandle != null && !_safeProvHandle.IsClosed)
            {
                _safeProvHandle.Dispose();
            }
        }

Usage Example

 private static RSACryptoServiceProvider GenKeys(int keySize)
 {
     var parameters = new CspParameters();
     RSACryptoServiceProvider provider;
     parameters.Flags = CspProviderFlags.NoPrompt | CspProviderFlags.UseMachineKeyStore | CspProviderFlags.UseExistingKey;
     parameters.KeyNumber = (int)KeyNumber.Exchange;
     parameters.KeyContainerName = System.Reflection.Assembly.GetEntryAssembly().FullName;
     try
     {
         //RSAHelper: Attempting to open existing key container
         provider = new RSACryptoServiceProvider(parameters);
         var pa = provider.ExportParameters(false);
         if (pa.Modulus.Length * 8 == keySize) return provider;
         //Found existing key, but not of the correct size
         provider.PersistKeyInCsp = false;
         provider.Clear();
         provider.Dispose();
         GenerateRsaKeys(parameters, keySize, out provider);
     }
     catch
     {
         //No existing Key Container was found in the machine keystore
         GenerateRsaKeys(parameters, keySize, out provider);
     }
     finally
     {
         GC.Collect();
         GC.WaitForPendingFinalizers();
     }
     return provider;
 }
All Usage Examples Of System.Security.Cryptography.RSACryptoServiceProvider::Dispose