void Dispose(bool disposing) { if (disposing) { if (cert != null) { cert.Dispose(); } if (key != null) { key.Dispose(); } if (keyContainer != null) { keyContainer.Dispose(); } if (keyContainerName != null) { CryptAcquireContext(out keyContainer, keyContainerName, null, ProviderType.RsaSecureChannel, ContextFlags.DeleteKeySet); Utility.CloseInvalidOutSafeHandle(keyContainer); } GC.SuppressFinalize(this); } }