Dart.PowerTCP.SslSockets Namespace : SslStream Class |
A PipeStream type which performs bidirectional SSL transforms to all data passing through the stream.
For a list of all members of this type, see SslStream members.
![]() ![]() ![]() ![]() ![]() |
System.Object
System.MarshalByRefObject
System.IO.Stream
Dart.PowerTCP.SslSockets.EnhancedStream
Dart.PowerTCP.SslSockets.PipeStream
Dart.PowerTCP.SslSockets.SslStream
[Visual Basic]
<LicenseProviderAttribute(SslStreamLicenseProvider)>
Public Class SslStream
Inherits PipeStream
[C#]
[LicenseProviderAttribute(SslStreamLicenseProvider)]
public class SslStream : PipeStream
[C++]
[LicenseProviderAttribute(SslStreamLicenseProvider)]
public __gc class SslStream : public PipeStream
[C++/CLI]
[LicenseProviderAttribute(SslStreamLicenseProvider)]
public ref class SslStream : public PipeStream
If you wish to communicate over a network using SSL, an SslStream must be used. To switch from non-secure to secure communications, simply set the SecureProtocol property like so:
tcp1.SecureProtocol = SecureProtocol.Auto; // SSL enabled
After doing this, simply call Send and Receive (or Tcp.Stream.Write and Tcp.Stream.Read) to send data securely. To switch back to non-secure, simply reset the SecureProtocol property:
The following example demonstrates creating a simple secure client.
[Visual Basic]
Private Sub SecureTest()
'Allow component to negotiate best security option
Tcp1.SecureProtocol = SecureProtocol.Auto
' Connect to a secure echo server.
Tcp1.Connect("mysecureserver", 7)
' Send secure data
Tcp1.Send("Test")
' Receive and display secure data
System.Diagnostics.Debug.WriteLine(Tcp1.Receive().ToString())
' Close the connection
Tcp1.Close()
End Sub
Private Sub Tcp1_CertificateRequested(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tcp1.CertificateRequested
'The server has requested client authentication
'Allow the user to select a certificate
Dim certform As New CertificateListForm(True, True)
If (certform.ShowDialog(Me) = DialogResult.OK) Then
Tcp1.Certificate = certform.SelectedCertificate
End If
End Sub
Private Sub Tcp1_CertificateReceived(ByVal sender As Object, ByVal e As Dart.PowerTCP.SslSockets.CertificateReceivedEventArgs) Handles Tcp1.CertificateReceived
'If the server's certificate is invalid for any reason,
'the user can decide whether to proceed
Dim msg As String = "The certificate was invalid for the following reason(s)" + vbLf
' Check to see if the certificate is from a trusted root.
If (Not e.TrustedRoot) Then
msg += "This certificate is not from a trusted root" + vbLf
End If
' Check to see if the certificate has a valid date.
If (Not e.ValidDate) Then
msg += "This certificate does not have a valid date" + vbLf
End If
' Check to see if the certificate has a valid name.
If (Not e.ValidName) Then
msg += "This certificate does not have a valid name" + vbLf
End If
If (Not e.Accept) Then
msg += "Would you like to accept this certificate anyway?"
If (MessageBox.Show(msg, "Invalid Cert Received", MessageBoxButtons.YesNo) = DialogResult.Yes) Then
e.Accept = True
End If
End If
End Sub
[C#]
private void SecureTest()
{
//Allow component to negotiate best security option
tcp1.SecureProtocol = SecureProtocol.Auto;
// Connect to a secure echo server.
tcp1.Connect("mysecureserver", 7);
// Send secure data
tcp1.Send("Test");
// Receive and display secure data
System.Diagnostics.Debug.WriteLine(tcp1.Receive().ToString());
// Close the connection
tcp1.Close();
}
private void tcp1_CertificateRequested(object sender, System.EventArgs e)
{
//The server has requested client authentication
//Allow the user to select a certificate
CertificateListForm certform = new CertificateListForm(true,
true);
if(certform.ShowDialog(this) ==
DialogResult.OK)
tcp1.Certificate = certform.SelectedCertificate;
}
private void tcp1_CertificateReceived(object sender, CertificateReceivedEventArgs e)
{
//If the server's certificate is invalid for any reason,
//the user can decide whether to proceed
string msg = "The certificate was invalid for the following
reason(s)\n";
// Check to see if the certificate is from a trusted root.
if(!e.TrustedRoot)
msg+= "This certificate is not from a trusted root\n";
// Check to see if the certificate has a valid date.
if(!e.ValidDate)
msg+= "This certificate does not have a valid date\n";
// Check to see if the certificate has a valid name.
if(!e.ValidName)
msg+= "This certificate does not have a valid name\n";
if(!e.Accept)
{
msg += "Would you like to accept this certificate anyway?";
if(MessageBox.Show(msg, "Invalid
Cert Received", MessageBoxButtons.YesNo) == DialogResult.Yes)
e.Accept = true;
}
}
Namespace: Dart.PowerTCP.SslSockets
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
Assembly: Dart.PowerTCP.SslSockets (in Dart.PowerTCP.SslSockets.dll)
SslStream Members | Dart.PowerTCP.SslSockets Namespace
Send comments on this topic.
Documentation version 1.1.2.0.
© 2008 Dart Communications. All rights reserved.