From c10d31cbbbed7b2997816cb9d296c679073b8aa5 Mon Sep 17 00:00:00 2001 From: Tomas Restrepo Date: Thu, 10 May 2007 23:02:46 +0000 Subject: Merged revisions 537015-537026 via svnmerge from https://svn.apache.org/repos/asf/incubator/qpid/branches/M2 ........ r537015 | tomasr | 2007-05-10 17:16:49 -0500 (Thu, 10 May 2007) | 1 line QPID-435: Fix HeadersExchangeTest ........ r537019 | tomasr | 2007-05-10 17:25:01 -0500 (Thu, 10 May 2007) | 1 line QPID-441 Fix handling of bounced messages ........ r537026 | tomasr | 2007-05-10 17:46:46 -0500 (Thu, 10 May 2007) | 1 line QPID-398 SSL support for .NET client ........ git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@537031 13f79535-47bb-0310-9956-ffa450edef68 --- .../connection/SslConnectionTest.cs | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 dotnet/Qpid.Client.Tests/connection/SslConnectionTest.cs (limited to 'dotnet/Qpid.Client.Tests/connection/SslConnectionTest.cs') diff --git a/dotnet/Qpid.Client.Tests/connection/SslConnectionTest.cs b/dotnet/Qpid.Client.Tests/connection/SslConnectionTest.cs new file mode 100644 index 0000000000..b8941c8459 --- /dev/null +++ b/dotnet/Qpid.Client.Tests/connection/SslConnectionTest.cs @@ -0,0 +1,91 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +using System; +using System.IO; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using NUnit.Framework; +using Qpid.Client.Qms; +using Qpid.Messaging; + +namespace Qpid.Client.Tests.Connection +{ + /// + /// Test SSL/TLS connections to the broker + /// + [TestFixture] + public class SslConnectionTest + { + /// + /// Make a test TLS connection to the broker + /// without using client-certificates + /// + [Test] + public void DoSslConnection() + { + // because for tests we don't usually trust the server certificate + // we need here to tell the client to ignore certificate validation errors + SslOptions sslConfig = new SslOptions(null, true); + + MakeBrokerConnection(sslConfig); + } + + /// + /// Make a TLS connection to the broker with a + /// client-side certificate + /// + [Test] + public void DoSslConnectionWithClientCert() + { + // because for tests we don't usually trust the server certificate + // we need here to tell the client to ignore certificate validation errors + SslOptions sslConfig = new SslOptions(LoadClientCert(), true); + + MakeBrokerConnection(sslConfig); + } + + private static void MakeBrokerConnection(SslOptions options) + { + IConnectionInfo connectionInfo = new QpidConnectionInfo(); + connectionInfo.VirtualHost = "test"; + connectionInfo.AddBrokerInfo(new AmqBrokerInfo("amqp", "localhost", 8672, options)); + + using ( IConnection connection = new AMQConnection(connectionInfo) ) + { + Console.WriteLine("connection = " + connection); + } + } + + private static X509Certificate LoadClientCert() + { + // load a self-issued certificate from an embedded + // resource + const string name = "Qpid.Client.Tests.connection.QpidTestCert.pfx"; + Assembly assembly = Assembly.GetExecutingAssembly(); + + Stream res = assembly.GetManifestResourceStream(name); + byte[] buffer = new byte[res.Length]; + res.Read(buffer, 0, buffer.Length); + + return new X509Certificate(buffer); + } + } +} -- cgit v1.2.1