Freigeben über


Secure Socket Control Codes (Windows CE 5.0)

Send Feedback

You can specify a particular operation to perform by calling WSAIoctl or WSPIoctl with a specific control code, as defined by the dwIoControlCode parameter. This parameter allows protocol and vendor independence when adding new control codes, while it retains backward compatibility with the Winsock 1.1 and Unix control codes.

The following table shows the available control codes.

Control Code Description
SO_SSL_GET_PROTOCOLS Specify a particular security protocol, or determine the default protocols. Then call WSAIoctl with the SO_SSL_SET_PROTOCOLS control code to select the protocols to be enabled. Otherwise, Windows CE selects the protocol.
SO_SSL_PERFORM_HANDSHAKE Switch to secure mode and pass in the target server name.
SO_SSL_SET_FLAGS Set the socket in the mode determined by the flag. For example, if the control code is SO_SSL_SET_FLAGS and the flag is set to SSL_FLAG_DEFER_HANDSHAKE, then the socket is in deferred handshake mode.
SO_SSL_SET_PEERNAME Ensure that the server on the certificate is the same name as the desired server.
SO_SSL_SET_PROTOCOLS Selects the protocols to be enabled. Otherwise, Windows CE selects the protocol.
SO_SSL_SET_VALIDATE_CERT_HOOK Specify the certificate validation callback function

For information about the form for the dwIoControlCode parameter, see WSAIoctl or WSPIoctl.

SO_SSL_SET_PEERNAME

By using Winsock secure sockets, you can ensure that the server on the certificate has the same name as the desired server. You do this by passing the SCH_CRED_NO_SERVERNAME_CHECK flag to the CompletionRoutine.

CompletionRoutine is a placeholder for an application-defined or library-defined function.

For more information about CompletionRoutine, see WSAIoctl. For more information about the SCH_CRED_NO_SERVERNAME_CHECK flag, see SCHANNEL_CRED.

You should call WSAIoctl with the SO_SSL_SET_PEERNAME control code after setting up the secure socket and prior to making the connection. The following code example shows how it should be called.

WSAIoctl(m_socket,
   SO_SSL_SET_PEERNAME,
   "www.<domain>.com", strlen("www.<domain>.com")+1,
   NULL, 0,
   NULL, NULL, NULL);. 

The input buffer, parameter 3 is the ASCII null-terminated servername. The input buffer length is parameter 4.

See Also

Winsock Reference | Implementing a Secure Socket | Using a Deferred Handshake

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.