ExchangeAlgorithmType Enumeration


Specifies the algorithm used to create keys shared by the client and server.

Namespace:   System.Security.Authentication
Assembly:  System (in System.dll)

public enum class ExchangeAlgorithmType

Member nameDescription

The Diffie Hellman ephemeral key exchange algorithm.


No key exchange algorithm is used.


The RSA public-key exchange algorithm.


The RSA public-key signature algorithm.

This enumeration specifies valid values for the SslStream::KeyExchangeAlgorithm property.

The following example displays the properties of an SslStream.

static void AuthenticateCallback( IAsyncResult^ ar )
   SslStream^ stream = dynamic_cast<SslStream^>(ar->AsyncState);
      stream->EndAuthenticateAsClient( ar );
      Console::WriteLine( L"Authentication succeeded." );
      Console::WriteLine( L"Cipher: {0} strength {1}", stream->CipherAlgorithm, stream->CipherStrength );
      Console::WriteLine( L"Hash: {0} strength {1}", stream->HashAlgorithm, stream->HashStrength );
      Console::WriteLine( L"Key exchange: {0} strength {1}", stream->KeyExchangeAlgorithm, stream->KeyExchangeStrength );
      Console::WriteLine( L"Protocol: {0}", stream->SslProtocol );

      // Encode a test message into a byte array.
      // Signal the end of the message using the "<EOF>".
      array<Byte>^message = Encoding::UTF8->GetBytes( L"Hello from the client.<EOF>" );

      // Asynchronously send a message to the server.
      stream->BeginWrite( message, 0, message->Length, gcnew AsyncCallback( WriteCallback ), stream );
   catch ( Exception^ authenticationException ) 
      e = authenticationException;
      complete = true;


Universal Windows Platform
Available since 10
.NET Framework
Available since 2.0
Return to top