2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Security / Test / System.Security.Cryptography.Xml / DSAKeyValueTest.cs
1 //
2 // DSAKeyValueTest.cs - NUnit Test Cases for DSAKeyValue
3 //
4 // Author:
5 //      Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
9
10 using System;
11 using System.Security.Cryptography;
12 using System.Security.Cryptography.Xml;
13 using System.Xml;
14
15 using NUnit.Framework;
16
17 namespace MonoTests.System.Security.Cryptography.Xml {
18
19         [TestFixture]
20         public class DSAKeyValueTest : Assertion {
21
22                 [Test]
23                 public void GenerateKey () 
24                 {
25                         DSAKeyValue dsa1 = new DSAKeyValue ();
26                         AssertNotNull ("Key", dsa1.Key);
27                         XmlElement xmlkey = dsa1.GetXml ();
28
29                         DSAKeyValue dsa2 = new DSAKeyValue ();
30                         dsa2.LoadXml (xmlkey);
31
32                         Assert ("dsa1==dsa2", (dsa1.GetXml ().OuterXml) == (dsa2.GetXml ().OuterXml));
33
34                         DSA key = dsa1.Key;
35                         DSAKeyValue dsa3 = new DSAKeyValue (key);
36                         Assert ("dsa3==dsa1", (dsa3.GetXml ().OuterXml) == (dsa1.GetXml ().OuterXml));
37                         Assert ("dsa3==dsa2", (dsa3.GetXml ().OuterXml) == (dsa2.GetXml ().OuterXml));
38                 }
39
40                 [Test]
41                 public void ImportKey () 
42                 {
43                         string dsaKey = "<KeyValue xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><DSAKeyValue><P>xc+QZRWTgr390gzwNXF+WzoepZkvAQvCzfCm+YyXj0KPoeHHeSc5ORzXQw81V+7XJR3gupvlI4F7lW9YC538l+3eqGm8IQlCIS+U+7ICTDOFFKevqsYX0BnjO0vvE4aAtDyxfSOTCOAo1cJ+6G6xgcC1JGIBEYCtg1tH8wUewDE=</P><Q>yyfZb0S/rimXl9ScJ3zIba2oGl8=</Q><G>crLazMg+vgI7u6+Idgi9iTLdRa4fptat3gdY97zcc857+OVdmT+lVRpK3okWpmBbw2wSffU8QltwFf42BVs+/HGUOUo2hNqSSXgzl1i+1frO7/cqooHVcy5WX0xxaIPsKcREPI5pNPj/3g8apTgErLMGsHkFdngwbMed9DArTks=</G><Y>FlAozo17wV/LCMRrtnmMKxVQNpidJVkZNM1/0eR65x8giwPs6yXzJmFT8f2tmPJY2FIOAtp5JYin4xUhwIHF452Gg50wUrjV6WTGkiC+gzLC2fVIyGlVsFecLj6ue7J+MACG+b3NQnxFuT5maQnPnEeuGgjLXfwYsAR1vfU0Gas=</Y><J>+UPMvUPq9Fo6Q1fr2oEYDxfGMMtfdoQmVBxI+TkUYQsReodRzBbnvGV1uPLWTpKKd/uJNUHO/QGb05Cvc6u49/AToDJIyi4e01hTLNCzeQk/Hj19gowb5wkTIjyaH04VyPE5zYoTYfuu3Y3Q</J><Seed>+cvoO7bzdpAwAjnDDApPzBCl6zg=</Seed><PgenCounter>ATM=</PgenCounter></DSAKeyValue></KeyValue>";
44                         XmlDocument doc = new XmlDocument ();
45                         doc.LoadXml (dsaKey);
46
47                         DSAKeyValue dsa1 = new DSAKeyValue ();
48                         dsa1.LoadXml (doc.DocumentElement);
49
50                         string s = (dsa1.GetXml ().OuterXml);
51                         AssertEquals ("DSA Key", dsaKey, s);
52                 }
53
54                 [Test]
55                 [ExpectedException (typeof (ArgumentNullException))]
56                 public void InvalidValue1 () 
57                 {
58                         string badKey = "<Test></Test>";
59                         XmlDocument doc = new XmlDocument ();
60                         doc.LoadXml (badKey);
61
62                         DSAKeyValue dsa1 = new DSAKeyValue ();
63                         dsa1.LoadXml (null);
64                 }
65
66                 [Test]
67                 [ExpectedException (typeof (CryptographicException))]
68                 public void InvalidValue2 () 
69                 {
70                         string badKey = "<Test></Test>";
71                         XmlDocument doc = new XmlDocument ();
72                         doc.LoadXml (badKey);
73
74                         DSAKeyValue dsa1 = new DSAKeyValue ();
75                         dsa1.LoadXml (doc.DocumentElement);
76                 }
77         }
78 }