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);