Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 30 additions & 6 deletions UnitTests/SslStreamFactoryTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,14 @@ public void VerifyServerLocalCertificateChainEnhancedUsage()
var settings = new SocketSettings();
settings.Configure(dict);

var logger = new LogFactoryAdapter(new ScreenLogFactory(true, true, true));
var logger = new LogFactoryAdapter(new NullLogFactory());
var factory = new SslStreamFactory(settings, logger);

var resultServer = factory.VerifyRemoteCertificate(ServerCertificate, SslPolicyErrors.None, SslStreamFactory.SERVER_AUTHENTICATION_OID);
var resultClient = factory.VerifyRemoteCertificate(ServerCertificate, SslPolicyErrors.None, SslStreamFactory.CLIENT_AUTHENTICATION_OID);
// Logged
// <event> Remote certificate is not intended for client authentication: It is missing enhanced key usage 1.3.6.1.5.5.7.3.2
// TODO: above log is probably not supposed to happen

Assert.That(resultServer, Is.True);
Assert.That(resultClient, Is.False);
Expand All @@ -127,11 +130,16 @@ public void ServerLocalCertificateChainFailsWithoutCA()
var settings = new SocketSettings();
settings.Configure(dict);

var logger = new LogFactoryAdapter(new ScreenLogFactory(true, true, true));
var logger = new LogFactoryAdapter(new NullLogFactory());
var factory = new SslStreamFactory(settings, logger);

var resultServer = factory.VerifyRemoteCertificate(ServerCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.SERVER_AUTHENTICATION_OID);
// Logged:
// <event> CACertificatePath is not specified
// <event> Remote certificate was not recognized as a valid certificate: RemoteCertificateChainErrors
var resultClient = factory.VerifyRemoteCertificate(ServerCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.CLIENT_AUTHENTICATION_OID);
// Logged:
// <event> Remote certificate is not intended for client authentication: It is missing enhanced key usage 1.3.6.1.5.5.7.3.2

Assert.That(resultServer, Is.False);
Assert.That(resultClient, Is.False);
Expand All @@ -150,11 +158,15 @@ public void ServerLocalCertificateChainFailsWithWrongCA()
var settings = new SocketSettings();
settings.Configure(dict);

var logger = new LogFactoryAdapter(new ScreenLogFactory(true, true, true));
var logger = new LogFactoryAdapter(new NullLogFactory());
var factory = new SslStreamFactory(settings, logger);

var resultServer = factory.VerifyRemoteCertificate(ServerCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.SERVER_AUTHENTICATION_OID);
// Logged:
// <event> Remote certificate was not recognized as a valid certificate: RemoteCertificateChainErrors
var resultClient = factory.VerifyRemoteCertificate(ServerCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.CLIENT_AUTHENTICATION_OID);
// Logged:
// <event> Remote certificate is not intended for client authentication: It is missing enhanced key usage 1.3.6.1.5.5.7.3.2

Assert.That(resultServer, Is.False);
Assert.That(resultClient, Is.False);
Expand All @@ -173,10 +185,13 @@ public void VerifyClientLocalCertificateChainEnhancedUsage()
var settings = new SocketSettings();
settings.Configure(dict);

var logger = new LogFactoryAdapter(new ScreenLogFactory(true, true, true));
var logger = new LogFactoryAdapter(new NullLogFactory());
var factory = new SslStreamFactory(settings, logger);

var resultServer = factory.VerifyRemoteCertificate(ClientCertificate, SslPolicyErrors.None, SslStreamFactory.SERVER_AUTHENTICATION_OID);
// Logged
// <event> Remote certificate is not intended for server authentication: It is missing enhanced key usage 1.3.6.1.5.5.7.3.1
// TODO: above log is probably not supposed to happen
var resultClient = factory.VerifyRemoteCertificate(ClientCertificate, SslPolicyErrors.None, SslStreamFactory.CLIENT_AUTHENTICATION_OID);

Assert.That(resultServer, Is.False);
Expand All @@ -195,11 +210,16 @@ public void ClientLocalCertificateChainFailsWithoutCA()
var settings = new SocketSettings();
settings.Configure(dict);

var logger = new LogFactoryAdapter(new ScreenLogFactory(true, true, true));
var logger = new LogFactoryAdapter(new NullLogFactory());
var factory = new SslStreamFactory(settings, logger);

var resultServer = factory.VerifyRemoteCertificate(ClientCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.SERVER_AUTHENTICATION_OID);
// Logged:
// <event> Remote certificate is not intended for server authentication: It is missing enhanced key usage 1.3.6.1.5.5.7.3.1
var resultClient = factory.VerifyRemoteCertificate(ClientCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.CLIENT_AUTHENTICATION_OID);
// Logged:
// <event> CACertificatePath is not specified
// <event> Remote certificate was not recognized as a valid certificate: RemoteCertificateChainErrors

Assert.That(resultServer, Is.False);
Assert.That(resultClient, Is.False);
Expand All @@ -218,11 +238,15 @@ public void ClientLocalCertificateChainFailsWithWrongCA()
var settings = new SocketSettings();
settings.Configure(dict);

var logger = new LogFactoryAdapter(new ScreenLogFactory(true, true, true));
var logger = new LogFactoryAdapter(new NullLogFactory());
var factory = new SslStreamFactory(settings, logger);

var resultServer = factory.VerifyRemoteCertificate(ClientCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.SERVER_AUTHENTICATION_OID);
// Logged:
// <event> Remote certificate is not intended for server authentication: It is missing enhanced key usage 1.3.6.1.5.5.7.3.1
var resultClient = factory.VerifyRemoteCertificate(ClientCertificate, SslPolicyErrors.RemoteCertificateChainErrors, SslStreamFactory.CLIENT_AUTHENTICATION_OID);
// Logged:
// <event> Remote certificate was not recognized as a valid certificate: RemoteCertificateChainErrors

Assert.That(resultServer, Is.False);
Assert.That(resultClient, Is.False);
Expand Down
2 changes: 1 addition & 1 deletion UnitTests/ThreadedSocketAcceptor_RestartTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ private void CreateAcceptorFromSessionConfig()
{
TestApplication application = new TestApplication(LogonCallback, LogoffCallback);
IMessageStoreFactory storeFactory = new MemoryStoreFactory();
ILogFactory logFactory = new ScreenLogFactory(false, false, false);
ILogFactory logFactory = new NullLogFactory();
SessionSettings settings = new SessionSettings();

settings.Set(CreateSessionID(StaticAcceptorCompID), CreateSessionConfig());
Expand Down
Loading