File: RNGCryptoServiceProviderTest.cs

package info (click to toggle)
mono-reference-assemblies 3.12.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 604,240 kB
  • ctags: 625,505
  • sloc: cs: 3,967,741; xml: 2,793,081; ansic: 418,042; java: 60,435; sh: 14,833; makefile: 11,576; sql: 7,956; perl: 1,467; cpp: 1,446; yacc: 1,203; python: 598; asm: 422; sed: 16; php: 1
file content (100 lines) | stat: -rw-r--r-- 2,147 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//
// TestSuite.System.Security.Cryptography.RNGCryptoServiceProviderTest.cs
//
// Authors:
//      Mark Crichton (crichton@gimp.org)
//	Sebastien Pouliot  (sebastien@ximian.com)
//
// Copyright (C) 2004 Novell (http://www.novell.com)
//

using System;
using System.Security.Cryptography;

using NUnit.Framework;

namespace MonoTests.System.Security.Cryptography {

	[TestFixture]
	public class RNGCryptoServiceProviderTest {

		private RNGCryptoServiceProvider _algo;
		
		[SetUp]
		public void SetUp () 
		{
			_algo = new RNGCryptoServiceProvider ();
		}
#if !NET_2_1
		[Test]
		public void ConstructorByteArray () 
		{
			byte[] array = new byte [16];
			byte[] seed = (byte[]) array.Clone ();
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (seed);
			Assert.AreEqual (BitConverter.ToString (array), BitConverter.ToString (seed), "Seed");
		}

		[Test]
		public void ConstructorByteArray_Null () 
		{
			byte[] array = null;
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (array);
		}

		[Test]
		public void ConstructorCsp_Null () 
		{
			CspParameters csp = null;
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (csp);
		}

		[Test]
		public void ConstructorString () 
		{
			string s = "Mono seed";
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (s);
		}

		[Test]
		public void ConstructorString_Null () 
		{
			string s = null;
			RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider (s);
		}
#endif
		[Test]
		public void GetBytes () 
		{
			byte[] random = new byte [25];
			// The C code doesn't throw an exception yet.
			_algo.GetBytes (random);
		}

		[Test]
		public void GetNonZeroBytes () 
		{
			byte[] random = new byte [25];
			// This one we can check...
			_algo.GetNonZeroBytes (random);
			
			foreach (Byte rnd_byte in random) {
				Assert.IsTrue(rnd_byte != 0);
			}
		}

		[Test]
		[ExpectedException (typeof (ArgumentNullException))]
		public void GetBytesNull () 
		{
			_algo.GetBytes (null);
		}

		[Test]
		[ExpectedException (typeof (ArgumentNullException))]
		public void GetNonZeroBytesNull () 
		{
			_algo.GetNonZeroBytes (null);
		}
	}
}