2 // TestSuite.System.Security.Cryptography.RNGCryptoServiceProviderTest.cs
5 // Mark Crichton (crichton@gimp.org)
6 // Sebastien Pouliot (sebastien@ximian.com)
8 // Copyright (C) 2004 Novell (http://www.novell.com)
12 using System.Security.Cryptography;
14 using NUnit.Framework;
16 namespace MonoTests.System.Security.Cryptography {
19 public class RNGCryptoServiceProviderTest {
21 private RNGCryptoServiceProvider _algo;
26 _algo = new RNGCryptoServiceProvider ();
30 public void ConstructorByteArray ()
32 byte[] array = new byte [16];
33 byte[] seed = (byte[]) array.Clone ();
34 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (seed);
35 Assert.AreEqual (BitConverter.ToString (array), BitConverter.ToString (seed), "Seed");
39 public void ConstructorByteArray_Null ()
42 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (array);
46 public void ConstructorCsp_Null ()
48 CspParameters csp = null;
49 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (csp);
53 public void ConstructorString ()
55 string s = "Mono seed";
56 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (s);
60 public void ConstructorString_Null ()
63 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (s);
67 public void GetBytes ()
69 byte[] random = new byte [25];
70 // The C code doesn't throw an exception yet.
71 _algo.GetBytes (random);
75 public void GetNonZeroBytes ()
77 byte[] random = new byte [25];
78 // This one we can check...
79 _algo.GetNonZeroBytes (random);
81 foreach (Byte rnd_byte in random) {
82 Assert.IsTrue(rnd_byte != 0);
87 [ExpectedException (typeof (ArgumentNullException))]
88 public void GetBytesNull ()
90 _algo.GetBytes (null);
94 [ExpectedException (typeof (ArgumentNullException))]
95 public void GetNonZeroBytesNull ()
97 _algo.GetNonZeroBytes (null);