Changeset 5280

Show
Ignore:
Timestamp:
02/16/08 08:43:19 (7 months ago)
Author:
morris
Message:

Add p7.encryption.authentication_error

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/p7/wi-p7-socket.c

    r5257 r5280  
    343343        wi_p7_enum_t            flag; 
    344344         
    345         p7_message = wi_p7_message_with_name(WI_STR("p7.handshake"), wi_p7_socket_spec(p7_socket)); 
     345        p7_message = wi_p7_message_with_name(WI_STR("p7.handshake.client_handshake"), wi_p7_socket_spec(p7_socket)); 
    346346         
    347347        if(!p7_message) 
     
    391391                return false; 
    392392 
    393         if(!wi_is_equal(p7_message->name, WI_STR("p7.handshake.reply"))) { 
    394                 wi_error_set_libwired_p7_error(WI_ERROR_P7_HANDSHAKEFAILED, 
    395                         WI_STR("Message should be \"p7.handshake.reply\", not \"%@\""), 
     393        if(!wi_is_equal(p7_message->name, WI_STR("p7.handshake.server_handshake"))) { 
     394                wi_error_set_libwired_p7_error(WI_ERROR_P7_HANDSHAKEFAILED, 
     395                        WI_STR("Message should be \"p7.handshake.server_handshake\", not \"%@\""), 
    396396                        p7_message->name); 
    397397                 
     
    475475                return false; 
    476476 
    477         if(!wi_is_equal(p7_message->name, WI_STR("p7.handshake"))) { 
    478                 wi_error_set_libwired_p7_error(WI_ERROR_P7_HANDSHAKEFAILED, 
    479                         WI_STR("Message should be \"p7.handshake\", not \"%@\""), 
     477        if(!wi_is_equal(p7_message->name, WI_STR("p7.handshake.client_handshake"))) { 
     478                wi_error_set_libwired_p7_error(WI_ERROR_P7_HANDSHAKEFAILED, 
     479                        WI_STR("Message should be \"p7.client_handshake\", not \"%@\""), 
    480480                        p7_message->name); 
    481481                 
     
    539539        } 
    540540         
    541         p7_message = wi_p7_message_with_name(WI_STR("p7.handshake.reply"), wi_p7_socket_spec(p7_socket)); 
     541        p7_message = wi_p7_message_with_name(WI_STR("p7.handshake.server_handshake"), wi_p7_socket_spec(p7_socket)); 
    542542 
    543543        if(!p7_message) 
     
    618618                return false; 
    619619         
    620         if(!wi_is_equal(p7_message->name, WI_STR("p7.encryption"))) { 
     620        if(!wi_is_equal(p7_message->name, WI_STR("p7.encryption.server_key"))) { 
    621621                wi_error_set_libwired_p7_error(WI_ERROR_P7_HANDSHAKEFAILED, 
    622622                        WI_STR("Message should be \"p7.encryption\", not \"%@\""), 
     
    645645                return false; 
    646646         
    647         p7_message = wi_p7_message_with_name(WI_STR("p7.encryption.reply"), wi_p7_socket_spec(p7_socket)); 
     647        p7_message = wi_p7_message_with_name(WI_STR("p7.encryption.client_key"), wi_p7_socket_spec(p7_socket)); 
    648648 
    649649        if(!p7_message) 
     
    696696        if(!p7_message) 
    697697                return false; 
     698         
     699        if(wi_is_equal(p7_message->name, WI_STR("p7.encryption.authentication_error"))) { 
     700                wi_error_set_libwired_error(WI_ERROR_P7_AUTHENTICATIONFAILED); 
     701                 
     702                return false; 
     703        } 
    698704         
    699705        if(!wi_is_equal(p7_message->name, WI_STR("p7.encryption.acknowledge"))) { 
     
    740746        wi_string_t                     *string, *username, *client_password, *server_password1, *server_password2; 
    741747         
    742         p7_message = wi_p7_message_with_name(WI_STR("p7.encryption"), wi_p7_socket_spec(p7_socket)); 
     748        p7_message = wi_p7_message_with_name(WI_STR("p7.encryption.server_key"), wi_p7_socket_spec(p7_socket)); 
    743749 
    744750        if(!p7_message) 
     
    764770                return false; 
    765771         
    766         if(!wi_is_equal(p7_message->name, WI_STR("p7.encryption.reply"))) { 
     772        if(!wi_is_equal(p7_message->name, WI_STR("p7.encryption.client_key"))) { 
    767773                wi_error_set_libwired_p7_error(WI_ERROR_P7_HANDSHAKEFAILED, 
    768774                        WI_STR("Message should be \"p7.encryption.reply\", not \"%@\""), 
     
    832838                                username); 
    833839                         
     840                        p7_message = wi_p7_message_with_name(WI_STR("p7.encryption.authentication_error"), wi_p7_socket_spec(p7_socket)); 
     841                        wi_p7_socket_write_message(p7_socket, timeout, p7_message); 
     842 
    834843                        return false; 
    835844                } 
     
    848857                        WI_STR("Password mismatch for \"%@\" during key exchange"), 
    849858                        username); 
     859                 
     860                p7_message = wi_p7_message_with_name(WI_STR("p7.encryption.authentication_error"), wi_p7_socket_spec(p7_socket)); 
     861                wi_p7_socket_write_message(p7_socket, timeout, p7_message); 
    850862                 
    851863                return false; 
     
    14801492 
    14811493 
    1482 int32_t wi_p7_socket_write_oobdata(wi_p7_socket_t *p7_socket, wi_time_interval_t timeout, const void *buffer, uint32_t size) { 
     1494wi_integer_t wi_p7_socket_write_oobdata(wi_p7_socket_t *p7_socket, wi_time_interval_t timeout, const void *buffer, uint32_t size) { 
    14831495        const void                      *send_buffer; 
    14841496        void                            *compressed_buffer = NULL, *encrypted_buffer = NULL; 
    14851497        char                            length_buffer[_WI_P7_SOCKET_LENGTH_SIZE]; 
     1498        wi_integer_t            result = -1; 
    14861499        uint32_t                        send_size, compressed_size, encrypted_size; 
    1487         int32_t                         result = -1; 
    14881500         
    14891501        send_size       = size; 
     
    15331545 
    15341546 
    1535 int32_t wi_p7_socket_read_oobdata(wi_p7_socket_t *p7_socket, wi_time_interval_t timeout, void *out_buffer, uint32_t out_size) { 
     1547wi_integer_t wi_p7_socket_read_oobdata(wi_p7_socket_t *p7_socket, wi_time_interval_t timeout, void *out_buffer, uint32_t out_size) { 
    15361548        void                            *receive_buffer = NULL, *decrypted_buffer, *decompressed_buffer; 
    15371549        char                            length_buffer[_WI_P7_SOCKET_LENGTH_SIZE]; 
     1550        wi_integer_t            result = -1; 
    15381551        uint32_t                        receive_size, decompressed_size, decrypted_size; 
    1539         int32_t                         result = -1; 
    15401552         
    15411553        if(wi_socket_read_buffer(p7_socket->socket, timeout, length_buffer, sizeof(length_buffer)) <= 0) 
  • libwired/trunk/libwired/p7/wi-p7-spec.c

    r5263 r5280  
    341341        "" 
    342342        "       <p7:messages>" 
    343         "               <p7:message name=\"p7.handshake\" id=\"1\">" 
     343        "               <p7:message name=\"p7.handshake.client_handshake\" id=\"1\">" 
    344344        "                       <p7:parameter field=\"p7.handshake.version\" use=\"required\" />" 
    345345        "                       <p7:parameter field=\"p7.handshake.protocol_name\" use=\"required\" />" 
     
    350350        "               </p7:message>" 
    351351        "" 
    352         "               <p7:message name=\"p7.handshake.reply\" id=\"2\">" 
     352        "               <p7:message name=\"p7.handshake.server_handshake\" id=\"2\">" 
    353353        "                       <p7:parameter field=\"p7.handshake.version\" use=\"required\" />" 
    354354        "                       <p7:parameter field=\"p7.handshake.protocol_name\" use=\"required\" />" 
     
    359359        "                       <p7:parameter field=\"p7.handshake.compatibility_check\" />" 
    360360        "               </p7:message>" 
    361  
     361        "" 
    362362        "               <p7:message name=\"p7.handshake.acknowledge\" id=\"3\">" 
    363363        "                       <p7:parameter field=\"p7.handshake.compatibility_check\" />" 
    364364        "               </p7:message>" 
    365365        "" 
    366         "               <p7:message name=\"p7.encryption\" id=\"4\">" 
     366        "               <p7:message name=\"p7.encryption.server_key\" id=\"4\">" 
    367367        "                       <p7:parameter field=\"p7.encryption.public_key\" use=\"required\" />" 
    368368        "               </p7:message>" 
    369369        "" 
    370         "               <p7:message name=\"p7.encryption.reply\" id=\"5\">" 
     370        "               <p7:message name=\"p7.encryption.client_key\" id=\"5\">" 
    371371        "                       <p7:parameter field=\"p7.encryption.cipher_key\" use=\"required\" />" 
    372372        "                       <p7:parameter field=\"p7.encryption.cipher_iv\" />" 
     
    379379        "               </p7:message>" 
    380380        "" 
    381         "               <p7:message name=\"p7.compatibility_check.specification\" id=\"7\">" 
     381        "               <p7:message name=\"p7.encryption.authentication_error\" id=\"7\" />" 
     382        "" 
     383        "               <p7:message name=\"p7.compatibility_check.specification\" id=\"8\">" 
    382384        "                       <p7:parameter field=\"p7.compatibility_check.specification\" use=\"required\" />" 
    383385        "               </p7:message>" 
    384386        "               " 
    385         "               <p7:message name=\"p7.compatibility_check.status\" id=\"8\">" 
     387        "               <p7:message name=\"p7.compatibility_check.status\" id=\"9\">" 
    386388        "                       <p7:parameter field=\"p7.compatibility_check.status\" use=\"required\" />" 
    387389        "               </p7:message>" 
     
    389391        "" 
    390392        "       <p7:transactions>" 
    391         "               <p7:transaction message=\"p7.handshake\" originator=\"client\" use=\"required\">" 
    392         "                       <p7:reply message=\"p7.handshake.reply\" count=\"1\" use=\"required\" />" 
     393        "               <p7:transaction message=\"p7.handshake.client_handshake\" originator=\"client\" use=\"required\">" 
     394        "                       <p7:reply message=\"p7.handshake.server_handshake\" count=\"1\" use=\"required\" />" 
    393395        "               </p7:transaction>" 
    394396        "" 
    395         "               <p7:transaction message=\"p7.handshake.reply\" originator=\"server\" use=\"required\">" 
     397        "               <p7:transaction message=\"p7.handshake.server_handshake\" originator=\"server\" use=\"required\">" 
    396398        "                       <p7:reply message=\"p7.handshake.acknowledge\" count=\"1\" use=\"required\" />" 
    397399        "               </p7:transaction>" 
    398400        "" 
    399         "               <p7:transaction message=\"p7.encryption\" originator=\"server\" use=\"required\">" 
    400         "                       <p7:reply message=\"p7.encryption.reply\" count=\"1\" use=\"required\" />" 
     401        "               <p7:transaction message=\"p7.encryption.server_key\" originator=\"server\" use=\"required\">" 
     402        "                       <p7:reply message=\"p7.encryption.client_key\" count=\"1\" use=\"required\" />" 
    401403        "               </p7:transaction>" 
    402404        "" 
    403         "               <p7:transaction message=\"p7.encryption.reply\" originator=\"client\" use=\"required\">" 
    404         "                       <p7:reply message=\"p7.encryption.acknowledge\" count=\"1\" use=\"required\" />" 
     405        "               <p7:transaction message=\"p7.encryption.client_key\" originator=\"client\" use=\"required\">" 
     406        "                       <p7:or>" 
     407        "                               <p7:reply message=\"p7.encryption.acknowledge\" count=\"1\" use=\"required\" />" 
     408        "                               <p7:reply message=\"p7.encryption.authentication_error\" count=\"1\" use=\"required\" />" 
     409        "                       </p7:or>" 
    405410        "               </p7:transaction>" 
    406411        ""