//
// AuthenticationKeyTest.cs
// - NUnit Test Cases for AuthenticationKey
//
// Author:
// Sebastien Pouliot (spouliot@motus.com)
//
// (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
//
using NUnit.Framework;
using Microsoft.Web.Services.Security;
using System;
using System.Security.Cryptography;
using System.Xml;
namespace MonoTests.MS.Web.Services.Security {
[TestFixture]
public class AuthenticationKeyTest : Assertion {
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void ConstructorAsymmetricNull ()
{
// we do not want to confuse the compiler about null ;-)
AsymmetricAlgorithm aa = null;
AuthenticationKey ak = new AuthenticationKey (aa);
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void ConstructorSymmetricNull ()
{
// we do not want to confuse the compiler about null ;-)
SymmetricAlgorithm sa = null;
AuthenticationKey ak = new AuthenticationKey (sa);
}
[Test]
// LAMESPEC: undocumented exception
[ExpectedException (typeof (ArgumentNullException))]
public void CheckSignatureNull ()
{
DSA dsa = DSA.Create ();
dsa.ImportParameters (AllTests.GetDSAKey (false));
AuthenticationKey ak = new AuthenticationKey (dsa);
ak.CheckSignature (null);
}
[Test]
public void CheckSignatureDSA ()
{
DSA dsa = DSA.Create ();
dsa.ImportParameters (AllTests.GetDSAKey (false));
AuthenticationKey ak = new AuthenticationKey (dsa);
AssertNotNull ("AuthenticationKey(DSA)", ak);
XmlDocument doc = new XmlDocument ();
doc.LoadXml ("JjDjPDymSPahf7zC6CCqaTz39uQ=j2Rl0vEKoKbRfOTtEZvYoNSdiJdkCfN+FfuMntTqVMmYFFtl/nWExg==");
SignedXml signedXml = new SignedXml ();
signedXml.LoadXml (doc.DocumentElement);
Assert ("CheckSignature(DSA)", ak.CheckSignature (signedXml));
}
[Test]
public void CheckSignatureRSA ()
{
RSA rsa = RSA.Create ();
rsa.ImportParameters (AllTests.GetRSAKey (false));
AuthenticationKey ak = new AuthenticationKey (rsa);
AssertNotNull ("AuthenticationKey(RSA)", ak);
XmlDocument doc = new XmlDocument ();
doc.LoadXml ("JjDjPDymSPahf7zC6CCqaTz39uQ=l/Anzks1CncmNQsDb2ZgSYEcXcX7sS0jql5fmQcEVAkRDhxwV2Lb+6Z2yPO5F+QZ+54m8w/QJdbQJduyOF0w1blkWd1Iz5ubOt79Cg1f0zO8SYwB1X6j0SzXXB5tTm1hYjKzX/iAqgUJF1o8bscu74A8xCwQio2ay7TWoTEl/Ss=");
SignedXml signedXml = new SignedXml ();
signedXml.LoadXml (doc.DocumentElement);
Assert ("CheckSignature(RSA)", ak.CheckSignature (signedXml));
}
[Test]
public void CheckSignatureSymmetricAlgo ()
{
// default (should be Rjindael)
SymmetricAlgorithm sa = SymmetricAlgorithm.Create ();
sa.Key = new byte [16]; // 128 bits (all zeros)
AuthenticationKey ak = new AuthenticationKey (sa);
AssertNotNull ("AuthenticationKey(SymmetricAlgorithm)", ak);
XmlDocument doc = new XmlDocument ();
doc.LoadXml ("JjDjPDymSPahf7zC6CCqaTz39uQ=y5NfXaoCALrMxBsn/wGKNJUNJ7Y=");
SignedXml signedXml = new SignedXml ();
signedXml.LoadXml (doc.DocumentElement);
Assert ("CheckSignature(HMAC)", ak.CheckSignature (signedXml));
}
}
}