| gnutls_session_pack.c | gnutls_session_pack.c | |||
|---|---|---|---|---|
| skipping to change at line 612 | skipping to change at line 612 | |||
| BUFFER_APPEND_NUM(ps, info->dh.secret_bits); | BUFFER_APPEND_NUM(ps, info->dh.secret_bits); | |||
| BUFFER_APPEND_PFX4(ps, info->dh.prime.data, info->dh.prime.size); | BUFFER_APPEND_PFX4(ps, info->dh.prime.data, info->dh.prime.size); | |||
| BUFFER_APPEND_PFX4(ps, info->dh.generator.data, | BUFFER_APPEND_PFX4(ps, info->dh.generator.data, | |||
| info->dh.generator.size); | info->dh.generator.size); | |||
| BUFFER_APPEND_PFX4(ps, info->dh.public_key.data, | BUFFER_APPEND_PFX4(ps, info->dh.public_key.data, | |||
| info->dh.public_key.size); | info->dh.public_key.size); | |||
| /* write the real size */ | /* write the real size */ | |||
| _gnutls_write_uint32(ps->length - cur_size, | _gnutls_write_uint32(ps->length - cur_size, | |||
| ps->data + size_offset); | ps->data + size_offset); | |||
| return 0; | return 0; | |||
| } | } | |||
| static int | static int | |||
| unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps) | unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps) | |||
| { | { | |||
| size_t username_size, hint_size; | size_t username_size, hint_size; | |||
| int ret; | int ret; | |||
| psk_auth_info_t info; | psk_auth_info_t info; | |||
| unsigned pack_size; | ||||
| ret = | ret = | |||
| _gnutls_auth_info_set(session, GNUTLS_CRD_PSK, | _gnutls_auth_info_set(session, GNUTLS_CRD_PSK, | |||
| sizeof(psk_auth_info_st), 1); | sizeof(psk_auth_info_st), 1); | |||
| if (ret < 0) { | if (ret < 0) { | |||
| gnutls_assert(); | gnutls_assert(); | |||
| return ret; | return ret; | |||
| } | } | |||
| info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK); | info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK); | |||
| if (info == NULL) | if (info == NULL) | |||
| return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR); | return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR); | |||
| BUFFER_POP_NUM(ps, pack_size); | ||||
| if (pack_size == 0) | ||||
| return GNUTLS_E_INVALID_REQUEST; | ||||
| BUFFER_POP_NUM(ps, username_size); | BUFFER_POP_NUM(ps, username_size); | |||
| if (username_size > sizeof(info->username)) { | if (username_size > sizeof(info->username)) { | |||
| gnutls_assert(); | gnutls_assert(); | |||
| return GNUTLS_E_INTERNAL_ERROR; | return GNUTLS_E_INTERNAL_ERROR; | |||
| } | } | |||
| BUFFER_POP(ps, info->username, username_size); | BUFFER_POP(ps, info->username, username_size); | |||
| BUFFER_POP_NUM(ps, hint_size); | BUFFER_POP_NUM(ps, hint_size); | |||
| if (hint_size > sizeof(info->hint)) { | if (hint_size > sizeof(info->hint)) { | |||
| End of changes. 3 change blocks. | ||||
| 1 lines changed or deleted | 5 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||