hi to all. I hope you can help me to fix my problem (i'm going crazy! ).
I have a client/server application that use RSA for encrypt exchanged message. 
Now, until yesterday i'm running my app on localhost and all works fine. Today 
i've try to run it on the net, but something goes wrong.
The app works like:
server listen for the incoming connection, and when a client call connect() 
function, server send his publik key to client, and client do the same whit his 
key. 
Then client can start to send message encrypted with server public key.

this is the code ok key sharing (i don't paste system call return value and 
handling):

    const unsigned char *client_key;
    int client_len;
    //sending server public key len 
    send_pack->id = my_pk_len;
    write(active_user_tail->prev->fd, send_pack, sizeof (packet));
    signal(SIGALRM, timeout); 
    alarm(3);
    //reading client public key len
    read(active_user_tail->prev->fd, receive_pack, sizeof (packet));
    alarm(0);
    
    client_len = receive_pack->id;
    //send server public key
    write(active_user_tail->prev->fd, my_public_key, my_pk_len);
    //reading client public key
    signal(SIGALRM, timeout); 
    alarm(3);
    read(active_user_tail->prev->fd, client_key, client_len);
    alarm(0);
    d2i_RSAPublicKey(&active_user_tail->prev->rsa_client, &client_key, 
client_len);
}


client function is specular to this one.
Now if client try to send a encrypted message to server, when server calls 
RSA_private_decrypt, i obtain this error:

error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2 : block type is not 
02

what does it mean?
i paste the part of client code sending encrypted message:

    strcpy(send_pack->op, "help\n");
    RSA_public_encrypt(strlen(send_pack->op), send_pack->op, 
            encrypted_send->op, rsa_server, padding);    
    write(server, encrypted_send, sizeof (encrypted_pack));


the part of server that decrypt message and launch the error:

RSA_private_decrypt(RSA_size(rsa), encrypted_receive->op, 
                        receive_pack->op, rsa, padding);

i've try to print the encrypted string on client and on server, and they are 
the 
same.
Where i'm wrong?

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to