Merge pull request #216 from ilkerde/master
[mono.git] / mcs / class / corlib / System.Security.Cryptography / RNGCryptoServiceProvider.cs
index cded574758d9950d3728de97b79ae6d130c34afa..e0ffb2e8e8b50e5b0ef58b367a8f29fedc23b188 100644 (file)
 // Great Power without form."
 // -- The Verrah Rubicon of Verena, Book One
 
-using System;
 using System.Globalization;
 using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
 using System.Text;
 
 namespace System.Security.Cryptography {
        
-#if NET_1_0
-       public class RNGCryptoServiceProvider : RandomNumberGenerator {
-#else
-       public sealed class RNGCryptoServiceProvider : RandomNumberGenerator {
+#if !NET_2_1
+       [ComVisible (true)]
 #endif
+       public sealed class RNGCryptoServiceProvider : RandomNumberGenerator {
                private static object _lock;
                private IntPtr _handle;
 
@@ -59,7 +58,7 @@ namespace System.Security.Cryptography {
                        _handle = RngInitialize (null);
                        Check ();
                }
-               
+#if !NET_2_1
                public RNGCryptoServiceProvider (byte[] rgb)
                {
                        _handle = RngInitialize (rgb);
@@ -82,7 +81,7 @@ namespace System.Security.Cryptography {
                                _handle = RngInitialize (Encoding.UTF8.GetBytes (str));
                        Check ();
                }
-
+#endif
                private void Check () 
                {
                        if (_handle == IntPtr.Zero) {
@@ -146,5 +145,12 @@ namespace System.Security.Cryptography {
                                _handle = IntPtr.Zero;
                        }
                }
+
+#if NET_4_0 || MOONLIGHT
+               protected override void Dispose (bool disposing)
+               {
+                       base.Dispose (disposing);
+               }
+#endif
        }
 }