HashAlgorithmType Enum
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Specifies the algorithm used for generating message authentication codes (MACs).
public enum class HashAlgorithmType
public enum HashAlgorithmType
type HashAlgorithmType =
Public Enum HashAlgorithmType
- Inheritance
Fields
Name | Value | Description |
---|---|---|
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.