Merge pull request #2396 from akoeplinger/flaky-osx-socket-test
[mono.git] / mcs / class / System / Test / System.Security.Cryptography.X509Certificates / X509SubjectKeyIdentifierExtensionTest.cs
1 //
2 // X509SubjectKeyIdentifierExtensionTest.cs 
3 //      - NUnit tests for X509SubjectKeyIdentifierExtension
4 //
5 // Author:
6 //      Sebastien Pouliot  <sebastien@ximian.com>
7 //
8 // Copyright (C) 2005, 2006 Novell, Inc (http://www.novell.com)
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29
30
31 using NUnit.Framework;
32
33 using System;
34 using System.Security.Cryptography;
35 using System.Security.Cryptography.X509Certificates;
36 using System.Text;
37
38 namespace MonoTests.System.Security.Cryptography.X509Certificates {
39
40         [TestFixture]
41         public class X509SubjectKeyIdentifierExtensionTest {
42
43                 private const string oid = "2.5.29.14";
44                 private const string fname = "Subject Key Identifier";
45
46                 private PublicKey pk1;
47
48                 [TestFixtureSetUp]
49                 public void FixtureSetUp ()
50                 {
51                         pk1 = new X509Certificate2 (Encoding.ASCII.GetBytes (X509Certificate2Test.base64_cert)).PublicKey;
52                 }
53
54                 [Test]
55                 public void ConstructorEmpty ()
56                 {
57                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ();
58                         Assert.IsFalse (ski.Critical, "Critical");
59                         Assert.IsNull (ski.RawData, "RawData");
60                         Assert.AreEqual (oid, ski.Oid.Value, "Oid.Value");
61                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
62                         //Assert.AreEqual (fname, ski.Oid.FriendlyName, "Oid.FriendlyName");
63                         Assert.AreEqual (String.Empty, ski.Format (true), "Format(true)");
64                         Assert.AreEqual (String.Empty, ski.Format (false), "Format(false)");
65                 }
66
67                 [Test]
68                 public void ConstructorEmpty_SubjectKeyIdentifier ()
69                 {
70                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ();
71                         Assert.IsNull (ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
72                 }
73
74                 [Test]
75                 public void ConstructorAsnEncodedData ()
76                 {
77                         AsnEncodedData aed = new AsnEncodedData (new byte[] { 0x04, 0x08, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF });
78                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (aed, true);
79                         Assert.IsTrue (ski.Critical, "Critical");
80                         Assert.AreEqual (oid, ski.Oid.Value, "Oid.Value");
81                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
82                         //Assert.AreEqual (fname, ski.Oid.FriendlyName, "Oid.FriendlyName");
83                         Assert.AreEqual ("04-08-01-23-45-67-89-AB-CD-EF", BitConverter.ToString (ski.RawData), "RawData");
84                         Assert.AreEqual ("0123456789ABCDEF", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
85                         Assert.AreEqual ("01 23 45 67 89 ab cd ef" + Environment.NewLine, ski.Format (true), "Format(true)");
86                         Assert.AreEqual ("01 23 45 67 89 ab cd ef", ski.Format (false), "Format(false)");
87                 }
88
89                 [Test]
90                 [ExpectedException (typeof (CryptographicException))]
91                 public void ConstructorAsnEncodedData_BadAsn ()
92                 {
93                         AsnEncodedData aed = new AsnEncodedData ("1.2.3", new byte[0]);
94                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (aed, true);
95                         Assert.AreEqual (String.Empty, ski.Format (true), "Format(true)");
96                         Assert.AreEqual (String.Empty, ski.Format (false), "Format(false)");
97                         string s = ski.SubjectKeyIdentifier;
98                 }
99
100                 [Test]
101                 [ExpectedException (typeof (CryptographicException))]
102                 public void ConstructorAsnEncodedData_BadAsnTag ()
103                 {
104                         AsnEncodedData aed = new AsnEncodedData ("1.2.3", new byte[] { 0x05, 0x00 });
105                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (aed, true);
106                         Assert.AreEqual ("0500", ski.Format (true), "Format(true)");
107                         Assert.AreEqual ("0500", ski.Format (false), "Format(false)");
108                         string s = ski.SubjectKeyIdentifier;
109                 }
110
111                 [Test]
112                 [ExpectedException (typeof (CryptographicException))]
113                 public void ConstructorAsnEncodedData_BadAsnLength ()
114                 {
115                         AsnEncodedData aed = new AsnEncodedData ("1.2.3", new byte[] { 0x30, 0x01 });
116                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (aed, true);
117                         Assert.AreEqual ("3001", ski.Format (true), "Format(true)");
118                         Assert.AreEqual ("3001", ski.Format (false), "Format(false)");
119                         string s = ski.SubjectKeyIdentifier;
120                 }
121
122                 [Test]
123                 public void ConstructorAsnEncodedData_SmallestValid ()
124                 {
125                         AsnEncodedData aed = new AsnEncodedData ("1.2.3", new byte[] { 0x04, 0x00 });
126                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (aed, true);
127                         Assert.AreEqual (String.Empty, ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
128                         Assert.AreEqual ("04-00", BitConverter.ToString (ski.RawData), "RawData");
129                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
130                         //Assert.AreEqual ("Information Not Available", ski.Format (true), "Format(true)");
131                         //Assert.AreEqual ("Information Not Available", ski.Format (false), "Format(false)");
132                 }
133
134                 [Test]
135                 [ExpectedException (typeof (NullReferenceException))]
136                 public void ConstructorAsnEncodedData_Null ()
137                 {
138                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ((AsnEncodedData)null, true);
139                 }
140
141                 [Test]
142                 [ExpectedException (typeof (ArgumentNullException))]
143                 public void ConstructorByteArray_Null ()
144                 {
145                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ((byte[])null, true);
146                 }
147
148                 [Test]
149                 [ExpectedException (typeof (ArgumentException))]
150                 public void ConstructorByteArray_Empty ()
151                 {
152                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (new byte[0], true);
153                 }
154
155                 [Test]
156                 public void ConstructorByteArray_20 ()
157                 {
158                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (new byte[20], true);
159                         Assert.IsTrue (ski.Critical, "Critical");
160                         Assert.AreEqual ("04-14-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString (ski.RawData), "RawData");
161                         Assert.AreEqual (oid, ski.Oid.Value, "Oid.Value");
162                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
163                         //Assert.AreEqual (fname, ski.Oid.FriendlyName, "Oid.FriendlyName");
164                         Assert.AreEqual ("0000000000000000000000000000000000000000", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
165                         Assert.AreEqual ("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" + Environment.NewLine, ski.Format (true), "Format(true)");
166                         Assert.AreEqual ("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", ski.Format (false), "Format(false)");
167                 }
168
169                 [Test]
170                 [ExpectedException (typeof (ArgumentNullException))]
171                 public void ConstructorString_Null ()
172                 {
173                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ((String)null, true);
174                 }
175
176                 [Test]
177                 [ExpectedException (typeof (ArgumentException))]
178                 public void ConstructorString_Empty ()
179                 {
180                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (String.Empty, true);
181                 }
182
183                 [Test]
184                 [ExpectedException (typeof (ArgumentException))]
185                 public void ConstructorString_Single ()
186                 {
187                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ("f", false);
188                 }
189
190                 [Test]
191                 public void ConstructorString ()
192                 {
193                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ("ffFFfFFf", false);
194                         Assert.IsFalse (ski.Critical, "Critical");
195                         Assert.AreEqual ("04-04-FF-FF-FF-FF", BitConverter.ToString (ski.RawData), "RawData");
196                         Assert.AreEqual (oid, ski.Oid.Value, "Oid.Value");
197                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
198                         //Assert.AreEqual (fname, ski.Oid.FriendlyName, "Oid.FriendlyName");
199                         Assert.AreEqual ("FFFFFFFF", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
200                         Assert.AreEqual ("ff ff ff ff" + Environment.NewLine, ski.Format (true), "Format(true)");
201                         Assert.AreEqual ("ff ff ff ff", ski.Format (false), "Format(false)");
202                 }
203
204                 [Test]
205                 public void ConstructorString_NotHex ()
206                 {
207                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ("Mono::", true);
208                         Assert.IsTrue (ski.Critical, "Critical");
209                         Assert.AreEqual ("04-03-FF-FF-FF", BitConverter.ToString (ski.RawData), "RawData");
210                         Assert.AreEqual (oid, ski.Oid.Value, "Oid.Value");
211                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
212                         //Assert.AreEqual (fname, ski.Oid.FriendlyName, "Oid.FriendlyName");
213                         Assert.AreEqual ("FFFFFF", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
214                         Assert.AreEqual ("ff ff ff" + Environment.NewLine, ski.Format (true), "Format(true)");
215                         Assert.AreEqual ("ff ff ff", ski.Format (false), "Format(false)");
216                 }
217
218                 [Test]
219                 [ExpectedException (typeof (ArgumentNullException))]
220                 public void ConstructorPublicKey_Null ()
221                 {
222                         new X509SubjectKeyIdentifierExtension ((PublicKey)null, true);
223                 }
224
225                 [Test]
226                 [ExpectedException (typeof (ArgumentNullException))]
227                 public void ConstructorPublicKeyHash_Null ()
228                 {
229                         new X509SubjectKeyIdentifierExtension (null, X509SubjectKeyIdentifierHashAlgorithm.Sha1, true);
230                 }
231
232                 [Test]
233                 [ExpectedException (typeof (ArgumentException))]
234                 public void ConstructorPublicKeyHash_BadX509SubjectKeyIdentifierHashAlgorithm ()
235                 {
236                         new X509SubjectKeyIdentifierExtension (pk1, (X509SubjectKeyIdentifierHashAlgorithm)Int32.MinValue, true);
237                 }
238
239                 [Test]
240                 public void ConstructorPublicKeyHash_Critical ()
241                 {
242                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, true);
243                         Assert.IsTrue (ski.Critical, "Critical");
244                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
245                         Assert.AreEqual ("4A0200E2E8D33DBA05FC37BDC36DCF47212D77D1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
246                         Assert.AreEqual ("04-14-4A-02-00-E2-E8-D3-3D-BA-05-FC-37-BD-C3-6D-CF-47-21-2D-77-D1", BitConverter.ToString (ski.RawData), "RawData");
247                 }
248
249                 [Test]
250                 public void ConstructorPublicKeyHash_Sha1_Critical ()
251                 {
252                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, X509SubjectKeyIdentifierHashAlgorithm.Sha1, true);
253                         Assert.IsTrue (ski.Critical, "Critical");
254                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
255                         Assert.AreEqual ("4A0200E2E8D33DBA05FC37BDC36DCF47212D77D1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
256                         Assert.AreEqual ("04-14-4A-02-00-E2-E8-D3-3D-BA-05-FC-37-BD-C3-6D-CF-47-21-2D-77-D1", BitConverter.ToString (ski.RawData), "RawData");
257                 }
258
259                 [Test]
260                 public void ConstructorPublicKeyHash_ShortSha1_Critical ()
261                 {
262                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, X509SubjectKeyIdentifierHashAlgorithm.ShortSha1, true);
263                         Assert.IsTrue (ski.Critical, "Critical");
264                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
265                         Assert.AreEqual ("436DCF47212D77D1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
266                         Assert.AreEqual ("04-08-43-6D-CF-47-21-2D-77-D1", BitConverter.ToString (ski.RawData), "RawData");
267                 }
268
269                 [Test]
270                 public void ConstructorPublicKeyHash_CapiSha1_Critical ()
271                 {
272                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, X509SubjectKeyIdentifierHashAlgorithm.CapiSha1, true);
273                         Assert.IsTrue (ski.Critical, "Critical");
274                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
275                         Assert.AreEqual ("0E73CE0E2E059378FC782707EBF0B4E7AEA652E1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
276                         Assert.AreEqual ("04-14-0E-73-CE-0E-2E-05-93-78-FC-78-27-07-EB-F0-B4-E7-AE-A6-52-E1", BitConverter.ToString (ski.RawData), "RawData");
277                 }
278
279                 [Test]
280                 public void ConstructorPublicKeyHash ()
281                 {
282                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, false);
283                         Assert.IsFalse (ski.Critical, "Critical");
284                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
285                         Assert.AreEqual ("4A0200E2E8D33DBA05FC37BDC36DCF47212D77D1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
286                         Assert.AreEqual ("04-14-4A-02-00-E2-E8-D3-3D-BA-05-FC-37-BD-C3-6D-CF-47-21-2D-77-D1", BitConverter.ToString (ski.RawData), "RawData");
287                 }
288
289                 [Test]
290                 public void ConstructorPublicKeyHash_Sha1 ()
291                 {
292                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, X509SubjectKeyIdentifierHashAlgorithm.Sha1, false);
293                         Assert.IsFalse (ski.Critical, "Critical");
294                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
295                         Assert.AreEqual ("4A0200E2E8D33DBA05FC37BDC36DCF47212D77D1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
296                         Assert.AreEqual ("04-14-4A-02-00-E2-E8-D3-3D-BA-05-FC-37-BD-C3-6D-CF-47-21-2D-77-D1", BitConverter.ToString (ski.RawData), "RawData");
297                 }
298
299                 [Test]
300                 public void ConstructorPublicKeyHash_ShortSha1 ()
301                 {
302                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, X509SubjectKeyIdentifierHashAlgorithm.ShortSha1, false);
303                         Assert.IsFalse (ski.Critical, "Critical");
304                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
305                         Assert.AreEqual ("436DCF47212D77D1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
306                         Assert.AreEqual ("04-08-43-6D-CF-47-21-2D-77-D1", BitConverter.ToString (ski.RawData), "RawData");
307                 }
308
309                 [Test]
310                 public void ConstructorPublicKeyHash_CapiSha1 ()
311                 {
312                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension (pk1, X509SubjectKeyIdentifierHashAlgorithm.CapiSha1, false);
313                         Assert.IsFalse (ski.Critical, "Critical");
314                         Assert.AreEqual ("2.5.29.14", ski.Oid.Value, "Oid");
315                         Assert.AreEqual ("0E73CE0E2E059378FC782707EBF0B4E7AEA652E1", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
316                         Assert.AreEqual ("04-14-0E-73-CE-0E-2E-05-93-78-FC-78-27-07-EB-F0-B4-E7-AE-A6-52-E1", BitConverter.ToString (ski.RawData), "RawData");
317                 }
318
319                 [Test]
320                 [ExpectedException (typeof (ArgumentNullException))]
321                 public void WrongExtension_X509KeyUsageExtension ()
322                 {
323                         X509KeyUsageExtension ku = new X509KeyUsageExtension ();
324                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ();
325                         ski.CopyFrom (ku);
326                 }
327
328                 [Test]
329                 public void WrongExtension_X509Extension ()
330                 {
331                         X509Extension ex = new X509Extension ("1.2.3", new byte[0], true);
332                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ("www.go-mono.com", false); // odd length
333                         Assert.IsFalse (ski.Critical, "Critical");
334                         Assert.AreEqual ("FFFFFFFFFFFFFF", ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
335                         Assert.AreEqual ("ff ff ff ff ff ff ff" + Environment.NewLine, ski.Format (true), "Format(true)");
336                         Assert.AreEqual ("ff ff ff ff ff ff ff", ski.Format (false), "Format(false)");
337
338                         ski.CopyFrom (ex);
339                         Assert.IsTrue (ski.Critical, "Critical");
340                         Assert.AreEqual (String.Empty, BitConverter.ToString (ski.RawData), "RawData");
341                         Assert.AreEqual ("1.2.3", ski.Oid.Value, "Oid.Value");
342                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
343                         //Assert.IsNull (ski.Oid.FriendlyName, "Oid.FriendlyName");
344                         Assert.AreEqual (String.Empty, ski.Format (true), "Format(true)");
345                         Assert.AreEqual (String.Empty, ski.Format (false), "Format(false)");
346                 }
347
348                 [Test]
349                 [ExpectedException (typeof (CryptographicException))]
350                 public void WrongExtension_X509Extension_CertificateAuthority ()
351                 {
352                         X509Extension ex = new X509Extension ("1.2.3", new byte[0], true);
353                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ();
354                         ski.CopyFrom (ex);
355                         string s = ski.SubjectKeyIdentifier;
356                 }
357
358                 [Test]
359                 [ExpectedException (typeof (ArgumentException))]
360                 public void WrongAsnEncodedData ()
361                 {
362                         AsnEncodedData aed = new AsnEncodedData (new byte[0]);
363                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ("www.mono-project.com", false);
364                         ski.CopyFrom (aed); // note: not the same behaviour than using the constructor!
365                 }
366
367                 [Test]
368                 [ExpectedException (typeof (ArgumentNullException))]
369                 public void CopyFrom_Null ()
370                 {
371                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ();
372                         ski.CopyFrom (null);
373                 }
374
375                 [Test]
376                 public void CopyFrom_Self ()
377                 {
378                         X509SubjectKeyIdentifierExtension ski = new X509SubjectKeyIdentifierExtension ("ff", true);
379                         Assert.IsTrue (ski.Critical, "Critical");
380                         byte[] raw = ski.RawData;
381                         Assert.AreEqual ("04-01-FF", BitConverter.ToString (raw), "RawData");
382
383                         AsnEncodedData aed = new AsnEncodedData (raw);
384                         X509SubjectKeyIdentifierExtension copy = new X509SubjectKeyIdentifierExtension (aed, false);
385                         Assert.IsFalse (copy.Critical, "Critical");
386                         Assert.AreEqual ("04-01-FF", BitConverter.ToString (copy.RawData), "copy.RawData");
387                         Assert.AreEqual (oid, copy.Oid.Value, "Oid.Value");
388                         // FIXME: Don't expect that FriendlyName is English. This test fails under non-English Windows.
389                         //Assert.AreEqual (fname, copy.Oid.FriendlyName, "Oid.FriendlyName");
390                         Assert.AreEqual ("FF", copy.SubjectKeyIdentifier, "SubjectKeyIdentifier");
391                 }
392
393 #if !MOBILE
394                 [Test]
395                 public void CreateViaCryptoConfig ()
396                 {
397                         // extensions can be created with CryptoConfig
398                         AsnEncodedData aed = new AsnEncodedData (new byte[] { 0x04, 0x00 });
399                         X509SubjectKeyIdentifierExtension ski = (X509SubjectKeyIdentifierExtension) CryptoConfig.CreateFromName (oid, new object[2] { aed, true });
400                         Assert.AreEqual (String.Empty, ski.SubjectKeyIdentifier, "SubjectKeyIdentifier");
401                         Assert.AreEqual ("04-00", BitConverter.ToString (ski.RawData), "RawData");
402                 }
403 #endif
404         }
405 }
406