Using a Deferred Handshake

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Um handshake adiado permite que um aplicativo para criar uma conexão não segura e, posteriormente, convertê-lo para uma conexão com uma infra-estrutura de segurança.

Para implementar Seguro soquetes com um handshake adiado

  1. Criar um Soquete com o Soquete função.

  2. Definir a Soquete em Seguro modo com setsockopt.

  3. Definir nível Para SOL_SOCKET, defina OptName SO_SECURE e conjunto optval Para um DWORD Defina como SO_SEC_SSL.

  4. Especifique o função callback validação Certificado por chamado WSAIoctl Com o código de controle SO_SSL_SET_VALIDATE_CERT_HOOK.

  5. Para verificar identidade do servidor durante o handshake, chamar WSAIoctl Com o código de controle SO_SSL_SET_PEERNAME.

    Nome de servidor é verificado em relação o Certificado servidor após um bem-sucedido SSL handshake. Os resultados da verificação, em seguida, são indicados em callback de validação Certificado. Se o nome servidor especificado não coincide com indicada na cadeia de certificados do SSL Handshake, SSL_CERT_FLAG_ISSUER_UNKNOWN será definida no parâmetro dwFlags de SslValidateCertHook.

    Se você não fizer isso executar essa etapa, nenhuma verificação é executada.

  6. Definir a Soquete no modo handshake adiada com WSAIoctl. Codificar o controle deve ser definido para o sinalizador definido como SSL_FLAG_DEFER_HANDSHAKE e SO_SSL_SET_FLAGS.

  7. Estabelecer um não seguro conexão com a parte remota usando conectar.

  8. Transmitir e Receber dados unencoded.

  9. Para alternar para Seguro modo, chamar WSAIoctl Com o código de controle SO_SSL_PERFORM_HANDSHAKE passando no nome do servidor destino.

  10. O função callback Certificado é chamado automaticamente. O handshake é bem-sucedido somente se o função callback verifica o acceptability do Certificado, retornando SSL_ERR_OKAY.

  11. Transmitir e Receber.

  12. O Enviar e Recv funções codificar e decodificar os dados automaticamente.

  13. Quando tiver terminado, fechar o Soquete com closesocket.

See Also

Concepts

Winsock Secure Sockets
Secure Socket Control Codes