Редактиране

Споделяне чрез


HashAlgorithmType Enum

Definition

Specifies the algorithm used for generating message authentication codes (MACs).

public enum class HashAlgorithmType
public enum HashAlgorithmType
type HashAlgorithmType = 
Public Enum HashAlgorithmType
Inheritance
HashAlgorithmType

Fields

None 0

No hashing algorithm is used.

Md5 32771

The Message Digest 5 (MD5) hashing algorithm.

Due to collision problems with MD5, Microsoft recommends SHA256.

Sha1 32772

The Secure Hashing Algorithm (SHA1).

Due to collision problems with SHA1, Microsoft recommends SHA256.

Sha256 32780

The Secure Hashing Algorithm 2 (SHA-2), using a 256-bit digest.

Sha384 32781

The Secure Hashing Algorithm 2 (SHA-2), using a 384-bit digest.

Sha512 32782

The Secure Hashing Algorithm 2 (SHA-2), using a 512-bit digest.

Examples

The following example displays the properties of an SslStream after authentication has succeeded.

static void AuthenticateCallback( IAsyncResult^ ar )
{
   SslStream^ stream = dynamic_cast<SslStream^>(ar->AsyncState);
   try
   {
      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;
      return;
   }

}
static void AuthenticateCallback(IAsyncResult ar)
{
    SslStream stream = (SslStream) ar.AsyncState;
    try
    {
        stream.EndAuthenticateAsClient(ar);
        Console.WriteLine("Authentication succeeded.");
        Console.WriteLine("Cipher: {0} strength {1}", stream.CipherAlgorithm,
            stream.CipherStrength);
        Console.WriteLine("Hash: {0} strength {1}",
            stream.HashAlgorithm, stream.HashStrength);
        Console.WriteLine("Key exchange: {0} strength {1}",
            stream.KeyExchangeAlgorithm, stream.KeyExchangeStrength);
        Console.WriteLine("Protocol: {0}", stream.SslProtocol);
        // Encode a test message into a byte array.
        // Signal the end of the message using the "<EOF>".
        byte[] message = Encoding.UTF8.GetBytes("Hello from the client.<EOF>");
        // Asynchronously send a message to the server.
        stream.BeginWrite(message, 0, message.Length,
            new AsyncCallback(WriteCallback),
            stream);
    }
    catch (Exception authenticationException)
    {
        e = authenticationException;
        complete = true;
        return;
    }
}

Remarks

This enumeration specifies valid values for the SslStream.HashAlgorithm property.

Applies to

See also