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