IOS Error: Broken pipe … Failed to send ClientHello

The following error can be caused by a firewall blocking the iPAD/iPhone wifi connection:

...
      connect successful (1)
      clientHelloMajorMinorVersion: 3.1
      buildClientHello:
        majorVersion: 3
        minorVersion: 1
        numRandomBytes: 32
        sessionIdSize: 0
        numCipherSuites: 10
        numCompressionMethods: 1
      socketErrno: 32
      socketError: Broken pipe
      Error sending on socket
      send_size: 58
      Failed to send TLS message.
      Failed to send ClientHello
      Client handshake failed.
    Failed to connect to POP3 server.
    Failed to ensure transaction state.
...

FTP Auth TLS / SSL problem caused by Firewall Restrictions

The following Chilkat FTP2 error was found by a Chilkat customer to be caused by firewall restrictions. I do not know the specifics of the firewall restrictions that caused the error, but the LastErrorText (with all customer information removed) is reproduced here to help identify this problem in the future. The important point is to see that the SSL/TLS handshake completes to the very end, at which point the FTP client sends the “FINISHED” SSL/TLS handshake message, and then the firewall closes the connection.

ChilkatLog:
  Connect:
    DllDate: Jun 10 2010
    UnlockPrefix: ****
    Username: ****
    Component: Visual C++ 8.0
    ImplicitSsl: 0
    AuthTls: 1
    AuthSsl: 0
    Hostname: ****
    Port: 21
    IdleTimeoutMs: 60000
    HeartbeatMs: 0
    ConnectTimeoutMs: 60000
    myIP: ****
    myPort: ****
    connect successful.
    initialStatus: 220
    initialResponse: ****
    converting to secure connection...
    handshakeMessageType: ServerHello
    handshakeMessageLen: 0x46
    processHandshakeMessage:
      MessageType: ServerHello
      Processing ServerHello...
      ServerHello:
        MajorVersion: 3
        MinorVersion: 1
        SessionIdLen: 32
        CipherSuite: RSA_WITH_3DES_EDE_CBC_SHA
        CipherSuite: 00,0a
        CompressionMethod: 0
        Queueing ServerHello message.
        ServerHello is OK.
    handshakeMessageType: Certificate
    handshakeMessageLen: 0x9b1
    processHandshakeMessage:
      MessageType: Certificate
      ProcessCertificates:
        Certificate:
          derSize: 1288
          certSubjectCN: 
          certSerial: ****
          certIssuerCN: ****
        Certificate:
          derSize: 1184
          certSubjectCN: ****
          certSerial: ****
          certIssuerCN: 
        NumCertificates: 2
        Queueing Certificates message...
    handshakeMessageType: ServerHelloDone
    handshakeMessageLen: 0x0
    processHandshakeMessage:
      MessageType: ServerHelloDone
      Queueing HelloDone message.
    HandshakeQueue:
      MessageType: ServerHello
      MessageType: Certificate
      MessageType: ServerHelloDone
    Dequeued ServerHello message.
    Dequeued Certificate message.
    DequeuedMessageType: ServerHelloDone
    OK to ServerHelloDone!
    No client certificate required by the server.
    Encrypted pre-master secret with server certificate RSA public key is OK.
    Sending ClientKeyExchange...
    Sent ClientKeyExchange message.
    Sending ChangeCipherSpec...
    Sent ChangeCipherSpec message.
    Derived keys.
    Installed new outgoing security params.
    Sending FINISHED message..
    algorithm: des
    keyLength: 192
    Sent FINISHED message..
    numBytesRequested: 5
    Connection closed by server.
    Failed to read beginning of SSL/TLS record.
    Failed to read incoming handshake messages. (3)
    Client handshake failed.
    Failed to convert channel to SSL/TLS
    Failed to connect to FTP server.