Author: atsushi
Date: 2007-02-16 13:09:45 -0500 (Fri, 16 Feb 2007)
New Revision: 73035

Modified:
   trunk/olive/samples/services/secure-message/ChangeLog
   trunk/olive/samples/services/secure-message/samplecli6.cs
   trunk/olive/samples/services/secure-message/samplesvc6.cs
   trunk/olive/samples/services/secure-message/samplesvc8.cs
Log:
2007-02-16  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * samplesvc6.cs : removed extra code. Check some security properties.
        * samplecli6.cs : use public-only key to detect possible bugs.
        * samplesvc8.cs : now it could be nicer to return user name from
          supporting token.



Modified: trunk/olive/samples/services/secure-message/ChangeLog
===================================================================
--- trunk/olive/samples/services/secure-message/ChangeLog       2007-02-16 
18:07:25 UTC (rev 73034)
+++ trunk/olive/samples/services/secure-message/ChangeLog       2007-02-16 
18:09:45 UTC (rev 73035)
@@ -1,3 +1,10 @@
+2007-02-16  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
+       * samplesvc6.cs : removed extra code. Check some security properties.
+       * samplecli6.cs : use public-only key to detect possible bugs.
+       * samplesvc8.cs : now it could be nicer to return user name from
+         supporting token.
+
 2007-02-07  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * samplecli8.cs, samplesvc8.cs, Makefile :

Modified: trunk/olive/samples/services/secure-message/samplecli6.cs
===================================================================
--- trunk/olive/samples/services/secure-message/samplecli6.cs   2007-02-16 
18:07:25 UTC (rev 73034)
+++ trunk/olive/samples/services/secure-message/samplecli6.cs   2007-02-16 
18:09:45 UTC (rev 73035)
@@ -56,12 +56,10 @@
                HttpTransportBindingElement hbe =
                        new HttpTransportBindingElement ();
                CustomBinding binding = new CustomBinding (new XBE (), sbe, 
hbe);
-               X509Certificate2 cert = new X509Certificate2 ("test.pfx", 
"mono");
-               X509Certificate2 cert2 = cert;//new X509Certificate2 
("test2.cer");
+               //X509Certificate2 cert = new X509Certificate2 ("test.pfx", 
"mono");
+               X509Certificate2 cert = new X509Certificate2 ("test.cer");//, 
"mono");
                FooProxy proxy = new FooProxy (binding,
-                       new EndpointAddress (new Uri ("http://localhost:8080";), 
new X509CertificateEndpointIdentity (cert2)));
-               
//proxy.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode
 = X509CertificateValidationMode.None;
-               proxy.ClientCredentials.ClientCertificate.Certificate = cert;
+                       new EndpointAddress (new Uri ("http://localhost:8080";), 
new X509CertificateEndpointIdentity (cert)));
                proxy.Endpoint.Behaviors.Add (new StdErrInspectionBehavior ());
                proxy.Open ();
                Console.WriteLine (proxy.Echo ("TEST FOR ECHO"));

Modified: trunk/olive/samples/services/secure-message/samplesvc6.cs
===================================================================
--- trunk/olive/samples/services/secure-message/samplesvc6.cs   2007-02-16 
18:07:25 UTC (rev 73034)
+++ trunk/olive/samples/services/secure-message/samplesvc6.cs   2007-02-16 
18:09:45 UTC (rev 73035)
@@ -1,7 +1,9 @@
 using System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
+using System.Security.Cryptography;
 using System.Security.Cryptography.X509Certificates;
+using System.IdentityModel.Policy;
 using System.IdentityModel.Selectors;
 using System.IdentityModel.Tokens;
 using System.ServiceModel;
@@ -11,14 +13,6 @@
 using System.ServiceModel.Security;
 using System.ServiceModel.Security.Tokens;
 
-       public class GodUserNamePasswordValidator : UserNamePasswordValidator
-       {
-               public override void Validate (string userName, string password)
-               {
-                       // God allows everyone.
-               }
-       }
-
        public class AllowAllX509CertificateValidator : X509CertificateValidator
        {
                public override void Validate(X509Certificate2 certificate)
@@ -57,8 +51,6 @@
                ServiceCredentials cred = new ServiceCredentials ();
                cred.ServiceCertificate.Certificate =
                        new X509Certificate2 ("test.pfx", "mono");
-               cred.ClientCertificate.Authentication.CertificateValidationMode 
=
-                       X509CertificateValidationMode.None;
                host.Description.Behaviors.Add (cred);
                host.Description.Behaviors.Find<ServiceDebugBehavior> ()
                        .IncludeExceptionDetailInFaults = true;
@@ -87,6 +79,16 @@
 {
        public string Echo (string msg) 
        {
+               SecurityMessageProperty sp = 
OperationContext.Current.IncomingMessageProperties.Security;
+if (sp.ProtectionToken == null) throw new Exception ("whoa");
+               WrappedKeySecurityToken t = sp.ProtectionToken.SecurityToken as 
WrappedKeySecurityToken;
+HMAC sha1 = new HMACSHA1 (((SymmetricSecurityKey) t.SecurityKeys 
[0]).GetSymmetricKey ());
+               Console.WriteLine (Convert.ToBase64String (t.GetWrappedKey ()));
+               Console.WriteLine (Convert.ToBase64String (sha1.ComputeHash 
(t.GetWrappedKey ())));
+               Console.WriteLine (Convert.ToBase64String (new HMACSHA1 
().ComputeHash (t.GetWrappedKey ())));
+               Console.WriteLine (Convert.ToBase64String (new HMACSHA1 
().ComputeHash (sha1.Key)));
+               //foreach (IAuthorizationPolicy p in 
sp.ProtectionToken.SecurityTokenPolicies)
+               //      Console.WriteLine (p);
 Console.WriteLine (msg);
                return msg + msg;
                //throw new NotImplementedException ();

Modified: trunk/olive/samples/services/secure-message/samplesvc8.cs
===================================================================
--- trunk/olive/samples/services/secure-message/samplesvc8.cs   2007-02-16 
18:07:25 UTC (rev 73034)
+++ trunk/olive/samples/services/secure-message/samplesvc8.cs   2007-02-16 
18:09:45 UTC (rev 73035)
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Security.Cryptography.X509Certificates;
+using System.IdentityModel.Policy;
 using System.IdentityModel.Selectors;
 using System.IdentityModel.Tokens;
 using System.ServiceModel;
@@ -81,8 +82,11 @@
 {
        public string Echo (string msg) 
        {
+               string user = null;
+               foreach (SupportingTokenSpecification sts in 
OperationContext.Current.SupportingTokens)
+                       user = ((UserNameSecurityToken) 
sts.SecurityToken).UserName;
 Console.WriteLine (msg);
-               return msg + msg;
+               return user;
                //throw new NotImplementedException ();
        }
 }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to