X509StoreTest.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. //
  2. // X509StoreTest.cs - NUnit tests for X509Store
  3. //
  4. // Author:
  5. // Sebastien Pouliot ([email protected])
  6. //
  7. // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
  8. //
  9. #if NET_2_0
  10. using NUnit.Framework;
  11. using System;
  12. using System.Collections;
  13. using System.Security.Cryptography;
  14. using System.Security.Cryptography.X509Certificates;
  15. namespace MonoTests.System.Security.Cryptography.X509Certificates {
  16. [TestFixture]
  17. public class X509StoreTest : Assertion {
  18. [Test]
  19. public void ConstructorEmpty ()
  20. {
  21. X509Store xs = new X509Store ();
  22. // default properties
  23. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  24. AssertEquals ("Name", "MY", xs.Name);
  25. AssertNotNull ("Certificates", xs.Certificates);
  26. }
  27. [Test]
  28. public void ConstructorStoreLocationCurrentUser ()
  29. {
  30. X509Store xs = new X509Store (StoreLocation.CurrentUser);
  31. // default properties
  32. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  33. AssertEquals ("Name", "MY", xs.Name);
  34. AssertNotNull ("Certificates", xs.Certificates);
  35. }
  36. [Test]
  37. public void ConstructorStoreLocationLocalMachine ()
  38. {
  39. X509Store xs = new X509Store (StoreLocation.LocalMachine);
  40. // default properties
  41. AssertEquals ("Location", StoreLocation.LocalMachine, xs.Location);
  42. AssertEquals ("Name", "MY", xs.Name);
  43. AssertNotNull ("Certificates", xs.Certificates);
  44. }
  45. [Test]
  46. public void ConstructorStoreStringAddressBook ()
  47. {
  48. X509Store xs = new X509Store ("AddressBook");
  49. // default properties
  50. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  51. AssertEquals ("Name", "AddressBook", xs.Name);
  52. AssertNotNull ("Certificates", xs.Certificates);
  53. }
  54. [Test]
  55. public void ConstructorStoreStringAuthRoot ()
  56. {
  57. X509Store xs = new X509Store ("AuthRoot");
  58. // default properties
  59. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  60. AssertEquals ("Name", "AuthRoot", xs.Name);
  61. AssertNotNull ("Certificates", xs.Certificates);
  62. }
  63. [Test]
  64. public void ConstructorStoreStringCertificateAuthority ()
  65. {
  66. X509Store xs = new X509Store ("CA");
  67. // default properties
  68. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  69. AssertEquals ("Name", "CA", xs.Name);
  70. AssertNotNull ("Certificates", xs.Certificates);
  71. }
  72. [Test]
  73. public void ConstructorStoreStringDisallowed ()
  74. {
  75. X509Store xs = new X509Store ("Disallowed");
  76. // default properties
  77. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  78. AssertEquals ("Name", "Disallowed", xs.Name);
  79. AssertNotNull ("Certificates", xs.Certificates);
  80. }
  81. [Test]
  82. public void ConstructorStoreStringMy ()
  83. {
  84. X509Store xs = new X509Store ("My");
  85. // default properties
  86. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  87. AssertEquals ("Name", "My", xs.Name);
  88. AssertNotNull ("Certificates", xs.Certificates);
  89. }
  90. [Test]
  91. public void ConstructorStoreStringRoot ()
  92. {
  93. X509Store xs = new X509Store ("Root");
  94. // default properties
  95. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  96. AssertEquals ("Name", "Root", xs.Name);
  97. AssertNotNull ("Certificates", xs.Certificates);
  98. }
  99. [Test]
  100. public void ConstructorStoreStringTrustedPeople ()
  101. {
  102. X509Store xs = new X509Store ("TrustedPeople");
  103. // default properties
  104. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  105. AssertEquals ("Name", "TrustedPeople", xs.Name);
  106. AssertNotNull ("Certificates", xs.Certificates);
  107. }
  108. [Test]
  109. public void ConstructorStoreStringTrustedPublisher ()
  110. {
  111. X509Store xs = new X509Store ("TrustedPublisher");
  112. // default properties
  113. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  114. AssertEquals ("Name", "TrustedPublisher", xs.Name);
  115. AssertNotNull ("Certificates", xs.Certificates);
  116. }
  117. [Test]
  118. public void ConstructorStoreStringMono ()
  119. {
  120. // mono isn't defined the StoreName
  121. X509Store xs = new X509Store ("Mono");
  122. // default properties
  123. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  124. AssertEquals ("Name", "Mono", xs.Name);
  125. AssertNotNull ("Certificates", xs.Certificates);
  126. }
  127. [Test]
  128. public void ConstructorStoreNameAddressBook ()
  129. {
  130. X509Store xs = new X509Store (StoreName.AddressBook);
  131. // default properties
  132. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  133. AssertEquals ("Name", "AddressBook", xs.Name);
  134. AssertNotNull ("Certificates", xs.Certificates);
  135. }
  136. [Test]
  137. public void ConstructorStoreNameAuthRoot ()
  138. {
  139. X509Store xs = new X509Store (StoreName.AuthRoot);
  140. // default properties
  141. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  142. AssertEquals ("Name", "AuthRoot", xs.Name);
  143. AssertNotNull ("Certificates", xs.Certificates);
  144. }
  145. [Test]
  146. public void ConstructorStoreNameCertificateAuthority ()
  147. {
  148. X509Store xs = new X509Store (StoreName.CertificateAuthority);
  149. // default properties
  150. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  151. AssertEquals ("Name", "CA", xs.Name);
  152. AssertNotNull ("Certificates", xs.Certificates);
  153. }
  154. [Test]
  155. public void ConstructorStoreNameDisallowed ()
  156. {
  157. X509Store xs = new X509Store (StoreName.Disallowed);
  158. // default properties
  159. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  160. AssertEquals ("Name", "Disallowed", xs.Name);
  161. AssertNotNull ("Certificates", xs.Certificates);
  162. }
  163. [Test]
  164. public void ConstructorStoreNameMy () {
  165. X509Store xs = new X509Store (StoreName.My);
  166. // default properties
  167. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  168. AssertEquals ("Name", "My", xs.Name);
  169. AssertNotNull ("Certificates", xs.Certificates);
  170. }
  171. [Test]
  172. public void ConstructorStoreNameRoot ()
  173. {
  174. X509Store xs = new X509Store (StoreName.Root);
  175. // default properties
  176. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  177. AssertEquals ("Name", "Root", xs.Name);
  178. AssertNotNull ("Certificates", xs.Certificates);
  179. }
  180. [Test]
  181. public void ConstructorStoreNameTrustedPeople ()
  182. {
  183. X509Store xs = new X509Store (StoreName.TrustedPeople);
  184. // default properties
  185. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  186. AssertEquals ("Name", "TrustedPeople", xs.Name);
  187. AssertNotNull ("Certificates", xs.Certificates);
  188. }
  189. [Test]
  190. public void ConstructorStoreNameTrustedPublisher ()
  191. {
  192. X509Store xs = new X509Store (StoreName.TrustedPublisher);
  193. // default properties
  194. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  195. AssertEquals ("Name", "TrustedPublisher", xs.Name);
  196. AssertNotNull ("Certificates", xs.Certificates);
  197. }
  198. [Test]
  199. [ExpectedException (typeof (CryptographicException))]
  200. public void AddEmptyCertificateToReadOnlyNonExistingStore ()
  201. {
  202. // mono isn't defined the StoreName
  203. X509Store xs = new X509Store ("NonExistingStore");
  204. // default properties
  205. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  206. AssertEquals ("Name", "NonExistingStore", xs.Name);
  207. AssertNotNull ("Certificates", xs.Certificates);
  208. xs.Open (OpenFlags.ReadOnly);
  209. xs.Add (new X509CertificateEx ());
  210. xs.Close ();
  211. }
  212. [Test]
  213. [ExpectedException (typeof (CryptographicException))]
  214. public void AddEmptyCertificateToReadWriteNonExistingStore ()
  215. {
  216. // mono isn't defined the StoreName
  217. X509Store xs = new X509Store ("NonExistingStore");
  218. // default properties
  219. AssertEquals ("Location", StoreLocation.CurrentUser, xs.Location);
  220. AssertEquals ("Name", "NonExistingStore", xs.Name);
  221. AssertNotNull ("Certificates", xs.Certificates);
  222. xs.Open (OpenFlags.ReadWrite);
  223. xs.Add (new X509CertificateEx ());
  224. xs.Close ();
  225. }
  226. }
  227. }
  228. #endif