Commit 212635ee authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Follow ngtcp2 API update

parent 2d80acfd
...@@ -467,7 +467,8 @@ struct Client { ...@@ -467,7 +467,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);
......
...@@ -223,10 +223,11 @@ int get_new_connection_id(ngtcp2_conn *conn, ngtcp2_cid *cid, uint8_t *token, ...@@ -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) { ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment