Hello,

I am new to openssl and trying to create a demo client and server which use SSL 
v3. But the server, for some reason I cannot figure out, always refuses 
connections wth the client reporting errno as ECONNREFUSED. 

Can somebody please help me out with what might be the problem ? Relevant 
portions of sources for server and client are available below.

Thank you &
Regards
Manish Jain
[email protected]

//server
    SSL_METHOD * lpmethod = SSLv3_method();
    SSL_CTX * lpctx = SSL_CTX_new(lpmethod);

    int result = SSL_CTX_use_certificate_chain_file(lpctx, CERT_FILE);
    assert(result > 0);

    result = SSL_CTX_use_PrivateKey_file(lpctx, KEY_FILE, SSL_FILETYPE_PEM);
    assert(result > 0);

    result = SSL_CTX_check_private_key(lpctx);
    assert(result != 0);

    sockaddr_in addr;
    
    int sock = socket(AF_INET, SOCK_STREAM, 0);
    sockaddr_in sin;
    int val = 1;
    
    memset((char *)&addr, 0, sizeof(addr));
    addr.sin_addr.s_addr=INADDR_ANY;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(PORT);
    setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
    
    bind(sock, (sockaddr *) &sin, sizeof(sin));
    result = listen(sock,5);
    std::cout << "listen returned " << result << std::endl;

    int new_sock = accept(sock, 0, 0);

//client :
    SSL_library_init();
    SSL_load_error_strings();

    SSL_METHOD * lpmethod = SSLv3_method();
    SSL_CTX * lpctx = SSL_CTX_new(lpmethod);

    int result = SSL_CTX_use_certificate_chain_file(lpctx, CERT_FILE);
    assert(result > 0);

    result = SSL_CTX_use_PrivateKey_file(lpctx, KEY_FILE, SSL_FILETYPE_PEM);
    assert(result > 0);

    result = SSL_CTX_check_private_key(lpctx);
    assert(result != 0);
    
    SSL_CTX_set_verify(lpctx, SSL_VERIFY_PEER, 0);

    sockaddr_in addr;
    
    memset((char *) &addr, 0, sizeof(addr));
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    addr.sin_family = AF_INET;
    addr.sin_port = htons(8888);

    int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    assert(sock > 0);

    result = connect(sock, (struct sockaddr *)&addr, sizeof(addr));


                                          

Reply via email to