fix bug with written cert

vtcsec_summit
Conor 2016-03-05 22:41:27 -05:00
rodzic ce139efbe6
commit 7d31ee143f
5 zmienionych plików z 7 dodań i 6 usunięć

Wyświetl plik

@ -83,7 +83,7 @@ uint16_t u2f_attestation_cert_size();
// callback for u2f to send back response data
// @buf data to write back
// @len length of buf in bytes
void u2f_response_writeback(uint8_t * buf, uint8_t len);
void u2f_response_writeback(uint8_t * buf, uint16_t len);
// callback when u2f finishes and will
// indicate when all buffer data, if any, should be written

Wyświetl plik

@ -101,7 +101,7 @@ void u2f_hid_set_len(uint16_t len);
// @payload the buffer to write
// @len length of buffer
// @@prereq is that hid_layer.current_cid, hid_layer.res_len each set to correct values
void u2f_hid_writeback(uint8_t * payload, uint8_t len);
void u2f_hid_writeback(uint8_t * payload, uint16_t len);
// u2f_hid_flush flush any remaining data that may be buffered.
void u2f_hid_flush();

Wyświetl plik

@ -73,7 +73,7 @@ void u2f_init()
}
}
void u2f_response_writeback(uint8_t * buf, uint8_t len)
void u2f_response_writeback(uint8_t * buf, uint16_t len)
{
u2f_hid_writeback(buf, len);
}

Wyświetl plik

@ -52,6 +52,7 @@ static int16_t u2f_register(struct u2f_register_request * req)
uint8_t key_handle[U2F_KEY_HANDLE_SIZE];
uint8_t pubkey[64];
const uint16_t attest_size = u2f_attestation_cert_size();
if (u2f_get_user_feedback() != 0)
{
@ -83,8 +84,8 @@ static int16_t u2f_register(struct u2f_register_request * req)
i[0] = U2F_KEY_HANDLE_SIZE;
u2f_response_writeback(i,1);
u2f_response_writeback(key_handle,U2F_KEY_HANDLE_SIZE);
u2f_response_writeback(u2f_get_attestation_cert(),u2f_attestation_cert_size()-254/2);
u2f_response_writeback(u2f_get_attestation_cert()+u2f_attestation_cert_size(),254/2);
u2f_response_writeback(u2f_get_attestation_cert(),u2f_attestation_cert_size());
u2f_response_writeback((uint8_t*)req, 64);

Wyświetl plik

@ -101,7 +101,7 @@ void u2f_hid_flush()
}
void u2f_hid_writeback(uint8_t * payload, uint8_t len)
void u2f_hid_writeback(uint8_t * payload, uint16_t len)
{
struct u2f_hid_msg * r = (struct u2f_hid_response *) _hid_pkt;
_hid_in_session = 1;