Follow ngtcp2 API update

This commit is contained in:
Tatsuhiro Tsujikawa 2019-11-08 00:06:09 +09:00
parent 77f1b37284
commit 49a182a15f
2 changed files with 11 additions and 8 deletions

View File

@ -450,7 +450,8 @@ struct Client {
int quic_stream_close(int64_t stream_id, uint64_t app_error_code); int quic_stream_close(int64_t stream_id, uint64_t app_error_code);
int quic_stream_reset(int64_t stream_id, uint64_t app_error_code); int quic_stream_reset(int64_t stream_id, uint64_t app_error_code);
int quic_extend_max_local_streams(); int quic_extend_max_local_streams();
int quic_update_key(); int quic_update_key(uint8_t *rx_key, uint8_t *rx_iv, uint8_t *tx_key,
uint8_t *tx_iv);
int quic_on_key(ngtcp2_crypto_level level, const uint8_t *rx_secret, int quic_on_key(ngtcp2_crypto_level level, const uint8_t *rx_secret,
const uint8_t *tx_secret, size_t secretlen); const uint8_t *tx_secret, size_t secretlen);

View File

@ -223,10 +223,11 @@ int get_new_connection_id(ngtcp2_conn *conn, ngtcp2_cid *cid, uint8_t *token,
} // namespace } // namespace
namespace { namespace {
int update_key(ngtcp2_conn *conn, void *user_data) { int update_key(ngtcp2_conn *conn, uint8_t *rx_key, uint8_t *rx_iv,
uint8_t *tx_key, uint8_t *tx_iv, void *user_data) {
auto c = static_cast<Client *>(user_data); auto c = static_cast<Client *>(user_data);
if (c->quic_update_key() != 0) { if (c->quic_update_key(rx_key, rx_iv, tx_key, tx_iv) != 0) {
return NGTCP2_ERR_CALLBACK_FAILURE; return NGTCP2_ERR_CALLBACK_FAILURE;
} }
@ -234,12 +235,13 @@ int update_key(ngtcp2_conn *conn, void *user_data) {
} }
} // namespace } // namespace
int Client::quic_update_key() { int Client::quic_update_key(uint8_t *rx_key, uint8_t *rx_iv, uint8_t *tx_key,
uint8_t *tx_iv) {
std::array<uint8_t, 64> rx_secret, tx_secret; std::array<uint8_t, 64> rx_secret, tx_secret;
if (ngtcp2_crypto_update_and_install_key( if (ngtcp2_crypto_update_key(quic.conn, rx_secret.data(), tx_secret.data(),
quic.conn, rx_secret.data(), tx_secret.data(), nullptr, nullptr, rx_key, rx_iv, tx_key, tx_iv,
nullptr, nullptr, quic.rx_secret.data(), quic.tx_secret.data(), quic.rx_secret.data(), quic.tx_secret.data(),
quic.rx_secret.size()) != 0) { quic.rx_secret.size()) != 0) {
return -1; return -1;
} }