PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/sipsorcery-core/Tests/SIPSorcery.SIP.Core.UnitTests/SIPAuthorisationDigestUnitTest.cs

https://github.com/thecc4re/sipsorcery-mono
C# | 215 lines | 150 code | 65 blank | 0 comment | 11 complexity | 63add1d2016cbf75ad5f63d51b4ec32f MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. using System;
  2. using System.Text;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using Microsoft.VisualStudio.TestTools.UnitTesting;
  6. namespace SIPSorcery.SIP.Core.UnitTests
  7. {
  8. [TestClass]
  9. public class SIPAuthorisationDigestUnitTest
  10. {
  11. [TestMethod]
  12. public void SampleTest()
  13. {
  14. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  15. Assert.IsTrue(true, "True was false.");
  16. Console.WriteLine("-----------------------------------------");
  17. }
  18. [TestMethod]
  19. public void KnownDigestTest()
  20. {
  21. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  22. SIPAuthorisationDigest authRequest = new SIPAuthorisationDigest(SIPAuthorisationHeadersEnum.ProxyAuthorization, "asterisk", "aaronxten2", "password", "sip:303@bluesipd", "17190028", "INVITE");
  23. string digest = authRequest.Digest;
  24. Console.WriteLine("Digest = " + digest + ".");
  25. Console.WriteLine(authRequest.ToString());
  26. Assert.IsTrue(true, "True was false.");
  27. Console.WriteLine("-----------------------------------------");
  28. }
  29. [TestMethod]
  30. public void KnownDigestTestObscureChars()
  31. {
  32. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  33. SIPAuthorisationDigest authRequest = new SIPAuthorisationDigest(SIPAuthorisationHeadersEnum.ProxyAuthorization, "sip.blueface.ie", "aaronnetgear", "!\"$%^&*()_-+=}[{]~#@':;?><,.", "sip:sip.blueface.ie:5060", "1430352056", "REGISTER");
  34. string digest = authRequest.Digest;
  35. Console.WriteLine("Digest = " + digest + ".");
  36. Console.WriteLine(authRequest.ToString());
  37. Assert.IsTrue(digest == "500fd998b609a0f24b45edfe190f2a17", "The digest was incorrect.");
  38. Console.WriteLine("-----------------------------------------");
  39. }
  40. [TestMethod]
  41. public void KnownDigestTestObscureChars2()
  42. {
  43. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  44. SIPAuthorisationDigest authRequest = new SIPAuthorisationDigest(SIPAuthorisationHeadersEnum.ProxyAuthorization, "sip.blueface.ie", "aaronxten", "_*!$%^()\"", "sip:sip.blueface.ie", "1263192143", "REGISTER");
  45. string digest = authRequest.Digest;
  46. Console.WriteLine("Digest = " + digest + ".");
  47. Console.WriteLine(authRequest.ToString());
  48. Assert.IsTrue(digest == "54b08b70ed1976068b9e18d38ea59849", "The digest was incorrect.");
  49. Console.WriteLine("-----------------------------------------");
  50. }
  51. [TestMethod]
  52. public void KnownDigestTest2()
  53. {
  54. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  55. SIPAuthorisationDigest authRequest = new SIPAuthorisationDigest(SIPAuthorisationHeadersEnum.ProxyAuthorization, "asterisk", "aaronxten2", "password", "sip:303@213.168.225.133", "4a4ad124", "INVITE");
  56. string digest = authRequest.Digest;
  57. Console.WriteLine("Digest = " + digest + ".");
  58. Console.WriteLine(authRequest.ToString());
  59. Assert.IsTrue(true, "True was false.");
  60. Console.WriteLine("-----------------------------------------");
  61. }
  62. [TestMethod]
  63. public void KnownRegisterDigestTest()
  64. {
  65. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  66. SIPAuthorisationDigest authRequest = new SIPAuthorisationDigest(SIPAuthorisationHeadersEnum.ProxyAuthorization, "asterisk", "aaron", "password", "sip:blueface", "1c8192c9", "REGISTER");
  67. string digest = authRequest.Digest;
  68. Console.WriteLine("Digest = " + digest + ".");
  69. Console.WriteLine(authRequest.ToString());
  70. Assert.IsTrue("08881d1d56c0b21f11d19f4067da7045" == digest, "Digest was incorrect.");
  71. Console.WriteLine("-----------------------------------------");
  72. }
  73. [TestMethod]
  74. public void KnownRegisterDigestTest2()
  75. {
  76. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  77. SIPAuthorisationDigest authRequest = new SIPAuthorisationDigest(SIPAuthorisationHeadersEnum.ProxyAuthorization, "asterisk", "aaron", "password", "sip:blueface", "1c3c7a97", "REGISTER");
  78. string digest = authRequest.Digest;
  79. Console.WriteLine("Digest = " + digest + ".");
  80. Console.WriteLine(authRequest.ToString());
  81. Assert.IsTrue("1ef20beed71043225873e4f6712e4922" == digest, "Digest was incorrect.");
  82. Console.WriteLine("-----------------------------------------");
  83. }
  84. [TestMethod]
  85. public void ParseWWWAuthenticateDigestTest()
  86. {
  87. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  88. SIPAuthorisationDigest authRequest = SIPAuthorisationDigest.ParseAuthorisationDigest(SIPAuthorisationHeadersEnum.WWWAuthenticate, @"Digest realm=""aol.com"",nonce=""48e7541d4339e27ee7b520a4bf8a8e3c4fffcb90"",qop=""auth"",opaque=""004533235332435434ffac663e"",algorithm=MD5");
  89. Assert.IsTrue(authRequest.Realm == "aol.com", "The authorisation realm was not parsed correctly.");
  90. Assert.IsTrue(authRequest.Nonce == "48e7541d4339e27ee7b520a4bf8a8e3c4fffcb90", "The authorisation nonce was not parsed correctly.");
  91. Assert.IsTrue(authRequest.Qop == "auth", "The authorisation qop was not parsed correctly.");
  92. Assert.IsTrue(authRequest.Opaque == "004533235332435434ffac663e", "The authorisation opaque was not parsed correctly.");
  93. Console.WriteLine("-----------------------------------------");
  94. }
  95. [TestMethod]
  96. public void KnownWWWAuthenticateDigestTest()
  97. {
  98. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  99. SIPAuthorisationDigest authRequest = SIPAuthorisationDigest.ParseAuthorisationDigest(SIPAuthorisationHeadersEnum.WWWAuthenticate, @"Digest realm=""aol.com"",nonce=""48e757f3b95250379d63fe29f777984a93831b80"",qop=""auth"",opaque=""004533235332435434ffac663e"",algorithm=MD5");
  100. authRequest.SetCredentials("user@aim.com", "password", "sip:01135312222222@sip.aol.com;transport=udp", "INVITE");
  101. authRequest.Cnonce = "e66ea40d700e8ab69509df4893f4a821";
  102. string digest = authRequest.Digest;
  103. authRequest.Response = digest;
  104. Console.WriteLine("Digest = " + digest + ".");
  105. Console.WriteLine(authRequest.ToString());
  106. Assert.IsTrue("6221ea0348e2d5229dd1f3825d633295" == digest, "Digest was incorrect.");
  107. Console.WriteLine("-----------------------------------------");
  108. }
  109. [TestMethod]
  110. public void AuthenticateHeaderToStringTest()
  111. {
  112. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  113. SIPAuthorisationDigest authRequest = SIPAuthorisationDigest.ParseAuthorisationDigest(SIPAuthorisationHeadersEnum.WWWAuthenticate, @"Digest realm=""aol.com"",nonce=""48e7541d4339e27ee7b520a4bf8a8e3c4fffcb90"",qop=""auth"",opaque=""004533235332435434ffac663e"",algorithm=MD5");
  114. authRequest.SetCredentials("user@aim.com", "password", "sip:01135312222222@sip.aol.com;transport=udp", "INVITE");
  115. authRequest.Cnonce = "cf2e005f1801550717cc8c59193aa9f4";
  116. string digest = authRequest.Digest;
  117. authRequest.Response = digest;
  118. Console.WriteLine("Digest = " + digest + ".");
  119. Console.WriteLine(authRequest.ToString());
  120. Assert.IsTrue(authRequest.ToString() == @"Digest username=""user@aim.com"",realm=""aol.com"",nonce=""48e7541d4339e27ee7b520a4bf8a8e3c4fffcb90"",uri=""sip:01135312222222@sip.aol.com;transport=udp"",response=""18ad0e62fcc9d7f141a72078c4a0784f"",cnonce=""cf2e005f1801550717cc8c59193aa9f4"",nc=00000001,qop=auth,opaque=""004533235332435434ffac663e"",algorithm=MD5", "The authorisation header was not put to a string correctly.");
  121. Console.WriteLine("-----------------------------------------");
  122. }
  123. [TestMethod]
  124. public void KnownQOPUnitTest()
  125. {
  126. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  127. SIPAuthorisationDigest authRequest = SIPAuthorisationDigest.ParseAuthorisationDigest(SIPAuthorisationHeadersEnum.WWWAuthenticate, "Digest realm=\"jnctn.net\", nonce=\"4a597e1c0000a1636739088e9151ef2f319af257c8f585f1\", qop=\"auth\"");
  128. authRequest.SetCredentials("user", "password", "sip:user.onsip.com", "REGISTER");
  129. authRequest.Cnonce = "d3a1ca6af34e72e2461b794f48d5045d";
  130. string digest = authRequest.Digest;
  131. authRequest.Response = digest;
  132. Console.WriteLine("Digest = " + digest + ".");
  133. Console.WriteLine(authRequest.ToString());
  134. Assert.IsTrue(authRequest.Response == "7709215c1d58c1912dc59d1e8b5b6248", "The authentication response digest was not generated properly.");
  135. Console.WriteLine("-----------------------------------------");
  136. }
  137. [TestMethod]
  138. public void KnownOpaqueTest()
  139. {
  140. Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
  141. SIPAuthorisationDigest authRequest = SIPAuthorisationDigest.ParseAuthorisationDigest(SIPAuthorisationHeadersEnum.WWWAuthenticate, @"digest realm=""Syndeo Corporation"", nonce=""1265068315059e3bbf3052cf13ea5ca22fb71669a7"", opaque=""09c0f23f71f89ce53baab5664c09cbfa"", algorithm=MD5");
  142. authRequest.SetCredentials("user", "pass", "sip:sip.ribbit.com", "REGISTER");
  143. string digest = authRequest.Digest;
  144. Console.WriteLine("Digest = " + digest + ".");
  145. Console.WriteLine(authRequest.ToString());
  146. Assert.IsTrue(true, "True was false.");
  147. Console.WriteLine("-----------------------------------------");
  148. }
  149. }
  150. }