Author: spouliot
Date: 2005-04-26 10:32:54 -0400 (Tue, 26 Apr 2005)
New Revision: 43597
Modified:
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/ChangeLog
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/KeyInfoX509DataTest.cs
Log:
2005-04-26 Sebastien Pouliot <[EMAIL PROTECTED]>
* KeyInfoX509DataTest.cs: Added new unit tests for NET_1_1 and updated
tests to work on NET_2_0.
Modified:
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/ChangeLog
===================================================================
---
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/ChangeLog
2005-04-26 14:31:38 UTC (rev 43596)
+++
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/ChangeLog
2005-04-26 14:32:54 UTC (rev 43597)
@@ -1,3 +1,8 @@
+2005-04-26 Sebastien Pouliot <[EMAIL PROTECTED]>
+
+ * KeyInfoX509DataTest.cs: Added new unit tests for NET_1_1 and updated
+ tests to work on NET_2_0.
+
2005-04-06 Atsushi Enomoto <[EMAIL PROTECTED]>
* XmlDsigC14NTransformTest.cs :
Modified:
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/KeyInfoX509DataTest.cs
===================================================================
---
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/KeyInfoX509DataTest.cs
2005-04-26 14:31:38 UTC (rev 43596)
+++
trunk/mcs/class/System.Security/Test/System.Security.Cryptography.Xml/KeyInfoX509DataTest.cs
2005-04-26 14:32:54 UTC (rev 43597)
@@ -2,9 +2,10 @@
// KeyInfoX509DataTest.cs - NUnit Test Cases for KeyInfoX509Data
//
// Author:
-// Sebastien Pouliot ([EMAIL PROTECTED])
+// Sebastien Pouliot <[EMAIL PROTECTED]>
//
// (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
//
using System;
@@ -19,7 +20,7 @@
namespace MonoTests.System.Security.Cryptography.Xml {
[TestFixture]
- public class KeyInfoX509DataTest : Assertion {
+ public class KeyInfoX509DataTest {
static byte[] cert = {
0x30,0x82,0x09,0xB9,0x30,0x82,0x09,0x22,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x20,0x0B,0x35,0x5E,0xCE,0xC4,0xB0,0x63,0xB7,0xDE,0xC6,0x34,0xB9,0x70,0x34,0x44,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x04,0x05,0x00,0x30,0x62,0x31,0x11,0x30,0x0F,0x06,0x03,0x55,0x04,0x07,0x13,0x08,0x49,0x6E,0x74,0x65,0x72,0x6E,0x65,0x74,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x34,0x30,0x32,0x06,0x03,0x55,0x04,0x0B,
0x13,0x2B,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x31,0x20,0x43,0x41,0x20,0x2D,0x20,0x49,0x6E,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6C,0x20,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x72,0x30,0x1E,0x17,0x0D,0x39,0x36,0x30,0x38,0x32,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x39,0x37,0x30,0x38,0x32,0x30,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x82,0x01,0x0A,0x31,0x11,0x30,0x0F,0x06,0x03,0x55,0x04,0x07,0x13,0x08,0x49,0x6E,0x74,0x65,0x72,0x6E,0x65,0x74,
@@ -65,43 +66,244 @@
static byte[] x509crl = { 0x30, 0x82, 0x01, 0x05, 0x30, 0x72,
0x02, 0x01, 0x01, 0x30, 0x0B, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
0x01, 0x01, 0x05, 0x30, 0x51, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04,
0x0A, 0x13, 0x0F, 0x55, 0x2E, 0x53, 0x2E, 0x20, 0x47, 0x6F, 0x76, 0x65, 0x72,
0x6E, 0x6D, 0x65, 0x6E, 0x74, 0x31, 0x0C, 0x30, 0x0A, 0x06, 0x03, 0x55, 0x04,
0x0B, 0x13, 0x03, 0x44, 0x6F, 0x44, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55,
0x04, 0x03, 0x13, 0x11, 0x41, 0x72, 0x6D, 0x65, 0x64, 0x20, 0x46, 0x6F, 0x72,
0x63, 0x65, 0x73, 0x20, 0x52, 0x6F, 0x6F, 0x74, 0x17, 0x0D, 0x30, 0x32, 0x31,
0x30, 0x31, 0x31, 0x31, 0x33, 0x31, 0x32, 0x35, 0x30, 0x5A, 0x30, 0x0B, 0x06,
0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x03, 0x81, 0x81,
0x00, 0x7D, 0xA2, 0xD1, 0x19, 0x6D, 0x0F, 0x0F, 0xCB, 0xE4, 0xA3, 0xBE, 0xE0,
0x36, 0x0A, 0xF3, 0x4C, 0x9B, 0xAF, 0xE6, 0x4F, 0xF6, 0xE3, 0xAF, 0
xCF, 0x55, 0xF3, 0xC6, 0xDB, 0xAB, 0x4C, 0x16, 0x32, 0xAA, 0x73, 0xAD, 0xCC,
0xDC, 0x32, 0x33, 0x60, 0xDF, 0x8B, 0xCC, 0x93, 0xB5, 0x4F, 0x6A, 0xEC, 0x70,
0x53, 0xAF, 0xCF, 0x07, 0x0F, 0xA0, 0xCD, 0x66, 0xAC, 0x00, 0x57, 0xC6, 0x5C,
0x5D, 0x21, 0xB1, 0xBD, 0x30, 0x89, 0x8E, 0x77, 0x8D, 0xD4, 0x69, 0x7E, 0xC0,
0x36, 0x7E, 0xD2, 0xD8, 0x20, 0x71, 0x08, 0x80, 0xD2, 0xCB, 0x74, 0x8B, 0xD8,
0x42, 0x17, 0x04, 0x99, 0x80, 0xA4, 0x52, 0x70, 0x2E, 0xC0, 0xE3, 0x8C, 0x0B,
0xFF, 0x79, 0xB7, 0x45, 0x77, 0xDC, 0xC5, 0xCF, 0x43, 0x98, 0x91, 0x7D, 0xF1,
0x01, 0xF7, 0x53, 0xD7, 0xC6, 0x51, 0x35, 0xF0, 0x89, 0xCC, 0xC1, 0xFF, 0xE2,
0x89 };
+#if NET_2_0
[Test]
+ public void Constructor_Empty ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ Assert.IsNull (data.Certificates, "Certificates");
+ Assert.IsNull (data.CRL, "Certificates");
+ Assert.IsNull (data.IssuerSerials, "IssuerSerials");
+ Assert.IsNull (data.SubjectKeyIds, "SubjectKeyIds");
+ Assert.IsNull (data.SubjectNames, "SubjectNames");
+ Assert.AreEqual (data.GetXml ().OuterXml, "<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\" />");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Constructor_X509Certificate_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data
((X509Certificate)null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void Constructor_X509CertificateByteArray_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data
((byte[])null);
+ }
+#else
+ [Test]
[ExpectedException (typeof (CryptographicException))]
- public void Constructor1 ()
+ public void Constructor_Empty ()
{
- KeyInfoX509Data data1 = new KeyInfoX509Data ();
- XmlElement invalid = data1.GetXml ();
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ XmlElement invalid = data.GetXml ();
}
[Test]
- public void Constructor2 ()
+ public void Constructor_X509Certificate_Null ()
{
+ KeyInfoX509Data data = new KeyInfoX509Data
((X509Certificate)null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ [Category ("NotWorking")]
+ public void Constructor_X509Certificate_Null_GetXml ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data
((X509Certificate)null);
+ XmlElement invalid = data.GetXml ();
+ // note: even if we add a check in GetXml this will
makes another unit
+ // test fails. We clearly are not doing this the same
way as MS does.
+ }
+
+ [Test]
+ public void Constructor_X509CertificateByteArray_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data
((byte[])null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Constructor_X509CertificateByteArray_Null_GetXml ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data
((byte[])null);
+ XmlElement invalid = data.GetXml ();
+ }
+#endif
+ [Test]
+ public void Constructor_X509Certificate ()
+ {
KeyInfoX509Data data1 = new KeyInfoX509Data ();
KeyInfoX509Data data2 = new KeyInfoX509Data (cert);
XmlElement xel = data2.GetXml ();
string s = "<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><X509Certificate>MIIJuTCCCSKgAwIBAgIQIAs1Xs7EsGO33sY0uXA0RDANBgkqhkiG9w0BAQQFADBiMREwDwYDVQQHEwhJbnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlTaWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXIwHhcNOTYwODIxMDAwMDAwWhcNOTcwODIwMjM1OTU5WjCCAQoxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQUyBJbmNvcnAuIGJ5IFJlZi4sTElBQi5MVEQoYyk5NjEmMCQGA1UECxMdRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUxFjAUBgNVBAMTDURhdmlkIFQuIEdyYXkxHjAcBgkqhkiG9w0BCQEWD2RhdmlkQGZvcm1hbC5pZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDFgQei6w+4//j4HO4y/78SNWr5a8i+L/s+rwRRSqzdECmozUBbZh6Y7/JMd/qPhtEhZ5JESsSJyYPPiJ9v4jI1AgMBAAGjggcIMIIHBDAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCCAhIwggIOMIICCgYLYIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jwb3JhdGVzIGJ5IHJlZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3
ViamVjdCB0bywgdGhlIFZlcmlTaWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUgYXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFpbCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUpIDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJTElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMCwwKhYoaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgBhvhCAQEEBAMCB4AwNgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQUzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogV";
s +=
"GhlIENvbW1vbiBOYW1lIGluIHRoaXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRlZCBieSBWZXJpU2lnbi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4gYWxpYXMuIFZlcmlTaWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNzIG9mIHRoZSBob2xkZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZlcmVuY2UsIGFuZCAKaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNpZ24gCkNlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUKaW4gdGhlIFZlcmlTaWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5jb207IGJ5IEUtbWFpbCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQQoKQ29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBSaWdodHMgClJlc2VydmVkLiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJTElUWSBMSU1JVEVELgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElTIFNUUklDVExZClNVQkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJQ0UKU1RBVEVNRU5ULiAgVEhFIElTU1VJT
kcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlOCklNUExJRUQgQU5EIEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMKT0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLCBBTkQgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwgQU5EIENFUlRBSU4gT1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpDb250ZW50cyBvZiB0aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RBdHRyaWJ1dGVzIGV4dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMgYWNjdXJhdGUgaW5mb3JtYXRpb24gdmFsaWRhdGVkIApieSB0aGUgSUEuMA0GCSqGSIb3DQEBBAUAA4GBACs9RMcyWa7xX48/h+M+64Ew+KmW2wFCCwTvNwI/1CBhWMRKOjmz+9n4pcReM1oO+pNWL2/WYaKvpQwd4kFl80B1ZoPSWrS3VguODaEzE31Jw7EAaIN/tWbUMjL+i5pa1gFyMV2FkbyTm2VgJcYfvN1pRGLCsm9Gqy8gpW/aSGyc</X509Certificate></X509Data>";
- AssertEquals ("1 cert", s, (data2.GetXml ().OuterXml));
+ Assert.AreEqual (s, (data2.GetXml ().OuterXml), "1
cert");
data1.LoadXml (xel);
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
X509Certificate x509 = new X509Certificate (cert);
- KeyInfoX509Data data3 = new KeyInfoX509Data (x509);
- AssertEquals ("data2==data3", (data2.GetXml
().OuterXml), (data3.GetXml ().OuterXml));
+ KeyInfoX509Data data3 = new KeyInfoX509Data (x509);
+ Assert.AreEqual ((data2.GetXml ().OuterXml),
(data3.GetXml ().OuterXml), "data2==data3");
}
+#if NET_2_0
[Test]
+ public void Constructor_X509Certificate_X509IncludeOption ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data (new
X509Certificate (cert), X509IncludeOption.EndCertOnly);
+ Assert.AreEqual (1, data.Certificates.Count,
"Certificates");
+ Assert.IsNull (data.CRL, "Certificates");
+ Assert.IsNull (data.IssuerSerials, "IssuerSerials");
+ Assert.IsNull (data.SubjectKeyIds, "SubjectKeyIds");
+ Assert.IsNull (data.SubjectNames, "SubjectNames");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Constructor_X509CertificateNull_X509IncludeOption
()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data (null,
X509IncludeOption.EndCertOnly);
+ }
+
+ [Test]
+ public void Constructor_X509Certificate_X509IncludeOptionBad ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data (new
X509Certificate (cert), (X509IncludeOption) Int32.MinValue);
+ Assert.IsNull (data.Certificates, "Certificates");
+ Assert.IsNull (data.CRL, "Certificates");
+ Assert.IsNull (data.IssuerSerials, "IssuerSerials");
+ Assert.IsNull (data.SubjectKeyIds, "SubjectKeyIds");
+ Assert.IsNull (data.SubjectNames, "SubjectNames");
+ Assert.AreEqual ("<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\" />", data.GetXml ().OuterXml);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void AddCertificate_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddCertificate (null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void AddIssuerSerial_Null_Serial ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddIssuerSerial (null, "serial");
+ }
+
+ [Test]
+ [Category ("NotWorking")] // beta2 bug
+ [ExpectedException (typeof (NullReferenceException))]
+ public void AddIssuerSerial_Issuer_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddIssuerSerial ("issuer", null);
+ }
+#else
+ [Test]
+ public void AddCertificate_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddCertificate (null);
+ }
+
+
+ [Test]
+ [ExpectedException (typeof (NullReferenceException))]
+ public void AddCertificate_Null_GetXml ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddCertificate (null);
+ XmlElement empty = data.GetXml ();
+ }
+
+ [Test]
+ public void AddIssuerSerial_Null_Serial ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddIssuerSerial (null, "serial");
+ XmlElement empty = data.GetXml ();
+ Assert.AreEqual (empty.OuterXml, "<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><X509IssuerSerial><X509IssuerName></X509IssuerName><X509SerialNumber>serial</X509SerialNumber></X509IssuerSerial></X509Data>");
+ }
+
+ [Test]
+ public void AddIssuerSerial_Issuer_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddIssuerSerial ("issuer", null);
+ XmlElement empty = data.GetXml ();
+ Assert.AreEqual (empty.OuterXml, "<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><X509IssuerSerial><X509IssuerName>issuer</X509IssuerName><X509SerialNumber></X509SerialNumber></X509IssuerSerial></X509Data>");
+ }
+#endif
+
+ [Test]
+ public void AddSubjectKeyId_Byte_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddSubjectKeyId ((byte[])null);
+ Assert.IsNull (data.Certificates, "Certificates");
+ Assert.IsNull (data.CRL, "Certificates");
+ Assert.IsNull (data.IssuerSerials, "IssuerSerials");
+ Assert.AreEqual (1, data.SubjectKeyIds.Count,
"SubjectKeyIds");
+ Assert.IsNull (data.SubjectNames, "SubjectNames");
+// beta2 bug - throw an ArgumentNullException (a little too late)
+// Assert.AreEqual ("<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\" />", data.GetXml ().OuterXml);
+ }
+#if NET_2_0
+ [Test]
+ [Category ("NotWorking")] // beta2 bug
+ [ExpectedException (typeof (NullReferenceException))]
+ public void AddSubjectKeyId_String_Null ()
+ {
+ KeyInfoX509Data data1 = new KeyInfoX509Data ();
+ data1.AddSubjectKeyId ((string)null);
+ }
+
+ [Test]
+ [Category ("NotWorking")] // beta2 bug
+ public void AddSubjectKeyId_String_BadHexData ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddSubjectKeyId ("Hello");
+ Assert.IsNull (data.Certificates, "Certificates");
+ Assert.IsNull (data.CRL, "Certificates");
+ Assert.IsNull (data.IssuerSerials, "IssuerSerials");
+ // looks like "garbage"
+ Assert.AreEqual (1, data.SubjectKeyIds.Count,
"SubjectKeyIds");
+ Assert.IsNull (data.SubjectNames, "SubjectNames");
+ }
+#endif
+ [Test]
+ public void AddSubjectName_Null ()
+ {
+ KeyInfoX509Data data = new KeyInfoX509Data ();
+ data.AddSubjectName (null);
+ Assert.IsNull (data.Certificates, "Certificates");
+ Assert.IsNull (data.CRL, "Certificates");
+ Assert.IsNull (data.IssuerSerials, "IssuerSerials");
+ Assert.IsNull (data.SubjectKeyIds, "SubjectKeyIds");
+ Assert.AreEqual (1, data.SubjectNames.Count,
"SubjectNames");
+ Assert.IsNull (data.SubjectNames[0], "SubjectNames[0]");
+ Assert.AreEqual ("<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><X509SubjectName></X509SubjectName></X509Data>",
data.GetXml ().OuterXml, "XML");
+ }
+
+ [Test]
public void Complex ()
{
KeyInfoX509Data data1 = new KeyInfoX509Data (cert);
KeyInfoX509Data data2 = new KeyInfoX509Data ();
XmlElement xel = data1.GetXml ();
- data2.LoadXml (xel);
-
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
+ data2.LoadXml (xel);
+
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
byte[] c = (data1.Certificates[0] as
X509Certificate).GetRawCertData();
AssertCrypto.AssertEquals ("Certificate[0]", cert, c);
@@ -109,33 +311,32 @@
X509Certificate x509 = new X509Certificate (cert2);
data1.AddCertificate (x509);
xel = data1.GetXml ();
- data2.LoadXml (xel);
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
- c = (data1.Certificates [1] as
X509Certificate).GetRawCertData();
- AssertCrypto.AssertEquals ("Certificate[1]", cert2, c);
+ data2.LoadXml (xel);
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
+ c = (data1.Certificates [1] as
X509Certificate).GetRawCertData();
+ Assert.AreEqual (cert2, c, "Certificate[1]");
// add properties from a third X.509 certificate
x509 = new X509Certificate (cert3);
data1.AddIssuerSerial (x509.GetIssuerName (),
x509.GetSerialNumberString ());
xel = data1.GetXml ();
- data2.LoadXml (xel);
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
+ data2.LoadXml (xel);
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
// TODO: The type of IssuerSerial isn't documented
// X509Certificate doesn't export SubjectKeyId so we
must improvise
byte[] skid = { 0xDE, 0xAD, 0xC0, 0xDE };
data1.AddSubjectKeyId (skid);
xel = data1.GetXml ();
- data2.LoadXml (xel);
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
- AssertCrypto.AssertEquals ("SubjectKeyId", skid,
(byte[]) data1.SubjectKeyIds[0]);
-
+ data2.LoadXml (xel);
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
+ Assert.AreEqual (skid, (byte[])data1.SubjectKeyIds[0],
"SubjectKeyId");
data1.AddSubjectName (x509.GetName ());
xel = data1.GetXml ();
- data2.LoadXml (xel);
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
- string s = (string) data1.SubjectNames [0];
- AssertEquals ("SubjectName", x509.GetName (), s);
+ data2.LoadXml (xel);
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
+ string s = (string) data1.SubjectNames [0];
+ Assert.AreEqual (x509.GetName (), s, "SubjectName");
}
// There's a bug in the framework 1.0 where a CRL entry cannot
be included
@@ -151,8 +352,8 @@
KeyInfoX509Data data2 = new KeyInfoX509Data ();
data2.LoadXml (xel);
- AssertEquals ("data1==data2", (data1.GetXml
().OuterXml), (data2.GetXml ().OuterXml));
- AssertCrypto.AssertEquals ("crl1==crl2", data1.CRL,
data2.CRL);
+ Assert.AreEqual ((data1.GetXml ().OuterXml),
(data2.GetXml ().OuterXml), "data1==data2");
+ Assert.AreEqual (data1.CRL, data2.CRL, "crl1==crl2");
}
[Test]
@@ -167,12 +368,12 @@
data1.LoadXml (doc.DocumentElement);
// verify that proper XML is generated (equals to
original)
- string s = (data1.GetXml ().OuterXml);
- AssertEquals ("Xml-Simple", simple, s);
+ string s = (data1.GetXml ().OuterXml);
+ Assert.AreEqual (simple, s, "Xml-Simple");
// verify that property is parsed correctly
- byte[] c = (data1.Certificates[0] as
X509Certificate).GetRawCertData();
- AssertCrypto.AssertEquals ("Certificate[0]", cert, c);
+ byte[] c = (data1.Certificates[0] as
X509Certificate).GetRawCertData();
+ Assert.AreEqual (cert, c, "Certificate[0]");
string complex = "<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><X509IssuerSerial><X509IssuerName>C=US,
O=U.S. Government, OU=DoD, CN=Armed Forces
Root</X509IssuerName><X509SerialNumber>03</X509SerialNumber></X509IssuerSerial><X509SKI>3q3A3g==</X509SKI><X509SubjectName>C=US,
O=U.S. Government, OU=DoD, CN=Armed Forces
Root</X509SubjectName><X509Certificate>MIIJuTCCCSKgAwIBAgIQIAs1Xs7EsGO33sY0uXA0RDANBgkqhkiG9w0BAQQFADBiMREwDwYDVQQHEwhJbnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlTaWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXIwHhcNOTYwODIxMDAwMDAwWhcNOTcwODIwMjM1OTU5WjCCAQoxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQUyBJbmNvcnAuIGJ5IFJlZi4sTElBQi5MVEQoYyk5NjEmMCQGA1UECxMdRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUxFjAUBgNVBAMTDURhdmlkIFQuIEdyYXkxHjAcBgkqhkiG9w0BCQEWD2RhdmlkQGZvcm1hbC5pZTBcMA0GCSqGSIb3DQEBAQU
AA0sAMEgCQQDFgQei6w+4//j4HO4y/78SNWr5a8i+L/s+rwRRSqzdECmozUBbZh6Y7/JMd/qPhtEhZ5JESsSJyYPPiJ9v4jI1AgMBAAGjggcIMIIHBDAJBgNVHRMEAjAAMIICHwYDVR0DBIICFjCCAhIwggIOMIICCgYLYIZIAYb4RQEHAQEwggH5FoIBp1RoaXMgY2VydGlmaWNhdGUgaW5jb3Jwb3JhdGVzIGJ5IHJlZmVyZW5jZSwgYW5kIGl0cyB1c2UgaXMgc3RyaWN0bHkgc3ViamVjdCB0bywgdGhlIFZlcmlTaWduIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUgYXQ6IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9DUFM7IGJ5IEUtbWFpbCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUpIDk2MS04ODMwIENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJTElUWSBMSU1JVEVELq";
complex +=
"AOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMCwwKhYoaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTIDARBglghkgBhvhCAQEEBAMCB4AwNgYJYIZIAYb4QgEIBCkWJ2h0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L0NQUzCCBIcGCWCGSAGG+EIBDQSCBHgWggR0Q0FVVElPTjogVGhlIENvbW1vbiBOYW1lIGluIHRoaXMgQ2xhc3MgMSBEaWdpdGFsIApJRCBpcyBub3QgYXV0aGVudGljYXRlZCBieSBWZXJpU2lnbi4gSXQgbWF5IGJlIHRoZQpob2xkZXIncyByZWFsIG5hbWUgb3IgYW4gYWxpYXMuIFZlcmlTaWduIGRvZXMgYXV0aC0KZW50aWNhdGUgdGhlIGUtbWFpbCBhZGRyZXNzIG9mIHRoZSBob2xkZXIuCgpUaGlzIGNlcnRpZmljYXRlIGluY29ycG9yYXRlcyBieSByZWZlcmVuY2UsIGFuZCAKaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRvLCB0aGUgVmVyaVNpZ24gCkNlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IChDUFMpLCBhdmFpbGFibGUKaW4gdGhlIFZlcmlTaWduIHJlcG9zaXRvcnkgYXQ6IApodHRwczovL3d3dy52ZXJpc2lnbi5jb207IGJ5IEUtbWFpbCBhdApDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBvciBieSBtYWlsIGF0IFZlcmlTaWduLApJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1vdW50YWluIFZpZXcsIENBIDk0MDQzIFVTQQoKQ29weXJpZ2h0IChjKTE5OTYgVmVyaVNpZ24sIEluYy4gIEFsbCBS
aWdodHMgClJlc2VydmVkLiBDRVJUQUlOIFdBUlJBTlRJRVMgRElTQ0xBSU1FRCBBTkQgCkxJQUJJTElUWSBMSU1JVEVELgoKV0FSTklORzogVEhFIFVTRSBPRiBUSElTIENFUlRJRklDQVRFIElTIFNUUklDVExZClNVQkpFQ1QgVE8gVEhFIFZFUklTSUdOIENFUlRJRklDQVRJT04gUFJBQ1RJQ0UKU1RBVEVNRU5ULiAgVEhFIElTU1VJTkcgQVVUSE9SSVRZIERJU0NMQUlNUyBDRVJUQUlOCklNUExJRUQgQU5EIEVYUFJFU1MgV0FSUkFOVElFUywgSU5DTFVESU5HIFdBUlJBTlRJRVMKT0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLCBBTkQgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBDT05TRVFVRU5USUFMLApQVU5JVElWRSwgQU5EIENFUlRBSU4gT1RIRVIgREFNQUdFUy4gU0VFIFRIRSBDUFMKRk9SIERFVEFJTFMuCgpDb250ZW50cyBvZiB0aGUgVmVyaVNpZ24gcmVnaXN0ZXJlZApub252ZXJpZmllZFN1YmplY3RBdHRyaWJ1dGVzIGV4dGVuc2lvbiB2YWx1ZSBzaGFsbCAKbm90IGJlIGNvbnNpZGVyZWQgYXMgYWNjdXJhdGUgaW5mb3JtYXRpb24gdmF";
@@ -180,15 +381,15 @@
doc.LoadXml (complex);
KeyInfoX509Data data2 = new KeyInfoX509Data ();
data2.LoadXml (doc.DocumentElement);
- s = (data2.GetXml ().OuterXml);
- AssertEquals ("Xml-Complex", complex, s);
+ s = (data2.GetXml ().OuterXml);
+ Assert.AreEqual (complex, s, "Xml-Complex");
string crl = "<X509Data
xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><X509CRL>HoIBBTByAgEBMAsGCSqGSIb3DQEBBTBRMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPVS5TLiBHb3Zlcm5tZW50MQwwCgYDVQQLEwNEb0QxGjAYBgNVBAMTEUFybWVkIEZvcmNlcyBSb290Fw0wMjEwMTExMzEyNTBaMAsGCSqGSIb3DQEBBQOBgQB9otEZbQ8Py+SjvuA2CvNMm6/mT/bjr89V88bbq0wWMqpzrczcMjNg34vMk7VPauxwU6/PBw+gzWasAFfGXF0hsb0wiY53jdRpfsA2ftLYIHEIgNLLdIvYQhcEmYCkUnAuwOOMC/95t0V33MXPQ5iRffEB91PXxlE18InMwf/iiQ==</X509CRL></X509Data>";
doc.LoadXml (crl);
KeyInfoX509Data data3 = new KeyInfoX509Data ();
data3.LoadXml (doc.DocumentElement);
- s = (data3.GetXml ().OuterXml);
- AssertEquals ("Xml-Crl", crl, s);
+ s = (data3.GetXml ().OuterXml);
+ Assert.AreEqual (crl, s, "Xml-Crl");
}
[Test]
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches