Author: robbie
Date: Mon Nov 30 14:44:22 2009
New Revision: 885438

URL: http://svn.apache.org/viewvc?rev=885438&view=rev
Log:
QPID-2222: Added new CramMD5HexSaslClient.cs and registered it in the Sasl 
Factory and the client CallbackHandler

Merge changes from trunk r885435

Added:
    
qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/Mechanisms/CramMD5HexSaslClient.cs
      - copied unchanged from r885435, 
qpid/trunk/qpid/dotnet/Qpid.Sasl/Mechanisms/CramMD5HexSaslClient.cs
Modified:
    qpid/branches/0.5.x-dev/qpid/dotnet/   (props changed)
    
qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Client/Client/Security/CallbackHandlerRegistry.cs
    qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/Callbacks.cs
    qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs
    qpid/branches/0.5.x-dev/qpid/dotnet/build-msbuild.bat   (props changed)
    qpid/branches/0.5.x-dev/qpid/dotnet/build-nant-release   (props changed)
    qpid/branches/0.5.x-dev/qpid/dotnet/build-nant.bat   (props changed)

Propchange: qpid/branches/0.5.x-dev/qpid/dotnet/
------------------------------------------------------------------------------
    svn:mergeinfo = /qpid/trunk/qpid/dotnet:885435

Modified: 
qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Client/Client/Security/CallbackHandlerRegistry.cs
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Client/Client/Security/CallbackHandlerRegistry.cs?rev=885438&r1=885437&r2=885438&view=diff
==============================================================================
--- 
qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Client/Client/Security/CallbackHandlerRegistry.cs
 (original)
+++ 
qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Client/Client/Security/CallbackHandlerRegistry.cs
 Mon Nov 30 14:44:22 2009
@@ -96,6 +96,8 @@
             _mechanism2HandlerMap.Add(ExternalSaslClient.Mechanism, 
typeof(UsernamePasswordCallbackHandler));
          if ( !_mechanism2HandlerMap.Contains(CramMD5SaslClient.Mechanism) )
             _mechanism2HandlerMap.Add(CramMD5SaslClient.Mechanism, 
typeof(UsernamePasswordCallbackHandler));
+         if ( !_mechanism2HandlerMap.Contains(CramMD5HexSaslClient.Mechanism) )
+            _mechanism2HandlerMap.Add(CramMD5HexSaslClient.Mechanism, 
typeof(UsernamePasswordCallbackHandler));
          if ( !_mechanism2HandlerMap.Contains(PlainSaslClient.Mechanism) )
             _mechanism2HandlerMap.Add(PlainSaslClient.Mechanism, 
typeof(UsernamePasswordCallbackHandler));
 

Modified: qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/Callbacks.cs
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/Callbacks.cs?rev=885438&r1=885437&r2=885438&view=diff
==============================================================================
--- qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/Callbacks.cs (original)
+++ qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/Callbacks.cs Mon Nov 30 
14:44:22 2009
@@ -21,6 +21,8 @@
 
 using System;
 using System.Text;
+using System.Globalization;
+using System.Security.Cryptography;
 
 namespace Apache.Qpid.Sasl
 {
@@ -87,6 +89,37 @@
          : base("password:", "", "")
       {
       }
+
+      public byte[] HashedText
+      {
+          get
+          {
+            string _text = this.Text;
+            System.Security.Cryptography.MD5CryptoServiceProvider x = new 
System.Security.Cryptography.MD5CryptoServiceProvider();
+            byte[] bs = x.ComputeHash(Encoding.UTF8.GetBytes(_text));
+            return bs;
+          }
+
+      }
+   } // class PasswordCallback
+
+   public class HashedPasswordCallback : TextSaslCallback
+   {
+       public HashedPasswordCallback()
+           : base("password:", "", "")
+       {
+       }
+
+       public byte[] HashedText
+       {
+        get {
+               string _text = this.Text;
+               System.Security.Cryptography.MD5CryptoServiceProvider x = new 
System.Security.Cryptography.MD5CryptoServiceProvider();
+               _text = _text.PadRight(16, '\0');
+               byte[] bs = x.ComputeHash(Encoding.UTF8.GetBytes(_text));
+               return bs;
+        }
+       }
    } // class PasswordCallback
 
    public class RealmCallback : TextSaslCallback

Modified: qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs?rev=885438&r1=885437&r2=885438&view=diff
==============================================================================
--- qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs 
(original)
+++ qpid/branches/0.5.x-dev/qpid/dotnet/Qpid.Sasl/DefaultClientFactory.cs Mon 
Nov 30 14:44:22 2009
@@ -31,6 +31,7 @@
       private static readonly string[] SUPPORTED = new string[] {
                DigestSaslClient.Mechanism,
                CramMD5SaslClient.Mechanism,
+               CramMD5HexSaslClient.Mechanism,
                PlainSaslClient.Mechanism, 
                AnonymousSaslClient.Mechanism,
                ExternalSaslClient.Mechanism,
@@ -50,6 +51,7 @@
              props.Contains(SaslProperties.PolicyPassCredentials) )
          {
             vetoed.Add(CramMD5SaslClient.Mechanism);
+            vetoed.Add(CramMD5HexSaslClient.Mechanism);
             vetoed.Add(PlainSaslClient.Mechanism);
             vetoed.Add(AnonymousSaslClient.Mechanism);
             vetoed.Add(ExternalSaslClient.Mechanism);
@@ -81,6 +83,8 @@
             return new DigestSaslClient(authorizationId, serverName, protocol, 
props, handler);
          if ( mechs.Contains(CramMD5SaslClient.Mechanism) )
             return new CramMD5SaslClient(authorizationId, props, handler);
+         if ( mechs.Contains(CramMD5HexSaslClient.Mechanism) )
+            return new CramMD5HexSaslClient(authorizationId, props, handler);
          if ( mechs.Contains(PlainSaslClient.Mechanism) )
             return new PlainSaslClient(authorizationId, props, handler);
          if ( mechs.Contains(AnonymousSaslClient.Mechanism) )

Propchange: qpid/branches/0.5.x-dev/qpid/dotnet/build-msbuild.bat
            ('svn:mergeinfo' removed)

Propchange: qpid/branches/0.5.x-dev/qpid/dotnet/build-nant-release
            ('svn:mergeinfo' removed)

Propchange: qpid/branches/0.5.x-dev/qpid/dotnet/build-nant.bat
            ('svn:mergeinfo' removed)



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to